|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ORACLE 8: RECOVERY |
|
|
FAILURE CESITLERI |
|
|
STATEMENT FAILURE: |
|
|
|
Applicationlardaki Logical hatalar. |
|
|
|
Bir tabloya kotu kayit girmeye calismak. |
|
|
|
Yetersiz yetkilerle islem yapmaya kalkmak. |
|
|
|
Bir tablo yaratmaya calismak ancak kullanicinin kendine ayrilan quota limitini asmis olmasi. |
|
|
|
Yetersiz free space icinde extent alarak update ya da insert islemi yapmaya calismak. |
|
|
USER PROCESS FAILURE: |
|
|
|
Kullanici anormal sekilde disconnect olur. |
|
|
|
Kullanicinin session?i anormal sekilde kesilir. |
|
|
|
Kullanicinin programi address exception olusturarak sessioni keser. |
|
|
Boyle durumlarda PMON temizleme operasyonu yapar: |
|
|
|
Anormal sekilde kesilen transactionlari Rollback yapar. |
|
|
|
Kesilen transactionlarin koyduklari locklari kaldirir, kullandiklari kaynaklari serbest birakir. |
|
|
|
Ilgili server ve dispatcher processleri yeniden baslatir. |
|
|
USER-ERROR FAILURE: Bu durum Recovery gerektirir. |
|
|
|
Bir tabloyu Drop ya da Truncate etmek. |
|
|
|
Bir tablonun tum kayitlarini silmek ve transactioni commit etmek. |
|
|
|
Yanlis kayitlari update etmek ve transactioni commit etmek. |
|
|
Actions: |
|
|
|
Kullanicilari egitmeli. |
|
|
|
Saglam bir backuptan recovery yapilmali. |
|
|
INSTANCE FAILURE: |
|
|
|
Elektrik kesintisi. |
|
|
|
Hardware failure; CPU, Memory, Disk |
|
|
|
Background Process Failure |
|
|
Instance acilisinda SMON instance recovery yapar. |
|
|
SMON recovery?I baslatir. Bu durumda datafilelar senkronize degildir. |
|
|
DBWR rollforward yapar commit edilmis ama datafilelara yazilamamis transactionlar icin. Bu noktadan sonra database kullanicilara aciktir. |
|
|
SMON ya da server process commit edilmemis adatayi rollback yapar. |
|
|
MEDIA FAILURE: |
|
|
Sebepleri: |
|
|
|
Head Crash ya da Disk Crash |
|
|
|
Diske yazma ya da okuma yapamamak. |
|
|
|
Filelar silinmis olabilir. |
|
|
Actions: |
|
|
|
Tamamiyle test edilmis bir backup strategisi olusturun. |
|
|
|
Backup stratejinizi dokumante edin. |
|
|
FAILURE DURUMLARINI TRACE ETME |
|
|
ALERT FILE: |
|
|
|
Tum sistem kapanis ve acilislarini gosterir. |
|
|
|
Internal errorlari, blokck curruption?lari ve dead lock errorlari gosterir. |
|
|
|
Tablespace, rollback segment, ve database?i yapisal olarak degistiren tum CREATE ALTER DROP islemlerini gosterir. |
|
|
|
Database errorlarini icerir. |
|
|
|
Archiving operasyonlari hakkinda bilgi verir; Log switch. |
|
|
|
Kayip filelari rapor eder. |
|
|
|
Alert file?in yeri init.ora dosyasindaki BACKGROUND_DUMP_DEST ile belirlenir. |
|
|
TRACE FILE: |
|
|
|
Init.ora parametre dosyasindaki BACKGROUND_DUMP_DEST parametresitrace file?larin nereye yazilacagini belirtir. |
|
|
|
Her bir background process problemle karsilastiginda bu parametrede belirtilen yere ilgili trace file yazilir. |
|
|
|
Dosyalar bir kere olustuktan sonra yeni hatalar dosyalara append edilir. |
|
|
CHECKSUM PARAMETRELERI: |
|
|
Bir datafile blogu okundugunda data block corruption tespiti icin datafile checksum yapilabilir. Bu islemin yapilabilmesi icin asagidaki sekilde parametrenin ayarlanmalidir. |
|
|
|
DB_BLOCK_CHECKSUM = TRUE |
|
|
|
Eger input-output islemlerinde bir hata sezilirse bu parametre init.orada ayarlanarak checksum aktive edilir.Bu islem performans kaybina yolacar. Default degeri false?dir. |
|
|
|
Checksum degeri datablogunun header?inda saklanir. Orace blogu okundugunda check sum degeri blok corruption?I tespit ederse trace file?a mesaj atilir. |
|
|
Log file checksum icin asagidaki parametre ayarlanir. |
|
|
|
LOG_BLOCK_CHECKSUM = TRUE |
|
|
|
Eger logfile?da bir block curruption hatasi varsa bu hata archivelog?a da yansir.Bu durum archivelog?un recovery icin kullanilamamasina yol acar. Bu durumlarda log checksum active edilmelidir. |
|
|
|
Bu parametre aktive edildikten sonra her blok redolog?a yazilmadan checksum kontrolunden gecer. |
|
|
|
Eger bu parametre aktive edildikten sonra blok corruption tespit edlilirse bu redolog arsivlenemez. Bu durumda database asili kalir cunku redologlar generate edilemez bu noktadan sonra. |
|
|
DBVERIFY: |
|
|
|
Datafile?larin verifikasyonu icin kullanilir. |
|
|
|
Databloklarinin yapisal duzenini kontrol eder. |
|
|
|
Eger restore icin backuplanan datafile?larin gecerli olup olmadigini ya da data curroption problemleriyle sik karsilasiliyorsa bu islem yapilmalidir. |
|
|
|
Database aktiviteleri uzerinde minimal etkisi vardir. |
|
|
|
Yeri : c:\orant\bin\dbverf80.exe. |
|
|
|
Online ve offline datafile?lar icin kullanilabilir. |
|
|
|
Islemin sonucu bir errorlog?a yonlendirilebilir. |
|
|
|
Kullanimi: |
|
|
Svrmgrl> DBVERF80 FILE = ?filename? START = <number> END = <number> LOGFILE = <filename>; |
|
|
|
Start ve End datablok numaralarini belirtir ama tum datafile incelenecekse kullanilmayabilir. |
|
|
ORACLE RECOVERY METODLARI |
|
|
NOARCHIVELOG MODE RECOVERY |
|
|
|
Tum datafile, controlfile ve redolog file;lar bir arada backuplanmali ve restore edilmelidir. |
|
|
|
Sadece bir file kayip olsa bile database acilmaz cunku hepsi birlikte senkronizedir ve control file database?I acmak icin tum file?lari ister. |
|
|
STEPS: |
|
|
Database?i kapatin. |
|
|
Son full backup?tan tum dosyalari inin. |
|
|
Database?i acin. |
|
|
ARCHIVELOG MODE RECOVERY |
|
|
Bu modda database acikken system tablespace?i ve rollback segment tablespaceleri haric olmak uzere recovery yapilabilir. Eger bu iki tip tablespace recover edilecekse database kapali halde recover edilir. |
|
|
Archivelog?larin lokasyonunu degistirmek icin: |
|
|
Svrmgrl> ALTER SYSTEM ARCHIVE LOG START TO <yeni lokasyon>; |
|
|
Archivelog switch icin |
|
|
Svrmgrl> ALTER SYSTEM SWITCH LOGFILE; |
|
|
Eger recovery yapmadan once archivelog;lar baska bir directory?e konulmussa ve recover esnasind abu directory?den okunmasi istebiliyorsa database mount edilmeden once init.ora dosyasinda LOG_ARCHIVE_DEST istenilen directory olarak degistirilir. |
|
|
V$RECOVER_FILE sorgulandiginda ERROR alaninda "FILE NOT FOUND" yaziyor ise bu dosyalara erisilemiyordur. Eger ilgili file?lar var ise ve ERROR alani bos ise bu file?larin recovery?e ihtiyaci vardir. |
|
|
Bu view sorgulanarak ne tur bir recovery gerektigi konusunda bilgi edinilebilir. |
|
|
ARCHIVELOG MODDA RECOVERY TIPLERI |
|
|
COMPLETE RECOVERY |
|
|
SYSTEM YA DA ROLLBACK TABLESPACE RECOVERY : |
|
|
|
Shutdown database |
|
|
|
Kayip ya da hasarli dosyayi restore edin. |
|
|
|
Instance?i mount edin: |
|
|
Svrmgrl> STARTUP MOUNT |
|
|
|
Kayip ya da hasarli dosyayi recover edin: |
|
|
Svrmgrl> RECOVER AUTOMATIC DATAFILE [number|name]; |
|
|
Svrmgrl> RECOVER AUTOMATIC DATABASE; |
|
|
|
Database?i acin: |
|
|
Svrmgrl> ALTER DATABASE OPEN; |
|
|
SYSTEM YA DA ROLLBACK TABLESPACE?I HARICINDEKI TABLESPACE RECOVERY (OPEN RECOVERY) |
|
|
	Database acikken recovery sadece bozulan tablespace?in dtafillarina yapilabilir. |
|
|
|
Recovery yapilaka datafile?in ait oldugu tablespace?i offline?a alin: |
|
|
Svrmgrl> ALTER TABLESPACE <tablespace> OFFLINE; |
|
|
|
Ilgili datafile?i restore edin. |
|
|
|
Datafile?i ya da ilgili tablespace?i recover edin: |
|
|
Svrmgrl> RECOVER AUTOMATIC DATABASE; |
|
|
Svrmgrl> RECOVER AUTOMATIC DATAFILE [number|filename]; |
|
|
Svrmgrl> RECOVER AUTOMATIC TABLESPACE [number|tablespacename] |
|
|
|
Ilgili tablespace ya da datafile?i online?a cekin. |
|
|
DATABASE?I ACARKEN CORRUPT DATAFILE BULUNDUGUNDA RECOVERY |
|
|
|
Database?i baslatin ve mount edin. |
|
|
Svrmgrl> Startup mount |
|
|
|
Ilgili datafile(lari) offline?a cekin. |
|
|
Svrmgrl> ALTER DATABASE DATAFILE ?filename? OFFLINE; |
|
|
|
OPEN RECOVERY adimlarini yapiniz. |
|
|
Eger recovery esnasinda datafile?lari yeni bir lokasyona cekmek gerekirse: |
|
|
ALTER DATABASE REBNAME FILE ?damaged filename? TO ?new filename?; |
|
|
SYSTEM YA DA ROLLBACK SEGMENT HARICINDEKI TABLESPACELERIN BACKUP?I OLMAYAN DATAFILE?LAR ICIN RECOVERY |
|
|
|
Ilgili datafile?in ait oldugu tablespace?i offline yapin: |
|
|
Svrmgrl> ALTER TABLESPACE ?tablespacename? OFFLINE IMMEDIATE; |
|
|
|
Datafile?i yeniden yaratin: |
|
|
Svrmgrl> ALTER DATABSE CREATE DATAFILE ?oldfilename? [AS ?newfilename?]; |
|
|
|
OPEN RECOVERY adimlarini izleyin. |
|
|
ONLINE BACKUP ALINIRKEN (HOTBACKUP MOD) CRASH SONRASI RECOVERY |
|
|
|
Hangi file?larin crash esnasinda backuplandigini tesbit edin: |
|
|
Svrmgrl> SELECT * FROM V$BACKUP; |
|
|
FILE# STATUS CHANGE# TIME |
|
|
---------- ------------------ ---------- -------------------- |
|
|
1 ACTIVE 22568819 02/28/01 14:13:28 |
|
|
2 NOT ACTIVE 22568717 02/28/01 13:40:45 |
|
|
3 NOT ACTIVE 22568716 02/28/01 13:40:38 |
|
|
4 ACTIVE 22568779 02/28/01 14:03:02 |
|
|
5 ACTIVE 22568808 02/28/01 14:10:23 |
|
|
6 NOT ACTIVE 22568787 02/28/01 14:05:48 |
|
|
7 ACTIVE 22568791 02/28/01 14:07:09 |
|
|
8 ACTIVE 22568818 02/28/01 14:13:15 |
|
|
9 ACTIVE 22568807 02/28/01 14:10:22 |
|
|
ACTIVE olan datafile?lar online backup modundadirlar. Bu file?larin hangi tablespace ile iliskili olduklarini ogrenmek icin: |
|
|
Svrmgrl> SELECT * FROM DBA_DATA_FILES WHERE FILE_ID = <file#> |
|
|
|
Ilgili tablespace?in backup islemini sonlandirmak icin: |
|
|
Svrmgrl> ALTER TABLESPACE tablespacename END BACKUP; |
|
|
|
Databse?i acin: |
|
|
Svrmgrl> ALTER DATABASE OPEN; |
|
|
REDOLOG FILE RECOVERY |
|
|
Eger bir redolog file multiplex edilmemis ise(ayni redolog grubunda birden cok redolog yok ise ya da mirrorlari yok ise) veya grubun tum redolog memberlari corrupt ise redolog file recovery gereklidir. |
|
|
Complete recovery yapilabilmesi icin redolog?un arsivelenmis olmasi gereklidir. Yani V$LOG?un ARCH kolonu YES olmalidir. |
|
|
|
Hangi redologlarin recovery?e ihtiyaci oldugunu tespit edin: |
|
|
Svrmgrl> SELECT * FROM V$LOG; |
|
|
V$LOG 	- V$LOGFILE 	STATUS DEGERLERI: |
|
|
ACTIVE	:Active ancak CURRENT olmayan, arsivlenmekte ya da arsivlenecek olan redolog. |
|
|
UNUSED	 STALE		:Yeni yaratilip henuz kullanilmamis redolog file. |
|
|
CURRENT NULL		:Halen uzerine yazilmakta olan redolog. |
|
|
INACTIVEDELETED	:Instance recovery icin ihtiyac duyulmayacak olan arsivlenmis redolog. |
|
|
	INVALID	: Inaccessible Redolog |
|
|
Instance recovery esnasinda current ve aktif redologlar kullanilacaktir. |
|
|
|
Recreate Redolog: |
|
|
ALTERNATIF I. |
|
|
Yeni bir temporary redolog grup yaratin: |
|
|
Svrmgrl> ALTER DATABASE ADD LOGFILE GROUP <temporary group number> ?filename? size n[K|M]; |
|
|
Corrupt olan redolog?u drop edin: |
|
|
Svrmgrl> ALTER DATABASE DROP LOGFILE GROUP N; |
|
|
Ayni grubu yeniden yaratin: |
|
|
Svrmgrl> ALTER DATABASE ADD LOGFILE GROUP N; |
|
|
Tempororay grubu drop edin: |
|
|
Svrmgrl> ALTER DATABASE DROP LOGFILE GROUP GROUP <temporary group number>; |
|
|
ALTERNATIF II. |
|
|
Clear Logfile: |
|
|
Svrmgrl> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP N; |
|
|
Bu yontem asagidaki durumlarda kullanilabilir: |
|
|
|
Eger iki redolog grubu varsa, |
|
|
|
Current redolog file current gruba ait ise. |
|
|
INCOMPLETE RECOVERY |
|
|
SEBEPLER: |
|
|
|
Kullanici hatasi; bir tabloyu drop etmek, tum kayilarini yanlislikla silip ya da yanlis sekilde update edip commit etmek. |
|
|
|
Kayip archivelog file. |
|
|
|
Mirrosuz ve kayip control file. |
|
|
|
Mirrorsuz ve arsivlenmemis redologlarin kaybi. |
|
|
INCOMPLETE RECOVERY TIPLERI |
|
|
TIME BASED RECOVERY |
|
|
Belli bir zamana dek recovery yapilabilir: |
|
|
|
Instance?i baslarin ve mount edin: |
|
|
Svrmgrl> STARTUP MOUNT |
|
|
|
Tum datafile?lari original lokasyonlarina restore edin. |
|
|
|
Database?i istenilen zamana recover edin: |
|
|
Svrmgrl> RECOVER AUTOMATIC DATABASE UNTIL TIME ?YYYY-MM-DD:HH24:MI:SS?; |
|
|
AUTOMATIC opsiyonun kullanmak yerine soyle de yapilabilir: |
|
|
Svrmgrl> SET AUTO RECOVERY ON; |
|
|
Svrmgrl> RECOVER AUTOMATIC DATABASE UNTIL TIME ?YYYY-MM-DD:HH24:MI:SS?; |
|
|
|
Database?i RESETLODS opsiyonuyla acin: |
|
|
Svrmgrl> ALTER DATABASE OPEN RESETLOGS; |
|
|
|
Offline backup alin. |
|
|
CANCEL BASED RECOVERY |
|
|
Eger arsivlenmemis online redolog kayip ise bu tip recovery gereklidir. |
|
|
|
Database?i kapatin. |
|
|
Svrmgrl> SHUTDOWN IMMEDIATE; |
|
|
|
Database?i baslatin ve mount edin: |
|
|
SVRMGRL> STARTUP MOUNT |
|
|
|
Tum dosyalari original lokasyonlarina yerlestirin. |
|
|
|
Recover database: |
|
|
Svrmgrl> RECOVER DATABASE UNTIL CANCEL; |
|
|
|
Kayipdosyaya gelinince CANCEL yazin. |
|
|
|
Database?i acin: |
|
|
Svrmgrl> ALTER DATABASE OPEN RESETLOGS; |
|
|
|
Offline backup alin. |
|
|
BACKUP CONTROLFILE |
|
|
Time Based Recovery yapilmasi gereken bir durum olabilir ancak database?in yapisi son backup?tan beri degisti ise bu tur bir backup yapilmasi gerekir. Once asagidak isekilde control file backup?i alinamsi gerekir: |
|
|
ALTER DATABASE BACKUP CONTROLFILE TO 'filename' REUSE; |
|
|
REUSE opsiyonu daha onceden ayni lokasyonda baska file varsa overwrite eder. |
|
|
|
Databasi?i kapatin: |
|
|
Svrmgrl> SHUTDOWN |
|
|
|
Controlfile?i backup?layin |
|
|
|
Tum datafile?lari restore edin. |
|
|
|
Istenilen zamana kadar asagidaki sekilde recovery yapin: |
|
|
Svrmgrl> RECOVER DATABASE UNTIL TIME ?YYYY-MM-DD:HH24:MI:SS? USING BACUP CONTROL FILE; |
|
|
|
RESETLOGS opsiyonu ile Database?i acin: |
|
|
Svrmgrl> ALTER DATABASE OPEN RESETLOGS; |
|
|
|
Offline Backup alin. |
|
|
CHANGE BASED RECOVERY |
|
|
Recovery: Current Redo Log Currupt - Database Hung Satate |
|
|
Database acikken current redolog currupt olursa ve multiplex edilmemis ise bu yontem kullanilir. |
|
|
|
Database?i kapatin. |
|
|
Svrmgrl> SHUTDOWN IMMEDIATE; |
|
|
|
Database?i baslatin ve mount edin: |
|
|
SVRMGRL> STARTUP MOUNT |
|
|
|
Clear log file: |
|
|
Svrmgrl> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP N; |
|
|
Bu komut current corrupt redo log?un uzerine yazilabilir hale getirir ya da eger redo log kayipsa yeniden yaratir. |
|
|
|
Databasi?i acin: |
|
|
Svrmgrl> ALTER DATABASE OPEN RESETLOGS; |
|
|
|
Offline backup alin. |
|
|
Recovery: Current Redolog Currupt ? Database Closed |
|
|
Eger redolog database?i acar iken kayip ise CLEAR LOGFILE opsiyonu kullanilamaz. Cunku arsivlenmemis bu grup crash recovery icin gereklidir. |
|
|
|
Database?i kapatin. |
|
|
Svrmgrl> SHUTDOWN IMMEDIATE; |
|
|
|
Database?i baslatin ve mount edin: |
|
|
Svrmgrl> STARTUP MOUNT |
|
|
|
Ilgili redo log?un sequence numarasini alin: |
|
|
Svrmgrl >SELECT * FROM V$LOG; |
|
|
|
Recover Database: |
|
|
Svrmgrl> RECOVER DATABASE UNTIL CANCEL ; |
|
|
Sequence numarasini girin |
|
|
|
Database?i acin: |
|
|
Svrmgrl> ALTER DATABASE OPEN RESETLOGS; |
|
|
|
Offline Backup alin. |
|