ORACLE DATAFILE RECOVER (KURTARMA) TESTLERĐ



Benzer belgeler
ORACLE TRANSPORTABLE TABLESPACE KULLANIMI

Bellek Yönetimiyle İlgili Notlar ORACLE BELLEK YÖNETĐMĐYLE ĐLGĐLĐ NOTLAR

Oracle 11gR2 Üzerine Dataguard Kurulumu Türkçe

ORACLE FLASHBACK DATABASE TEKNOLOJĐSĐ

«BM364» Veritabanı Uygulamaları

ASM (Automatic Storage Manager) 11 Mayıs 2009

ORACLE ONLINE REDO LOG DOSYALARI

1 ORACLE 11G DATABASE SERVER LE

TROUG. RMAN (Recovery Manager) [Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi] Ergem PEKER

Startup ve Shutdown Yöntemleri. ORACLE STARTUP ve SHUTDOWN YÖNTEMLERİ

LOG SHIPPING Yusuf KAHVECİ Senior Database

VERİ TABANI YÖNETİM SİSTEMLERİ I

Emrah UYSAL 1 TABLESPACE ENCRYPTION ORACLE 11G

VIEW LERDE SQL HINT KULLANIMI

ORACLE 11G DIRECT NFS

DĐNAMĐK ve STATĐK SQL KULLANMANIN PERFORMANSA ETKĐSĐ

PCTFREE - PCTUSED ORACLE DEĞERLERĐ

ORACLE RMAN (RECOVERY MANAGER)

Sorun Giderme. Genel. Disk. Aygıt Sürücüleri 3

Advanced Oracle SQL Tuning

ORACLE VERĐTABANINDA TABLO ve INDEX SIKIŞTIRMA

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

ORACLE PARAMETRE DOSYALARI ( PFILE & SPFILE )

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Oracle da kullanılan veri tipleri:

POSTGRESQL'de İleri Seviyede Veri Kurtarma ve Yedekleme

Veritabanı. Ders 2 VERİTABANI

TEMEL VERİTABANI YÖNETİCİLİĞİ & UNIX / LINUX EĞİTİMİ DERS PROGRAMI

Tavsiye Edilen Önhazırlık Veritabanı kavramını öğrenmek

Flashback Database ile Standby Üzerinden Veri Kurtarmak

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

Unutulmuş Özellikler: Oracle Veritabanına Yaptığınız Yatırımı Sonuna Kadar Kullanın

Veritabanı Tasarımı. Veritabanı Hareketleri

BACKUP BİLGİLERİ YUSUF.KAHVECİ. Yusuf KAHVECİ

SQL SERVER DATABASE FILE LARINI VE TEMPDB FILE LARINI TAŞIMA OPERASYONU

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

Exadata Üzerinde Veri Sıkıştırma Yöntemleri

İleri Seviyede PostgreSQL Yönetimi Devrim GÜNDÜZ. PostgreSQL Geliştiricisi PostgreSQL Markafoni

Veritabanı Yönetim Sistemleri I HAFTA 1

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

Veritabanı Tasarımı. Tablo Değiştirme

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

1. Oracle Data Miner 11g Release 2 Kurulumu Aşamaları

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

PHP+Memory Cache+PostgreSQL Kullanarak Performanslı Veritabanı Uygulaması Geliştirme

Veritabanına Uygulanması

Tavsiye Edilen Önhazırlık Veritabanı kavramınıöğrenmek. Hedefler Shrink yapılmasının amacının kavranması. Shrink yapılma yöntemlerinin öğrenilmesi.

Windows Server 2003 sistemde oluşabilecek hataları giderebilmemiz için bize bir çok araç sunmaktadır. Bunlar:

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Copyright 2012 EMC Corporation. All rights reserved.

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK

MIRACLE DATA WORKS KURULUM DOKÜMANI

ORACLE TNS (TRANSPARENT NETWORK SUBSTRATE) LISTENER YAPILANDIRMASI

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

PostgreSQL'de Uygulamalı. (Streaming Replication. Standby)

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

SQL Komutları (2) Uzm. Murat YAZICI

NoSql ve MongoDB. Saygın Topatan

BTP 205 İŞLETİM SİSTEMLERİ

Almanya Mail Hesabı ile Outlook Kurulumu

Exchange Server Kurtarma (PowerControls)

UTL_FILE PERFORMANSI

MOBİL UYGULAMA GELİŞTİRME

PostgreSQL Veritabanı Sunucusu. HOT, VACUUM ve BGWRITER

VERİ TABANI YÖNETİM SİSTEMLERİ-II

SQL SERVER VERİTABANINI EKLEME-ÇIKARMA ve YEDEKLEME-GERİ YÜKLEME

Yedek Almak ve Yedekten Geri Dönmek

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

-Birden çok tablo ile çalışırken gereksiz karmaşadan(özellikle her seferinde uzun bir SQL sorgu cümlesi yazmakla uğraşmaktan) kurtulmak.

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

STORED PROCEDURE LER (Saklı Yordamlar)

Üst Düzey Programlama

Veritabanı Tasarımı. DML İşlemleri ve Görünümler

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

DESTEK DOKÜMANI. Ürün : GO/TIGER2/UNITY2 Bölüm : Sistem Đşletmeni

PostgreSQL Veritabanı Sunucusu. 8.2 neler getiriyor?

Hybrid Software Veritabanı ve Sistem 7x24 Destek &Danışmanlık Hizmetleri Veritabanı ve Sistem 7x24 Destek & Danışmanlık Hizmetleri

Güvenli ve Sürdürülebilir Veri. Samed YAYLA KoçSistem Satış Yöneticisi

PostgreSQL ve PL/pgSQL

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

CRYSTAL REPORT EĞĠTĠM DÖKÜMANLARI

PostgreSQL Veritabanı Sunucusu. Başarım Arttırma Yöntemleri

Checkpoint Yönetim Sunucusu Yedekliliği

Liquibase ile Veri Tabanı Değişiklik Yönetimi

HP Yazılım Zirvesi - İstanbul 20 May Wyndham Grand Levent Erdem Alaşehir / Finansbank Güvenlik Olay Korelasyonunda Büyük Veri Kullanımı

Veri Tabanı-I 5.Hafta

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Microsoft SQL Server Sorgulama

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

HB1002: ORACLE 10G VERĐTABANI PL/SQL ile PROGRAMLAMA (32 saat)

Oracle Database 11g: Introduction to SQL

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

2013 Yıl Sonu İşlemleri

BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK

Transkript:

ORACLE DATAFILE RECOVER (KURTARMA) TESTLERĐ 1

İçindekiler 1.Giriş... 3 2. Tam Fiziksel Bozulma ve Kurtarma Denemesi... 3 3. Tam Fiziksel Bozulmada Eski Bir Yedeği Kullanarak Kurtarma... 4 4. Block Bazında Datafile'ın Bozulma Durumu... 5 5. Offline olan bir datafile'i yeniden Online'a Alma... 5 6.Dosya bozulmalarıyla ilgili bir iki nokta...... 6 2

1.Giriş Veritabanı çalıştığı hâlde, sadece bir iki dosyada bozulma olmuş olabilir. Bu durumda bütün veritabanını yeniden kurmak gerekmez. Sadece gereken dosyaları geri dönerek, veritabanını kurtarma fırsatımız olabilir. Bu yazıda veritabanı datafile kurtarma (recover) testlerini gerçekleştireceğiz. 2. Tam Fiziksel Bozulma ve Kurtarma Denemesi Önce yeni bir tablespace yaratıp, içine data giriyoruz: SQL> CREATE TABLESPACE DENEME_TABLESPACE DATAFILE SIZE 100M AUTOEXTEND ON NEXT 512K MAXSIZE UNLIMITED LOGGING ONLINE PERMANENT EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON; SQL> CREATE TABLE SYS.CCEBI_DENEME TABLESPACE DENEME_TABLESPACE AS SELECT * FROM DBA_OBJECTS; SQL> ALTER SYSTEM SWITCH LOGFILE; Dosyayı fiziksel olarak bozuyoruz: $ cp /dev/null /data2/ccebi_test/oradata/deneme_tablespace_01.dbf $ ls ltr /data2/ccebi_test/oradata/deneme_tablespace_01.dbf -rw-r----- 1 oracle3 dba 0 Apr 27 10:28 deneme_tablespace_01.dbf Veritabanı açık mı diye kontrol edip, hangi dosyanın bozulduğunu buluyoruz: select open_mode from v$database; OPEN_MODE ---------- READ WRITE SQL> select name, r.* from v$datafile d, v$recover_file r where d.file#=r.file#; 3

Bozulan dosya /data2/ccebi_test/oradata/deneme_tablespace_01.dbf olarak gözüküyor. Şimdi bu dosyayı kurtarmaya çalışalım: SQL> RECOVER DATAFILE ORA-00283: recovery session canceled due to errors ORA-01110: data file 22: ORA-01115: IO error reading block from file 22 (block # 1) ORA-01110: data file 22: ORA-27091: unable to queue I/O ORA-27069: attempt to do I/O beyond the range of the file Additional information: 1 Additional information: 1 Ne yazık ki olmadı... 3. Tam Fiziksel Bozulmada Eski Bir Yedeği Kullanarak Kurtarma Bir başka deneme yapalım. Bu sefer önce DENEME_TABLESPACE ini yaratıryaratmaz backup mode a çekip, yedekliyoruz. Arkasından CCEBI_DENEME tablosunu tekrar oluşturuyoruz ve datafile i yine bozuyoruz. Recover işlemine başlamadan önce backup mode da yedeklediğiniz dosyayla bozukl olan dosyayı değiştirmeniz gerekiyor. $ cp /data2/ccebi_test/oradata/deneme_tablespace_01.dbf_bck /data2/ccebi_test/oradata/deneme_tablespace_01.dbf Dosya yedeği, veritabanı dosyasıyla değiştirildi. Artık recover işlemine geçebiliriz: SQL> RECOVER DATAFILE Media recovery complete. SQL> alter database datafile online; Database altered. Recover işlemi sonrasında CCEBI_DENEME tablosundan sorgu yapabiliyoruz. DENEME_TABLESPACE yedeklendiği sırada CCEBI_DENEME henüz 4

yaratılmamıştı. Bozulduğu sırada ise vardı. DENEME_TABLESPACE i yedekten dönüp, recover etmeye başladığımızda önce arşiv dosyalarını okudu, ardından redolog lara baktı ve datafile i son hâline getirdi. CCEBI_DENEME tablosunun tekrar oluşmasını buna borçluyuz. Eğer aynı tablespace te birden çok datafile olsaydı, yapılacak işlem yine aynı olurdu. Problemli datafile ın recover edilmesi yeterli oluyor. Aynı tablespace içindeki diğer datafile lar etkilenmiyor. Ve bütün bu işlemler veritabanı açıkken yapılabiliyor. 4. Block Bazında Datafile'ın Bozulma Durumu RMAN ile block bazında kurtarma imkanımız var; ancak bunun dışında recover ediliyor mu bilmiyorum ve bulamadım. Benim yaptığım denemede, RMAN kullanmadım ve recover işlemi başarısız oldu. Aşağıdaki adımları takip edebilirsiniz: $ dd if=/dev/zero of=/data2/ccebi_test/oradata/deneme_tablespace_01.dbf \ bs=128k count=8 conv=notrunc skip=30 8+0 records in. 8+0 records out. Bunu yaptığım anda, datafile header bozuldu ve kurtarma başarısız oldu. Yine daha önce alınan dosya backup ından dönmem gerekti. 5. Offline olan bir datafile'i yeniden Online'a Alma Herhangi bir nedenle, bir datafile offline'a alınırsa, tekrar online a almak için recover işleminin yapılması gerekir. Aşağıdaki örnekte offline a alma işini biz gerçekleştiriyoruz. Fakat bazı durumlarda Oracle da offline a alma işini yapabilir. SQL> alter database datafile offline; Database altered. Aşağıdaki sorguyla, datafile in offline konumda olduğunu görebilirsiniz. SQL> select name, r.* from v$datafile d, v$recover_file r where d.file#=r.file#; Şimdi online a almaya çalışalım: SQL> alter database datafile online; 5

alter database datafile online * ERROR at line 1: ORA-01113: file 22 needs media recovery ORA-01110: data file 22: Recover etmemizi istiyor. Deneyelim: SQL> RECOVER DATAFILE ; Media recovery complete. SQL> alter database datafile online; Database altered. Bundan sonra kaldığımız yerden devam ediyoruz. 6.Dosya bozulmalarıyla ilgili bir iki nokta... Son olarak dosya bozulmalarıyla ilgili bir iki noktayı paylaşmak istiyorum. Data block a veri yazılırken, ani bir kesilme olursa, parçalı bir yazma gerçekleşirse, block a yazıldığı hâlde, block header güncellenmezse Oracle datablock u corrupt bırakır. Genellikle, commit işlemi yapıldığı hâlde block a data yazılamadıysa, block corruption ile karşılaşırız. Đki çeşit bozulma olabilir. Bunlardan biri logical corruption olarak geçer. Header-footer ile ilgili bir sorun vardır. NOLOGGING mode da bir nesneyi recover ettiyseniz, logical corruption ile karşılaşabilirsiniz. Diğeri ise physical corruption (fiziksel bozulma) olarak adlandırılır. Fiziksel bir bozulma (örneğin, disk üzerinde bad sector vs...) vardır. Bir block bozulmasında, ilgili block a gelinceye kadar problem olmadan çalışabilirsiniz. Problem olup olmadığını önceden bilmek isterseniz, bozulan datafile ı (ya da data block u) RMAN ya da DBVERIFY ile tespit edebilirsiniz. i) RMAN ile tespit etmek: RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE; SQL> SELECT * FROM V$DATABASE_BLOCK_CORRUPTION; 6

ii) DBVERIFY ile tespit etmek: $ dbv file=/data2/ccebi_test/oradata/deneme_tablespace_01.dbf blocksize=8192 DBVERIFY: Release 10.2.0.3.0 - Production on Mon Apr 27 14:14:14 2009 DBVERIFY - Verification starting : FILE = /data2/ccebi_test/oradata/deneme_tablespace_01.dbf DBVERIFY - Verification complete Total Pages Examined : 19968 Total Pages Processed (Data) : 18713 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 0 Total Pages Failing (Index): 0 Total Pages Processed (Other): 209 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 1046 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Highest block SCN : 1671336759 (11.1671336759) Yukarıdaki sağlam bir dosya içindi. Peki ya dosya bozuk olursa?... Page 19966 is marked corrupt Corrupt block relative dba: 0x00004dfe (file 0, block 19966) Bad header found during dbv: Data in bad block: type: 0 format: 2 rdba: 0x05804dfe last change scn: 0x0000.00000000 seq: 0x1 flg: 0x05 spare1: 0x0 spare2: 0x0 spare3: 0x0 consistency value in tail: 0x00000001 check value in block header: 0x49d8 computed block checksum: 0x0... DBVERIFY - Verification complete Total Pages Examined : 19968 Total Pages Processed (Data) : 0 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 0 Total Pages Failing (Index): 0 Total Pages Processed (Other): 0 Total Pages Processed (Seg) : 0 7

Total Pages Failing (Seg) : 0 Total Pages Empty : 158 Total Pages Marked Corrupt : 19810 Total Pages Influx : 0 Highest block SCN : 0 (0.0) Block bazında kontroller için DB_BLOCK_CHECKSUM ve DB_BLOCK_CHECKING başlangıç parametreleri önemlidir. DB_BLOCK_CHECKSUM değeri TRUE ise diske yazılmadan önce her block için bir checksum değeri hesaplanır. %1-2 performans kaybına neden olur. DB_BLOCK_CHECKING ise her DML işleminden sonra datablock un tutarlılığını kontrol etmek içindir. %1-10 arası bir performans kaybı yaratır. Yukarıdakine benzer testleri yapmadan önce son bir uyarı yapalım. Oracle istenilen data yı database buffer cache te tutuyorsa, önce bellekten getirir. O yüzden dosyayı bozar bozmaz, CCEBI_DENEME tablosunu sorguladığımda, sorunla karşılaşmadım. Dirty buffer ı diske çekmek için checkpoint yaptığımda, yine sorun çıkmadı. Ancak artık CCEBI_DENEME tablosuna ulaşamıyor ve aşağıdaki hatayı alıyordum: ORA-00376: file 22 cannot be read at this time ORA-01110: data file 22: Bu beklenen bir durum. Fakat beklemediğim durum, dosyanın sıfırlanmasından sonra checkpoint attığımda boyutunun değiştirilmesi: $ cp /dev/null /data2/ccebi_test/oradata/deneme_tablespace_01.dbf $ ls -ltr /data2/ccebi_test/oradata/deneme_tablespace_01.dbf -rw-r----- 1 oracle3 dba 0 Apr 27 10:39 deneme_tablespace_01.dbf # CHECKPOINT ATILIYOR $ ls -ltr /data2/ccebi_test/oradata/deneme_tablespace_01.dbf -rw-r----- 1 oracle3 dba 6381568 Apr 27 10:40 deneme_tablespace_01.dbf Bu dosyayı kurtarmak için mutlaka datafile in yedeğinin kullanılması gerekiyor. Ama boyut değiştirmesini ilginç buldum... 8