ORACLE DG 주제 4--DG 논리적 백업 데이터베이스 배포

논리적 대기 데이터베이스를 생성하기 전에 먼저 물리적 대기 데이터베이스를 생성해야합니다. 물리적 대기 데이터베이스를 생성하는 방법은 앞서 언급 한 문서 (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;

그런 다음 데이터베이스를 다시 시작합니다 (종료, 시작).

참고

 이 문서는이 문서를 참조합니다.

[Oracle] Data Guard 시리즈 (5)-논리적 대기 데이터베이스 생성

추천

출처blog.csdn.net/zhaogang1993/article/details/100975922