Standby veritabanınız
primary veritabanından geri kalmışsa(gap) önünüzde 2 seçenek var.
1. Elinizde o aradaki tüm archiveloglar varsa bunları stanby veritabanına
taşıyarak bu farkı kolayca kapatabilirsiniz.
2. Eğer archiveloglardan bir kısmına ulaşamıyorsanız bu gap’i kapatmak için production veritabanından incremental backup alıp , alınan backup’ı standby’ apply ederek bu farkı kapatabilirsiniz.
2. Eğer archiveloglardan bir kısmına ulaşamıyorsanız bu gap’i kapatmak için production veritabanından incremental backup alıp , alınan backup’ı standby’ apply ederek bu farkı kapatabilirsiniz.
Bunun adımları
aşağıdaki gibidir;
1.standby veritabanı ve primary veritabanı için son scn numaralarını belirle. Bunu aşağıdaki şekilde yapabilirsiniz.
SQL>select current_scn from v$database;
Benim testimde production ve standby için aşağıdaki şekilde.
1.standby veritabanı ve primary veritabanı için son scn numaralarını belirle. Bunu aşağıdaki şekilde yapabilirsiniz.
SQL>select current_scn from v$database;
Benim testimde production ve standby için aşağıdaki şekilde.
standby :11657291913
production:11697000123
production:11697000123
Eğer isterseniz bu
scn’nin hangi zamana denk geldiğini aşağıdaki şekilde görebilirsiniz.
select scn_to_timestamp(11657291913) from dual;
select scn_to_timestamp(11657291913) from dual;
2. production
veritabanından standby’ın kaldığı noktadan sonrası için incremental backup al.
Örnek
run {
allocate channel a1 type disk format ‘/backup/%U.rmb’;
backup incremental from scn 11657291913 database;
release channel a1;
}
allocate channel a1 type disk format ‘/backup/%U.rmb’;
backup incremental from scn 11657291913 database;
release channel a1;
}
3. Bu alınan yedeği scp /backup/ standby_ip:/restore_location/ olacak şekilde
standbyda bir lokasyona taşı.
Benim testimde restore_location=/u01/app/oracle/backup
Benim testimde restore_location=/u01/app/oracle/backup
4.Standby veritabanına
taşınan yedeği tanıt.Bunun için
rman target /
RMAN> CATALOG START WITH ‘/u01/app/oracle/backup’;
rman target /
RMAN> CATALOG START WITH ‘/u01/app/oracle/backup’;
5. Standby veritabanını
recover et. Bu biraz zaman alabilir.
RMAN> RECOVER DATABASE NOREDO;
6.Primary veritabanından controlfile yedeği al ve stanby veritabanına taşı.
RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT ‘/backup/backupcontrol.ctl’;
daha sonra
scp /backup/backupcontrol.ctl standby_ip:/restore_location/backupcontrol.ctl
RMAN> RECOVER DATABASE NOREDO;
6.Primary veritabanından controlfile yedeği al ve stanby veritabanına taşı.
RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT ‘/backup/backupcontrol.ctl’;
daha sonra
scp /backup/backupcontrol.ctl standby_ip:/restore_location/backupcontrol.ctl
7. Stanby veritabanını
kapat ve nomount modda aç.
RMAN> shutdown
RMAN> shutdown
RMAN> startup mount;
8. Standby
veritabanında controlfile’i backuptan restore et
RMAN> RESTORE STANDBY CONTROLFILE FROM ‘/restore_location/backupcontrol.ctl’;
RMAN> RESTORE STANDBY CONTROLFILE FROM ‘/restore_location/backupcontrol.ctl’;
9. Standby
veritabanını kapat ve mount modda aç
RMAN> SHUTDOWN;
RMAN> STARTUP MOUNT;
RMAN> SHUTDOWN;
RMAN> STARTUP MOUNT;
10. Bu aşamada standby
controlfile mevcut datafile’leri görmeyebilir. Onları catalog komutuyla
tanıtmak gerekebilir. Bunun için standby veritabanında;
RMAN> CATALOG START WITH ‘<data file location>’;
RMAN> SWITCH DATABASE TO COPY;
RMAN> CATALOG START WITH ‘<data file location>’;
RMAN> SWITCH DATABASE TO COPY;
11. Standby
veritabanında LOG_FILE_NAME_CONVERT parametresini kontrol et, düzgün şekilde
yapılandırılmış olması gerekir.
örnek LOG_FILE_NAME_CONVERT=’+DATA/PROD’,'+DATA/DG’ gibi.
örnek LOG_FILE_NAME_CONVERT=’+DATA/PROD’,'+DATA/DG’ gibi.
12.Stanby
veritabanında varolan tüm loggroupları clear et
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
..
SQL> ALTER DATABASE CLEAR LOGFILE GROUP x;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
..
SQL> ALTER DATABASE CLEAR LOGFILE GROUP x;
13. Daha sonra standby
veritabanını recovery modda aç
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Alıntıdır;
Hiç yorum yok:
Yorum Gönder