Incremental Merge (updated) Backups

Selamlar,

bu makalede Oracle 11G üzerinde Incremental Merge (updated) Backup yöntemini örnekler ile anlatıcam. Bu yöntem çok büyük hacimlerdeki database’lerin backup’lama politikalarında kullanılabilecek bir yöntem. Çünkü ilk başta sadece bir kez level 0 image copy backup alınıyor (yani full backup) ve ardından alınan her level 1 backup full backup ile merge ediliyor. Yani günün sonunda aslında her gün full backup alınmış gibi oluyor.

Bu yöntemi normal incremental yönteminden ayıran taraf; alınan level 1 backup kaybedilse bile, full backup üzerine merge edildiği için geri dönüş anında herhangi bir veri kaybının yaşanmaması. Normal incremental yönteminde alınan level 1 backup eğer kaybedilir ise maximum dönülebilecek nokta level 0 oluyor.

Bu yöntemi kullanmak için RMAN üzerinde “recover copy of database with tag” komutunu kullanıcaz. Komuttan da anlaşılacağı gibi merge işleminin gerçekleşebilmesi için full backup ile level 1 backup’ın tag’leri aynı olmalı. Şimdi adım adım bakalım.

BACKUP

1. Block Change Tracking’i aktif hale getiriyorum.
(ortamında RAC kurulu olduğu için bu dosyayı shared bir alanda tutmam gerekli.)

SQL> alter database enable block change tracking using file '+data';

2. Level 0 image copy backup alıyorum.

run
{
 allocate channel ch01 device type disk format '/zfs/backup/merge_inc_backup1/%U';
 allocate channel ch02 device type disk format '/zfs/backup/merge_inc_backup2/%U';
 allocate channel ch03 device type disk format '/zfs/backup/merge_inc_backup3/%U';
 allocate channel ch04 device type disk format '/zfs/backup/merge_inc_backup4/%U';
 backup current controlfile format '/zfs/backup/merge_inc_backup1/controlfile_%U';
 backup as copy incremental level 0 database tag 'inc_merge';
 backup archivelog all;
}

3. Backup bittikten sonra test amaçlı bir tablo create ediyorum.

SQL> create table test1 as select * from hr.employees;

4. Level 1 backupset backup alıyorum.

run{
 allocate channel ch01 device type disk format '/zfs/backup/merge_inc_backup1/%U';
 allocate channel ch02 device type disk format '/zfs/backup/merge_inc_backup2/%U';
 allocate channel ch03 device type disk format '/zfs/backup/merge_inc_backup3/%U';
 allocate channel ch04 device type disk format '/zfs/backup/merge_inc_backup4/%U';
 backup as backupset incremental level 1 for recover of copy database tag 'inc_merge';
 recover copy of database with tag 'inc_merge';
 backup current controlfile format '/zfs/backup/merge_inc_backup1/controlfile_%U';
 backup archivelog all;
 }

Log’lara baktığım zaman aşağıdaki gibi çıktılar görmem gerekli.

Starting recover at 28-APR-15
channel ch01: starting incremental datafile backup set restore
channel ch01: specifying datafile copies to recover
recovering datafile copy file number=00003 name=/zfs/backup/merge_inc_backup4/data_D-LEFKOSA_I-2245972035_TS-UNDOTBS1_FNO-3_pcq5gsvf
recovering datafile copy file number=00005 name=/zfs/backup/merge_inc_backup3/data_D-LEFKOSA_I-2245972035_TS-EXAMPLE_FNO-5_pbq5gqa1
channel ch01: reading from backup piece /zfs/backup/merge_inc_backup3/qlq5h47u_1_1
channel ch02: starting incremental datafile backup set restore
channel ch02: specifying datafile copies to recover
recovering datafile copy file number=00002 name=/zfs/backup/merge_inc_backup1/data_D-LEFKOSA_I-2245972035_TS-SYSAUX_FNO-2_p9q5gq9v
recovering datafile copy file number=00006 name=/zfs/backup/merge_inc_backup3/data_D-LEFKOSA_I-2245972035_TS-UNDOTBS2_FNO-6_pdq5gqb9
channel ch02: reading from backup piece /zfs/backup/merge_inc_backup1/qjq5h47u_1_1
channel ch03: starting incremental datafile backup set restore
channel ch03: specifying datafile copies to recover
recovering datafile copy file number=00001 name=/zfs/backup/merge_inc_backup2/data_D-LEFKOSA_I-2245972035_TS-SYSTEM_FNO-1_paq5gsva
recovering datafile copy file number=00004 name=/zfs/backup/merge_inc_backup4/data_D-LEFKOSA_I-2245972035_TS-USERS_FNO-4_peq5gt0l
channel ch03: reading from backup piece /zfs/backup/merge_inc_backup2/qkq5h6tp_1_1
channel ch01: piece handle=/zfs/backup/merge_inc_backup3/qlq5h47u_1_1 tag=INC_MERGE
channel ch01: restored backup piece 1
channel ch01: restore complete, elapsed time: 00:00:03
channel ch02: piece handle=/zfs/backup/merge_inc_backup1/qjq5h47u_1_1 tag=INC_MERGE
channel ch02: restored backup piece 1
channel ch02: restore complete, elapsed time: 00:00:04
channel ch03: piece handle=/zfs/backup/merge_inc_backup2/qkq5h6tp_1_1 tag=INC_MERGE
channel ch03: restored backup piece 1
channel ch03: restore complete, elapsed time: 00:00:03
Finished recover at 28-APR-15

5. Restore sırasında level 1 backupset backup’lara gerek olmadığını görmek için bu backup’ları siliyorum.

RMAN> delete noprompt backup;

RESTORE

1. Oluşturduğum pfile ile database’i nomount moda alıyorum.

SQL> startup nomount pfile='/home/oracle/mypfile.ora';

2. Controlfile’ları backup’dan dönüyorum ve database’i mount moda alıyorum.

RMAN> restore controlfile from '/zfs/backup/merge_inc_backup1/controlfile_cf_D-LEFKOSA_id-2245972035_qoq5h48p';
RMAN> sql 'alter database mount';

3. Alınan backup’ları catalog’luyorum.

run
{
catalog start with '/zfs/backup/merge_inc_backup1';
catalog start with '/zfs/backup/merge_inc_backup2';
catalog start with '/zfs/backup/merge_inc_backup3';
catalog start with '/zfs/backup/merge_inc_backup4';
}

4. Image copy’e switch yapıyorum ve database’i recover ediyorum.
(Switch komutundan sonra RMAN-06571 hatası alınırsa, çözümü burada.)

RMAN> switch database to copy;
RMAN> recover database;

5. Database’i açmadan önce block change tracking’i disable etmem gerekli.

RMAN> sql 'alter database disable block change tracking';

6. Database’i resetlogs ile açıyorum ve test1 tablosunu kontrol ediyorum.

RMAN> sql 'ALTER database open resetlogs';
SQL> select count(*) from test1;
COUNT(*)
----------
 107

Kolay gelsin.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s