Ograniczenia i uwagi
Korzystając ze źródła PostgreSQL, należy pamiętać o następujących ograniczeniach i uwagach:
Ograniczenia i uwagi dotyczące wszystkich zadań danych
- Nazwa bazy danych nie może zawierać średnika (;).
- Nie jest obsługiwane przechwytywanie danych w czasie, gdy baza danych jest w trybie Hot Standby.
-
Aby przechwytywać zmiany z podrzędnej bazy danych, należy skonfigurować w niej uprawnienia do odczytu/zapisu. Ze względu na wymaganie uprawnienia do zapisu funkcja repliki do odczytu w systemie PostgreSQL (w środowisku wysokiej dostępności) nie jest obsługiwana.
Więcej informacji na temat uprawnień do odczytu i zapisu zawiera temat Rejestrowanie zmian z zainstalowanej przez klienta bazy danych PostgreSQL.
- Operacja Przenoszenie na wielu tabelach z taką samą nazwą, ale inną wielkością liter (np. table1, TABLE1 i Table1) może spowodować nieprzewidywalne zachowanie, więc nie jest obsługiwana.
- Przetwarzanie zmian operacji TRUNCATE nie jest obsługiwane.
- Odroczone ograniczenia nie są obsługiwane.
-
Obsługiwana jest tylko konfiguracja domyślna tożsamości repliki.
Więcej informacji o tożsamości repliki można znaleźć na stronie https://www.postgresql.org/docs/10/logical-replication-publication.html
-
Unikatowe indeksy z wyrażeniami CASE nie są obsługiwane.
Ograniczenia i uwagi dotyczące tylko zadań umieszczania
- Tabele podzielone na partycje nie są obsługiwane.
- Wymuszone przełączanie awaryjne jest funkcją Azure Database for PostgreSQL – Flexible Server. Jeśli wymuszone przełączenie awaryjne nastąpi podczas operacji Przenoszenie na danych z Azure Database for PostgreSQL — Flexible Server, zadanie zostanie zatrzymane i zestawy danych będą musiały zostać odtworzone.
Ograniczenia i uwagi dotyczące wyłącznie zadań replikacji
- Tabela źródłowa i odpowiadająca jej tabela docelowa muszą mieć identyczny klucz podstawowy. Jeśli jedna z tabel nie ma klucza podstawowego, wynik operacji DELETE i UPDATE (usuwania i aktualizacji) na rekordach jest nieprzewidywalny.
- Opcja uruchomienia „Start Process Changes from Timestamp” (Rozpocznij przetwarzać zmiany na podstawie znacznika czasu) nie jest obsługiwana.
- Operacja Przenoszenie na obrazie „przed” nie jest obsługiwana.
-
Przetwarzanie zmian instrukcji DDL [CREATE | ALTER | DROP] względem tabel jest obsługiwane, chyba że są zawarte w wewnętrznym bloku treści funkcji/procedury lub w innych konstrukcjach zagnieżdżonych.
Nie zostanie przechwycona na przykład następująca zmiana:
CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
create table attu.distributors1(did serial PRIMARY KEY,name varchar(40) NOT NULL);
END;
$$;
Podczas przechwytywania zmian w tabelach źródłowych operacja RENAME TABLE zostanie przechwycona tylko wtedy, gdy zostanie poprzedzona operacją DML.
Typy danych PostGIS nie są obsługiwane.
Wymuszone przełączanie awaryjne jest funkcją Azure Database for PostgreSQL – Flexible Server. Jeśli wymuszone przełączenie awaryjne nastąpi podczas operacji Przenoszenie na danych z Azure Database for PostgreSQL — Flexible Server, zadanie zostanie zatrzymane i trzeba będzie je przeładować.
Polecenie SQL MERGE wprowadzone w PostgreSQL 15.x nie zostało certyfikowane.
Nieobsługiwane typy danych
Następujące typy danych nie są obsługiwane:
-
PostGIS
- INT4MULTIRANGE
- INT8MULTIRANGE
- NUMMULTIRANGE
- TSMULTIRANGE