논리적 대기 데이터베이스를 생성하기 전에 먼저 물리적 대기 데이터베이스를 생성해야합니다. 물리적 대기 데이터베이스를 생성하는 방법은 앞서 언급 한 문서 (ORACLE DG Topic 3-Hand-in-hand deployment of DG physical standby database )를 참조하십시오.
메인 라이브러리의 보관 매개 변수 재설정
논리적 대기 데이터베이스는 물리적 대기 데이터베이스와 동일하지 않습니다. 논리적 대기 데이터베이스는 SQL 애플리케이션 중에 로그, 즉 논리적 대기 데이터베이스의 온라인 리두 로그도 생성합니다. 따라서 논리적 대기 데이터베이스는 서버에서 전송 된 대기 로그를 보관할 필요가 없습니다. 주 데이터베이스., 대기 데이터베이스에서 생성 된 온라인 로그도 보관해야합니다.
log_archive_dest_1은 대기 로그의 아카이브 경로를 지정하고 log_archive_dest_3은 온라인 로그의 아카이브 경로를 지정한다고 가정합니다.
기본 라이브러리는 두 개의 아카이브 경로를 구성 할 필요가 없지만 향후 역할 전환 (전환)을 용이하게하기 위해 일반적으로 기본 라이브러리에서 해당 구성을 수행하는 것이 좋습니다.
먼저 현재 기본 라이브러리의 log_archive_dest_1을 확인합니다.
SYS@JKKA> show parameter log_archive_dest_1
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string location=/data/oradata/jkka/archivelog
valid_for=(all_logfiles,all_roles)
db_unique_name=jkka
온라인 로그에만 적용되도록 valid_for 속성을 수정해야합니다.
SQL> alter system set log_archive_dest_1='location=/data/oradata/jkka/archivelog valid_for=(online_logfiles,all_roles) db_unique_name=jkka';
System altered.
그런 다음 OS에 새 대기 아카이브 디렉토리를 만들고 새로 추가 된 log_archive_dest_3이이 디렉토리를 가리 킵니다.
SQL> alter system set log_archive_dest_3='location=/odata/fast_recovery_area/T24APDB/archstandby VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=T24APDB';
System altered.
SQL> alter system set log_archive_dest_state_3=enable;
System altered.
기본 라이브러리에서 LogMiner 사전 빌드
SQL> EXECUTE DBMS_LOGSTDBY.BUILD;
PL/SQL procedure successfully completed.
물리적 대기 데이터베이스에서 로그 애플리케이션 서비스 중지
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Database altered.
물리적 대기 데이터베이스를 논리적 대기 데이터베이스로 변환
SQL> ALTER DATABASE RECOVER TO LOGICAL STANDBY ADDBLG;
Database altered.
참고 : 위의 ADDBLG는 새 논리적 대기 데이터베이스 의 db_name이며 기본 데이터베이스의 db_name과 달라야하며 문자 길이는 물리적 대기 데이터베이스와 다른 8자를 초과하지 않아야 합니다.
위 명령문이 성공적으로 실행되면 대기 데이터베이스의 db_name이 새 이름 ADBLG로 수정되고 대기 데이터베이스가 닫히고 마운트 상태가 다시 시작되어 적용됩니다.
SQL> shutdown immediate
SQL> startup mount
논리적 대기 데이터베이스 매개 변수 조정
이 단계는 첫 번째 단계와 유사하며 먼저 현재 log_archive_dest_1 구성을 확인합니다.
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string location=/data/oradata/jkka/archivelog
valid_for=(all_logfiles,all_roles)
db_unique_name=jkka2
온라인 로그에만 적용되도록 valid_for 속성을 수정해야합니다.
SQL> alter system set log_archive_dest_1='location=/data/oradata/jkka/archivelog valid_for=(online_logfiles,all_roles) db_unique_name=jkka2';
System altered.
log_archive_dest_2는 변경되지 않습니다.
NAME TYPE VALUE
----------------------------------- ----------- ------------------------------
log_archive_dest_2 string service=jkkapri ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=jkka
OS에 새 대기 아카이브 디렉토리를 만들고 새 log_archive_dest_3이이를 가리 킵니다.
SQL> alter system set log_archive_dest_3='location=/data/oradata/jkka/archstandby VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=jkka2';
System altered.
SQL> alter system set log_archive_dest_state_3=enable;
System altered.
resetlogs 모드에서 논리적 대기 데이터베이스 열기
SQL> alter database open resetlogs;
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
가능한 오류 :
- 논리적 백업으로 전환 할 때 오류 발생
해결책 : 당분간 무엇이 잘못되었다고보고되었는지 모르겠습니다.
- 논리적 대기 데이터베이스를 전환 한 후 대기 데이터베이스를 마운트하거나 열 수 없습니다.
이유 : 제어 파일에 기록 된 데이터베이스 이름 : NAME은 원래 이름 인 T24APDB로 수정이 필요 (마운트 없음 상태) 위의 스위치에 의한 것으로 추측됩니다.
SQL> ALTER SYSTEM SET DB_NAME=ADDBLG scope=spfile;
그런 다음 데이터베이스를 다시 시작합니다 (종료, 시작).
참고
이 문서는이 문서를 참조합니다.