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

IBSurgeon kütüphanesi

HQbird 2024R2 Güncelleme 10 Detaylı Yenilikler

HQbird 2024R2 Güncelleme 10’da Yeni Olanlar

Materialized View’lar (5.0’da Yeni Özellik)

HQbird artık Materialized View’lar için tam destek içerir - normal bir tablonun fiziksel depolamasını bir view tanımıyla birleştiren yeni bir veritabanı nesne türü.

Genel Bakış

Materialized View (MV), motorun temel MV tablosunu veri satırlarıyla doldurmak için kullandığı standart bir SQL sorgusu kullanılarak tanımlanır. Normal view’ların aksine, MV verileri diskte kalıcı olarak saklanır ve indekslenebilir. DML ifadeleri (INSERT, UPDATE, DELETE) doğrudan MV’ler üzerinde izin verilmez - veriler yeni REFRESH komutu kullanılarak güncellenmelidir.

Materialized View Oluşturma ve Yönetme

  • CREATE [OR ALTER] MATERIALIZED VIEW - isteğe bağlı ilk veri yüklemesiyle (WITH DATA / WITH NO DATA) bir MV oluşturur veya değiştirir.
  • ALTER MATERIALIZED VIEW - MV tanımını değiştirir; mevcut tüm indeksleri otomatik olarak siler.
  • RECREATE MATERIALIZED VIEW - aynı ada sahip mevcut herhangi bir view’ı (normal veya materialized) siler ve yeni bir MV oluşturur.
  • DROP VIEW - bir materialized view’ı silmek için kullanılır (ayrı bir DROP MATERIALIZED VIEW komutu yoktur).
  • MV’ler üzerinde her türlü indeks oluşturulabilir. Kısıtlamalar ve tetikleyiciler desteklenmez.

View Türleri Arasında Dönüştürme

  • ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED - bir MV’yi normal bir view’a dönüştürür. Tüm indeksler ve veriler silinir.
  • ALTER VIEW ... TO MATERIALIZED - normal bir view’ı materialized bir view’a dönüştürür. Bağımlı nesneler etkilenmez.

Materialized View Verilerini Yenileme

Yeni REFRESH MATERIALIZED VIEW ifadesi MV içeriğini günceller. Bu bir DDL komutudur - yürütme, mevcut işlem commit edilene kadar ertelenir. Dört mod mevcuttur:

  • Tam yeniden yükleme (özel mod) - REFRESH MATERIALIZED VIEW

    • İndeksleri devre dışı bırakır, mevcut tüm verileri siler, MV sorgusundan yeniden yükler, indeksleri yeniden etkinleştirir.
    • Çok sayıda satır değiştiğinde en hızlı seçenek.
    • MV tablosunda özel kilit gerektirir.
    • Veri yükleme hatasında: yeni yüklenen veriler silinir, indeksler boş olarak yeniden etkinleştirilir.
    • İndeks etkinleştirme hatasında: etkilenen indeks devre dışı bırakılır; veriler ve diğer indeksler etkilenmez. İndeks oluşturma hataları uyarı olarak raporlanır.
  • Eşzamanlı güncelleme - REFRESH MATERIALIZED VIEW CONCURRENTLY

    • Özel kilit gerekmez - yenileme sırasında MV üzerinde eşzamanlı sorgulara izin verilir.
    • İki sıralı imleçle bir birleştirme algoritması kullanır: biri mevcut MV verileri için, diğeri MV sorgu sonuçları için.
    • Yeni satırlar ekler, değişen satırları günceller, kaldırılan satırları siler - tümü işlem kontrolü altında.
    • MV üzerinde benzersiz bir indeks gerektirir.
    • Eşzamanlı erişim gerektiğinde veya son yenilemeden bu yana az sayıda satır değiştiğinde tercih edilir.
    • Not: MV sorgusu ORDER BY içeriyorsa, eşzamanlı yenilemeden sonra satır sırası korunmayabilir.
  • Tüm verileri sil - REFRESH MATERIALIZED VIEW DROP DATA

    • Tüm MV verilerini ve indeks içeriklerini siler. Disk alanı boşaltmak için kullanışlıdır. Özel kilit gerektirir.
  • Basamaklı yenileme - yukarıdaki formlardan herhangi birine CASCADE ekleyin

    • Verilen MV’nin bağlı olduğu tüm MV’leri doğru bağımlılık sırasına göre yeniler.
    • Her MV yalnızca bir kez işlenir.
    • CONCURRENTLY CASCADE, etkilenen tüm MV’lerin benzersiz bir indekse sahip olmasını gerektirir.
    • DROP DATA CASCADE, etkilenen tüm MV’lerin verilerini siler.
    • Etkilenen MV adları ve yenileme sırası, commit’ten önce durum vektöründe uyarı olarak raporlanır.

Yedekleme ve Geri Yükleme (gbak)

  • Yedekleme: MV verileri, normal view’larla aynı şekilde yedekleme dosyasında saklanmaz - özel bir işlem gerekmez.
  • Geri yükleme: tüm MV’ler, geri yükleme işleminin sonunda doğru bağımlılık sırasına göre otomatik olarak yenilenir.
  • Yeni gbak anahtarı -NO_MATVIEWS (-NO_M olarak kısaltılabilir) - geri yükleme sırasında MV yenilemeyi atlar.
  • İlgili Services API seçeneği: isc_spb_res_no_matviews.
  • Önemli: MV içeren bir yedek, MV’leri desteklemeyen bir Firebird sürümünde geri yüklenemez. Daha eski bir sürüme geçerken yedeklemeden önce ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED kullanın.

Bilinen Sınırlamalar / Planlanan Çalışmalar

  • Çoğaltma desteği - henüz uygulanmadı.
  • DDL tetikleyicileri - henüz uygulanmadı.
  • Erişim hakları kontrolü - henüz uygulanmadı.
  • Hata mesajları - inceleme altında.

Yedekleme ve Kurtarma

  • Doğrulama yedekleme görevi: sıkıştırmadan önce döner silme eklendi; disk alanı hesaplama katsayıları artık yapılandırılabilir.
  • nBackup görevi: atlama mantığı düzeltildi; kısmi yeniden adlandırmaları önlemek için günlük yeniden adlandırma algoritması, yeniden denemeli atomik yeniden adlandırma olarak değiştirildi.
  • BRZ görevleri için yedekleme dizini ve dosya adı şablonu artık yapılandırılabilir:
    • backup-directory - veritabanı ve iş başına hedef dizini belirtmeye olanak tanır.
    • backup-name - ör. brr_{0,date,yyyyMMdd_HH-mm-ss}.fbk gibi bir dosya adı şablonu tanımlamaya olanak tanır.
    • Girdi doğrulayıcı eklendi: dizin adı geçerliliğini kontrol eder ve dizin yoksa oluşturur.

Bulut Yedekleme / Dosya Aktarımı

  • cloudbackup (filetransfer) görevinde Socket protokolü üzerinden dosya yükleme desteği eklendi.
  • Seçmeli bölüm başına dosya sıkıştırma seçeneği kaldırıldı - ilgili görevler için dosya sıkıştırma artık her zaman etkindir.

Trace

  • Trace yapılandırmasına ek bir alan olarak connection_id eklendi.
  • Trace raporu işleme: işlem adına göre büyük/küçük harf duyarsız gruplama ve filtreleme eklendi.

VSS Yazıcısı

  • Ek tanılama günlüğü eklendi - veritabanı boyutu, tarih ve saat ile gstat -h çıktısı dahil olmak üzere veritabanı durum bilgileri artık kaydediliyor.

Web Arayüzü

  • Yerelleştirme iyileştirmeleri: web konsolunda çeviriler düzeltildi ve yerelleştirme algoritmaları ayarlandı.
  • Web iletişim kutularına etiket metni içeren görsel bir ayırıcı öğe eklendi - form öğelerinin mantıksal gruplandırılmasını sağlar.
  • İstemci tarafı kaynakları (web sayfaları, JS, CSS) için önbellek temizleme stratejisi değiştirildi - tarayıcıların bir güncellemeden sonra eski dosyaları kullanmasını önler.

Yapılandırma

  • Sunucu yetkilendirme alan adları güncellendi (sysdba/owner, serviceAPI).
  • Sunucu tarafı (Java) dil/yerel ayar ayarı için ayrılmış yapılandırma parametresi eklendi.
  • Varsayılan yapılandırma dosyaları, dosya aktarım görevleri için yeni varsayılan ayarlarla eşleşecek şekilde düzeltildi:
    • Port 8721’den 8722’ye değiştirildi.
    • Varsayılan kullanıcı admin2/admin3‘ten socketuser olarak değiştirildi.
    • Parola gücü ayarı tüm yapılandırmalarda güçlü parola olarak birleştirildi.
  • Bir KA lisans dosyası kaydederken, ana bilgisayar alanında HTTP/HTTPS protokol öneki belirtmek artık gerekli değildir.

Hata Düzeltmeleri

  • Bir veritabanında tüm görevler geçici olarak devre dışı bırakıldığında tetiklenen yanlış kritik uyarı düzeltildi.
  • Yapılandırılan SYSDBA kullanıcısının trace oturumlarını listeleme iznine sahip olmadığı sistemler için etkin trace oturumlarının listesini alırken oluşan hata düzeltildi.
  • UTF-8 kodlu yolları doğru işlemeyen üçüncü taraf bir şifre çözme bileşenindeki hata düzeltildi. Not: mon/trace hizmeti güncellenip yeniden oluşturulana kadar, dosya veya veritabanı yollarındaki UTF-8 karakterleri mon/trace çıktısında hatalara neden olmaya devam edebilir.
  • Boş değerlere sahip anahtarları hatalı şekilde koruyan çoğaltma yapılandırma işleyicisindeki bir sorun düzeltildi.
  • Firebird 4 ve sonrası için journal_archive_command işleme düzeltildi (firebird/firebird PR #8381’deki üst akış düzeltmesiyle uyumlu).
  • dg2fbcc.jar yapılandırma üreteci eklentisindeki ve onun çağrı kodundaki hatalar düzeltildi.

Kurulum ve Derleme

  • Windows kurulum programı gözden geçirilmiş komut dosyaları ve mantıkla güncellendi.
  • İstemci kitaplığı ikili dosyaları güncellendi.
  • OpenSSL daha yeni bir sürüme güncellendi.
  • Ürüne özel derleme varyantları için koşullu kod dalları eklendi.
  • Kurulum derleme sürecine dosya imzalama eklendi.

Sunucu Tarafı Yerelleştirme Altyapısı

Sunucu tarafı (Java) metin mesajları için bir yerelleştirme mekanizması uygulandı. Yerel ayar dosyaları hazırlandı ancak henüz çevirilerle doldurulmadı ve mekanizma henüz üretimde etkinleştirilmedi. Bu altyapı, sunucu mesajlarının gelecekteki yerelleştirilmesi için tasarlanmıştır.