Bu sayfa makine çevirisidir. İngilizce orijinalini okuyun. English

IBSurgeon kütüphanesi

InterBase XE7 çevrimiçi dökümü ile yedeklemeler nasıl uygulanır

Dmitry Kuzmenko, 08-EYL-2016

InterBase, 2007 sürümünden itibaren çevrimiçi dökümü (online dump) destekler - veritabanı dosyasının çevrimiçi kopyalanması. gbak -b/-c yerine bu, kopyalama sonrasında kullanıma hazır bir veritabanı elde etmenizi sağlar ve yedekten “geri yükleme” yapmanıza gerek kalmaz (veritabanı olmayan bir şey). Çevrimiçi döküm çok hızlıdır, neredeyse işletim sistemi tarafından dosya kopyalama gibidir.

Veritabanının çevrimiçi dökümünü yapmak için aşağıdaki komutu kullanın:

gbak -d [seçenekler] veritabanı hedef

(Dökümün tam açıklamasını dokümantasyonda, Doc\OpGuide.pdf, veya burada bulabilirsiniz)

Veritabanı dosyasında olduğu gibi, hedef de istediğiniz herhangi bir ad ve uzantıya sahip olabilir. Komutun sonucu, orijinal veritabanına eşdeğer ancak salt okunur modda olan bir döküm dosyası olacaktır.

Bu komutun ilk çalıştırılmasının süresi, kaynak veritabanını tarama (okuma) süresi ve hedef dosyayı yazma süresidir.

Hedef salt okunur modda olduğu sürece, veritabanı dosyasına bağlıdır. İlk dökümde, veritabanı dosyasının tamamı okunur ve hedefe kopyalanır. İkinci ve sonraki dökümlerde ise yalnızca değiştirilen sayfalar hedefe yazılır. Buna “artımlı döküm” (incremental dump) denir.

Önemli! InterBase XE7, tekrarlanan her döküm komutunda (tabii ki aynı dosya adlarıyla) veritabanının yalnızca değiştirilen sayfalarını okur ve bunları hedefe yazar. XE7’den önceki diğer sürümler kaynak veritabanının tamamını okur. Bu nedenle performans farklıdır ve XE7 çok daha hızlıdır. Kaynak veritabanında hiçbir sayfa değişmediyse, XE7 artımlı dökümü ~1 saniye sürerken, InterBase2007-XE3 tüm veritabanı dosyasını okumak için gereken süreyi harcar. Bu süre, kaynak veritabanının boyutuna ve depolama hızına bağlıdır. Örneğin, depolama hızı yaklaşık 400mb/sn ise, 100gb’lık bir veritabanı 250 saniyede (4 dakika 10 saniye) taranır.

Not. InterBase XE7, XE7 (ODS 16), XE/XE3 (ODS 15) ve 2009 (ODS 13) veritabanı dosya formatlarını destekler. Yukarıda bahsedilen akıllı tarama özelliği yalnızca XE7 (ODS 16) veritabanı formatıyla çalışır.

Hedefi okuma-yazma moduna (normal mod) geçirmeniz gerekiyorsa, şu komutu kullanın:

gfix hedef -mode read_write

Ancak bundan sonra hedef, veritabanıyla olan bağlantısını kaybeder ve gbak -d veritabanı hedef komutunun sonraki çalıştırılması artık mümkün olmaz çünkü hedef “başka” bir veritabanı olarak kabul edilir.

Hedefi artımlı döküm yerine tamamen üzerine yazmak istiyorsanız, -ov seçeneğini kullanın:

gbak -d -ov veritabanı hedef

Dökümün dökümü

Dökümün ilk dökümü çalışacaktır, ancak sonraki artımlar çalışmayacaktır. Örneğin, ilk olarak:

gbak -d veritabanı hedef1

burada hedef1’i salt okunur modda tam dökümü yapılmış bir veritabanı olarak elde ederiz.

Sonra,

gbak -d hedef1 hedef2

Gördüğünüz gibi, dökümün dökümünü oluşturuyoruz. Ve evet, bu komut hedef1’i hedef2’ye kopyalayacaktır. Her iki hedef de salt okunur modda olacaktır. Ancak bu iki komutu tekrar tekrar çalıştırırsak, veritabanından hedef1’e giden değişiklikler hedef2’ye kopyalanmayacaktır. Yani hedef2, ilk, başlangıç kopyasından sonraki durumda kalır. Ve hiçbir hata veya uyarı mesajı yoktur.

Bu nedenle, eğer dökümün dökümünü yapmak isterseniz, yalnızca tam döküm kullanmalısınız:

gbak -d -ov hedef1 hedef2

-ov seçeneği zorunludur; hedef2’nin hedef1 kaynağıyla yazılacağını (ve üzerine yazılacağını) garanti etmek için.

Yedekleme şeması 1

Farklı zaman aralıklarında döküm örneği:

gbak -d veritabanı hedef

Örneğin, her 1 saatte bir çalıştırılır. Burada üretim kaynak veritabanımız ve bir saat geride olan “yedek” kopya hedefimiz var.

Ayrıca, ek olarak, her 24 saatte bir şunu çalıştırabiliriz:

gbak -d veritabanı hedef2

Burada üretim veritabanımız, 1 saat gerideki hedef kopyası ve 24 saat gerideki hedef2 kopyası var.

Tek bir veritabanından istediğiniz sayıda döküm yapabilirsiniz.

Söylemeye gerek yok ki, hedef dökümler herhangi bir amaç için salt okunur veritabanları olarak kullanılabilir - raporlama, analitik vb. - gerçek veritabanına bakmayı gerektirmeyen görevler için.

Artı: Her döküm bağımsız olarak zamanlanabilir.

Eksi: En yeni ve en eski döküm arasındaki gecikmeler.

Yedekleme şeması 2

Farklı hedeflere sıralı döküm. Bu durumda, belirtilen zaman aralığında birer birer aşağıdaki komutları çalıştırmak için bir zamanlayıcı (OS veya özel) ayarlamanız gerekir:

gbak -d veritabanı hedef1

gbak -d veritabanı hedef2

gbak -d veritabanı hedef3

Bu komutlar arasında 1 saatlik bir aralık kullanırsanız, şu şekilde dökümlere (yedeklere) sahip olursunuz:

hedef1 12:00’de, hedef2 13:00’te, hedef3 14:00’te. Döküm hedef1’in bir sonraki çalıştırılması 15:00’te güncellenecek ve böyle devam edecektir. Sonuç olarak, son 3 saate ait veritabanı kopyalarına sahip oluruz.

Artı: orijinal veritabanına yakın kalan birkaç saatlik dökümlerimiz var.

Eksi: bu komutları zamanlamak biraz zordur. Yani bu örnekte döküm komutlarının tam saatle zamanlanması gerekir:

hedef1’e döküm 00:00, 03:00, 06:00’da…

hedef2’ye döküm 01:00, 04:00, 07:00’de…

hedef3’e döküm 02:00, 05:00, 08:00’de…

Özet

Gbak -d, yerel depolamaya döküm ve ağ üzerinden döküm için kullanılabilir - çünkü artımlı döküm hedefe yalnızca değiştirilen sayfaları gönderir. Böylece hedef, uzak ağ depolamasına yerleştirilebilir. Ancak elbette, ağın yerel depolamayla uyumlu olması için iyi bir bant genişliğine sahip olması gerekir. Aksi takdirde, hedefe yazımlar yavaş olacaktır.

Çevrimiçi döküm, yalnızca veritabanının çevrimiçi yedek kopyasını oluşturmak için bir araç olarak değil, aynı zamanda sistemin “yatay ölçeklendirmesini” yapmak, üretim, raporlama ve analitik uygulamalarının yükünü dengelemek için bir araç olarak da kullanılabilir.

Çevrimiçi dökümün çevrimiçi veritabanı kopyası almanın en hızlı yolu olduğunu görürken (gbak -b/-c yerine), döküm sayfalarla çalıştığından, veritabanı bozuksa sayfalardaki bazı hasarları atlayabilir. Bu nedenle, veritabanı tutarlılığını eski güzel gbak -b/-c ile kontrol etmeniz hâlâ gerekir, ancak bunu eskisinden daha az sıklıkla yapabilirsiniz.