Ta strona została przetłumaczona maszynowo. Przeczytaj oryginał angielski. English

Biblioteka IBSurgeon

HQbird 2024R2 Update 10 - szczegółowe informacje o nowościach

Co nowego w HQbird 2024R2 Update 10

Widoki zmaterializowane (nowa funkcja w 5.0)

HQbird zawiera teraz pełne wsparcie dla widoków zmaterializowanych - nowego typu obiektu bazy danych, który łączy definicję widoku z fizycznym przechowywaniem danych w zwykłej tabeli.

Przegląd

Widok zmaterializowany (MV) jest definiowany za pomocą standardowego zapytania SQL, które silnik wykorzystuje do wypełnienia bazowej tabeli MV wierszami danych. W przeciwieństwie do zwykłych widoków, dane MV są trwale przechowywane na dysku i mogą być indeksowane. Instrukcje DML (INSERT, UPDATE, DELETE) nie są dozwolone bezpośrednio na widokach MV - dane muszą być aktualizowane za pomocą nowego polecenia REFRESH.

Tworzenie i zarządzanie widokami zmaterializowanymi

  • CREATE [OR ALTER] MATERIALIZED VIEW - tworzy lub zastępuje widok MV z opcjonalnym początkowym ładowaniem danych (WITH DATA / WITH NO DATA).
  • ALTER MATERIALIZED VIEW - modyfikuje definicję widoku MV; automatycznie usuwa wszystkie istniejące indeksy.
  • RECREATE MATERIALIZED VIEW - usuwa istniejący widok (zwykły lub zmaterializowany) o tej samej nazwie i tworzy nowy widok MV.
  • DROP VIEW - używany do usuwania widoku zmaterializowanego (brak osobnego polecenia DROP MATERIALIZED VIEW).
  • Na widokach MV można tworzyć indeksy dowolnego rodzaju. Ograniczenia i wyzwalacze nie są obsługiwane.

Konwersja między typami widoków

  • ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED - konwertuje widok MV na zwykły widok. Wszystkie indeksy i dane są usuwane.
  • ALTER VIEW ... TO MATERIALIZED - konwertuje zwykły widok na widok zmaterializowany. Obiekty zależne nie są naruszane.

Odświeżanie danych widoku zmaterializowanego

Nowa instrukcja REFRESH MATERIALIZED VIEW aktualizuje zawartość widoku MV. Jest to polecenie DDL - wykonanie jest odroczone do momentu zatwierdzenia bieżącej transakcji. Dostępne są cztery tryby:

  • Pełne przeładowanie (tryb wyłączny) - REFRESH MATERIALIZED VIEW

    • Dezaktywuje indeksy, usuwa wszystkie istniejące dane, przeładowuje z zapytania MV, ponownie aktywuje indeksy.
    • Najszybsza opcja, gdy zmieniło się wiele wierszy.
    • Wymaga wyłącznej blokady tabeli MV.
    • W przypadku błędu ładowania danych: nowo załadowane dane są usuwane, indeksy są ponownie aktywowane jako puste.
    • W przypadku błędu aktywacji indeksu: dotknięty indeks pozostaje nieaktywny; dane i inne indeksy nie są naruszane. Błędy budowy indeksu są zgłaszane jako ostrzeżenia.
  • Aktualizacja współbieżna - REFRESH MATERIALIZED VIEW CONCURRENTLY

    • Wymagana blokada wyłączna - zapytania współbieżne na widoku MV są dozwolone podczas odświeżania.
    • Używa algorytmu scalania z dwoma uporządkowanymi kursorami: jeden dla bieżących danych MV, drugi dla wyników zapytania MV.
    • Wstawia nowe wiersze, aktualizuje zmienione wiersze, usuwa usunięte wiersze - wszystko pod kontrolą transakcji.
    • Wymaga unikalnego indeksu na widoku MV.
    • Preferowany, gdy potrzebny jest dostęp współbieżny lub gdy od ostatniego odświeżenia zmieniło się niewiele wierszy.
    • Uwaga: jeśli zapytanie MV zawiera ORDER BY, kolejność wierszy może nie zostać zachowana po współbieżnym odświeżeniu.
  • Usunięcie wszystkich danych - REFRESH MATERIALIZED VIEW DROP DATA

    • Usuwa wszystkie dane MV i zawartość indeksów. Przydatne do zwolnienia miejsca na dysku. Wymaga wyłącznej blokady.
  • Odświeżanie kaskadowe - dodanie CASCADE do dowolnej z powyższych form

    • Odświeża wszystkie widoki MV, od których zależy dany widok MV, w poprawnej kolejności zależności.
    • Każdy widok MV jest przetwarzany tylko raz.
    • CONCURRENTLY CASCADE wymaga, aby wszystkie dotknięte widoki MV miały unikalny indeks.
    • DROP DATA CASCADE usuwa dane wszystkich dotkniętych widoków MV.
    • Nazwy dotkniętych widoków MV i kolejność odświeżania są zgłaszane jako ostrzeżenia w wektorze statusu przed zatwierdzeniem.

Kopia zapasowa i przywracanie (gbak)

  • Kopia zapasowa: dane MV nie są przechowywane w pliku kopii zapasowej, tak samo jak w przypadku zwykłych widoków - nie jest wymagana żadna specjalna obsługa.
  • Przywracanie: wszystkie widoki MV są automatycznie odświeżane na końcu procesu przywracania, w poprawnej kolejności zależności.
  • Nowy przełącznik gbak -NO_MATVIEWS (może być skrócony do -NO_M) - pomija odświeżanie MV podczas przywracania.
  • Odpowiednia opcja Services API: isc_spb_res_no_matviews.
  • Ważne: kopia zapasowa zawierająca widoki MV nie może zostać przywrócona w wersji Firebird, która nie obsługuje widoków MV. Użyj ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED przed wykonaniem kopii zapasowej podczas migracji do starszej wersji.

Znane ograniczenia / planowane prace

  • Wsparcie replikacji - jeszcze nie zaimplementowane.
  • Wyzwalacze DDL - jeszcze nie zaimplementowane.
  • Sprawdzanie praw dostępu - jeszcze nie zaimplementowane.
  • Komunikaty błędów - w trakcie przeglądu.

Kopia zapasowa i odzyskiwanie

  • Zadanie weryfikacyjnej kopii zapasowej: dodano rotacyjne usuwanie przed kompresją; współczynniki obliczania miejsca na dysku są teraz konfigurowalne.
  • Zadanie nBackup: poprawiono logikę pomijania; algorytm zmiany nazwy dziennika zmieniono na atomową zmianę nazwy z ponawianiem, aby zapobiec częściowym zmianom nazw.
  • Katalog kopii zapasowej i szablon nazwy pliku dla zadań BRZ są teraz konfigurowalne:
    • backup-directory - umożliwia określenie katalogu docelowego dla każdej bazy danych i zadania.
    • backup-name - umożliwia zdefiniowanie szablonu nazwy pliku, np. brr_{0,date,yyyyMMdd_HH-mm-ss}.fbk.
    • Dodano walidator wejściowy: sprawdza poprawność nazwy katalogu i tworzy katalog, jeśli nie istnieje.

Kopia zapasowa w chmurze / transfer plików

  • Dodano obsługę przesyłania plików przez protokół Socket w zadaniu cloudbackup (filetransfer).
  • Usunięto opcję selektywnej kompresji plików dla poszczególnych segmentów - kompresja plików dla odpowiednich zadań jest teraz zawsze włączona.

Trace

  • Dodano connection_id jako dodatkowe pole w konfiguracji trace.
  • Przetwarzanie raportów trace: dodano grupowanie i filtrowanie bez rozróżniania wielkości liter według nazwy procesu.

VSS Writer

  • Dodano dodatkowe logowanie diagnostyczne - informacje o stanie bazy danych są teraz rejestrowane, w tym rozmiar bazy danych, data i czas oraz dane wyjściowe gstat -h.

Interfejs webowy

  • Ulepszenia lokalizacji: poprawiono tłumaczenia i dostosowano algorytmy lokalizacji w konsoli webowej.
  • Dodano wizualny element separatora z tekstem etykiety do okien dialogowych webowych - umożliwia logiczne grupowanie elementów formularza.
  • Zmieniono strategię unieważniania pamięci podręcznej dla zasobów po stronie klienta (strony internetowe, JS, CSS), aby zapobiec używaniu przez przeglądarki nieaktualnych plików po aktualizacji.

Konfiguracja

  • Zaktualizowano nazwy pól autoryzacji serwera (sysdba/owner, serviceAPI).
  • Dodano zarezerwowany parametr konfiguracyjny dla ustawienia języka/locale po stronie serwera (Java).
  • Poprawiono domyślne pliki konfiguracyjne, aby odpowiadały nowym domyślnym ustawieniom dla zadań transferu plików:
    • Port zmieniony z 8721 na 8722.
    • Domyślny użytkownik zmieniony z admin2/admin3 na socketuser.
    • Ustawienie siły hasła ujednolicono na silne hasło we wszystkich konfiguracjach.
  • Podczas rejestracji pliku licencyjnego KA, określanie prefiksu protokołu HTTP/HTTPS w polu hosta nie jest już wymagane.

Poprawki błędów

  • Naprawiono fałszywy krytyczny alert wyzwalany, gdy baza danych ma tymczasowo wyłączone wszystkie zadania.
  • Naprawiono błąd podczas pobierania listy aktywnych sesji trace dla systemów, w których skonfigurowany użytkownik SYSDBA nie ma uprawnień do wyświetlania listy sesji trace.
  • Naprawiono błąd w komponencie deszyfrowania innej firmy, który nie obsługiwał poprawnie ścieżek zakodowanych w UTF-8. Uwaga: dopóki usługa mon/trace nie zostanie zaktualizowana i przebudowana, znaki UTF-8 w ścieżkach plików lub baz danych mogą nadal powodować błędy w danych wyjściowych mon/trace.
  • Naprawiono problem w module obsługi konfiguracji replikacji, który nieprawidłowo zachowywał klucze z pustymi wartościami.
  • Naprawiono obsługę journal_archive_command dla Firebird 4 i nowszych (zgodnie z poprawką w firebird/firebird PR #8381).
  • Naprawiono błędy w generatorze konfiguracji dg2fbcc.jar i jego kodzie wywołania.

Instalator i kompilacja

  • Instalator systemu Windows zaktualizowany o poprawione skrypty i logikę.
  • Zaktualizowano pliki binarne bibliotek klienckich.
  • OpenSSL zaktualizowany do nowszej wersji.
  • Dodano warunkowe gałęzie kodu dla wariantów kompilacji specyficznych dla produktu.
  • Dodano podpisywanie plików w procesie kompilacji instalatora.

Infrastruktura lokalizacji po stronie serwera

Zaimplementowano mechanizm lokalizacji komunikatów tekstowych po stronie serwera (Java). Pliki locale są przygotowane, ale nie zostały jeszcze wypełnione tłumaczeniami, a mechanizm nie został jeszcze aktywowany w produkcji. Ta infrastruktura jest przeznaczona do przyszłej lokalizacji komunikatów serwera.