소개
이 문서에서는 기본 데이터베이스의 대기 데이터베이스를 다시 빌드할 때 Prime Network에서 데이터베이스 복제 또는 동기화 문제를 해결하기 위한 단계별 절차에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- 기본 데이터베이스의 SWITCHOVER_STATUS가 UNRESOLABLE GAP로 설정된 경우에만 이 절차를 사용하여 보조 데이터베이스를 재작성합니다.
- 기본 데이터베이스가 읽기 쓰기 모드이고 보조 데이터베이스가 읽기 전용 또는 읽기 전용 모드인지 확인합니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Prime Network 릴리스 3.9 이상
- 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;
문제
Prime 네트워크 데이터베이스 복제 실패.
Prime Network 애플리케이션은 이러한 오류를 알리는 시스템 이벤트를 생성하며, 이는 Event Vision GUI 클라이언트에서 사용할 수 있습니다.
문제 해결
솔루션 전에 다음과 같은 기본적인 트러블슈팅 단계를 수행하십시오.
1. 기본 및 보조 Prime Network Gateway 간의 네트워크 연결 및/또는 레이턴시 관련 문제를 확인합니다.
2. 기본에서 다음 데이터베이스 로그를 확인하여 데이터베이스 관련 ORA 오류를 찾습니다.
<database_home_directory>/diag/rdbms/anadb/anadb/trace/alert_anadb.log
3. 기본 및 보조 데이터베이스에서 open_mode, current_scn 및 전환 상태를 확인합니다.
SQL> select open_mode from v$database;
SQL> select current_scn from v$database;
SQL> select switchover_status from v$database;
4. 기본 및 보조 Prime Network Gateway 간 네트워크 통신 문제, 데이터베이스 손상 또는 유사한 데이터베이스 관련 오류로 인해 데이터베이스 복제가 발생할 수 있습니다.
솔루션
기본 및 보조 Prime 네트워크 게이트웨이에서 데이터베이스 복원 절차 실행:
1단계. 현재 예약된 백업 작업은 파일 시스템에 며칠의 아카이브 로그 파일을 보관합니다.제거할 아카이브 로그 파일을 방지하기 위해 backup_daily.sh, backup_high_daily.sh, backup_weekly.sh 및 backup_high_weekly.sh의 이 행이 주석 처리됩니다.
삭제 noprompt archivelog until time ...을 (를) 시간에 대한#delete noprompt archivelog로 변경 ...
참고:이러한 '.sh' 스크립트는 oracle 사용자가 소유하며 $ORACLE_HOME/ana_scripts 디렉토리에서 찾을 수 있습니다.
2단계. 기본 데이터베이스에서 sysdba로 로그인하고 다음 명령을 실행하여 시스템에서 리두 파일 수를 찾고,
SQL> select member from v$logfile;
각 로그에 대해 이 명령을 적절히 실행합니다.따라서 이전 명령에서 6개의 행을 반환한 경우 다음 명령을 6번 실행합니다.
SQL>alter system switch logfile;
3단계. 대기 데이터베이스에서 sysdba로 로그인하고 spfile에서 pfile을 생성합니다.
SQL>create pfile='$ORACLE_HOME/dbs/ana_sb_init.ora' from spfile;
4단계. 대기 데이터베이스에서 sysdba로 로그인하고 데이터 파일, 백업 조각, 리두 로그 및 아카이브 로그 파일에 대한 디렉토리 경로를 찾습니다.이 작업은 다음 명령으로 수행할 수 있습니다.
데이터 파일을 찾으려면
SQL> select name from v$datafile;
백업 파일을 찾으려면
rman target /
RMAN> list backup;
리두 로그 파일을 찾으려면
SQL> select member from v$logfile;
archiveLog를 찾으려면
SQL> show parameter log_archive_dest_1;
데이터베이스를 종료합니다.
sqlplus / as sysdba
SQL> shutdown immediate;
5단계. 해당 디렉토리에서 모든 데이터 파일 파일, 백업 부분, 리두 로그 파일 및 아카이브 로그 파일을 삭제합니다(4단계에서 경로 발견).
그런 다음 3단계에서 생성한 파일을 사용하여 마운트 해제를 다시 시작합니다.
sqlplus / as sysdba
SQL>startup nomount pfile='$ORACLE_HOME/dbs/ana_sb_init.ora;
6단계. 기본 데이터베이스에서 백업 폴더에 있는 모든 원본 백업 조각을 복사하여 다른 위치에 저장합니다.
7단계. 기본 데이터베이스에서 RMAN에 연결하고 delete backup을 사용하여 파일 시스템에서 모든 물리적 백업 조각을 제거합니다.
#rman target /
RMAN>delete backup;
8단계. 기본 데이터베이스에서 RMAN에 연결하고 데이터베이스, 대기 제어 파일 및 아카이브 로그를 이 순서로 전체 백업을 수행합니다.다음 명령을 실행합니다.
#rman target /
RMAN>backup database;
RMAN>backup format '$BACKUP_DIR/Control%U' current controlfile for Standby;
RMAN>backup archivelog all;
참고:$BACKUP_DIR은 이전에 목록 백업을 사용하여 찾은 현재 백업 폴더이며 나중에 해당 파일을 Control%U라고 합니다.변수가 아닙니다.
9단계. 기본 데이터베이스에서 RMAN에 연결하고 목록 백업을 사용하여 단계 8에서 작성된 대기 제어 필드의 ckp scn을 찾습니다. 이름 형식이 $BACKUP_DIR/Control%U인 파일을 찾습니다.
BS 키 유형 LV 크기 장치 유형 경과 시간 완료 시간
— — — — — — — — — —
2358 전체 1.09M 디스크 00:00:04 2014년 1월 21일
BP 키:2358 상태:압축 가능:예 태그:TAG20140121T162311
조각 이름:/export/home/oracle/backup/Control9nouks3f_1_1
포함된 대기 제어 파일:Ckp SCN:164541747 CKP 시간:2014년 1월 21일
참고:이 예에서 대기 제어 파일 백업은 /export/home/oracle/backup/Control9noks3f_1_1입니다. 이 파일 이름 아래의 줄에는 "Ckp SCN:164541747형. 13단계의 복제 실행 블록에서 "164541747" 번호를 사용합니다.
10단계. 기본 데이터베이스에서 8단계에서 생성된 모든 백업 조각을 tar로 백업합니다. 루트 사용자 SCP로 tar 파일을 대기 데이터베이스의 백업 폴더에 저장합니다.
11단계. 대기 데이터베이스에서 루트 사용자로 로그인하고 chown을 사용하여 tar 파일의 파일 소유권을 oracle:dba로 변경합니다.그런 다음 사용자를 oracle(su - oracle)으로 다시 전환하고 tar 파일의 tar 을 해제합니다.
12단계. 기본 게이트웨이에서 기본 네트워크 사용자로 로그인하고 ~/Main 디렉터리에 cd를 넣고 시스템 암호를 가져오려면 다음 명령을 실행합니다.
./runRegTool.sh –gs 127.0.0.1 get 127.0.0.1 persistency/general/EmbeddedDBSystemPass
참고:반환된 sys 비밀번호는 다음 단계에서 기본 데이터베이스에서 대기 데이터베이스에 연결하는 데 사용됩니다.
13단계. 기본 데이터베이스에서 대상 데이터베이스(기본)에 접속한 다음 보조 데이터베이스(대기)에 접속합니다. 그런 다음 중복 실행 블록을 실행하여 대기 데이터베이스를 생성합니다.
#rman target /
RMAN>connect auxiliary sys/$sys_pwd@ANADB_SB
RMAN>run {
set until scn $SCN_NUMBER;
duplicate target database
for Standby
dorecover
spfile
set "db_unique_name"="anadb_sb"
set LOG_ARCHIVE_DEST_2="Service=anadb ASYNC LGWR VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
database_unique_name=anadb"
set FAL_CLIENT="anadb_sb"
set FAL_SERVER="anadb"
set log_file_name_convert="$REDO","$REDO"
nofilenamecheck;
}
참고:$sys_pwd는 12단계에서 얻은 sys 비밀번호입니다. 실행 블록의 $SCN_NUMBER는 9단계에서 얻습니다. 예를 들어,$REDO는 redo 로그 위치 뒤에 /가 옵니다.
14단계. 13단계의 실행 블록이 완료되면 대기 데이터베이스에서 sysdba로 로그인하고 이 명령을 실행하여 대기 데이터베이스를 읽기 전용 모드로 설정한 다음 적용 모드로 읽기 전용 모드로 실행합니다.
sqlplus / as sysdba
SQL>shutdown immediate;
SQL>startup nomount;
SQL>alter database mount Standby database;
SQL>recover managed Standby database using current logfile disconnect from session;
SQL>recover managed Standby database cancel;
SQL>alter database open read only;
SQL>recover managed Standby database using current logfile disconnect from session;
15단계. 기본 데이터베이스에서 확인한 후 backup_daily.sh,backup_high_daily.sh, backup_weekly.sh 및 backup_high_weekly.sh에서 이 행의 주석 처리를 제거합니다.
시간#delete noprompt archivelog를 변경 ... 이 시간 전까지는 noprompt archivelog를 삭제 합니다...
다음을 확인합니다.
기본 및 보조 Prime 네트워크 게이트웨이에 대한 데이터베이스 확인:
1. 리두 로그 파일의 수와 이름이 기본 및 대기 데이터베이스에서 동일한지 확인합니다.
2. 기본 및 대기 데이터베이스의 데이터 파일 수와 크기가 동일한지 확인합니다.
3. 기본 및 대기 데이터베이스에서 이 명령을 사용하여 대기 데이터베이스의 현재 SCN이 기본 데이터베이스의 SCN을 따라잡을 수 있음을 표시합니다.
sqlplus / as sysdba
SQL>select current_scn from v$database;
4. 기본 데이터베이스의 open_mode가 대기 데이터베이스에 APPLY가 있는 읽기/쓰기 및 읽기 전용인지 확인합니다.
sqlplus / as sysdba
SQL>select open_mode from v$database;
5. 기본 데이터베이스의 switchover_status가 TO STANDBY 및 NOT ALLOWED인지 확인합니다.
sqlplus / as sysdba
SQL>select switchover_status from v$database;
6. 아카이브 로그가 전송되고 있는지 확인합니다.
기본 데이터베이스:
SQL> alter system switch logfile;
보조 데이터베이스에서:
~/arch에서 새 파일이 생성되었는지 확인합니다.
7. 지금부터 Event Vision GUI에서 데이터베이스 복제 오류가 표시되지 않는지 확인합니다(향후 20분 이내).