소개
이 문서에서는 기본 데이터베이스에서 대기 데이터베이스를 재구축하여 Prime Network에서 데이터베이스 복제 또는 동기화 문제를 해결하는 단계별 절차에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- 기본 데이터베이스의 SWITCHOVER_STATUS가 UNRESOLABLE GAP로 설정된 경우에만 이 절차를 사용하여 보조 데이터베이스를 재작성합니다.
- 기본 데이터베이스가 읽기 쓰기 모드이고 보조 데이터베이스가 읽기 전용 또는 읽기 전용이고 적용 모드가 있는지 확인합니다.
- 올바른 기본 및 보조 Prime Central 게이트웨이/데이터베이스를 식별해야 합니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Prime Central 릴리스 1.2 이상
- Oracle Database 11G 릴리스
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
1. 기본 데이터베이스의 switchover_status를 확인하려면 이 명령을 사용합니다.
SQL> select switchover_status from v$database
SWITCHOVER_STATUS
--------------------
UNRESOLVABLE GAP
참고:Prime Central GEO HA 전환 중 갑자기 Prime Central GEO HA 시스템 및/또는 데이터베이스 역할 상태가 손상됨(기본 또는 둘 다 대기)에서 해제되지 않은 다음 마지막 활성/대기 상태에 따라 기본 또는 보조 중 하나를 재구축해야 합니다.
참고:다른 모든 경우에는 Cisco TAC에서 SR을 열어 데이터베이스 복제 문제를 해결합니다.
2 . 기본 및 보조 데이터베이스의 현재 모드를 확인하려면 다음 명령을 사용합니다.
SQL> select open_mode from v$database;
3 . 기본 및 보조 데이터베이스의 ORACLE_SID를 확인하려면 다음 명령을 사용합니다.
Oracle 사용자의 기본 게이트웨이에서 다음을 수행합니다.
echo $ORACLE_SID -> output should be “primedb”
Oracle 사용자의 보조 게이트웨이에서:
echo $ORACLE_SID -> output should be “primstdb”
문제
액티브 및 스탠바이 데이터베이스가 서로 동기화되지 않을 경우 Prime Central GEO HA 스위치 및/또는 장애 조치/페일백 절차가 실패합니다.따라서 기본 및 대기 데이터베이스가 동시에 활성 또는 대기 상태가 됩니다.
문제 해결
솔루션을 따르기 전에 다음과 같은 기본적인 트러블슈팅 단계를 수행할 수 있습니다.
1. 기본 및 보조 Prime Network Gateway 간의 네트워크 연결 및/또는 레이턴시 관련 문제를 확인합니다.
2. 기본에서 이 데이터베이스 로그를 확인하여 데이터베이스 관련 ORA 오류를 찾습니다.
<database_home_directory>/diag/rdbms/anadb/anadb/trace/alert_anadb.log
3 . 기본 및 보조 데이터베이스에서 open_mode, current_scn 및 switchover 상태를 선택합니다.
SQL> select open_mode from v$database
SQL> select current_scn from v$database
SQL> select switchover_status from v$database;
4. 데이터베이스 복제의 근본 원인은 주로 기본 및 보조 Prime Central 데이터베이스 간의 네트워크 통신 문제, 데이터베이스 손상 또는 유사한 데이터베이스 관련 오류일 수 있습니다.
솔루션
1단계. 기본 및 보조 게이트웨이/데이터베이스 모두에서 ORACLE_SID를 확인합니다.
기본 게이트웨이/데이터베이스에서 ORACLE_SID = primedb
보조 게이트웨이/데이터베이스에서 ORACLE_SID = primdtdb
기본 또는 보조 게이트웨이 중 하나의 ORACLE_SID가 이전에 언급되지 않은 경우 다음 명령을 사용하여 올바른 SID를 구성합니다.
setenv ORACLE_SID = <value>
참고:여기서 <value > = primed 또는 primstdb는 기본 또는 보조 를 기반으로 합니다.
2단계. Active 및 Standby 데이터베이스에서 sysdba로 로그인하고 데이터 파일 및 리두 로그 및 아카이브 로그 파일에 대한 디렉토리 경로를 찾습니다.
다음 명령을 사용합니다.
데이터 파일을 찾으려면
SQL> select name from v$datafile;
리두 로그 파일을 찾으려면
SQL> select member from v$logfile;
아카이브 로그를 찾으려면
SQL> show parameter log_archive_dest_1;
3단계. 데이터베이스를 재구축하려면 4단계에서 설명한 올바른 시나리오를 확인한 후 올바른 구문으로 이 스크립트를 실행합니다.
sh PCoracleADG.ksh [PRIMARY] [STANDBY] [DB_TO_BE_DROPPED] [SYSTEM_PASSWD] [ORACLE_BASE]
[ORACLE_USER] [ARCHIVED_LOG_LOCATION] [ORACLE_DATA_FILES_LOCATION] [REDO_LOG_LOCATION]
참고:스크립트는 $ORACLE_BASE/standby 폴더 아래에 복사되며 oracle 사용자로 실행해야 합니다.
4단계. 설정 상태가 현재 상태인 시나리오를 확인하고 그에 따라 진행합니다.
참고:예를 들어 HA1은 기본 게이트웨이/데이터베이스이고 HA2는 보조 게이트웨이/데이터베이스라고 가정합니다
시나리오 1:HA1은 활성 상태이며 HA2에서 대기 데이터베이스를 재구축해야 합니다. 이러한 매개변수를 사용하고 HA2의 3단계에서 언급된 스크립트를 실행하십시오.
PRIMARY = primedb
STANDBY = primstdb
DB_TO_BE_DROPPED = primstdb
SYSTEM_PASSWD = use Step 5
ORACLE_BASE = /orahome/oracle
ORACLE_USER = oracle
ARCHIVED_LOG_LOCATION = output of ‘show parameter log_archive_dest_1;&rsquo
ORACLE_DATA_FILES_LOCATION = output of ‘select name from v$datafile;&rsquo
REDO_LOG_LOCATION = output of ‘select member from v$logfile;’
시나리오 2:HA2는 활성 상태이며 HA1에서 대기 데이터베이스를 재구축해야 합니다. 이러한 매개변수를 사용하여 HA1의 3단계에서 언급된 스크립트를 실행합니다.
PRIMARY = primedb
STANDBY = primstdb DB_TO_BE_DROPPED = primedb SYSTEM_PASSWD = 5단계 ORACLE_BASE = /orahome/oracle ORACLE_USER = oracle ARCHIVED_LOG_LOCATION = 'show parameter log_archive_dest_1;&rsquo ORACLE_DATA_FILES_LOCATION = 'v$REDO_DATA_REDO_FILE의 이름 출력_LOG_LOCATION = 'v$logfile에서 멤버 선택;'의 출력
5단계. 다음 절차를 사용하여 <SYSTEM_PASSWD>를 찾습니다.
su - HA1 또는 HA2의 prime
grep Embedded_SYSTEM_PASS= install/conf/.db.conf
예를 들어 Embedded_SYSTEM_PASS=90f8006cd6bc0dde가 있는 경우 다음을 수행합니다.
- java -cp install/utils/encryptionUtil.jar EncodeDecode decrypt 90f8006cd6bc0dde.
- Prime Central은 4단계에서 SYSTEM_PASSWD로 사용되는 출력 문자열을 반환합니다.
다음을 확인합니다.
기본 및 보조 Prime 네트워크 게이트웨이에 대한 데이터베이스 확인:
1. 활성 및 대기 데이터베이스에서 리두 로그 파일의 수와 이름이 동일한지 확인합니다.
2. 활성 및 대기 데이터베이스의 데이터 파일 수와 크기가 동일한지 확인합니다.
3. 대기 데이터베이스의 현재 SCN이 기본 데이터베이스의 scn을 따라잡을 수 있음을 표시하려면 활성 및 대기 데이터베이스 모두에서 이 명령을 사용합니다.
sqlplus / as sysdba
SQL>select current_scn from v$database;
4. 활성 데이터베이스의 database_role이 PRIMARY이고 대기 데이터베이스가 LOGICAL_STANDBY인지 확인합니다.
sqlplus / as sysdba
SQL>select database_role from v$database;
5. 활성 데이터베이스의 open_mode가 대기 데이터베이스에서 READ WRITE 및 READ ONLY WITH APPLY인지 확인합니다.
sqlplus / as sysdba
SQL>select open_mode from v$database;
6. Active의 switchover_status가 TO STANDBY이고 Standby 데이터베이스에서 NOT ALLOWED인지 확인합니다.
sqlplus / as sysdba
SQL>select switchover_status from v$database;
7. 아카이브 로그가 전송되는지 확인합니다.
ActiveDatabase에서 다음을 수행합니다.
SQL> alter system switch logfile;
대기 데이터베이스에서:
~/arch에서 새 파일이 생성되었는지 확인합니다.