Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Łącznik programu Microsoft SQL Server jest w publicznej wersji zapoznawczej.
Ta strona zawiera instrukcje dotyczące włączania śledzenia zmian w programie Microsoft SQL Server. Aby korzystać z łącznika programu SQL Server, należy włączyć śledzenie zmian lub przechwytywanie danych zmian (CDC). Usługa Databricks zaleca używanie śledzenia zmian dla każdej tabeli, która ma klucz podstawowy, aby zminimalizować obciążenie źródłowej bazy danych. Jeśli śledzenie zmian i cdC są włączone, łącznik używa śledzenia zmian. Aby uzyskać wskazówki dotyczące wyboru opcji, zobacz Śledzenie zmian a przechwytywanie danych zmian.
Włączanie śledzenia zmian w bazie danych
Uruchom następujące polecenie, zastępując <database-name>
nazwę bazy danych, dla której chcesz, aby było włączone śledzenie zmian. Ustaw CHANGE_RETENTION
maksymalny czas, przez który brama prawdopodobnie nie działa. Po upływie tego czasu, aby wznowić działanie bramy, wymagane jest pełne odświeżenie.
ALTER DATABASE <database-name> SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 14 DAYS, AUTO_CLEANUP = ON)
Włączanie śledzenia zmian w tabeli
Uruchom następujące polecenie, zastępując <schema-name>.<table-name>
ciąg znaków nazwą schematu i tabeli, na której chcesz włączyć śledzenie zmian.
ALTER TABLE <schema-name>.<table-name> ENABLE CHANGE_TRACKING
Udziel funkcji VIEW CHANGE TRACKING dla pozyskanych tabel
Oprócz uprawnień opisanych w konfiguracji źródłowej użytkownik bazy danych potrzebuje VIEW CHANGE TRACKING
uprawnień do pozyskanych tabel lub schematu zawierającego śledzone tabele.
Aby udzielić uprawnień na poziomie schematu, uruchom następujące polecenie:
GRANT VIEW CHANGE TRACKING ON SCHEMA::<schema-name> TO <database-user>;
Aby udzielić uprawnień na poziomie tabeli, uruchom następujące polecenie:
GRANT VIEW CHANGE TRACKING ON OBJECT::<schema-name>.<table-name> TO <database-user>;
Skonfiguruj przechwytywanie DDL i ewolucję schematu
Łącznik programu SQL Server może śledzić język definicji danych (DDL) na pozyskiwanych obiektach bazy danych i stosować odpowiednie zmiany schematu tabeli do tabel docelowych lub dodawać nowe tabele w przypadku pełnej replikacji schematu.
Aby przeprowadzić przechwytywanie DDL, wymagana jest dodatkowa konfiguracja obiektu bazy danych (na przykład tabele wewnętrzne, procedury składowane i wyzwalacze). Skrypt Transact-SQL (T-SQL) podany w tym artykule (ddl_support_objects.sql
) usuwa wszystkie wstępnie istniejące obiekty obsługi DDL i tworzy obiekty obsługi DDL wymagane do przechwytywania zmian DDL występujących w bazie danych.
Pobierz skrypt ddl_support_objects.sql .
Zmodyfikuj
mode
skrypt, aby ustawić wartość:-
BOTH
: inicjuje obiekty CT i CDC (ustawienie domyślne) -
CT
: initializuje obiekty CT -
CDC
: inicjalizuje obiekty CDC -
NONE
: usuwa wszystkie uprzednio istniejące obiekty CT i CDC
-
(Zalecane) Możesz opcjonalnie zmodyfikować skrypt, aby ustawić zmienną
replicationUser
na użytkownika bazy danych SQL Server.Jeśli
replicationUser
jest zdefiniowana, skrypt udziela wszystkich uprawnień wymaganych do pracy z obiektami obsługi DDL dla użytkownika. W przeciwnym razie należy ręcznie przyznać każdy przywilej.Uruchom skrypt na każdej bazie danych, którą chcesz zaimportować.
Ważne
Nie uruchamiaj skryptu w bazie danych master.
Jeśli uruchamiasz skrypt w narzędziu firm trzecich, wybierz cały skrypt przed uruchomieniem.
Wymagania dotyczące uprawnień śledzenia zmian
Jeśli ustawisz zmienną replicationUser
w skrypecie, skrypt przyzna użytkownikowi bazy danych wymagane uprawnienia do obiektów obsługi DDL. Wymagane uprawnienia to:
-
VIEW CHANGE TRACKING
na obiekcielakeflowDdlAudit_1_1
-
VIEW DEFINITION
w bazie danych, którą chcesz pozyskać
Jeśli parametr replicationUser
nie jest ustawiony w skrypcie, musisz ręcznie przyznać wymagane uprawnienia do śledzenia zmian. W tym celu uruchom następujące polecenia języka T-SQL, zastępując polecenie <database-user>
:
GRANT VIEW CHANGE TRACKING ON OBJECT::dbo.lakeflowDdlAudit_1_1 TO <database-user>;
GRANT VIEW DEFINITION ON DATABASE::<database-name> TO <database-user>;