이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

버전 1 다음 »

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 ('[로그 파일 경로 및 파일 이름]') SIZE [로그 파일 크기];
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/ORCL/standby_redo01.log') SIZE 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/ORCL/standby_redo02.log') SIZE 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/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



  • 레이블 없음