- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/display/CORE/20.+PHYSICAL+STANDBY+DATABASE?
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
작업 순서
전체 작업순서는 다음과 같다.
- Primary, Standby DB 설치
- 환경 설정 값 지정
- tnsnames.ora 파일 수정
- Standby Server Directory 생성
- Primary DB archive log mode로 변경
- Primary DB 데이터 가드 설정 작업
- Primary 리스너 띄우기
- RMAN 작업 설정
- Standby DB password file 설정
- Standby DB init file 설정
- Standby DB 리스너 띄우기
- Standby DB nomount startup
- RMAN으로 DG 구성
- Standby 서버 open 작업
작업 내용
자세한 내용은 다음과 같다.
1. Primary, Standby DB 설치
일반 설치 작업 진행 한다.
2. 환경설정값 지정
ORACLE_SID, DB_NAME을 지정한다.
3. tnsnames.ora 파일을 수정한다.
각 tnsnames.ora에 두서버의 정보를 모두 등록한다.
4. Standby DB 서버에 추가적인 디렉토리를 생성한다.
DB_NAME 으로 된 이름과 SID용으로 adump용, dbdump용, pfile용, trace용 디렉토리를다 미리 만들어 놓는다.
사용할 데이터 파일 위치도 미리 만들어 놓는다.
5. no archive mode이면 archive mode로 수정한다.
SYS@TEST1 >select status from v$instance; STATUS ------------ OPEN SYS@TEST1 >alter system set log_archive_dest_1='location=/backup01/ARC01 MANDATORY' scope=spfile; System altered. SYS@TEST1 >alter system set log_archive_dest_2='location=/backup02/ARC02 OPTIONAL' scope=spfile; System altered. SYS@TEST1 >alter system set log_archive_max_processes=2 scope=both; System altered. SYS@TEST1 >alter system set log_archive_format='TEST1_%t_%s_%r.arc' scope=spfile; System altered SYS@TEST1 >shutdown immediate; SYS@TEST1 >alter database archivelog; SYS@TEST1 >alter database open; SYS@TEST1 >archive log list;
6. Primary DB 데이터 가드 설정 작업
Primary 로서의 설정 작업을 진행한다.
SYS@TEST1 >alter database add standby logfile ('/data01/oradata/TEST1/stdbylog01.rdo','/data02/oradata/TEST1/stdbylog01-1.rdo') size 300M; Database altered. SYS@TEST1 >alter database add standby logfile ('/data01/oradata/TEST1/stdbylog02.rdo','/data02/oradata/TEST1/stdbylog02-1.rdo') size 300M; Database altered. SYS@TEST1 >alter system set log_archive_config='dg_config=(TEST1,TEST2)'; System altered. SYS@TEST1 >alter system set log_archive_dest_3='service=TEST2 async valid_for=(online_logfile,primary_role) db_unique_name=TEST2'; System altered. SYS@TEST1 >alter system set db_unique_name=TEST1 scope=spfile; System altered. SYS@TEST1 >grant sysdba to system; Grant succeeded. SYS@TEST1 >alter system set db_recovery_file_dest_size=5G; System altered. SYS@TEST1 >alter system set standby_file_management=auto; System altered. SYS@TEST1 >alter database force logging; Database altered. SYS@TEST1 >alter system set fal_client=TEST1; System altered. SYS@TEST1 >alter system set fal_server=TEST2; System altered.
7. Primary 리스너 띄우기
리스너를 띄운다. Primary와 Standby사이에 접근에 문제 없게 설정한다.
8. RMAN 작업 설정
rman 실행할 파일을 생성한다.
connect auxiliary system/passwd@TEST2 run { duplicate target database for standby from active database dorecover spfile parameter_value_convert 'TEST1','TEST2' set db_unique_name='TEST2' set control_files='/data01/oradata/TEST2/control01.ctl','/data01/oradata/TEST2/control02.ctl','/data02/oradata/TEST2/control03.ctl' set db_file_name_convert='/data01/oradata/TEST1','/data01/oradata/TEST2','/data02/oradata/TEST1','/data02/oradata/TEST2' set log_file_name_convert='/data01/oradata/TEST1','/data01/oradata/TEST2','/data02/oradata/TEST1','/data02/oradata/TEST2' set cluster_database='FALSE' set remote_listener='' set local_listener='' set fal_client='TEST2' set fal_server='TEST1' set log_archive_dest_1='location=/backup01/ARC01' set log_archive_dest_2='location=/backup02/ARC02' set log_archive_dest_3='service=TEST1 LGWR ASYNC valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=TEST1' set log_archive_config='dg_config=(TEST1,TEST2)' set service_names='TEST2'; sql "alter system archive log current"; CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET; }
9. Standby DB password file 설정
Primary file의 password 파일을 가져와서 Standby DB용 password file로 이름을 수정한다.
10. Standby DB init file 설정
init.ora 파일을 만든다. 이때 db_name을 ORACLE_DB_NAME으로 설정한다.
11. Standby DB 리스너 띄우기
리스너 파일을 수정하여 리스너를 띄우는데 Standby DB는 다음과 같은 정보가 들어가야 한다.
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = SID ) (ORACLE_HOME = /oracle/product/11.2.0 ) (SID_NAME = SID ) ) ) SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER = OFF
설정 후 Standby DB와 PrimaryDB간 접속이 잘되는지 테스트 해본다.
12. Standby DB nomount startup
SYS@TEST1>shutdown SYS@TEST1>startup nomount pfile=$ORACLE_HOME/dbs/initSID.ora
13.RMAN으로 DG 구성
8번에서 설정한 파일을 rman으로 접속해서 실행한다.
shell>rman target / RMAN> @/oracle/make_dg.sql
14. Standby 서버 open 작업
Standby DB에서 마지막 설정 작업을 한다.
SYS@TEST2 >select status from v$instance; STATUS ------------ MOUNTED SYS@TEST2 >alter database recover managed standby database using current logfile disconnect; Database altered. SYS@TEST2 >alter database recover managed standby database cancel; Database altered. SYS@TEST2 >alter database open read only; Database altered. SYS@TEST2 >alter database recover managed standby database using current logfile disconnect; Database altered.
문서정보
- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/display/CORE/20.+PHYSICAL+STANDBY+DATABASE?
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.