Koçbey Forum Sayfası
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Yedek Alma ve Geri Getirme

Aşağa gitmek

Yedek Alma ve Geri Getirme Empty Yedek Alma ve Geri Getirme

Mesaj  Mehmet Çarş. Haz. 04, 2008 11:50 am

Oracle, verİleri her ne kadar güvenli tutsa da, fiziksel sebeplerden(disk hataları), kullanıcı hatalarından veya benzer durumlardan dolayı yedeklere ihtiyaç duyulmaktadır. Yedek alma, veritabanı yöneticisinin yapacağı önemli işlerden birisidir.
Oracle’da, yedek almayla ilgili değişik yöntemler vardır. Veritabanı yöneticisi, kendi veritabanının durumuna göre, yedek almayla ilgili bir veya birden fazla yöntemi kullanmaya karar vermelidir. Bu kararı vermede, yönetici, yedeği kimin alacağı, hangi tür depolama ünitesine alınacağı, ne kadar sıklıkla alınacağı, alınan yedeklerin büyüklüğü, veritabanında küçük de olsa bir kayba tahammül olup olmadığı gibi çok değişik sebepleri göz önünde bulundurmak zorundadır.

Fiziksel Yedek Alma
Fiziksel yedek alma veri dosyalarının, redo log dosyalarının ve kontrol dosyalarının yedeklerinin alınması işlemidir. Bir veritabanı ARCHIVELOG ve NOARCHIVELOG olmak üzere iki farklı modda çalışabilir. ARCHIVELOG modunda yapılan tüm işlemler redo log dosyalarına otomatik olarak kaydedilir. Bunun anlamı veritabanındaki değişikliklerin sürekli dosyalara kaydedilmesidir. Kaydedilen bu dosyaların hangİleri olduğu ve nerede bulundukları gibi bilgiler init. ora dosyası içerisinde yer alır. ARCHIVELOG modda çalışan bir veritabanında veri kaybı söz konusu değildir. Eğer veritabanı NOARCHIVELOG modda çalışıyorsa yapılan değişiklikler bir yere kaydedilmeyecektir. Bu yüzden sistemin bozulması durumunda ancak son alınan yedekler geri getirilebilir. Yani son alınan yedekten sonra yapılan değişiklikler kaybolur. Işletim sistemi yedeği alma olarak ta bilinen fiziksel yedek alma işleminin dezavantajı, yedek alma işlemi boyunca veritabanının kapatılması gereğidir.

NOARCHIVELOG Modunda Yedek Alma
Bu modda yedek almak için komut moduna geçilerek aşağıdaki işlemleri yapmak gerekir. Bundan önce SQL*Plus içerisinde yedeği alınacak dosyaların tespiti yapılmalıdır.
[img]http://www.kocbey.com/oracle/image002.jpg[/img}

Burada kullanılan V$LOGFILE, V$CONTROLFILE ve DBA_DATFILES dosyaları veri sözlüğündeki görüntülerdir. Bu görüntüleri sorgulayarak yedeklememiz gereken dosyaları ve bunların nerede bulunduklarını öğreniyoruz. Burada yapacağımız iş veritabanı oturumunu kapattıktan sonra, bu dosyaları bir başka depolama ünitesine kopyalamak. Veritabanını Windows NT veya Windows 2000 içerisinde, Denetim Masası’na girip “Sevices” simgesine çift tıkladıktan sonra burada “Oracle” ile başlayan tüm servisleri durdurarak kapatabiliriz. Bu işlemler komut modundan da yapılabilir. Bunun için veritabanı yüklenirken belirtilen dizin içerisindeki “Svrmgrl” programı çalıştırılır. Eğer varsayılan dizini seçtiyseniz bu “c:\oracle\ora81\bin” dizinidir. Komut modunda şu adımlar gerçekleştirilir:
svrmgr
svrmgr>connect internal
svrmgr>shutdown immediate
svrmgr>exit
lsnrctl stop
Buradaki işlemlerde önce sunucu yöneticisine(server manager) bağlanılıyor ve sonra da veritabaını kapatılıyor. En sonda da Dinleyici(Listener) durduruluyor. Ilgili dosyalar kopyalandıktan sonra :
svrmgr
svrmgr>connect internal
svrmgr>startup
Bu dosyaları bir bozulma anında tekrar geri yüklemek için veritabanını kapatıp dosyaları geriye kopyalamak ve sonra yeniden veritabanını açmak gerekir. Işte burada son yapılan değişiklikler kaybolur.

ARCHIVELOG Modunda Yedek Alma
Bu modda yapılan değişiklikler otomatik olarak redo log dosyalarına yazıldığı için dosyaları tek tek kopyalamak gerekmez. Fakat bu değişikliklerin kaydedildiği dosyaları yedeklemek yararlı olabilir. Veritabanında bir bozukluk durumunda yapacağımız iş veritabanını kapatıp “Recover Database” komutunu kullanmak ve sonra veritabanını yeniden açmak. “Recover Database” komutunu kullanmak için veritabanı “Mount” modunda açılır.
svrmgr
svrmgr>connect internal
svrmgr>shutdown immediate
exit
lsnrctl stop
svrmgr
svrmgr>connect internal
svrmgr>startup mount
svrmgr>recover database

Mantıksal Yedek Alma
Oracle’da mantıksal yedek alma denince Export ve Import anlaşılır. Bunlar Oracle firmasının geliştirdiği komut modunda çalışan yardımcı programlardır. Bu tür yedek alma veritabanı nesnelerinin yedeklenmesi olduğu için mantıksal yedek olarak adlandırılır. Yani export ile log dosyalarının ya da kontrol dosyalarının yedeği alınmaz.

Export
Export Oracle’ın mantıksal yedek alma işlemleri için geliştirdiği bir üründür. Mantıksal yedek alma veritabanının kapatılmaması gerektiği zaman kullanılan bir yedek alma türüdür. Bu yöntemle farklı modlarda yedek alınabilir. Bunlar aşağıda açıklanacaktır. Export ile alınan yedekler ancak Import ile geri yüklenebilir. Export kullanılarak bir veritabanının yapısı veriler olmadan yedeklenebilir, belli tablolar verilerle birlikte ya da sadece yapıları ile yedeklenebilir, yani yedeklenecek veritabanı nesnelerinin seçimi yapılabilir.
Export almada 4 mod vardır:
1-Tablo Modu(Table Mode)’dur. Bu modda kullanıcılar kendi tablolarının yedeklerini alabilirler ya da hakkı olan kullanıcı bir başka kullanıcnın tablolarının yedeklerini alabilir.
2- Kullanıcı Modu(User Mode)’dur. Bu modda bir kullanıcının nesnelerinin yedeği alınabilir.
3- Tam Veritabanı Modu’dur(Full Database Mode). Bu modda tüm veri tabanının yedeği alınabilir. Bu modu gerçekleştirmek için kullanıcının bazı özel haklara sahip olması gerekir. EXP_FULL_DATABASE rolüne sahip olan kullanıcı ya da DBA rolüne sahip olan kullanıcılar bu modu kullanabilir.
4-Tablo Uzayı Modu’dur. Bu modda da tablo uzaylarının yedeği alınır.
Export yardımcı programını çalıştırmak için komut moduna geçilmelidir. Exp. exe dosyası Oracle8i kurulurken varsayılan dizin adı kabul edildiyse “c:\oracle\ora81\bin” dizini içerisinde bulunabilir. Aşağıdaki örnekler bu dizine geçip komut modunda yazılarak çalıştırılabilir.
Tam Veritabanı Modu örnekleri:
c:\ exp system/manager full=Y file=deneme. dmp
Yukarıdaki komut tüm veritabanının yedeğini alır. Eğer tüm veritabanı içerisinde istenilen belli özelliklerin yedeği alınmak istenirse etkileşimli metod kullanılır(aşağıdaki gibi).
c:\exp system/manager
. . . . . . . .
Enter array buffer size: (return) ‘veri tamponunun büyüklüğü’
Export file:EXPDAT. DMP>deneme. dmp ‘varsayılan yedekleme dosyası ismi EXPDAT. dmp’
E(ntire databese), U(sers), T(ables):U>e ‘tüm veritabanı mı? Kullanıcı ya da Tablo yedeği mi?’
Export grants(Y/N):Y>y ‘kullanıcı haklarının yedeği alınsın mı?’
Export Table Data(Y/N):Y>y ‘ veriler kopyalansın mı?’
. . . . . . .
Kullanıcı Modu Örnekleri:
C:\exp scott/tiger file=scott. dmp Scott kullanıcısının tüm nesneleri ve verİleri scott. dmp dosyasına yedeklenir. Etkileşimli mod için yine “c:\exp scott/tiger” şeklinde komut girilir.
Tablo Modu Örnekleri:
c:\System kullanıcısı kendisine ait olan a tablosunu, scott kullanıcısına ait olan b tablosunu ve mehmet kullanıcısına ait olan d tablosunu yedekliyor. “rows=n” bildirisiyle tablo verİlerinin alınmamasını sadece tablonun yapılarının kopyalanmasını sağlıyor.

Import
Export ile yedeklenen veriler Import yardımcı programıyla geri getirilebilir. Yedeklenmiş dosyanın tamamı ya da bir kısmı yedekleyen kullanıcı için geri getirilebildiği gibi bir başka kullanıcıya da aktarılabilir.
C:\imp system/manager file=deneme. dmp fromuser=usr_esef tables=(isci, bolum)
usr_esef kullanıcısının deneme. dmp tablosuna yedeklediği isci ve bolum tabloları geri getirilir.
C:\imp system/manager file=scott. dmp fromuser=scott touser=esef tables=(*)
scott kullanıcısının scott. dmp isimli yedek dosyasındaki tüm tablolar esef kullanıcısına aktarılır. Tüm tablolar için “ *” işareti kullanılır.
Mehmet
Mehmet

Mesaj Sayısı : 120
Kayıt tarihi : 20/05/08

http://www.kocbey.com

Sayfa başına dön Aşağa gitmek

Sayfa başına dön


 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz