Tuesday 16 April 2013

Rman Encrypted Backup Hk.

Merhaba,

Bu yazımda rman'da encrypted backup nasıl alınır ona değineceğim.

Öncelikle rman'de encrypted backup almamızın temel nedeni, verilerimizin güvenliğini sağlamaktır. Bunu neden yaparız dersek  bir kaç farklı sebebi var;

1- Kritik verilerinizin başkalarının eline geçmemesi,
2- Olaki bir şekilde backupınız başkasının  geçti, restore yapılamamasının sağlanması dır.

Konuyu örnekleyecek olursak;


[oracle@ora labs]$ rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on Tue Apr 16 10:27:43 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1262674253)

RMAN> show all; komutunu çalıştırdığınızda

using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORCL are:

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

Üstteki 2 parametre görüntülenir.
1.nci parametre backup'ın şifresiz bir şekilde alınması gerektiğini,
2.nci parametre de şifreli bir backup alınacak ise "AES128" anahtarı ile şifreleneceğini gösterir.

Biz session bazlı bir şifreleme yapmak istiyorsak alttaki komutu çalıştırırız ;
RMAN> set encryption on identified by Deneme123 only;

executing command: SET encryption

tekrar show all komutunu çalıştırarsınız değişiklik göremezssiniz, başta da belirttiğim gibi session bazlı şifrelemelerde parametre değişmez, fakat olay restore'a geldiğinde kaz'ın ayagı hiç'de öyle degil :)

RMAN> show all ;
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default


Öncelikle 4 nolu datafile'ımı backuplıyorum.

RMAN> backup datafile 4;

Starting backup at 16-APR-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=141 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=+DATA/orcl/datafile/users.263.734893313
channel ORA_DISK_1: starting piece 1 at 16-APR-13
channel ORA_DISK_1: finished piece 1 at 16-APR-13
piece handle=+FRA/orcl/backupset/2013_04_16/nnndf0_tag20130416t102956_0.275.812888997 tag=TAG20130416T102956 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
Finished backup at 16-APR-13

Starting Control File and SPFILE Autobackup at 16-APR-13
piece handle=+FRA/orcl/autobackup/2013_04_16/s_812889011.276.812889015 comment=NONE
Finished Control File and SPFILE Autobackup at 16-APR-13

Tabi bu backup sırasında Controlfile autobackup on olduğu için hem control file hem sp file 'da otomatik olarak backuplanıyor.

Datafile'ımı offline moda çekiyorum.

RMAN> sql 'alter database datafile 4 offline';

sql statement: alter database datafile 4 offline

Şimdi geldik restore yapmaya.

RMAN> restore datafile 4;  komutunu çalıştırdığımda ekrandaki hataları basıyor.


ORA-19913: unable to decrypt backup
ORA-28365: wallet is not open

RMAN> restore datafile 4;

Starting restore at 16-APR-13
using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00004 to +DATA/orcl/datafile/users.263.734893313
channel ORA_DISK_1: reading from backup piece +FRA/orcl/backupset/2013_04_16/nnndf0_tag20130416t102956_0.275.812888997
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 04/16/2013 10:32:38
ORA-19870: error while restoring backup piece +FRA/orcl/backupset/2013_04_16/nnndf0_tag20130416t102956_0.275.812888997
ORA-19913: unable to decrypt backup
ORA-28365: wallet is not open


Tam olarak istediğimiz noktaya geldik, bu noktada daha önce encrypt ettiğiniz parametreyi bu sefer tam tersi decrypt etmek gerekiyor. Onu da alttaki komutla yapıyorum.

RMAN> set decryption identified by Deneme123;

executing command: SET decryption

RMAN> restore datafile 4;

Starting restore at 16-APR-13
using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00004 to +DATA/orcl/datafile/users.263.734893313
channel ORA_DISK_1: reading from backup piece +FRA/orcl/backupset/2013_04_16/nnndf0_tag20130416t102956_0.275.812888997
channel ORA_DISK_1: piece handle=+FRA/orcl/backupset/2013_04_16/nnndf0_tag20130416t102956_0.275.812888997 tag=TAG20130416T102956
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 16-APR-13

Başarılı biten restore'un ardından yapacak 2 şey kaldı.
1.Recover işlemini yapmak
2. Datafile'ı online moda çekmek.

RMAN> recover datafile 4;

Starting recover at 16-APR-13
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:00

Finished recover at 16-APR-13

RMAN>  sql 'alter database datafile 4 online';

sql statement: alter database datafile 4 online

Sonuç olarak yaptıklarımızı sıralarsak;
1-RMAN> set encryption on identified by Deneme123 only; ile session bazlı encryption aktif hale gelir.
2-RMAN> backup datafile 4;  Datafile backupı alınır.
3-RMAN> sql 'alter database datafile 4 offline'; Datafile offline moda alınır.
4-RMAN> restore datafile 4; diyerek hata aldığı görülür.
5- RMAN> set decryption identified by Deneme123; Decryption işlemi yapılır.
6-RMAN> restore datafile 4; Tekrar restore yapılır, başarılı bittiği görülür.
7-RMAN> recover datafile 4; Recover işlemi yapılır.
8-RMAN>  sql 'alter database datafile 4 online'; Son adımda datafile online moda çekilir.

Önemli bir ipucu: CONFIGURE BACKUP OPTIMIZATION OFF;  off olursa oracle offline ve readonly datafile'ların backupını almaz.

Biraz uzun olduğunun farkındayım.

Umarım faydalı bir makale olmuştur.
Sevgi Saygı
Fahrettin