버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

아카이브 로그 환경 설정

Data Guard를 위한 아카이브 로그 파라미터 설정

코드 블럭
titlesys 유저로 primary에서 수행
linenumberstrue
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=(TESTDB,TESTDB_STBY)';

System altered.


아카이브 로그 모드 활성화

코드 블럭
titlesys 유저로 primary에서 수행
linenumberstrue
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


강제 로그 적용 모드 활성

코드 블럭
titlesys 유저로 primary에서 수행
linenumberstrue
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


파라미터 설정

DB명 관련 파라미터 조회

코드 블럭
titleDB name 파라미터 값 조회
linenumberstrue
SELECT name, db_unique_name FROM v$database;
펼치기
서식 미적용
SQL> SELECT name, db_unique_name FROM v$database;

NAME                        DB_UNIQUE_NAME
--------------------------- --------------------
TESTDB                      TESTDB


Data Guard 관련 파라미터 (Fetch Archive Log, Standby File Management) 설정

코드 블럭
titlesys 유저로 primary에서 수행
linenumberstrue
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=TESTDB;

System altered.

SQL> ALTER SYSTEM SET FAL_SERVER=TESTDB_STBY;

System altered.

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

System altered.


Standby Redo 로그 추가

코드 블럭
titleStandby Redo 그룹 생성 (primary와 동일한 갯수와 사이즈로 생성)
linenumberstrue
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/TESTDB/ONLINELOG/group_1.262.1165255269
         1          1 ONLINE                       200 +FRA/TESTDB/ONLINELOG/group_1.257.1165255269
         1          2 ONLINE                       200 +DATA/TESTDB/ONLINELOG/group_2.263.1165255269
         1          2 ONLINE                       200 +FRA/TESTDB/ONLINELOG/group_2.259.1165255269
         1          3 ONLINE                       200 +DATA/TESTDB/ONLINELOG/group_3.264.1165255269
         1          3 ONLINE                       200 +FRA/TESTDB/ONLINELOG/group_3.258.1165255269
         2          4 ONLINE                       200 +DATA/TESTDB/ONLINELOG/group_4.267.1165255725
         2          4 ONLINE                       200 +FRA/TESTDB/ONLINELOG/group_4.260.1165255725
         2          5 ONLINE                       200 +DATA/TESTDB/ONLINELOG/group_5.268.1165255725
         2          5 ONLINE                       200 +FRA/TESTDB/ONLINELOG/group_5.261.1165255725
         2          6 ONLINE                       200 +DATA/TESTDB/ONLINELOG/group_6.269.1165255725
         2          6 ONLINE                       200 +FRA/TESTDB/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/TESTDB/ONLINELOG/group_1.262.1165255269
         1          1 ONLINE                       200 +FRA/TESTDB/ONLINELOG/group_1.257.1165255269
         1          2 ONLINE                       200 +DATA/TESTDB/ONLINELOG/group_2.263.1165255269
         1          2 ONLINE                       200 +FRA/TESTDB/ONLINELOG/group_2.259.1165255269
         1          3 ONLINE                       200 +DATA/TESTDB/ONLINELOG/group_3.264.1165255269
         1          3 ONLINE                       200 +FRA/TESTDB/ONLINELOG/group_3.258.1165255269
         2          4 ONLINE                       200 +DATA/TESTDB/ONLINELOG/group_4.267.1165255725
         2          4 ONLINE                       200 +FRA/TESTDB/ONLINELOG/group_4.260.1165255725
         2          5 ONLINE                       200 +DATA/TESTDB/ONLINELOG/group_5.268.1165255725
         2          5 ONLINE                       200 +FRA/TESTDB/ONLINELOG/group_5.261.1165255725
         2          6 ONLINE                       200 +DATA/TESTDB/ONLINELOG/group_6.269.1165255725
         2          6 ONLINE                       200 +FRA/TESTDB/ONLINELOG/group_6.262.1165255727
                   11 STANDBY                          +FRA/TESTDB/ONLINELOG/group_11.276.1165414987
                   11 STANDBY                          +DATA/TESTDB/ONLINELOG/group_11.271.1165414987
                   12 STANDBY                          +FRA/TESTDB/ONLINELOG/group_12.277.1165414987
                   12 STANDBY                          +DATA/TESTDB/ONLINELOG/group_12.272.1165414987
                   13 STANDBY                          +DATA/TESTDB/ONLINELOG/group_13.273.1165414989
                   13 STANDBY                          +FRA/TESTDB/ONLINELOG/group_13.278.1165414987
                   14 STANDBY                          +FRA/TESTDB/ONLINELOG/group_14.279.1165414989
                   14 STANDBY                          +DATA/TESTDB/ONLINELOG/group_14.274.1165414989
                   15 STANDBY                          +FRA/TESTDB/ONLINELOG/group_15.280.1165415003
                   15 STANDBY                          +DATA/TESTDB/ONLINELOG/group_15.275.1165415003
                   16 STANDBY                          +DATA/TESTDB/ONLINELOG/group_16.276.1165415005
                   16 STANDBY                          +FRA/TESTDB/ONLINELOG/group_16.281.1165415003
                   17 STANDBY                          +FRA/TESTDB/ONLINELOG/group_17.282.1165415005
                   17 STANDBY                          +DATA/TESTDB/ONLINELOG/group_17.277.1165415005
                   18 STANDBY                          +FRA/TESTDB/ONLINELOG/group_18.283.1165415005
                   18 STANDBY                          +DATA/TESTDB/ONLINELOG/group_18.278.1165415005

28 rows selected.


Standby 환경 설정

디렉토리 생성

코드 블럭
titleoracle 유저로 standby 서버에서 수행
linenumberstrue
mkdir -p [데이터 파일 저장 경로]
mkdir -p [FRA 할당 경로]
mkdir -p [adump 파라미터 경로]
펼치기
서식 미적용
[TESTDB@busan:~] $ mkdir -p $ORACLE_BASE/admin/TESTDB/adump


패스워드 파일 복제

코드 블럭
titleoracle 유저로 primary에서 standby로 전송 (또는 standby에서 생성)
linenumberstrue
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 TESTDB
데이터베이스 고유 이름: TESTDB
데이터베이스 이름: TESTDB
Oracle 홈: /u01/app/oracle/db/19c
Oracle 사용자: oracle
Spfile: +DATA/TESTDB/PARAMETERFILE/spfile.270.1165255727
비밀번호 파일: +DATA/TESTDB/PASSWORD/pwdtestdb.256.1165255157
도메인:
시작 옵션: open
정지 옵션: immediate
데이터베이스 롤: PRIMARY
관리 정책: AUTOMATIC
서버 풀:
디스크 그룹: FRA,DATA
마운트 위치 경로:
서비스:
유형: RAC
시작 동시성:
정지 동시성:
OSDBA 그룹: dba
OSOPER 그룹: dba
데이터베이스 인스턴스: TESTDB1,TESTDB2
구성된 노드: seoul1,seoul2
CSS 중요: no
CPU 개수: 0
메모리 대상: 0
최대 메모리: 0
데이터베이스 서비스에 대한 기본 네트워크 번호:
관리자 관리 데이터베이스입니다.

[+ASM1@seoul1:~] $ asmcmd

ASMCMD> pwcopy +DATA/TESTDB/PASSWORD/pwdtestdb.256.1165255157 /home/oracle/orapwTESTDB

ASMCMD> exit

The authenticity of host 'busan-dg (100.10.16.185)' 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: 192.168.12.185
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:
orapwTESTDB                                                                    100% 2048     4.8MB/s   00:00


임시 파라미터 파일 생성

코드 블럭
titlestandby 서버에서 oracle 계정으로 홈 경로(또는 적절한 경로)에 생성
linenumberstrue
cat > ~oracle/[standby 글로벌 DB명].ora
*.db_name='[DB명]'
펼치기
서식 미적용
[TESTDB@busan:~] $ cat > ~oracle/TESTDB_STBY.ora
*.db_name='TESTDB'
^C