Merhaba arkadaşlar standby veritabanımız da GAP oluştugun da ve elimizde standby’a işleyecek archiveloglar olmadıgı zaman,bunun çözümü olarak production veritabanından incremental bir rman backup alır standby veritabanına işleriz.Bu şekilde iki veritabanını da senkron tutmuş oluruz.Bu senaryoyu örnek üzerinde anlatacak olursak.
1.)Production ve standby veritabanın da archivelog sayısına bakarak archivelog sayısı farklılıklarını görebiliriz.
Production

SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     48
Next log sequence to archive   53
Current log sequence	       53

Standby

SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     48
Next log sequence to archive   0
Current log sequence	       50


2.)Production veya standby veritabanında işleme(applied) drurumlarına baktıgımızda da anormallik oldugunu anlayabiliriz.

SELECT sequence#, first_time, next_time, applied
FROM   v$archived_log
ORDER BY sequence#;

SEQUENCE# FIRST_TIM NEXT_TIME APPLIED
———- ——— ——— ———
32 16-JAN-14 16-JAN-14 YES
33 16-JAN-14 16-JAN-14 YES
34 16-JAN-14 16-JAN-14 YES
35 16-JAN-14 16-JAN-14 YES
36 16-JAN-14 16-JAN-14 YES
37 16-JAN-14 16-JAN-14 YES
41 16-JAN-14 16-JAN-14 NO
42 16-JAN-14 16-JAN-14 NO
43 16-JAN-14 16-JAN-14 NO
44 16-JAN-14 16-JAN-14 NO
45 16-JAN-14 16-JAN-14 NO
46 16-JAN-14 16-JAN-14 NO
47 16-JAN-14 16-JAN-14 NO
48 16-JAN-14 16-JAN-14 NO
49 16-JAN-14 16-JAN-14 NO
50 16-JAN-14 16-JAN-14 NO
51 16-JAN-14 16-JAN-14 NO
52 16-JAN-14 16-JAN-14 NO

3.)Production veritabanının SCN numarasına bakarız.

SELECT current_scn FROM v$database;

CURRENT_SCN
———–
1069047

4.)Standby veritabanının SCN numarasına bakarız.

SELECT current_scn FROM v$database;

CURRENT_SCN
———–
1066261

5.)Standby veritabanında apply işlemini durdururuz ve data sonra stand by veritabanını kapatırız.

alter database recover managed standby database cancel;
shutdown immediate;

6.)SCN numaralarına baktıktan sonra production veritabanında standby veritabanı’nın SCN numarasına göre incremental yedek alırız.Daha sonra aldıgımız yedegi standby veritabanı sunucusuna göndeririz.

backup incremental from scn 1066261 database FORMAT  '/u01/app/oracle/rman/Backup_%T_%d_%I_%s.rman';
scp /u01/app/oracle/rman/* oracle@192.168.1.126:/u01/app/oracle/rman/

7.)Yeni bir yedek aldıgımız ve bu yedegi standby veritabanının görmesi için.Production veritabanın da standby veritabanı için control file alır ve bunu da standby veritabanı sunucusuna göndeririz.

alter database create standby controlfile as '/u01/app/oracle/rman/standby_controlfile.ctl';
scp /u01/app/oracle/rman/standby_controlfile.ctl oracle@192.168.1.126:/u01/app/oracle/rman/

8.)Standby veritabanını nomount modda açar daha sonra control file’lerin yerini ögreniriz.

startup nomount;
show parameter control_files

NAME TYPE VALUE
——————– —————- ———–
control_files string /u01/app/oracle/oradata/ORCLSTBY/control01.ctl, /u01/app/oracle/fast_recovery_area/ORCLSTBY/control02.ctl

9.)Production sistemden yeni gönderidigimiz control file’lerin eski control file’leri ezmesi için yeni control file’la eskisini ezeriz.

cp /u01/app/oracle/rman/standby_controlfile.ctl /u01/app/oracle/oradata/ORCLSTBY/control01.ctl
cp /u01/app/oracle/rman/standby_controlfile.ctl /u01/app/oracle/fast_recovery_area/ORCLSTBY/control02.ctl

10.)Standby veritabanını mount modda açarız.

alter database mount standby database;

11.)Standby makinede rman’e baglanır,aldıgımız yedegi tanıması için catalog komutunu çalıştırırız.

rman target /
catalog start with '/u01/app/oracle/rman';

12.)Standby veritabanımızı kurtarmak için recover komutunu çalıştırırız.

recover database;

Not : Incremental yedek recover işlemi tamamlandığında veritabanı bir sonraki arşiv dosyasını arayacaktır. Ve kurtarma işlemi gerekli arşiv dosyasını bulamadığını belirten ORA-00334 hatası ile sonlanır. ORA-00334  hatası ile belirtilen arşiv primary veritabanında biz incremental yedek aldıktan sonra oluşturulan veya oluşacak olan arşiv dosyasıdır. Artık standby veritabanımızda RMAN den çıkıp apply işlemini başlatabiliriz.

13.)Standby tarafda apply servisini başlatırız.

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Yararlı olması Dilegiyle …
Yazar : Mustafa Bektaş Tepe

1,798 total views, 2 views today