HQbird Çoğaltma
Yerel master-slave çoğaltma HQbird Enterprise içinde: DML ve DDL, tetikleyicisiz, çoğaltılan tablolarda benzersiz veya birincil anahtarlar. %100 Firebird 2.5-5.0 uyumlu - yedekleme/geri yükleme olmadan ikili dosyaları değiştirin. Bir lisans bir master ve bir replika kapsar; ek replikalar ayrıca satılır.
Asenkron vs senkron
Async genellikle üretim için doğru seçimdir.
Asenkron (önerilen)
Master, işlenen değişiklikleri segment dosyalarına kaydeder; replikalar bunları arka planda çeker ve uygular. Varsayılan flush süresi 90 saniyedir (genellikle 15-30 olarak ayarlanır). Replika çevrimiçi olarak yeniden oluşturulabilir; başlamak için master durdurulmaz. Bulut veya yüksek gecikmeli bağlantılar için uygundur. Ağır yük altında gecikme artabilir.
Senkron
Master, işlenen değişiklikleri doğrudan replika(lar)a yazar. Gecikme ~1-2 saniye; istikrarlı ~1 Gbps yol gerektirir. Replika salt okunurdur (bazı uyarılarla). Bir replikayı yeniden oluşturmak master'ın durdurulmasını gerektirir. Özel failover (3+ düğüm), okuma yükünü dengeleme veya async ile karışık kullanım için uygundur.
Kurulum
Master ve replikaya Firebird ile HQbird Server kurun. Windows: HQbirdServer2024.exe (2.5-5.0). Yönetim araçları çoğaltma için isteğe bağlıdır. Linux: kurulum rehberi. Deneme veya tam lisansla kaydolun. Kullanıcı Rehberi §2 sunucu kurulumunu kapsar.
Firebird 2.5: HQbird SuperClassic kurar. Veritabanı başlığında büyük bir sayfa arabelleği sayısı varsa performans düşebilir. firebird.conf'un kazanması için arabellekleri 0 olarak ayarlayın:
gfix -buff 0 -user SYSDBA -pass masterkey disk:\path\database.fdb
Adımlar - asenkron çoğaltma
- Veritabanını master olarak yapılandırın.
- Bir replika dosyası oluşturun (
nbackupveya "Replika veritabanını yeniden başlat"). - Replika sunucusunu yapılandırın.
Adım 1 - Master
http://127.0.0.1:8082 adresini açın (port yapılandırılabilir). admin / güçlü şifre ile giriş yapın. Aktif sunucu widget'ının Firebird 2.5/3.0/4.0/5.0 HQbird gösterdiğini doğrulayın.
Veritabanı ekleyin: takma ad artı dosya yolu, takma ad değil - takma adlar çoğaltılmaz.
Veritabanı başlık simgesinden çoğaltmayı açın. Master → Asenkron → Kaydet'i seçin. Parametrelerin ilk bağlantıda yüklenmesi için Firebird'ü (veya tüm Classic bağlantılarını) yeniden başlatın.
- Günlük dizini - operasyonel segmentler, varsayılan
${db.default-directory}\ReplicationLog. Motor tarafından yönetilir; olduğu gibi bırakın. - Günlük arşiv dizini - arşivlenmiş segmentler, varsayılan veritabanının yanında
${db.path}.LogArch. - Günlük arşiv komutunu geçersiz kıl - boş bırakın.
- İşlenen verileri zorla flush et - varsayılan 90 saniye.
Yazma işlemlerinden hemen sonra günlük dizininde dönen dosyalar görmelisiniz, ardından commit/zaman aşımından sonra arşivlenmiş segmentler. Operasyonel segmentlere dokunmayın. Arşivleri replikaya kopyalama: ağ paylaşımı veya FTP/SSH.
Adım 2 - İlk replika dosyası
HQbird 2018 R2'den itibaren, Replika veritabanını yeniden başlat master'ın yanında employee30.fdb.17-Apr-2018_142507.4replica gibi adlandırılmış bir kopya oluşturur. Veya master'ı durdurmadan nbackup kullanın.
Adım 3 - Replika sunucusu
Replikayı FBDataGuard'a replika GUID'i olduktan sonra kaydedin. Gerekli ayar, arşivlenmiş segmentlerin klasörüdür. Kaydedin ve Firebird'ü yeniden başlatın. Varsayılanlar replikanın yanındaki bir klasörden içe aktarılır; işlenen segmentler silinir. Farklı veritabanlarından arşivleri aynı klasörde karıştırmayın.
Adımlar - senkron çoğaltma
- Firebird'ü durdurun.
- Master dosyasını kopyalayın, replika moduna geçirin, replika sunucusuna/sunucularına kopyalayın.
- Replika sunucusunu/sunucularını FBDataGuard'da yapılandırın.
- Master'dan önce replika(lar)ı başlatın.
- Master'ı yapılandırın, ardından master'ı başlatın.
Async'den daha fazla kesinti süresi: replika, master başlamadan önce çevrimiçi olmalıdır. Örnek uzak replika: sunucu replicaserver, yol /data/test2.fdb. Replikada, bu kopyanın yanında gfix -replica {master-guid} yeterlidir.
Üretim sisteminde test etme
Bir çoğaltma hatasının çoğaltmayı kapatması ve master'ın hizmet vermeye devam etmesi için disable_on_error değerini true olarak ayarlayın. Hatayı düzelttikten sonra temiz bir günlükten yeniden başlatın. Hatalar ve uyarılar için FBDataGuard'da Çoğaltma günlüğü işini etkinleştirin.
nbackup ile replika kopyası oluşturma
Async (ve ek replikalar) için master'ı durdurmadan çevrimiçi çalışır. Veya Firebird'ü durdurup dosyayı kopyalayın.
nbackup -l database_path_name -user SYSDBA -pass masterkey
copy database_path_name replica_path_name
nbackup -n database_path_name -user SYSDBA -pass masterkey
nbackup -f replica_path_name
gfix replica_path_name -replica {DATABASEGUID} -user SYSDBA -pass masterkey
DATABASEGUID, gstat -h çıktısındaki master'ın benzersiz kimliğidir. Eksikse, HQbird'ün Firebird ikili dosyalarıyla bir kez bağlanın ve gstat -h komutunu tekrar çalıştırın.
gfix disk:\path\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\path\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey
Boş {} dosyayı normal (okuma-yazma) moduna döndürür. Bir replikada salt okunur işler (SELECT) yapabilirsiniz; verileri veya meta verileri değiştirmeyin.