1. 아카이브 로그 환경 설정
A) Data Guard를 위한 아카이브 로그 파라미터 설정
sys 유저로 primary에서 수행
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=([primary 글로벌 DB명],[standby 글로벌 DB명])'; -- ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
[oracle@orcl ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Tue Feb 13 14:14:20 2024 Version 19.11.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.11.0.0.0 SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcl_stby)'; System altered. SQL> show parameter LOG_ARCHIVE_CONFIG NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ log_archive_config string DG_CONFIG=(orcl,orcl_stby)
{}
B) 아카이브 로그 모드 활성화
sys 유저로 primary에서 수행
ARCHIVE LOG LIST SHUTDOWN IMMEDIATE STARTUP MOUNT ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN; SELECT log_mode FROM v$database;
SQL> ARCHIVE LOG LIST Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 10 Next log sequence to archive 12 Current log sequence 12 SQL> SELECT log_mode FROM v$database; LOG_MODE ------------------------------------ ARCHIVELOG
C) 강제 로그 적용 모드 활성
sys 유저로 primary에서 수행
ALTER DATABASE FORCE LOGGING; ALTER SYSTEM SWITCH LOGFILE; SELECT FORCE_LOGGING FROM V$DATABASE;
SQL> ALTER DATABASE FORCE LOGGING; Database altered. SQL> ALTER SYSTEM SWITCH LOGFILE; System altered. SQL> SELECT FORCE_LOGGING FROM V$DATABASE; FORCE_LOGGING -------------------------------------------------------------------------------- YES
2. 파라미터 설정
A) DB명 관련 파라미터 조회
DB name 파라미터 값 조회
show parameter db_name show parameter db_unique_name SELECT db_unique_name FROM v$database;
SQL> show parameter db_name NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ db_name string orcl SQL> show parameter db_unique_name NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ db_unique_name string orcl SQL> SELECT db_unique_name FROM v$database; DB_UNIQUE_NAME ------------------------------------------------------------------------------------------ orcl
B) Data Guard 관련 파라미터 (Fetch Archive Log, Standby File Management) 설정
sys 유저로 primary에서 수행
ALTER SYSTEM SET FAL_CLIENT=[primary 글로벌 DB명]; ALTER SYSTEM SET FAL_SERVER=[standby 글로벌 DB명]; ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
SQL> ALTER SYSTEM SET FAL_CLIENT=orcl; System altered. SQL> ALTER SYSTEM SET FAL_SERVER=orcl_stby; System altered. SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO; System altered. SQL> show parameter fal_client NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ fal_client string ORCL SQL> show parameter fal_server NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ fal_server string ORCL_STBY SQL> show parameter standby_file_management NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ standby_file_management string AUTO
C) Standby Redo 로그 추가
Standby Redo 그룹 생성 (primary와 동일한 갯수와 사이즈로 생성)
ALTER DATABASE ADD STANDBY LOGFILE GROUP [그룹 번호] ('[로그 파일 경로 및 파일 이름]') SIZE [로그 파일 크기];
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 101 ('/oradata/ORCL/standby_redo01.log') SIZE 200M; Database altered. SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 102 ('/oradata/ORCL/standby_redo02.log') SIZE 200M; Database altered. SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 103 ('/oradata/ORCL/standby_redo03.log') SIZE 200M; Database altered. SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /oradata/ORCL/redo01.log /oradata/ORCL/redo02.log /oradata/ORCL/redo03.log /oradata/ORCL/standby_redo01.log /oradata/ORCL/standby_redo02.log /oradata/ORCL/standby_redo03.log 6 rows selected.
3. Standby 환경 설정
A) 디렉토리 생성
oracle 유저로 standby 서버에서 수행
mkdir -p [데이터 파일 저장 경로] mkdir -p [FRA 할당 경로] mkdir -p [adump 파라미터 경로]
[root@busan ~]# mkdir -p /oradata/ORCL [root@busan ~]# mkdir -p /oradata/fast_recovery_area/ORCL [root@busan ~]# mkdir -p /u01/app/oracle/admin/orcl/adump [root@busan ~]# chown -R oracle:dba /oradata [root@busan ~]# chown -R oracle:dba /u01/app/oracle/admin
B) 패스워드 파일 생성
oracle 유저로 standby 서버에서 수행
orapwd file=$ORACLE_HOME/dbs/orapw[DB명] password=[sys 계정 암호] entries=10 format=12
[oracle@orcl ~]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=10 format=12 [oracle@orcl ~]$ ls $ORACLE_HOME/dbs init.ora orapworcl
Primary 와 동일한 암호로 설정되어야 하며, 가급적 새로 생성하는 것보다 primary로부터 복제해와서 사용하는 것을 권장합니다.
C) 임시 파라미터 파일 생성
oracle 계정으로 홈 경로(또는 적절한 경로)에 생성
cat > ~oracle/[standby 글로벌 DB명].ora *.db_name='[DB명]'
[oracle@orcl ~]$ cat > ~oracle/orcl_stby.ora *.db_name='orcl' ^C