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;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCLDB,ORCLDB_STBY)';

System altered.


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     14
Next log sequence to archive   16
Current log sequence           16


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> SELECT FORCE_LOGGING FROM V$DATABASE;

FORCE_LOGGING
--------------------------------------------------------------------------------
YES


2. 파라미터 설정

A) DB명 관련 파라미터 조회

DB name 파라미터 값 조회
SELECT name, db_unique_name FROM v$database;
SQL> SELECT name, db_unique_name FROM v$database;

NAME                        DB_UNIQUE_NAME
--------------------------- --------------------
ORCLDB                      ORCLDB


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=ORCLDB;

System altered.

SQL> ALTER SYSTEM SET FAL_SERVER=ORCLDB_STBY;

System altered.

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

System altered.


C) Standby Redo 로그 추가

Standby Redo 그룹 생성 (primary와 동일한 갯수와 사이즈로 생성)
ALTER DATABASE ADD STANDBY LOGFILE THREAD [THREAD 번호] GROUP [그룹 번호] ('[로그 파일 경로 및 파일 이름]') SIZE [로그 파일 크기];
SQL> select THREAD#, f.GROUP#, TYPE, BYTES/1024/1024 mb, MEMBER from v$logfile f, v$log l where l.GROUP#(+) = f.GROUP# order by 1, 2;

   THREAD#     GROUP# TYPE                          MB MEMBER
---------- ---------- --------------------- ---------- --------------------------------------------------------------------------------
         1          1 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_1.262.1165255269
         1          1 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_1.257.1165255269
         1          2 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_2.263.1165255269
         1          2 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_2.259.1165255269
         1          3 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_3.264.1165255269
         1          3 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_3.258.1165255269
         2          4 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_4.267.1165255725
         2          4 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_4.260.1165255725
         2          5 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_5.268.1165255725
         2          5 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_5.261.1165255725
         2          6 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_6.269.1165255725
         2          6 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_6.262.1165255727

12 rows selected.

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
  2  GROUP 11 ('+FRA','+DATA') size 200M,
  3  GROUP 12 ('+FRA','+DATA') size 200M,
  4  GROUP 13 ('+FRA','+DATA') size 200M,
  5  GROUP 14 ('+FRA','+DATA') size 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2
   2   GROUP 15 ('+FRA','+DATA') size 200M,
   3   GROUP 16 ('+FRA','+DATA') size 200M,
   4   GROUP 17 ('+FRA','+DATA') size 200M,
   5   GROUP 18 ('+FRA','+DATA') size 200M;

SQL> select THREAD#, f.GROUP#, TYPE, BYTES/1024/1024 mb, MEMBER from v$logfile f, v$log l where l.GROUP#(+) = f.GROUP# order by 1, 2;

   THREAD#     GROUP# TYPE                          MB MEMBER
---------- ---------- --------------------- ---------- --------------------------------------------------------------------------------
         1          1 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_1.262.1165255269
         1          1 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_1.257.1165255269
         1          2 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_2.263.1165255269
         1          2 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_2.259.1165255269
         1          3 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_3.264.1165255269
         1          3 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_3.258.1165255269
         2          4 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_4.267.1165255725
         2          4 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_4.260.1165255725
         2          5 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_5.268.1165255725
         2          5 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_5.261.1165255725
         2          6 ONLINE                       200 +DATA/ORCLDB/ONLINELOG/group_6.269.1165255725
         2          6 ONLINE                       200 +FRA/ORCLDB/ONLINELOG/group_6.262.1165255727
                   11 STANDBY                          +FRA/ORCLDB/ONLINELOG/group_11.276.1165414987
                   11 STANDBY                          +DATA/ORCLDB/ONLINELOG/group_11.271.1165414987
                   12 STANDBY                          +FRA/ORCLDB/ONLINELOG/group_12.277.1165414987
                   12 STANDBY                          +DATA/ORCLDB/ONLINELOG/group_12.272.1165414987
                   13 STANDBY                          +DATA/ORCLDB/ONLINELOG/group_13.273.1165414989
                   13 STANDBY                          +FRA/ORCLDB/ONLINELOG/group_13.278.1165414987
                   14 STANDBY                          +FRA/ORCLDB/ONLINELOG/group_14.279.1165414989
                   14 STANDBY                          +DATA/ORCLDB/ONLINELOG/group_14.274.1165414989
                   15 STANDBY                          +FRA/ORCLDB/ONLINELOG/group_15.280.1165415003
                   15 STANDBY                          +DATA/ORCLDB/ONLINELOG/group_15.275.1165415003
                   16 STANDBY                          +DATA/ORCLDB/ONLINELOG/group_16.276.1165415005
                   16 STANDBY                          +FRA/ORCLDB/ONLINELOG/group_16.281.1165415003
                   17 STANDBY                          +FRA/ORCLDB/ONLINELOG/group_17.282.1165415005
                   17 STANDBY                          +DATA/ORCLDB/ONLINELOG/group_17.277.1165415005
                   18 STANDBY                          +FRA/ORCLDB/ONLINELOG/group_18.283.1165415005
                   18 STANDBY                          +DATA/ORCLDB/ONLINELOG/group_18.278.1165415005

28 rows selected.


3. Standby 환경 설정

A) 디렉토리 생성

oracle 유저로 standby 서버에서 수행
mkdir -p [데이터 파일 저장 경로]
mkdir -p [FRA 할당 경로]
mkdir -p [adump 파라미터 경로]
[ORCLDB@busan:~]$ mkdir -p $ORACLE_BASE/admin/ORCLDB/adump


B) 패스워드 파일 복제

oracle 유저로 primary에서 standby로 전송 (또는 standby에서 생성)
scp $ORACLE_HOME/dbs/[패스워드 파일] [oracle 유저]@[standby 호스트명]:[$ORACLE_HOME/dbs 경로]
--orapwd file=$ORACLE_HOME/dbs/orapw[DB명] password=[sys 계정 암호] entries=10 format=12
[+ASM1@seoul1:~]$ srvctl config database -d ORCLDB
데이터베이스 고유 이름: ORCLDB
데이터베이스 이름: ORCLDB
Oracle 홈: /u01/app/oracle/db/19c
Oracle 사용자: oracle
Spfile: +DATA/ORCLDB/PARAMETERFILE/spfile.270.1165255727
비밀번호 파일: +DATA/ORCLDB/PASSWORD/pwdorcldb.256.1165255157
도메인:
시작 옵션: open
정지 옵션: immediate
데이터베이스 롤: PRIMARY
관리 정책: AUTOMATIC
서버 풀:
디스크 그룹: FRA,DATA
마운트 위치 경로:
서비스:
유형: RAC
시작 동시성:
정지 동시성:
OSDBA 그룹: dba
OSOPER 그룹: dba
데이터베이스 인스턴스: ORCLDB1,ORCLDB2
구성된 노드: seoul1,seoul2
CSS 중요: no
CPU 개수: 0
메모리 대상: 0
최대 메모리: 0
데이터베이스 서비스에 대한 기본 네트워크 번호:
관리자 관리 데이터베이스입니다.

[+ASM1@seoul1:~]$ asmcmd

ASMCMD> pwcopy +DATA/ORCLDB/PASSWORD/pwdorcldb.256.1165255157 /home/oracle/orapwORCLDB

ASMCMD> exit

[+ASM1@seoul1:~] $ scp /home/oracle/orapwORCLDB oracle@busan-dg:/u01/app/oracle/db/19c/dbs
The authenticity of host 'busan-dg (10.0.7.105)' can't be established.
ED25519 key fingerprint is SHA256:vlcfe27dSJBhwko+AgNB9+1GBneaMYImhftmv4axGIg.
This host key is known by the following other names/addresses:
    ~/.ssh/known_hosts:9: 10.0.1.105
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'busan-dg' (ED25519) to the list of known hosts.
oracle@busan-dg's password:
orapwORCLDB                                                                    100% 2048     4.8MB/s   00:00


C) 임시 파라미터 파일 생성

standby 서버에서 oracle 계정으로 홈 경로(또는 적절한 경로)에 생성
cat > ~oracle/[standby 글로벌 DB명].ora
*.db_name='[DB명]'
[ORCLDB@busan:~]$ cat > ~oracle/ORCLDB_STBY.ora
*.db_name='ORCLDB'
^C


  • 레이블 없음