전체 작업순서는 다음과 같다.
자세한 내용은 다음과 같다.
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.