2621829
ORCL
3
버전 비교
비교대상
키
- 이 줄이 추가되었습니다.
- 이 줄이 삭제되었습니다.
- 서식이 변경되었습니다.
목차 영역 | |
---|---|
|
서버 정보 hosts 파일 저장
코드 블럭 | ||||||
---|---|---|---|---|---|---|
| ||||||
10.10.50.11 ora_act
10.10.50.21 ora_stb |
hosts 파일에 Primary 서버의 정보와 Standby 서버의 정보를 입력합니다.
로그 모드 설정
코드 블럭 | ||
---|---|---|
| ||
SELECT log_mode FROM v$database; |
펼치기 | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
코드 블럭 | ||
---|---|---|
| ||
ALTER DATABASE FORCE LOGGING; |
Data Guard를 사용하기 위해서는 반드시 Archive log 모드로 구성이 되어 있어야 합니다.
로그 모드를 조회한 후 noarchive 상태이면 반드시 archive 상태로 변경합니다.
추가적으로 force logging 모드로 전환하여, 모든 작업이 강제적으로 로그로 기록될 수 있도록 합니다.
db name 파라미터 조회
코드 블럭 | ||||
---|---|---|---|---|
| ||||
show parameter db_name
show parameter db_unique_name |
펼치기 | ||
---|---|---|
|
db_name 파라미터 값은 모두 동일하지만, db_unique_name은 Primary와 Standby가 달라야 합니다.
구분 | db_name | db_unique_name |
---|---|---|
Primary | orcl | ORCL |
Standby | orcl | ORCL_STB |
tnsname.ora 설정
코드 블럭 | ||||||
---|---|---|---|---|---|---|
| ||||||
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora_act)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
ORCL_STB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora_stb)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL_STB)
(UR = A)
)
) |
tnsnames.ora 파일의 내용을 설정합니다.
Primary와 Standby DB에 접속 정보가 저장되며, Primary와 Standby 노드 모두 같은 내용을 사용합니다.
저장 위치는 $ORACLE_HOME/network/admin/tnsnames.ora 입니다.
Data Guard 사용을 위한 파라미터 설정
코드 블럭 |
---|
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,ORCL_STB)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORCL_STB NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL_STB';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE; |
코드 블럭 |
---|
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=30;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE; |
코드 블럭 |
---|
ALTER SYSTEM SET FAL_CLIENT=ORCL;
ALTER SYSTEM SET FAL_SERVER=ORCL_STB;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO; |
Standby 서버의 컨트롤, 파라미터 파일 생성
코드 블럭 |
---|
ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/home/oracle/orcl_stb.ctl';
CREATE PFILE='/home/oracle/orcl_stb.ora' FROM SPFILE; |
펼치기 | ||
---|---|---|
|
Standby 파라미터 파일 수정
코드 블럭 | ||||||
---|---|---|---|---|---|---|
| ||||||
*.db_unique_name='ORCL_STB'
*.fal_client='ORCL_STB'
*.fal_server='ORCL'
*.log_archive_dest_2='SERVICE=ORCL ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL' |
생성한 orcl_stb.ora 파일에서 다음의 파라미터 값들을 수정합니다.
Standby로 파일 복제
코드 블럭 | ||||||
---|---|---|---|---|---|---|
| ||||||
scp oracle@ora_act:/home/oracle/orcl_stb.ctl /oradata/orcl/control01.ctl
cp /oradata/orcl/control01.ctl /oradata/fast_recovery_area/orcl/control02.ctl
scp oracle@ora_act:/home/oracle/orcl_stb.ora /home/oracle/orcl_stb.ora
scp oracle@ora_act:$ORACLE_HOME/dbs/orapworcl $ORACLE_HOME/dbs |
펼치기 | ||
---|---|---|
|
Standby Log 파일 생성
코드 블럭 |
---|
ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/orcl/standby_redo01.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/orcl/standby_redo02.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/orcl/standby_redo03.log') SIZE 50M; |
Standby의 listener.ora 파일 생성
코드 블럭 | ||||||
---|---|---|---|---|---|---|
| ||||||
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora_stb)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle |
Standby 쪽의 listener.ora 파일은 아래와 같습니다.
Standby Database 인스턴스 기동
코드 블럭 | ||||
---|---|---|---|---|
| ||||
sqlplus / as sysdba
startup nomount pfile='/home/oracle/orcl_stb.ora'; |
펼치기 | ||
---|---|---|
|
RMAN 접속
코드 블럭 | ||||
---|---|---|---|---|
| ||||
rman TARGET sys/oracle@ORCL AUXILIARY sys/oracle@ORCL_STB |
펼치기 | ||
---|---|---|
|
Standby로 데이터베이스 복제
코드 블럭 | ||||
---|---|---|---|---|
| ||||
DUPLICATE TARGET DATABASE
FOR STANDBY
FROM ACTIVE DATABASE
DORECOVER
SPFILE
SET db_unique_name='ORCL_STB' COMMENT 'Is standby'
SET LOG_ARCHIVE_DEST_2='SERVICE=ORCL ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL'
SET FAL_SERVER='ORCL' COMMENT 'Is primary'
NOFILENAMECHECK; |
펼치기 | ||
---|---|---|
|
스위치오버 : Primary를 Standby로 전환
코드 블럭 | ||||
---|---|---|---|---|
| ||||
ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY;
SHUTDOWN IMMEDIATE;
STARTUP NOMOUNT;
ALTER DATABASE MOUNT STANDBY DATABASE;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; |
페이지 포함 | ||||
---|---|---|---|---|
|
페이지 포함 | ||||
---|---|---|---|---|
|
페이지 포함 | ||||
---|---|---|---|---|
|
{}
스위치오버 : Standby를 Primary로 전환
코드 블럭 | ||||
---|---|---|---|---|
| ||||
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
SHUTDOWN IMMEDIATE;
STARTUP; |
...