Showing posts with label RMAN. Show all posts
Showing posts with label RMAN. Show all posts

Monday, August 31, 2009

RMAN KATALOG İŞLEMLERİ

RMAN database'inde Katalog için kullanacağimiz user'ı yaratıyoruz.

CREATE USER rman IDENTIFIED BY rman
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users;
GRANT RECOVERY_CATALOG_OWNER TO rman;

-- Komut satırında RMAN bağlanıyoruz..

//////////////////////////////////////////////////////////////////////////////////////

C:\Documents and Settings\rdcaates>rman catalog rman/rman@rman

Kurtarma idarecisi : Release 10.2.0.1.0 - Production on Pzt Ağu 31 11:36:55 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

kurtarma kataloğu veritabanına bağlanıldı

RMAN>

//////////////////////////////////////////////////////////////////////////////////////

--şimdi katalog için yaratmış olduğumuz databse ve schema'ı RMAN a tanıyoruz.

RMAN> create catalog

kurtarma kataloğu yaratıldı

RMAN>

Şimdi yarattğimiz bu katalog ile Backuplarını almak isteğimiz Database ilişkilendiriyoruz.

RMAN> exit


Recovery Manager tamamlandı.

C:\Documents and Settings\rdcaates>rman target sys/o123@orcl catalog rman/rman@rman

Kurtarma şdarecisi : Release 10.2.0.1.0 - Production on Pzt A­u 31 11:39:34 2009


Copyright (c) 1982, 2005, Oracle. All rights reserved.

hedef veritabanına bağlanıldı: ORCL (DBID=1223590477)
kurtarma kataloğu veritabanına bağlanıldı

//////////////////////////////////////////////////////////////////////////////////////

RMAN> register database;

veritabanı kurtarma kataloğuna kaydedildi
kurtarma kataloğunun tam eşzamanlamasını başlatma
tam eşzamanlama tamamlandı

RMAN>


şu an son durum elimizde İki tane database (SID) var bunlardan birisi;
Backuplarını düzenli olarak almak istediğimiz diğeri ise aldığımız bu backupları saklayacağımız database diyebiliriz.
hangisinin katalog hangisinin target (hedef) olduğunu belirledik.
bunları birbirine tanıttık.
//////////////////////////////////////////////////////////////////////////////////////

oluşturduğumuz bir katalog'u silmek için DROP catalog çümleciğini kullanabiliriz.


RMAN> drop catalog

kurtarma kataloğunun sahibi: RMAN
kataolg kaldırmayı teyit etmek için DROP CATALOG komutunu yeniden girin

RMAN> drop catalog;

kurtarma kataloğu bırakıldı

RMAN>

silindiğini görmek için report schema diyebiliriz.

RMAN> report schema;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: report komutu, 08/31/2009 12:12:45 konumunda başarısız.
RMAN-06428: kurtarma kataloğu yüklü değil

RMAN>


//////////////////////////////////////////////////////////////////////////////////////
kayıtlı olan bir katalog'un geçerliliğini kaldırmak için unregister komutunu kullanabiliriz.


C:\Documents and Settings\rdcaates>rman target sys/o123@orcl catalog rman/rman@rman

Kurtarma şdarecisi : Release 10.2.0.1.0 - Production on Pzt A­u 31 12:16:50 2009


Copyright (c) 1982, 2005, Oracle. All rights reserved.

hedef veritabanına bağlanıldı: ORCL (DBID=1223590477)
kurtarma kataloğu veritabanına bağlanıldı

RMAN> unregister database;

veritabanı adı: "ORCL" ve DBID: 1223590477

Veritabanının kaydını silmek istedi­inizden emin misiniz (EVET veya HAYIR girin)
? yes
veritabanının kaydı kurtarma kataloğundan silindi

RMAN>


//////////////////////////////////////////////////////////////////////////////////////

Kataloğumuzun Versiyonu öğrenmek için Sqlplus!a bağlanarak aşağıdaki sorguyu çalıştırabiliriz.

C:\Documents and Settings\rdcaates>sqlplus rman/rman@rman

SQL> SELECT * FROM rman.rcver;

VERSION
------------
10.02.00.00

//////////////////////////////////////////////////////////////////////////////////////
KOMPLE BACKUP ALMA

--Komple Backup için aşağıdaki sourguyu RMAN da çalıştırmanız yeteli olacaktır. Ne Var ne yok Backup'ını alırsınız.
--Burada dizini ve etiketi kendiniz belirleyebilirsiniz. Kullanımı Aşağıdaki şekildedir.

C:\Documents and Settings\rdcaates>rman target sys/o123@orcl catalog rman/rman@rman


RMAN> BACKUP as COMPRESSED BACKUPSET DATABASE FORMAT 'C:\RMAN_BACKUP\dbf_%d_%t_%s.rman' TAG='KOMPLEBACKUP_DBF' PLUS
2> ARCHIVELOG format 'C:\RMAN_BACKUP\arc_%d_%t_%s.rman'
3> TAG='KOMPLEBACKUP_ARC'
4> ;


backup başlatılıyor; saat 31/08/2009
geçerli günlük arşivlendi
ORA_DISK_1 kanalı kullanılıyor
ORA_DISK_1 kanalı: sıkıştırılmış arşiv günlüğü yedek kümesi başlatılıyor
ORA_DISK_1 kanalı: yedekleme kümesinde arşiv günlüğü belirleniyor
girdi arşiv günlüğü thread=1 sıra=1 kayıt no=71 damga=696342728
girdi arşiv günlüğü thread=1 sıra=2 kayıt no=73 damga=696342735
girdi arşiv günlüğü thread=1 sıra=3 kayıt no=40 damga=696342517
.
.
.
.
.
girdi arşiv günlüğü thread=1 sıra=43 kayıt no=81 damga=696344034
ORA_DISK_1 kanalı: 1 başlangı. parçası 31/08/2009 konumunda
ORA_DISK_1 kanalı: 1 bitiş parçası 31/08/2009 konumunda
parça kontrol noktası=C:\RMAN_BACKUP\ARC_ORCL_696344037_68.RMAN etiket=KOMPLEBAC
KUP_ARC açıklama=NONE
ORA_DISK_1 kanalı: yedekleme kümesi tamamlandı, geçen süre: 00:01:58
backup tamamlandı; saat 31/08/2009

backup başlatılıyor; saat 31/08/2009
ORA_DISK_1 kanalı kullanılıyor
ORA_DISK_1 kanalı: sıkıştırılmış tam veri dosyası yedek kümesi başlatılıyor
ORA_DISK_1 kanalı: yedekleme kümesindeki veri dosyaları belirleniyor
girdi veri dosyası fno=00001 adı=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.
DBF
girdi veri dosyası fno=00003 adı=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.
DBF
girdi veri dosyası fno=00002 adı=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01
.DBF
girdi veri dosyası fno=00004 adı=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.D
BF
girdi veri dosyası fno=00005 adı=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2
girdi veri dosyası fno=00006 adı=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\RMAN_DENE
ME_DF1.DBF
girdi veri dosyası fno=00007 adı=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\RMAN_DENE
ME_DF2.DBF
girdi veri dosyası fno=00008 adı=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\RMAN_DENE
ME_DF3.DBF
ORA_DISK_1 kanalı: 1 başlangıçparçası 31/08/2009 konumunda
ORA_DISK_1 kanalı: 1 bitiş parçası 31/08/2009 konumunda
parça kontrol noktası=C:\RMAN_BACKUP\DBF_ORCL_696344155_69.RMAN etiket=KOMPLEBAC
KUP_DBF açıklama=NONE
ORA_DISK_1 kanalı: yedekleme kümesi tamamlandı, geçen süre: 00:00:46
backup tamamlandı; saat 31/08/2009

backup başlatılıyor; saat 31/08/2009
geçerli günlük arşivlendi
ORA_DISK_1 kanalı kullanılıyor
ORA_DISK_1 kanalı: sıkıştırılmış arşiv günlüğü yedek kümesi başlatılıyor
ORA_DISK_1 kanalı: yedekleme kümesinde arşiv günlüğü belirleniyor
girdi arşiv günlüğü thread=1 sıra=44 kayıt no=82 damga=696344202
ORA_DISK_1 kanalı: 1 başlangıç parçası 31/08/2009 konumunda
ORA_DISK_1 kanalı: 1 bitiş parçası 31/08/2009 konumunda
parça kontrol noktası=C:\RMAN_BACKUP\ARC_ORCL_696344203_70.RMAN etiket=KOMPLEBAC
KUP_ARC açıklama=NONE
ORA_DISK_1 kanalı: yedekleme kümesi tamamlandı, geçen süre: 00:00:02
backup tamamlandı; saat 31/08/2009

Control File and SPFILE Autobackup başlatılıyor; saat 31/08/2009
parça tutamacı=C:\RMAN_BACKUP\CF_C-1223590477-20090831-03.RMAN açıklama=NONE
Control File and SPFILE Autobackup tamamlandı; saat 31/08/2009

RMAN>


Backup alamada bir sorun olup olmaddğıni kontrol edelim
RMAN> crosscheck backupset;

Tuesday, August 25, 2009

CONTROL FILE KURTARMA

Control file Autobackup scriptini hazırlıyoruz. Burada kendi belirlediğimiz format tipine göre yine bizim belirlediğimiz dizine otomatik olarak control filenin backup'ını alacak.

RMAN> configure controlfile autobackup format for device type disk to 'c:\rman_backup\ctlfile%F_%d-id-%I_%u';

yeni RMAN konfigürasyon parametreleri:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'c:\rman_backup\ctlfile%F_%d-id-%I_%u';
yeni RMAN konfigürasyon parametreleri başarıyla depolandı


Autobackup almayı otomatikleştirmek için
RMAN>configure controlfile autobackup on;

yapılan değişikleri ve RMAN parametrelerini görmek için

RMAN>show all;

Contol fileleri sileceğiz. Silmeden önce Database'i kapatmamız gerekiyor. Aksi halde kendisi kullandığı çin silmeye izin vermiyor.
Burada silmek yerine içlerini de başaltabiliriz. Yada control filenin olduğunu diskleri kapatabiliz. Amaç control file olmadan database'i açmak ve RMAN ile alınan yedekten dönmek.

SQL> shutdown immediate; ile database 'i kapatıyoruz.

bu işlemin ardından contol filelerin olduğu dizinde control fileleri silelim.

C:\oracle\product\10.2.0\oradata\orcl

Şimdi sqlplus'a gecerek database'i açmaya çalışıyoruz.
--standart bir kurulum yaptım. Kurulumun üzereinde herhangibi bir değişiklik yapmadım.
SQL> startup;
ORACLE anı başlatıldı.

Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 197135236 bytes
Database Buffers 406847488 bytes
Redo Buffers 7135232 bytes
ORA-00205: kontrol dosyası belirleme hatası, daha fazla bilgi icin uyarı
gunluğune bakın

RMAN'a geçiyoruz.
C:\Documents and Settings\aates>rman target /
Kurtarma şdarecisi : Release 10.2.0.1.0 - Production on Sal A­u 25 14:35:53 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
hedef veritabanı ile ba­lantılı: orcl (yüklü de­ğil)
RMAN>

Control file backupımızın olduğu dizinden backupımızı cağırarak geri yüklüyoruz.
RMAN>restore controlfile from 'c:\rman_backup\CF-D_ORCL-ID-1223590477_13KNIK92';
Şimdi restore işlemini gerçekleştirdik.

C:\oracle\product\10.2.0\oradata\orcl dizinine bakarsanız control filelerin geri geldiğini göreceğiz.

--Veritabanını açamaya çalıştığımızda
SQL> alter database open;
alter database open
*
1 satırında HATA:
ORA-01507: veritabanı kullanıma acılamadı

Fakat recover yapmamız gerekiyor sadece restore işlemi bizim için yeterli olmayacaktır.
Ama burada diyebilirsiniz ki benim Control filelerim yerinde. Ama bu control filelere database'nin son halini göstermiyor.Beli Arada yeni datafileler ekledik belki yeni tablolar yeni schemalar yarattık. İşte bunların Control File'mize göstermemiz gerekecek.

Kapatıp açmayı deneyelim.

SQL> shutdown immediate;
ORA-01507: veritabanı kullanıma açılamadı.

ORACLE anı kapatıldı.
SQL> startup;
ORACLE anı başlatıldı.

Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 205523844 bytes
Database Buffers 398458880 bytes
Redo Buffers 7135232 bytes
Veritabanı kullanıma açıldı.
ORA-01589: veritabani açma için RESETLOGS veya NORESETLOGS seçenegi
kullanilmali

Resetlog ile son hali control filelere gösteriyoruz.

SQL> alter database open resetlogs;
alter database open resetlogs
*
1 satırında HATA:
ORA-01190: 1 kontrol dosyasi veya veri dosyasi son RESETLOGS'tan önce
ORA-01110: veri dosyasi 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'

bu seferde bize datafilelerin uyumsuz olduğunu kurtarılması gerektiğini söyluyor. Bu durumda datafilerin hepsini recover yapmamız gerekecek.

RMAN' a Gecerek recover etmeyi deniyoruz.

RMAN> recover datafile 1;

recover başlatılıyor; saat 25/08/2009
implicit crosscheck backup başlatılıyor; saat 25/08/2009
kurtarma katalo­u yerine hedef veritabanı kontrol dosyası kullanılıyor
ayrılan kanal: ORA_DISK_1
ORA_DISK_1 kanalı: sid=155 aygt³r³=DISK
14 nesne çapraz denetlendi
implicit crosscheck backup tamamlandı; saat 25/08/2009

implicit crosscheck copy başlatılıyor; saat 25/08/2009
ORA_DISK_1 kanalı kullanılıyor
implicit crosscheck copy tamamlandı; saat 25/08/2009

kurtarma alanındaki tüm dosyalar aranıyor
dosyalar kataloğa kaydediliyor...
kataloğa kaydetme tamamlandı

kataloğa Kaydedilen Dosyaların Listesi
=======================
Dosya Adı: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_
25\O1_MF_1_1_5979DNCO_.ARC
Dosya Adı: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_
25\O1_MF_1_1_5979GZ8D_.ARC
Dosya Adı: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_
25\O1_MF_1_1_5979PNTF_.ARC
Dosya Adı: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_
25\O1_MF_1_1_5979SPOP_.ARC
Dosya Adı: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_
25\O1_MF_1_1_597B968Y_.ARC
Dosya Adı: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_
25\O1_MF_1_2_5979DHNY_.ARC
Dosya Adı: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_
25\O1_MF_1_2_5979PM01_.ARC
Dosya Adı: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_
25\O1_MF_1_2_597B994K_.ARC
Dosya Adı: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_
25\O1_MF_1_3_5979DLTT_.ARC

ORA_DISK_1 kanalı kullanılıyor

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover komutu, 08/25/2009 14:46:44 konumunda başarısız
RMAN-06067: yedek veya yaratılmış kontrol dosyasıyla RECOVER DATABASE gereklidir
RMAN>

Archivelog lardan datafile'i düzenlmeyi denedi ama beceremedi. Bize recover database komutunu uygulamamız gerektiğini söylüyor.
Recover database işlemini denemeden önce datafilemizi rertore etmeyi deniyorum.

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF datafilesini geri yüklüyorum.

RMAN> restore datafile 1;

restore başlatılıyor; saat 25/08/2009
ORA_DISK_1 kanalı kullanılıyor

ORA_DISK_1 kanalı: veri dosyası yedek kümesi geri yüklemesi başlatılıyor
ORA_DISK_1 kanalı: yedekleme kümesinden geri yüklenecek veri dosyaları belirleniyor
veri dosyası 00001, C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF dosyasına geri yükleniyor
ORA_DISK_1 kanalı: C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-ORCLXXXX_FNO-1_10KNIJ4P yedek parçasından okunuyor
ORA_DISK_1 kanalı: 1 yedek parçasının geri yükledi
parça kontrol noktası=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-ORCLXXXX_FNO-1_10KNIJ4P tag=TAG20090825T100201
ORA_DISK_1 kanalı: geri yükleme tamamlandı, geçen süre: 00:00:25
restore tamamlandı; saat 25/08/2009

şimdi benden istediği datafile'i geri yükleme işlemini gerçekleştirdim. database'i kurtarıyorum.
RMAN> recover database;

recover başlatılıyor; saat 25/08/2009
ORA_DISK_1 kanalı kullanılıyor

ortam kurtarmayı başlatma
ortam kurtarma başarılamadı
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover komutu, 08/25/2009 14:50:30 konumunda başarısız
ORA-00283: recovery session canceled due to errors
RMAN-11003: SQL deyiminin çözümlenmesi/çalıştırılması sırasında başarısızlık görülüyor: alter database recover if needed start until cancel using backup controlfile
ORA-00283: hatalar nedeniyle kurtarma oturumu iptal edildi
ORA-19909: 2 veri dosyasi artik bir sürüme ait
ORA-01110: veri dosyasi 2: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF'


--hooop bu kezde benden C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF datafile'inin bozuk olduğunu söyluyor. Bu böyle sürüp gidecek gibi duruyor. ben en iyisi restore database diyerek bu çileden kurtuluyorum.

RMAN> restore database;

restore başlatılıyor; saat 25/08/2009
ORA_DISK_1 kanalı kullanılıyor

veri dosyası 1 atlanıyor; zaten C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF dosyasına geri yüklendi
ORA_DISK_1 kanalı: veri dosyası yedek kümesi geri yüklemesi başlatılıyor
ORA_DISK_1 kanalı: yedekleme kümesinden geri yüklenecek veri dosyaları belirleniyor
veri dosyası 00002, C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF dosyasına geri yükleniyor
ORA_DISK_1 kanalı: C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-UNDOTBS1_FNO-2_0PKNIJ13 yedek parçasından okunuyor
ORA_DISK_1 kanalı: 1 yedek parçasının geri yükledi
parça kontrol noktası=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-UNDOTBS1_FNO-2_0PKNIJ13 tag=TAG20090825T100003
ORA_DISK_1 kanalı: geri yükleme tamamlandı, geçen süre: 00:00:04
ORA_DISK_1 kanalı: veri dosyası yedek kümesi geri yüklemesi başlatılıyor
ORA_DISK_1 kanalı: yedekleme kümesinden geri yüklenecek veri dosyaları belirleniyor
veri dosyası 00003, C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF dosyasına geri yükleniyor
ORA_DISK_1 kanalı: C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-SYSAUX_FNO-3_0QKNIJ17 yedek parçasından okunuyor
ORA_DISK_1 kanalı: 1 yedek parçasının geri yükledi
parça kontrol noktası=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-SYSAUX_FNO-3_0QKNIJ17 tag=TAG20090825T100007
ORA_DISK_1 kanalı: geri yükleme tamamlandı, geçen süre: 00:00:15
ORA_DISK_1 kanalı: veri dosyası yedek kümesi geri yüklemesi başlatılıyor
ORA_DISK_1 kanalı: yedekleme kümesinden geri yüklenecek veri dosyaları belirleniyor
veri dosyası 00004, C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF dosyasına geri yükleniyor
ORA_DISK_1 kanalı: C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-USERS_FNO-4_0RKNIJ1O yedek parçasından okunuyor
ORA_DISK_1 kanalı: 1 yedek parçasının geri yükledi
parça kontrol noktası=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-USERS_FNO-4_0RKNIJ1O tag=TAG20090825T100024
ORA_DISK_1 kanalı: geri yükleme tamamlandı, geçen süre: 00:00:01
ORA_DISK_1 kanalı: veri dosyası yedek kümesi geri yüklemesi başlatılıyor
ORA_DISK_1 kanalı: yedekleme kümesinden geri yüklenecek veri dosyaları belirleniyor
veri dosyası 00005, C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST_DF.DBF dosyasınageri yükleniyor
ORA_DISK_1 kanalı: C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-TEST_FNO-5_0SKNIJ1R yedek parçasından okunuyor
ORA_DISK_1 kanalı: 1 yedek parçasının geri yükledi
parça kontrol noktası=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-TEST_FNO-5_0SKNIJ1R tag=TAG20090825T100026
ORA_DISK_1 kanalı: geri yükleme tamamlandı, geçen süre: 00:00:03
ORA_DISK_1 kanalı: veri dosyası yedek kümesi geri yüklemesi başlatılıyor
ORA_DISK_1 kanalı: yedekleme kümesinden geri yüklenecek veri dosyaları belirleniyor
veri dosyası 00006, C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST_DF1.DBF dosyasına geri yükleniyor
ORA_DISK_1 kanalı: C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-TEST_FNO-6_0TKNIJ21 yedek parçasından okunuyor
ORA_DISK_1 kanalı: 1 yedek parçasının geri yükledi
parça kontrol noktası=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-TEST_FNO-6_0TKNIJ21 tag=TAG20090825T100033
ORA_DISK_1 kanalı: geri yükleme tamamlandı, geçen süre: 00:00:04
restore tamamlandı; saat 25/08/2009

evet database'in bütün filelerini geri getirdim. şimdi kurtarmayı başlatıyorum.
RMAN> recover database;

recover başlatılıyor; saat 25/08/2009
ORA_DISK_1 kanalı kullanılıyor

ortam kurtarmayı başlatma

arşiv günlüğü thread'i 1 sıra 3 zaten C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_25\O1_MF_1_3_5979DLTT_.ARC dosyası olarak diskte
arşiv günlüğü thread'i 1 sıra 1 zaten C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_25\O1_MF_1_1_5979PNTF_.ARC dosyası olarak diskte
arşiv günlüğü thread'i 1 sıra 2 zaten C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_25\O1_MF_1_2_5979PM01_.ARC dosyası olarak diskte
arşiv günlüğü thread'i 1 sıra 1 zaten C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_25\O1_MF_1_1_5979SPOP_.ARC dosyası olarak diskte
arşiv günlüğü thread'i 1 sıra 2 zaten C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_25\O1_MF_1_2_597B994K_.ARC dosyası olarak diskte
arşiv günlüğü dosya adı=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_25\O1_MF_1_3_5979DLTT_.ARC thread=1 sıra=3
arşiv günlüğü dosya adı=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_25\O1_MF_1_1_5979PNTF_.ARC thread=1 sıra=1
arşiv günlüğü dosya adı=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_25\O1_MF_1_2_5979PM01_.ARC thread=1 sıra=2
arşiv günlüğü dosya adı=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_25\O1_MF_1_1_5979SPOP_.ARC thread=1 sıra=1
arşiv günlüğü dosya adı=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_08_25\O1_MF_1_2_597B994K_.ARC thread=1 sıra=2
ortam kurtarma tamamlandı, geçen süre: 00:00:16
recover tamamlandı; saat 25/08/2009

RMAN>

evet kurtarma işleminin de başarı ile bittiğini gördükten sonra şimdi database'i güvenli bir şekilde açabilirim.

Bu arada şağıdaki hatadan biraz bahsedelim RMAN restore işlemlerini yaparken sabırsızlanarak database'i açmaya denedim oracle aşaıdaki hatayı bana döndü bilginize.

SQL> alter database open resetlogs;
alter database open resetlogs
*
1 satırında HATA:
ORA-01154: veritabanı meşgul. şimdi açma, kapama, kullanıma aça ve kaldırmaya izni verilmez.


SQL> alter database open resetlogs;

Veritabanı değiştirildi.

SQL>select * from user_tables where rownum<10;

örnek bir sorgu atarak çalışırlılığı gecici test edebiliriz.

Monday, August 24, 2009

BACKUP'LARIN GECERLİLİĞİNİ KONTROL ETMEK

Backup alma işleminden sonra alınan backup'ların durumunu kontrol etmeniz gerekebilir, bunun için aşağıdaki scripti kullanıyoruz.
RMAN> crosscheck backupset;

ORA_DISK_1 kanalı kullanılıyor
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'AVAILABLE'
yedek parça tutamacı=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET
\2009_08_25\O1_MF_NNNDF_DENEME_596YF1CK_.BKP kayıt no=1 damga=695810513
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'AVAILABLE'
yedek parça tutamacı=C:\ORACLE\PRODUCT\10.2.0\DB_2\DATABASE\DATA-D-ORCL_ID-12235
90477_TS-USERS_FNO-4_03KNIFS4 kayıt no=2 damga=695811972
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'AVAILABLE'
yedek parça tutamacı=C:\ORACLE\PRODUCT\10.2.0\DB_2\DATABASE\DATA-D-ORCL_ID-12235
90477_TS-USERS_FNO-4_04KNIFST kayıt no=3 damga=695811997
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'EXPIRED'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-USERS_FNO-4_06KNIG86 kayıt no=4 damga=695812358
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'EXPIRED'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-SYSTEM_FNO-1_07KNIHRH kayıt no=5 damga=695814001
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'EXPIRED'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-UNDOTBS1_FNO-2_09KNIHSC kayıt no=6 damga=695814028
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'EXPIRED'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-SYSAUX_FNO-3_0AKNIHSJ kayıt no=7 damga=695814035
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'EXPIRED'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-USERS_FNO-4_0BKNIHT5 kayıt no=8 damga=695814053
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'EXPIRED'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-TEST_FNO-5_0CKNIHTA kayıt no=9 damga=695814058
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'EXPIRED'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-TEST_FNO-6_0DKNIHU9 kayıt no=10 damga=695814089
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'AVAILABLE'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-SYSTEM_FNO-1_0EKNIHUR kayıt no=11 damga=695814107
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'AVAILABLE'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-UNDOTBS1_FNO-2_0GKNIHVN kayıt no=12 damga=695814135
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'AVAILABLE'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-SYSAUX_FNO-3_0HKNIHVT kayıt no=13 damga=695814141
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'AVAILABLE'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-USERS_FNO-4_0IKNII0G kayıt no=14 damga=695814160
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'AVAILABLE'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-TEST_FNO-5_0JKNII0K kayıt no=15 damga=695814164
yedekleme parçasının çapraz doğrulaması yapıldı: sonuç 'AVAILABLE'
yedek parça tutamacı=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-TEST_FNO-6_0KKNII0R kayıt no=16 damga=695814171
16 nesne çapraz denetlendi


burada gördüğünüz üzere bazıları expired duruma düştü. Buraa kendim işletim sistemi komutlarını kullanarak bu dosyaları sıldiğim için bu şeklide oldular. Ayrıca dosyanın içeriğinide sildiğinizde aynı hatayı alıyorsunuz.
burada Expired duruma düşenleri tekrar kullanmamız mümkün olmayacağı için siliyoruz.


RMAN> delete force expired backupset of database;

DATAFILE BACKUP SCRİPTİ ÇIKARMAK.

DECLARE
sqlq VARCHAR2 (50);
BEGIN
FOR i IN (select * from v$datafile )
LOOP
DBMS_OUTPUT.put_line ('backup datafile ' || i.file# || ' format ''c:\RMAN_BACKUP\data-D-%d_id-%I_TS-%N_FNO-%f_%u ''; ');
END LOOP;
END;

örnek bir kullanım.


backup başlatılıyor; saat 25/08/2009
ORA_DISK_1 kanalı kullanılıyor
ORA_DISK_1 kanalı: tam veri dosyası yedek kümesi başlatılıyor
ORA_DISK_1 kanalı: yedekleme kümesindeki veri dosyaları belirleniyor
girdi veri dosyası fno=00004 adı=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
ORA_DISK_1 kanalı: 1 başlangıç parçası 25/08/2009 konumunda
ORA_DISK_1 kanalı: 1 biti parçası 25/08/2009 konumunda parça kontrol noktas²=C:\RMAN_BACKUP\DATA-D-ORCL_ID-1223590477_TS-USERS_FNO-4_06
KNIG86 etiket=TAG20090825T091238 açıklama=NONE
ORA_DISK_1 kanalı: yedekleme kümesi tamamlandı, geçen süre: 00:00:01
backup tamamlandı; saat 25/08/2009
RMAN>

Monday, August 17, 2009

ALTER SYSTEM SWITCH LOGFILE;

LOGFILE'LERİ KAYDETMEK

ALTER SYSTEM SWITCH LOGFILE;

LGWR (Log Writer) Bir redo log grubuna yazmayı bitirdiğinde diğer gruba gecer. LGWR bir log group dolduğunda diğerine yazma işlemlerini otomatik olarak yapar . Yazmakta olduğu grup active durumdadır. Yazma işlemini bitirdikleri ise inactive duruma gecer.

Redo loglarda düzenleme yapmak için bazen active durumdaki grupları inactive yapmak gerekebilir. Örneğin active olan bir redo group'u silmek istiyorsunuz. active olan bir redo grup'u inactive olana kadar silemezsiniz. Öncelik ile buradaki verilerin datafilelere yazılması gerekir. Şu şekilde bir senaryoda yaratabiliriz. Şu anda active olan bir redolog groubunu arşivlemek istiyorsak bu grubun dolmasını beklememiz gerekiyor. Bazen redo log gruplarımız o kadar büyük olur ki dolamsını beklemek uzun zaman alabilir.

Log dosyalrını kaydetmek için ALTER SYSTEM yetkimizin olması gerekiyor.

ALTER SYSTEM SWITCH LOGFILE; komutu işimizi görüyor.

Redo loglarımız datafilelere yazıyoruz. Bu işlemden sonra backuplama arşivleme işlemini yapabiliriz.

Kullanıldığı birkaç yere örnek vermek gerekir ise
1- full backup almadan önce redo loglardaki verileri datafilelere yazmak isteyebilirsiniz.
2- Database NOACRHIVELOG moddan ARCHIVELOG moda alma sırasında kullanabilirsiniz.

Aşağıdaki sorgu ile loglarımızın durumunu görebilriz.
select GROUP#, ARCHIVED, STATUS from v$log;

Active durumdaki bir redolog file'ı silmek isteğimizde aşağıdaki hatayı alırız.Bu durumda
ALTER SYSTEM SWITCH LOGFILE ile inactive hale getirdikten sonra silebiliriz.

ORA-01624: 2 günlügü, orcl (thread 1) aninin çökme durumunda kurtarilmasi için gerekli
ORA-00312: çevrimiçi günlük 2, thread 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'

Yeni bir redolog file eklemek için aşağıdaki scripti kullanabiliriz
ALTER DATABASE
ADD LOGFILE ('C:\oracle\product\10.2.0\oradata\ORCL\REDO03.LOG') SIZE 50000K;
silmek içinde

select GROUP#, ARCHIVED, STATUS from v$log;

sorgusu ile inactive durumda olan redologun group nosunu öğrendikten sonra


ALTER DATABASE DROP LOGFILE GROUP 3;
komutunu kullanabiliriz.



Tuesday, August 11, 2009

RMAN İLE DATAFILE KURTARMA

Bozuk yada silinmiş olan bir datafile kurtarma işlemlerini basit bir senaryo ile anlatmaya çalıştım.

Öncelik ile bir tablespace yaratalım
CREATE SMALLFILE TABLESPACE "DENEME1" DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' SIZE 100M REUSE AUTOEXTEND ON NEXT 1024K MAXSIZE 32767M , 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME3' REUSE LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

Şimdi bu tablespace'e bir datafile ekleyelim.

ALTER TABLESPACE "DENEME1" ADD DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' SIZE 102400K REUSE AUTOEXTEND ON NEXT 1024K MAXSIZE 32767M

daha sonra bu tablespace de bir user oluşturalım.

CREATE USER "RMAN_DEN" PROFILE "DEFAULT" IDENTIFIED BY "*******" DEFAULT TABLESPACE "DENEME1" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK
GRANT UNLIMITED TABLESPACE TO "RMAN_DEN" WITH ADMIN OPTION
GRANT "CONNECT" TO "RMAN_DEN" WITH ADMIN OPTION
GRANT "RESOURCE" TO "RMAN_DEN" WITH ADMIN OPTION


şimdi bu user altında bir tablo oluşturalım.

CREATE TABLE rman_den.tablom
AS
SELECT *
FROM all_objects


son durumu özetlemek gerekir ise elimizde bir tablespace bu tablecpace'yi kullanan bir user (schema) sonra bu tablespace'de tanımlanmış bir datafile var . Biz burada ne yapacağiz; Datafile bozulmuş senaryosu yaratacağız.

Önce RMAN ile ilgili datafile'in backupını alıyoruz.

RMAN> backup datafile 6;

elimizde backupımız var.

RMAN> LIST BACKUP of datafile 6;

aşağıdaki komut ile datafile'i siliyoruz.
ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2'
OFFLINE DROP;

şimdi datafile üzerinde işlem yapmaya çalışalım.

select * from rman_den.tablom

ORA-00376: 6 dosyasi su anda okunamiyor
ORA-01110: veri dosyasi 6: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2'

Bu hatayı alıyoruz. Bunun ne anlama geldiğini şimdi daha iyi anlayabiliriz.
Bu hatadan kurtulmak için backupdan dönme işlemini gerçekleştiriyoruz.

işletim sisteminde de dosyayı sildikten sonra

RMAN> restore datafile 6;
RMAN> recover datafile 6;
İle geri yükleme ve kurtarma işlemini tamalıyoruz. Bu işlemden sonra offline durumda olan datafile'i online yapmaktır.
ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' ONLINE

online yapma işlemini RMAN'de de yapabiliriz bunun için bir run scripti hazırlıyoruz.
Kurtarma işleminden sonra RMAN ilgili sql'i çalıştıracktır.
RMAN>RUN{
restore datafile 6;
recover datafile 6;
SQL "ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' ONLINE";
}

select * from dba_data_files -- sorgusu ile datafile'lerimizin son halini görelim.
Bu sorgu ile hem datafilelelerin konumlarını, isimlerini ve numaraları öğrenebiliriz.

Bozuk olan bir Datafile'dan RMAN ile dönme işlemini gerçekleştirmiş olduk.

Aşağıdaki hatalarda da yukarıdaki işlemleri yapılabilir.

SYS aliates 11/08/2009 >alter database open;
alter database open
*
1 satırında HATA:
ORA-01122: 6 veritabani dosyasi onaylama kontrolünü geçemedi
ORA-01110: veri dosyasi 6: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2'
ORA-01251: Dosya numarasi 6 için bilinmeyen Dosya üstbilgiler Sürümü okundu
ORA-01157: 6 veri dosyasi tanimlanamaz veya kilitlenemez - DBWR izleme

bu hatalardan kurtulmanın bir diğer yöntemi ise ilgili datafileleri offline duruma çekmektir.

SYS aliates 11/08/2009 >alter database datafile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME4' offline;

SYS aliates 11/08/2009 >alter database open;

Veritabanı de­ğiştirildi.

/////////////////////////////////////////////////////////////////////

offline olan datafile'yi rman ile kurtarabiliriz.

örneğin
ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' offline
dediniz ve datafile offline oldu
herhangibi bir sorgu çalıştırdığınızda


ORA-00376: 9 dosyasi su anda okunamiyor
ORA-01110: veri dosyasi 9:

hatasınız alırsınız bundan kurulmak için

C:\Documents and Settings\rdcaates>rman target /

Kurtarma ¦darecisi : Release 10.2.0.1.0 - Production on Sal A­u 25 21:21:21 2009


Copyright (c) 1982, 2005, Oracle. All rights reserved.

hedef veritaban²na ba­lanıldı: ORCL (DBID=1223590477)

RMAN> recover datafile 9;

recover başlatılıyor; saat 25/08/2009
kurtarma katalo­u yerine hedef veritabanı kontrol dosyası kullanılıyor
ayr²lan kanal: ORA_DISK_1
ORA_DISK_1 kanalı: sid=133 aygt³r³=DISK

ortam kurtarmayı başlatma
ortam kurtarma tamamlandı , geçen süre: 00:00:02

recover tamamlandı; saat 25/08/2009

RMAN>

ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' online;

işleminden sonra kurtarma işlemi başarılı bir şekilde tamamlanmış oldu.
Burada eğer datafileniz silindiyse yada yerinde yok ise o zaman yukarıdaki adımları yapmalısınız.