Diese Seite wurde maschinell übersetzt. Lesen Sie das englische Original. English

IBSurgeon-Bibliothek

HQbird 2024R2 Update 10 - Details zu den Neuerungen

Was ist neu in HQbird 2024R2 Update 10

Materialisierte Sichten (Neue Funktion in 5.0)

HQbird bietet jetzt volle Unterstützung für Materialisierte Sichten - einen neuen Datenbankobjekttyp, der die Definition einer Sicht mit der physischen Speicherung einer regulären Tabelle kombiniert.

Überblick

Eine Materialisierte Sicht (MV) wird mit einer standardmäßigen SQL-Abfrage definiert, die die Engine verwendet, um eine zugrunde liegende MV-Tabelle mit Datenzeilen zu füllen. Im Gegensatz zu regulären Sichten werden MV-Daten auf der Festplatte gespeichert und können indiziert werden. DML-Anweisungen (INSERT, UPDATE, DELETE) sind direkt auf MVs nicht erlaubt - Daten müssen mit dem neuen REFRESH-Befehl aktualisiert werden.

Erstellen und Verwalten von Materialisierten Sichten

  • CREATE [OR ALTER] MATERIALIZED VIEW - erstellt oder ersetzt eine MV mit optionalem initialem Datenladen ( WITH DATA / WITH NO DATA).
  • ALTER MATERIALIZED VIEW - ändert die MV-Definition; entfernt automatisch alle vorhandenen Indizes.
  • RECREATE MATERIALIZED VIEW - verwirft eine vorhandene Sicht (regulär oder materialisiert) mit demselben Namen und erstellt eine neue MV.
  • DROP VIEW - wird verwendet, um eine materialisierte Sicht zu verwerfen (kein separater DROP MATERIALIZED VIEW-Befehl).
  • Indizes jeder Art können auf MVs erstellt werden. Constraints und Trigger werden nicht unterstützt.

Konvertierung zwischen Sichttypen

  • ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED - konvertiert eine MV in eine reguläre Sicht. Alle Indizes und Daten werden entfernt.
  • ALTER VIEW ... TO MATERIALIZED - konvertiert eine reguläre Sicht in eine materialisierte Sicht. Abhängige Objekte sind nicht betroffen.

Aktualisieren von Daten Materialisierter Sichten

Die neue REFRESH MATERIALIZED VIEW-Anweisung aktualisiert den MV-Inhalt. Es handelt sich um einen DDL-Befehl - die Ausführung wird bis zum Commit der aktuellen Transaktion verzögert. Vier Modi sind verfügbar:

  • Vollständiges Neuladen (exklusiver Modus) - REFRESH MATERIALIZED VIEW

    • Deaktiviert Indizes, löscht alle vorhandenen Daten, lädt aus der MV-Abfrage neu, reaktiviert Indizes.
    • Schnellste Option, wenn viele Zeilen geändert wurden.
    • Erfordert eine exklusive Sperre auf der MV-Tabelle.
    • Bei Datenladefehler: neu geladene Daten werden gelöscht, Indizes werden als leer reaktiviert.
    • Bei Indexaktivierungsfehler: betroffener Index bleibt inaktiv; Daten und andere Indizes sind nicht betroffen. Indexaufbaufehler werden als Warnungen gemeldet.
  • Paralleles Update - REFRESH MATERIALIZED VIEW CONCURRENTLY

    • Keine exklusive Sperre erforderlich - parallele Abfragen auf der MV sind während der Aktualisierung erlaubt.
    • Verwendet einen Merge-Algorithmus mit zwei geordneten Cursorn: einer für aktuelle MV-Daten, einer für MV-Abfrageergebnisse.
    • Fügt neue Zeilen ein, aktualisiert geänderte Zeilen, löscht entfernte Zeilen - alles unter Transaktionskontrolle.
    • Erfordert einen eindeutigen Index auf der MV.
    • Bevorzugt, wenn paralleler Zugriff benötigt wird oder wenn seit der letzten Aktualisierung nur wenige Zeilen geändert wurden.
    • Hinweis: Wenn die MV-Abfrage ORDER BY enthält, kann die Zeilenreihenfolge nach der parallelen Aktualisierung nicht erhalten bleiben.
  • Alle Daten löschen - REFRESH MATERIALIZED VIEW DROP DATA

    • Löscht alle MV-Daten und Indexinhalte. Nützlich, um Speicherplatz freizugeben. Erfordert eine exklusive Sperre.
  • Kaskadierende Aktualisierung - fügen Sie CASCADE zu einer der obigen Formen hinzu

    • Aktualisiert alle MVs, von denen die angegebene MV abhängt, in korrekter Abhängigkeitsreihenfolge.
    • Jede MV wird nur einmal verarbeitet.
    • CONCURRENTLY CASCADE erfordert, dass alle betroffenen MVs einen eindeutigen Index haben.
    • DROP DATA CASCADE löscht Daten aller betroffenen MVs.
    • Betroffene MV-Namen und Aktualisierungsreihenfolge werden als Warnungen im Status-Vektor vor dem Commit gemeldet.

Backup und Wiederherstellung (gbak)

  • Backup: MV-Daten werden nicht in der Backup-Datei gespeichert, genau wie bei regulären Sichten - keine spezielle Behandlung erforderlich.
  • Wiederherstellung: Alle MVs werden am Ende des Wiederherstellungsprozesses automatisch in korrekter Abhängigkeitsreihenfolge aktualisiert.
  • Neuer gbak-Schalter -NO_MATVIEWS (kann zu -NO_M abgekürzt werden) - überspringt die MV-Aktualisierung während der Wiederherstellung.
  • Entsprechende Services-API-Option: isc_spb_res_no_matviews.
  • Wichtig: Ein Backup mit MVs kann nicht auf einer Firebird-Version wiederhergestellt werden, die MVs nicht unterstützt. Verwenden Sie ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED vor dem Backup, wenn Sie zu einer älteren Version migrieren.

Bekannte Einschränkungen / Geplante Arbeiten

  • Replikationsunterstützung - noch nicht implementiert.
  • DDL-Trigger - noch nicht implementiert.
  • Zugriffsrechtsprüfung - noch nicht implementiert.
  • Fehlermeldungen - in Überprüfung.

Backup und Wiederherstellung

  • Verifizierungs-Backup-Aufgabe: rotierendes Löschen vor der Komprimierung hinzugefügt; Speicherplatzberechnungskoeffizienten sind jetzt konfigurierbar.
  • nBackup-Aufgabe: Überspringungslogik korrigiert; Journal-Umbenennungsalgorithmus auf atomare Umbenennung mit Wiederholung geändert, um partielle Umbenennungen zu verhindern.
  • Backup-Verzeichnis und Dateinamenvorlage für BRZ-Aufgaben sind jetzt konfigurierbar:
    • backup-directory - ermöglicht die Angabe des Zielverzeichnisses pro Datenbank und Auftrag.
    • backup-name - ermöglicht die Definition einer Dateinamenvorlage, z. B. brr_{0,date,yyyyMMdd_HH-mm-ss}.fbk.
    • Eingabevalidierung hinzugefügt: prüft die Gültigkeit des Verzeichnisnamens und erstellt das Verzeichnis, falls es nicht existiert.

Cloud-Backup / Dateiübertragung

  • Unterstützung für Datei-Upload über das Socket-Protokoll in der Cloudbackup- (Dateiübertragungs-) Aufgabe hinzugefügt.
  • Optionale pro-Segment-Dateikomprimierung entfernt - Dateikomprimierung für entsprechende Aufgaben ist jetzt immer aktiviert.

Trace

  • connection_id als zusätzliches Feld in der Trace-Konfiguration hinzugefügt.
  • Trace-Berichtsverarbeitung: case-insensitive Gruppierung und Filterung nach Prozessnamen hinzugefügt.

VSS Writer

  • Zusätzliche Diagnoseprotokollierung hinzugefügt - Datenbankstatusinformationen werden jetzt aufgezeichnet, einschließlich Datenbankgröße, Datum und Uhrzeit sowie gstat -h-Ausgabe.

Webschnittstelle

  • Lokalisierungsverbesserungen: korrigierte Übersetzungen und angepasste Lokalisierungsalgorithmen in der Web-Konsole.
  • Visuelles Trennzeichen-Element mit Beschriftungstext zu Web-Dialogen hinzugefügt - ermöglicht logische Gruppierung von Formularelementen.
  • Cache-Busting-Strategie für clientseitige Ressourcen (Webseiten, JS, CSS) geändert, um zu verhindern, dass Browser nach einem Update veraltete Dateien verwenden.

Konfiguration

  • Server-Autorisierungsfeldnamen aktualisiert ( sysdba/owner, serviceAPI).
  • Reservierter Konfigurationsparameter für die serverseitige (Java) Sprach-/Gebietsschemaeinstellung hinzugefügt.
  • Standardkonfigurationsdateien korrigiert, um den neuen Standardeinstellungen für Dateiübertragungsaufgaben zu entsprechen:
    • Port von 8721 auf 8722 geändert.
    • Standardbenutzer von admin2/ admin3 auf socketuser geändert.
    • Passwortstärkeeinstellung auf starkes Passwort in allen Konfigurationen vereinheitlicht.
  • Beim Registrieren einer KA-Lizenzdatei ist die Angabe des HTTP/HTTPS-Protokollpräfixes im Host-Feld nicht mehr erforderlich.

Fehlerkorrekturen

  • Behoben: Falscher kritischer Alarm, der ausgelöst wurde, wenn eine Datenbank alle Aufgaben vorübergehend deaktiviert hat.
  • Behoben: Fehler beim Abrufen der Liste aktiver Trace-Sitzungen für Systeme, bei denen der konfigurierte SYSDBA-Benutzer keine Berechtigung zum Auflisten von Trace-Sitzungen hat.
  • Behoben: Fehler in einer Drittanbieter-Entschlüsselungskomponente, die UTF-8-kodierte Pfade nicht korrekt verarbeitete. Hinweis: Bis der mon/trace-Dienst aktualisiert und neu erstellt ist, können UTF-8-Zeichen in Datei- oder Datenbankpfaden weiterhin Fehler in der mon/trace-Ausgabe verursachen.
  • Behoben: Problem im Replikationskonfigurations-Handler, der Schlüssel mit leeren Werten fälschlicherweise beibehielt.
  • Behoben: journal_archive_command-Behandlung für Firebird 4 und höher (angepasst an den Upstream-Fix in firebird/firebird PR #8381).
  • Behoben: Fehler im dg2fbcc.jar-Konfigurationsgenerator-Plugin und dessen Aufrufcode.

Installer und Build

  • Windows-Installer mit überarbeiteten Skripten und Logik aktualisiert.
  • Client-Bibliotheksbinärdateien aktualisiert.
  • OpenSSL auf eine neuere Version aktualisiert.
  • Bedingte Codezweige für produktspezifische Build-Varianten hinzugefügt.
  • Dateisignierung zum Installer-Build-Prozess hinzugefügt.

Serverseitige Lokalisierungsinfrastruktur

Ein Lokalisierungsmechanismus für serverseitige (Java) Textnachrichten wurde implementiert. Gebietsschemadateien sind vorbereitet, aber noch nicht mit Übersetzungen gefüllt, und der Mechanismus ist in der Produktion noch nicht aktiviert. Diese Infrastruktur ist für die zukünftige Lokalisierung von Servernachrichten vorgesehen.