버전 비교

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

아카이브 로그 환경 설정

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;
펼치기
서식 미적용
[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)



아카이브 로그 모드 활성화

코드 블럭
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     10
Next log sequence to archive   12
Current log sequence           12

SQL> SELECT log_mode FROM v$database;

LOG_MODE
------------------------------------
ARCHIVELOG



강제 로그 적용 모드 활성

코드 블럭
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> ALTER SYSTEM SWITCH LOGFILE;

System altered.

SQL> SELECT FORCE_LOGGING FROM V$DATABASE;

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



파라미터 설정

DB명 관련 파라미터 조회

코드 블럭
titleDB name 파라미터 값 조회
linenumberstrue
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



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



Standby Redo 로그 추가

코드 블럭
titleStandby Redo 그룹 생성 (primary와 동일한 갯수와 사이즈로 생성)
linenumberstrue
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> ALTER DATABASE ADD STANDBY LOGFILE GROUP 104 ('/oradata/ORCL/standby_redo04.log') SIZE 200M;

Database altered.

SQL> select group#, member from v$logfile;

    GROUP# MEMBER
---------- ----------------------------------------------------------------------

         1 /oradata/ORCL/redo01.log 
         2 /oradata/ORCL/redo02.log
         3 /oradata/ORCL/redo03.log
/oradata/       101 /oradata/ORCL/standby_redo01.log
       102 /oradata/ORCL/standby_redo02.log
       103 /oradata/ORCL/standby_redo03.log
       104 /oradata/ORCL/standby_redo04.log
 
67 rows selected.


기존의 그룹 수와 같거나 많게 추가합니다. (그룹 1개 추가 권장)

Standby 환경 설정

디렉토리

Standby 환경 설정

디렉토리 생성

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



패스워드 파일

생성

복제

코드 블럭
titleoracle 유저로 standby 서버에서 수행
linenumberstrue
scp $ORACLE_HOME/dbs/[패스워드 파일] [oracle 유저]@[standby 호스트명]:[$ORACLE_HOME/dbs 경로]
--orapwd file=$ORACLE_HOME/dbs/orapw[DB명] password=[sys 계정 암호] entries=10 format=12
펼치기
서식 미적용
[oracle@orcl ~]$ orapwdscp file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=10 format=12

[oracle@orcl ~]$ ls $ORACLE_HOME/dbs
init.ora  orapworcloracle@busan_dg:/u01/app/oracle/product/19c/db_1/dbs
The authenticity of host 'busan_dg (10.0.5.72)' can't be established.
ECDSA key fingerprint is SHA256:OlbI4iHerMUO4ApsJ9mAUg/47+LTgX8fEVdJlAOctF0.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'busan_dg,10.0.5.72' (ECDSA) to the list of known hosts.
oracle@busan_dg's password:
orapworcl                                          100% 2048   827.0KB/s   00:00


Primary 와 동일한 암호로 설정되어야 하며, 가급적 새로 생성하는 것보다 primary로부터 복제해와서 사용하는 것을 권장합니다.

임시 파라미터 파일 생성

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