728x90
출처: https://ldcc.tistory.com/entry/Standby-DataBase-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0
1. Standby DataBase 장점
데이터베이스 장애시 미리 백업 받아둔 datafile 과 archivelog 를 모두 restore 하여 복구하게 되는데 이경우 복구 시간이 길어 장애시간이 길어지게 된다.
이럴경우를 대비하여 미리 Standby Database 를 구성하여 Standby Database에 Recovery를 진행해
두고 Primary Database 장애 시 바로 Standby Database를 Active 시키면 Down Time을 최소화
할 수 있다.
2. Standby DataBase 구축절차
Standby DB 구성을 위해 Primary DB와의 datafile, archivelog 등의 sequence# 를 동기화 시켜야 하기 때문에 절차상 순서가 매우 중요하다
0) Standby DB가 구성될 시스템에 Oracle 을 Primary DB와 동일한 version 으로 install 한다
@ Primary DB path = /dbms/oracle/oradata/ORA
@ Standby DB path = /backup/dbms/oracle/oradata/ORA
----------------------------------------------------------------------------
Primary DB
----------------------------------------------------------------------------
1) Primary DB가 Open되어 있는 상태에서 Standby DB용 Control file을 생성하고 이를
Standby DB에 Control file 로 복사
SQL> alter database create standby controlfile as '/dbms/oracle/oradata/ORA/stby01.ctl';
SQL> alter database create standby controlfile as '/dbms/oracle/oradata/ORA/stby02.ctl';
SQL> alter database create standby controlfile as '/dbms/oracle/oradata/ORA/stby03.ctl';
2) Primary DB의 초기 Datafile 을 Standby DB로 복사
[방법1] dbf 파일을 ftp 로 전송
[방법2] 오라클 DRD 초기화
A. 초기화 대상 DRD 조회
SQL> select tablespace_name, file_name, bytes/1024/1024 mega from
dba_data_files;
TABLESPACE_NAME FILE_NAME MEGA
-------------------- ---------------------------------------- ---------
USERS /dbms/oracle/oradata/ORA/users01.dbf 5
SYSAUX /dbms/oracle/oradata/ORA/sysaux01.dbf 310
UNDOTBS1 /dbms/oracle/oradata/ORA/undotbs01.dbf 35
SYSTEM /dbms/oracle/oradata/ORA/system01.dbf 490
EXAMPLE /dbms/oracle/oradata/ORA/example01.dbf 100
# mkdir dr_copy
SQL> alter tablespace users begin backup;
SQL> !cp /dbms/oracle/oradata/ORA/users01.dbf /dbms/oracle/oradata/ORA/dr_copy
SQL> alter tablespace users end backup;
등등등....
탬프파일은 그냥 복사한다.
SQL> select name, bytes/1024/1024 mega from v$tempfile;
NAME MEGA
---------------------------------------- --------- /dbms/oracle/oradata/ORA/temp01.dbf 20
dr_copy를 압축으로 묶어서 dr 의 ../oradata/ORA/ 밑에 풀어놓는다
3) Primary DB의 Archivelog 파일을 Standby DB로 복사
----------------------------------------------------------------------------
Standby DB
----------------------------------------------------------------------------
4) 인스턴스를 nomount 모드로 구동한다
SQL> startup nomount
5) 경우에 따라 초기화 파일을 확인한다
어떤 초기화 파일을 물고 올라가는지 확인하려면
/dbms/oracle/product/10.2.0/Db_1/dbs 경로에 spfileORA.ora 파일이 있으면 spfile 모드이고,
없으면 pfile 모드
[ pfile 인 경우 ]
è initORA.ora 파일을 생성한다.
è standby 구성 시 초기화 파일(initORA.ora)을 직접 수정한다
DR시스템의 /dbms/oracle/product/10.2.0/Db_1/admin/ORA/pfile 경로에 생성된 init.ora.xxxx
파일을 /dbms/oracle/product/10.2.0/Db_1/dbs 경로에 파일 이름을 변경하여 복사한다.
# mv ./init.ora.xxxx /dbms/oracle/product/10.2.0/Db_1/dbs/initORA.ora
[ spfile 인 경우 ]
è standby 구성 시 sqlplus 모드에서 alter 명령어로 구성한다
SQL> show parameter file
è Primary DB와 Standby DB간에 datafile, redo log file 이 위치하는 directory 가
다를 경우 db_file_name_convert 와 log_file_name_convert를 사용하여 directory 이름
중 다른부분을 치환 할 수 있도록 한다
SQL> alter system set db_file_name_convert =
'/dbms/oracle/oradata/ORA','/backup/oracle/oradata/ORA' scope= spfile;
//들어온 경로, 치환할 경로
6) Standby DB를 mount 및 recovery 적용한다
SQL> alter system set log_archive_dest_1='location=/dbms/oracle/product/10.2.0/Db_1/dbs/arch'
scope=both;
SQL> alter database mount standby database;
SQL> ALTER SYSTEM SET log_archive_format= '%t_%s_%r.arc' SCOPE=SPFILE;
SQL> shutdown immediate
SQL> startup nomount
SQL> alter database mount standby database;
SQL> set autorecovery on;
SQL> recover managed standby database disconnect; <----- #1요렇게 바꿈
Media recovery complete.
SQL> alter database archivelog;
7) 정합성 확인
Primary DB와 Standby DB간의 sequence#가 동기화 되어 있는지 확인한다
SQL> select max(sequence#) from v$log_history;
MAX(SEQUENCE#)
----------------------------
1146
[출처] Standby Database 구축|작성자 모카빵
데이터베이스 장애시 미리 백업 받아둔 datafile 과 archivelog 를 모두 restore 하여 복구하게 되는데 이경우 복구 시간이 길어 장애시간이 길어지게 된다.
이럴경우를 대비하여 미리 Standby Database 를 구성하여 Standby Database에 Recovery를 진행해
두고 Primary Database 장애 시 바로 Standby Database를 Active 시키면 Down Time을 최소화
할 수 있다.
2. Standby DataBase 구축절차
Standby DB 구성을 위해 Primary DB와의 datafile, archivelog 등의 sequence# 를 동기화 시켜야 하기 때문에 절차상 순서가 매우 중요하다
0) Standby DB가 구성될 시스템에 Oracle 을 Primary DB와 동일한 version 으로 install 한다
@ Primary DB path = /dbms/oracle/oradata/ORA
@ Standby DB path = /backup/dbms/oracle/oradata/ORA
----------------------------------------------------------------------------
Primary DB
----------------------------------------------------------------------------
1) Primary DB가 Open되어 있는 상태에서 Standby DB용 Control file을 생성하고 이를
Standby DB에 Control file 로 복사
SQL> alter database create standby controlfile as '/dbms/oracle/oradata/ORA/stby01.ctl';
SQL> alter database create standby controlfile as '/dbms/oracle/oradata/ORA/stby02.ctl';
SQL> alter database create standby controlfile as '/dbms/oracle/oradata/ORA/stby03.ctl';
2) Primary DB의 초기 Datafile 을 Standby DB로 복사
[방법1] dbf 파일을 ftp 로 전송
[방법2] 오라클 DRD 초기화
A. 초기화 대상 DRD 조회
SQL> select tablespace_name, file_name, bytes/1024/1024 mega from
dba_data_files;
TABLESPACE_NAME FILE_NAME MEGA
-------------------- ---------------------------------------- ---------
USERS /dbms/oracle/oradata/ORA/users01.dbf 5
SYSAUX /dbms/oracle/oradata/ORA/sysaux01.dbf 310
UNDOTBS1 /dbms/oracle/oradata/ORA/undotbs01.dbf 35
SYSTEM /dbms/oracle/oradata/ORA/system01.dbf 490
EXAMPLE /dbms/oracle/oradata/ORA/example01.dbf 100
# mkdir dr_copy
SQL> alter tablespace users begin backup;
SQL> !cp /dbms/oracle/oradata/ORA/users01.dbf /dbms/oracle/oradata/ORA/dr_copy
SQL> alter tablespace users end backup;
등등등....
탬프파일은 그냥 복사한다.
SQL> select name, bytes/1024/1024 mega from v$tempfile;
NAME MEGA
---------------------------------------- --------- /dbms/oracle/oradata/ORA/temp01.dbf 20
dr_copy를 압축으로 묶어서 dr 의 ../oradata/ORA/ 밑에 풀어놓는다
3) Primary DB의 Archivelog 파일을 Standby DB로 복사
----------------------------------------------------------------------------
Standby DB
----------------------------------------------------------------------------
4) 인스턴스를 nomount 모드로 구동한다
SQL> startup nomount
5) 경우에 따라 초기화 파일을 확인한다
어떤 초기화 파일을 물고 올라가는지 확인하려면
/dbms/oracle/product/10.2.0/Db_1/dbs 경로에 spfileORA.ora 파일이 있으면 spfile 모드이고,
없으면 pfile 모드
[ pfile 인 경우 ]
è initORA.ora 파일을 생성한다.
è standby 구성 시 초기화 파일(initORA.ora)을 직접 수정한다
DR시스템의 /dbms/oracle/product/10.2.0/Db_1/admin/ORA/pfile 경로에 생성된 init.ora.xxxx
파일을 /dbms/oracle/product/10.2.0/Db_1/dbs 경로에 파일 이름을 변경하여 복사한다.
# mv ./init.ora.xxxx /dbms/oracle/product/10.2.0/Db_1/dbs/initORA.ora
[ spfile 인 경우 ]
è standby 구성 시 sqlplus 모드에서 alter 명령어로 구성한다
SQL> show parameter file
è Primary DB와 Standby DB간에 datafile, redo log file 이 위치하는 directory 가
다를 경우 db_file_name_convert 와 log_file_name_convert를 사용하여 directory 이름
중 다른부분을 치환 할 수 있도록 한다
SQL> alter system set db_file_name_convert =
'/dbms/oracle/oradata/ORA','/backup/oracle/oradata/ORA' scope= spfile;
//들어온 경로, 치환할 경로
6) Standby DB를 mount 및 recovery 적용한다
SQL> alter system set log_archive_dest_1='location=/dbms/oracle/product/10.2.0/Db_1/dbs/arch'
scope=both;
SQL> alter database mount standby database;
SQL> ALTER SYSTEM SET log_archive_format= '%t_%s_%r.arc' SCOPE=SPFILE;
SQL> shutdown immediate
SQL> startup nomount
SQL> alter database mount standby database;
SQL> set autorecovery on;
SQL> recover managed standby database disconnect; <----- #1요렇게 바꿈
Media recovery complete.
SQL> alter database archivelog;
7) 정합성 확인
Primary DB와 Standby DB간의 sequence#가 동기화 되어 있는지 확인한다
SQL> select max(sequence#) from v$log_history;
MAX(SEQUENCE#)
----------------------------
1146
[출처] Standby Database 구축|작성자 모카빵
728x90
반응형
'정보관리(데이터베이스, DB) > 오라클' 카테고리의 다른 글
Oracle 무료 데이터베이스 Oracle XE (Express Edition) - 리눅스 버전 (1) | 2023.11.24 |
---|---|
Oracle Database 구버전 다운 받기 (1) | 2023.11.24 |
CentOS 7 에서 Oracle 12c 설치하기(GUI 원격 설치) (0) | 2023.11.24 |
오라클 db 관련 서비스 종료 (0) | 2023.11.19 |
[Oracle] 사용자 비밀번호 변경 방법 (Alter User) (0) | 2023.11.16 |