11.2- Mantıksal yedekleme işlemi
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:
Birincisi 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. İkincisi Kullanıcı Modu(User Mode)’dur. Bu modda bir kullanıcının nesnelerinin yedeği alınabilir. Üçüncüsü 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. Dördüncüsü 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. Aşağıdaki örnekler bu dizine geçip komut modunda yazılarak çalıştırılabilir.
Tam Veritabanı Modu örnekleri:
>exp MASCA/password@PROJE full=Y file=d:\yedek.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).
>exp MASCA/password@PROJE
........
Enter array buffer size:4096>(return) ‘veri tamponunun büyüklüğü
Export file:EXPDAT.DMP>d:\yedek.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:
>exp MASCA/password@PROJE file=d:\yedek.dmp
MASCA kullanıcısının tüm nesneleri ve verileri yedek.dmp dosyasına yedeklenir. Etkileşimli mod için yine “>exp MASCA/password@PROJE” şeklinde komut girilir.
Tablo Modu Örnekleri:
>exp MASCA/password@PROJE tables(‘il_listesi’,muhasebe.personel,finans.birimler) rows=n
MASCA kullanıcısı kendisine ait olan il_listesi tablosunu, MUHASEBE kullanıcısına ait olan personel tablosunu ve FINANS kullanıcısına ait olan birimler tablosunu yedekliyor. “rows=n” bildirisiyle tablo verilerinin 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.
>imp MASCA/password@PROJE file=d:\yedek.dmp touser=MASCA fromuser=MASCA tables=(personel,birimler)
MASCA kullanıcısının yedek.dmp tablosuna yedeklediği personel ve birimler tabloları geri getirilir.
>imp MASCA/password file=d:\yedek.dmp fromuser=MUHASEBE touser=MASCA tables=(*)
MASCA kullanıcısının yedek.dmp isimli yedek dosyasındaki tüm tablolar MUHASEBE kullanıcısına aktarılır. Tüm tablolar için “*” işareti kullanılır.