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
Funkcja przechwytywania zmian danych dla rozwiązania Oracle by Attunity jest teraz przestarzała. Aby uzyskać szczegółowe informacje, zapoznaj się z anonsem.
Wystąpienie Oracle CDC jest skojarzone z bazą danych SQL Server o tej samej nazwie w instancji docelowego serwera SQL Server. Ta baza danych jest nazywana bazą danych Oracle CDC (lub bazą danych CDC).
Baza danych CDC jest tworzona i konfigurowana przy użyciu konsoli Programu Oracle CDC Designer i zawiera następujące elementy:
cdc
Schemat utworzony przez włączenie bazy danych dla usługi SQL Server CDC.Zestaw tabel cdc.xdbcdc_xxxx używanych przez wystąpienie Oracle CDC.
Zestaw pustych tabel lustrzanych z definicjami przechwyconych tabel w źródłowej bazie danych Oracle.
Zestaw tabel zmian oraz funkcje dostępu do zmian, które są generowane przez mechanizm CDC programu SQL Server i są identyczne z tymi, które są używane w regularnym, nie-Oracle, SQL Server CDC.
cdc
Schemat jest początkowo dostępny tylko dla członków stałej roli bazy danych dbowner. Dostęp do tabel zmian i funkcji zmiany jest określany przez ten sam model zabezpieczeń co usługa CDC programu SQL Server. Aby uzyskać więcej informacji na temat modelu zabezpieczeń, zobacz Model zabezpieczeń.
Tworzenie bazy danych CDC
W większości przypadków baza danych CDC jest tworzona przy użyciu konsoli projektanta cdC, ale można ją również utworzyć za pomocą skryptu wdrażania CDC generowanego przy użyciu konsoli projektanta CDC. Administrator systemu programu SQL Server może w razie potrzeby zmienić ustawienia bazy danych (w przypadku elementów takich jak magazyn, zabezpieczenia lub dostępność).
Aby uzyskać więcej informacji na temat używania Konsoli Projektanta CDC do tworzenia tabel baz danych i niezbędnych skryptów, zobacz Korzystanie z Kreatora nowego wystąpienia.
Role użytkownika bazy danych CDC
Po utworzeniu bazy danych CDC i włączeniu jej dla CDC, użytkownik bazy danych o nazwie cdc_service jest tworzony w bazie danych CDC i jest skojarzony z identyfikatorem logowania programu SQL Server, który został skonfigurowany przez usługę Oracle CDC. Ten użytkownik jest ustanowiony członkiem ról bazy danych db_datareader, db_datawriter i db_ddladmin. Jeśli identyfikator logowania programu SQL Server jest również powiązany z użytkownikiem dbo
, to cdc_service nie zostanie utworzony.
To przypisanie roli umożliwia usłudze Oracle CDC aktualizowanie tabel w schemacie cdc
przy użyciu przechwyconych danych i informacji kontrolnych.
Po utworzeniu bazy danych CDC i skonfigurowaniu źródłowych tabel Oracle dla usługi CDC, właściciel bazy danych CDC może udzielić uprawnień SELECT do tabel lustrzanych oraz zdefiniować role kontrolne CDC w SQL Server, aby kontrolować, kto uzyskuje dostęp do danych o zmianach.
Tablice lustrzane
Dla każdej przechwyconej tabeli w źródłowej bazie danych Oracle, nazwa <schematu>.<nazwa tabeli>, podobna, pusta tabela jest tworzona w bazie danych CDC z tą samą nazwą schematu i tabeli. Nie można przechwycić tabel źródłowych Oracle, których nazwa schematu cdc
nie uwzględnia wielkości liter, ponieważ schemat cdc
w programie SQL Server jest zarezerwowany dla usługi SQL Server CDC.
Tabele lustrzane są puste; żadne dane nie są w nich przechowywane. Służą do włączania standardowej infrastruktury CDC programu SQL Server, używanej przez instancję Oracle CDC. Aby zapobiec wstawieniu lub aktualizowaniu danych w tabelach dublowanych, wszystkie operacje UPDATE, DELETE i INSERT są odrzucane dla funkcji PUBLIC. Gwarantuje to, że nie można ich modyfikować.
Dostęp do zmian danych
Ze względu na model bezpieczeństwa SQL Server używany do uzyskiwania dostępu do danych zmiany związanych z wystąpieniem przechwytywania, użytkownik musi otrzymać dostęp select
do wszystkich przechwyconych kolumn tabeli lustrzanej związanej z daną operacją. Uprawnienia dostępu do oryginalnych tabel Oracle nie zapewniają dostępu do tabel zmian w SQL Server. Aby uzyskać informacje na temat modelu zabezpieczeń programu SQL Server, zobacz Model zabezpieczeń.
Ponadto, jeśli podczas tworzenia instancji przechwytywania zostanie określona rola kontrolna, osoba wywołująca musi być również członkiem tej roli. Inne ogólne funkcje przechwytywania danych zmiany w celu uzyskania dostępu do metadanych są dostępne dla wszystkich użytkowników bazy danych za pośrednictwem roli PUBLIC, chociaż dostęp do zwracanych metadanych jest zwykle ograniczany poprzez użycie selektywnego dostępu do tabel bazowych oraz członkostwa w dowolnych zdefiniowanych rolach ograniczających.
Dane zmiany mogą być odczytywane przez wywoływanie specjalnych funkcji opartych na tabelach generowanych przez składnik CDC programu SQL Server podczas tworzenia wystąpienia przechwytywania. Aby uzyskać więcej informacji na temat tej funkcji, zobacz Change Data Capture Functions (Transact-SQL).
Uzyskiwanie dostępu do danych CDC za pośrednictwem składnika źródła CDC usług Integration Services podlega tym samym regułom.
Tabele bazy danych CDC
W tej sekcji opisano poniższe tabele w bazie danych CDC.
- Zmienianie tabel (_CT)
- cdc.lsn_time_mapping
- cdc.xdbcdc_config
- cdc.xdbcdc_state
- cdc.xdbcdc_trace
- cdc.xdbcdc_staged_transactions
Zmienianie tabel (_CT)
Tabele zmian są tworzone na podstawie tabel lustrzanych. Zawierają one dane zmiany przechwycone z bazy danych Oracle. Tabele są nazwane zgodnie z następującą konwencją:
[cdc]. [<capture-instance>_CT]
Gdy przechwytywanie jest początkowo włączone dla tabeli <schema-name>.<table-name>
, domyślna nazwa wystąpienia przechwytywania to <schema-name>_<table-name>
. Na przykład domyślną nazwą wystąpienia przechwytywania dla tabeli Oracle HR.EMPLOYEES jest HR_EMPLOYEES, a skojarzona tabela zmian to [cdc]. [HR_EMPLOYEES_CT]
Tabele przechwytywania są zapisywane przez instancję Oracle CDC. Są one odczytywane przy użyciu specjalnych funkcji wartości tabeli generowanych przez program SQL Server podczas tworzenia wystąpienia przechwytywania. Na przykład fn_cdc_get_all_changes_HR_EMPLOYEES
. Aby uzyskać więcej informacji na temat tych funkcji CDC, zobacz Change Data Capture Functions (Transact-SQL).
cdc.lsn_time_mapping
[cdc].[ lsn_time_mapping] tabela jest generowana przez składnik CDC programu SQL Server. Jego zastosowanie w przypadku usługi Oracle CDC różni się od normalnego użycia.
W przypadku usługi Oracle CDC wartości LSN przechowywane w tej tabeli są oparte na wartości Numeru zmiany systemu Oracle (SCN) skojarzonej ze zmianą. Pierwsze 6 bajtów wartości LSN to oryginalny numer SCN Oracle.
Ponadto w przypadku korzystania z usługi Oracle CDC kolumny czasu (tran_begin_time
i tran_end_time
) przechowują czas UTC zmiany, a nie czas lokalny, tak jak w przypadku zwykłego kontrolera CDC programu SQL Server. Dzięki temu zmiany czasu letniego nie wpływają na dane przechowywane w lsn_time_mapping.
cdc.xdbcdc_config
Ta tabela zawiera dane konfiguracji Instancji Oracle CDC. Jest aktualizowany przy użyciu konsoli projektanta CDC. Ta tabela ma tylko jeden wiersz.
W poniższej tabeli opisano kolumny tabeli cdc.xdbcdc_config .
Przedmiot | Opis |
---|---|
wersja | Śledzi wersję konfiguracji instancji CDC. Jest aktualizowany za każdym razem, gdy tabela jest aktualizowana i za każdym razem, gdy jest dodawane nowe wystąpienie przechwytywania lub istniejące wystąpienie przechwytywania jest usuwane. |
connect_string | Ciąg połączenia Oracle. Podstawowym przykładem jest:<server>:<port>/<instance> (na przykład erp.contoso.com:1521/orcl ).Parametry połączenia mogą również określać deskryptor programu Oracle Net Connect, na przykład (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=erp.contoso.com) (PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=orcl))) .Jeśli używasz serwera katalogowego lub tnsnames, łańcuch połączenia może być nazwą tego połączenia. Aby uzyskać więcej informacji na temat parametrów połączenia Oracle, zobacz https://go.microsoft.com/fwlink/?LinkId=231153 szczegółowe informacje na temat parametrów połączenia bazy danych Oracle dla klienta Oracle Instant Client używanego przez usługę Oracle CDC Service. |
użyj_windows_autoryzacji | Wartość logiczna, która może być: 0: Nazwa użytkownika i hasło oracle są udostępniane do uwierzytelniania (ustawienie domyślne) 1: Uwierzytelnianie systemu Windows służy do nawiązywania połączenia z bazą danych Oracle. Tej opcji można użyć tylko wtedy, gdy baza danych Oracle jest skonfigurowana do pracy z uwierzytelnianiem systemu Windows. |
nazwa użytkownika | Nazwa użytkownika bazy danych Oracle do analizy dzienników. Jest to obowiązkowe tylko wtedy, gdy use_windows_authentication = 0. |
hasło | Hasło użytkownika bazy danych Oracle do analizy dzienników. Jest to obowiązkowe tylko wtedy, gdy use_windows_authentication = 0. |
przekroczony czas oczekiwania na etap transakcji | Czas w sekundach, w którym niezatwierdzona transakcja Oracle pozostaje w pamięci przed zapisaniem w tabeli cdc.xdbcdc_staged_transactions. Wartość domyślna to 120 sekund. |
limit_pamięci | Limit ilości pamięci w Mb, który może być używany do buforowania danych w pamięci. Niższe ustawienie powoduje zapisanie większej liczby transakcji w tabeli cdc.xdbcdc_staged_transactions . Wartość domyślna to 50 Mb. |
Opcje | Lista opcji w postaci nazwa[=wartość][; ] — służy do określania dodatkowych opcji (na przykład śledzenia, dostrajania). Zapoznaj się z poniższą tabelą, aby zapoznać się z opisem dostępnych opcji. |
W poniższej tabeli przedstawiono dostępne opcje.
Nazwa | Wartość domyślna | Minuta | Maks | Statyczny | Opis |
---|---|---|---|---|---|
ślad | Nieprawda | - | - | Nieprawda | Dostępne wartości to: Prawda Nieprawda na wyłączone |
cdc_aktualizacja_interwału_stanu | 10 | 1 | 120 | Nieprawda | Rozmiar (w Kbytes) fragmentów pamięci przydzielonych do transakcji (transakcja może przydzielić więcej niż jeden fragment). Zobacz kolumnę memory_limit w tabeli cdc.xdbcdc_config . |
docelowa maksymalna liczba transakcji wsadowych | 100 | 1 | 1000 | Prawda | Maksymalna liczba transakcji Oracle, które mogą być przetwarzane jako jedna transakcja w aktualizacji tabel CT SQL Server. |
docelowa_próżna_częstotliwość_aktualizacji_lsn | 10 | 0 | 1 | Nieprawda | Interwał (w sekundach) aktualizacji tabeli lsn_time_mapping , gdy przechwycone tabele nie mają żadnej aktywności. |
okres przechowywania śladów | 24 | 1 | 24*31 | Nieprawda | Ilość czasu (w godzinach przechowywania komunikatów w tabeli śledzenia). |
interwał_ponownego_połączenia_sql | 2 | 2 | 3600 | Nieprawda | Czas oczekiwania (w sekundach) przed ponownym nawiązaniem połączenia z programem SQL Server. Ten interwał jest używany oprócz limitu czasu połączenia klienta programu SQL Server. |
sql_reconnect_limit (limit ponownego łączenia SQL) | -1 | -1 | -1 | Nieprawda | Maksymalna liczba ponownych połączeń z programem SQL Server. Domyślny -1 oznacza, że proces próbuje ponownie nawiązać połączenie, dopóki się nie zatrzyma. |
cdc_restart_limit | 6 | -1 | 3600 | Nieprawda | W większości przypadków usługa CDC automatycznie uruchamia nieprawidłowo zakończone wystąpienie CDC. Ta właściwość określa, po ilu awariach na godzinę usługa przestaje ponownie uruchamiać wystąpienie. Wartość -1 oznacza, że wystąpienie powinno być zawsze ponownie uruchamiane. Usługa powraca do ponownego uruchomienia wystąpienia po każdej aktualizacji tabeli konfiguracji. |
raport pamięci CDC | 0 | 0 | 1000 | Nieprawda | Jeśli wartość parametru została zmieniona, wystąpienie usługi CDC wyświetla raport pamięci w tabeli śledzenia. |
target_command_timeout (limit czasu polecenia docelowego) | 600 | 1 | 3600 | Nieprawda | Przekroczenie limitu czasu polecenia podczas pracy z programem SQL Server. |
zestaw_znaków_źródłowy | - | - | - | Prawda | Można ustawić na określone kodowanie Oracle, które ma być używane zamiast strony kodowej bazy danych Oracle. Może to być przydatne, gdy rzeczywiste kodowanie danych dotyczących znaków różni się od tego wyrażonego przez stronę kodową bazy danych Oracle. |
przedział ponownych prób po błędzie źródła | 30 | 1 | 3600 | Nieprawda | Przed ponowieniem próby w przypadku kilku błędów, takich jak błąd połączenia lub tymczasowy brak synchronizacji między tabelami systemowymi. |
rozmiar_prefetch_źródła | 100 | 1 | 10 000 | Prawda | Rozmiar partii pobierania wstępnego. |
maksymalna_liczba_tabel_w_zapytaniu | 100 | 1 | 10 000 | Prawda | Maksymalna liczba tabel w klauzuli WHERE przed przejściem do odczytu dziennika Oracle bez filtrowania tabel. |
interwał ponownego odczytu źródła | 2 | 1 | 3600 | Nieprawda | Czas oczekiwania źródła przed ponowną próbą odczytania dzienników transakcji Oracle na EOF. |
interwał_ponownego_łączenia_źródła | 30 | 1 | 3600 | Nieprawda | Czas oczekiwania (w sekundach) przed próbą ponownego nawiązania połączenia z źródłową bazą danych. |
limit ponownego połączenia źródła | -1 | -1 | Nieprawda | Maksymalna liczba ponownych połączeń źródłowej bazy danych. Domyślny -1 oznacza, że proces próbuje ponownie nawiązać połączenie, dopóki nie zostanie zatrzymany. | |
czas oczekiwania polecenia źródłowego | 30 | 1 | 3600 | Nieprawda | Przekroczenie limitu czasu połączenia podczas pracy z programem Oracle. |
przekroczenie limitu czasu połączenia źródła | 30 | 1 | 3600 | Nieprawda | Przekroczono limit czasu połączenia podczas pracy z programem SQL Server. |
śledzenie_błędów_danych | Prawda | - | - | Nieprawda | Wartość logiczna. Wartość True wskazuje na logowanie błędów konwersji i skracania danych. |
Zatrzymanie_CDC_przy_łamiących_zmianach_schematu | Nieprawda | - | - | Nieprawda | Wartość logiczna.
Wartość True wskazuje, aby zatrzymać się po wykryciu zmiany schematu powodującej problemy. Fałsz wskazuje na usunięcie tabeli lustrzanej i instancji przechwytywania. |
source_oracle_home | - | - | Nieprawda | Można ustawić na określoną ścieżkę Oracle Home lub nazwę Oracle Home, która będzie używana przez wystąpienie CDC do nawiązywania połączenia z Oracle. |
cdc.xdbcdc_state
Ta tabela zawiera informacje o przechowywanym stanie instancji Oracle CDC. Stan zapisu jest używany w scenariuszach odzyskiwania i awaryjnego przełączania oraz do monitorowania kondycji.
W poniższej tabeli opisano kolumny tabeli cdc.xdbcdc_state .
Przedmiot | Opis |
---|---|
stan | Bieżący kod stanu dla obecnego wystąpienia Oracle CDC. Stan opisuje bieżący stan usługi CDC. |
sub_status | Stan drugiego poziomu, który zawiera dodatkowe informacje o bieżącym stanie. |
aktywny | Wartość logiczna, która może być: 0: Proces instancji Oracle CDC nie jest aktywny. 1: Proces Instancji Oracle CDC jest aktywny. |
błąd | Wartość logiczna, która może być: 0: Proces wystąpienia Oracle CDC nie jest w stanie błędu. 1: Wystąpienie oracle CDC jest w stanie błędu. |
wiadomość statusu | Ciąg zawierający opis błędu lub stanu. |
Sygnatura czasowa | Sygnatura czasowa z godziną (UTC), o którą stan przechwytywania został ostatnio zaktualizowany. |
aktywny_węzeł_uchwytywania | Nazwa hosta (host może być węzłem w klastrze), który obecnie uruchamia usługę Oracle CDC Service oraz wystąpienie Oracle CDC (przetwarzające dzienniki transakcji Oracle). |
znacznik_czasu_ostatniej_transakcji | Sygnatura czasowa z godziną (UTC), kiedy ostatnia transakcja została zapisana do tabel zmian. |
znacznik_czasu_ostatniej_zmiany | Sygnatura czasowa z czasem (UTC), kiedy ostatni rekord zmiany został odczytany ze źródłowego dziennika transakcji Oracle. Ten znacznik czasu pomaga zidentyfikować bieżące opóźnienie procesu CDC. |
Dziennik_transakcji_głowica_cn | Najnowszy numer zmiany (CN) odczytany z dziennika transakcji Oracle. |
transaction_log_tail_cn | Numer zmiany (CN) w dzienniku transakcji Oracle, do którego instancja Oracle CDC przesuwa się w przypadku ponownego uruchomienia lub odzyskiwania danych. |
current_cn | Najnowszy numer zmiany (CN) znany w źródłowej bazie danych. |
wersja oprogramowania | Wewnętrzna wersja usługi Oracle CDC. |
zakończone_transakcje | Liczba transakcji przetworzonych od czasu ostatniego zresetowania usługi CDC. |
zmiany_pisemne | Liczba rekordów zmian zapisanych w tabelach zmian programu SQL Server. |
przeczytaj zmiany | Liczba rekordów zmian odczytanych ze źródłowego dziennika transakcji Oracle. |
transakcje etapowe | Liczba aktualnie aktywnych transakcji umieszczonych w tabeli cdc.xdbcdc_staged_transactions. |
cdc.xdbcdc_trace
Ta tabela zawiera informacje o działaniu instancji CDC. Informacje przechowywane w tej tabeli obejmują rekordy błędów, istotne zmiany stanu i rekordy śledzenia. Informacje o błędzie są również zapisywane w dzienniku zdarzeń systemu Windows, aby upewnić się, że informacje są dostępne, jeśli tabela cdc.xcbcdc_trace jest niedostępna.
W poniższej tabeli opisano kolumny tabeli cdc.xdbcdc_trace.
Przedmiot | Opis |
---|---|
Sygnatura czasowa | Dokładny znacznik czasu UTC, kiedy rekord śledzenia został zapisany. |
rodzaj | Zawiera jedną z następujących wartości. BŁĄD Informacje ŚLAD |
węzeł | Nazwa węzła, na którym został zapisany rekord. |
stan | Kod stanu używany przez tabelę stanów. |
sub_status | Kod stanu podrzędnego używany przez tabelę stanów. |
wiadomość statusu | Komunikat o stanie używany przez tabelę stanów. |
dane | Dodatkowe dane w przypadkach, gdy błąd lub rekord śledzenia zawiera ładunek (na przykład uszkodzony rekord dziennika). |
cdc.xdbcdc_staged_transactions
Ta tabela przechowuje rekordy zmian dla dużych lub długotrwałych transakcji do momentu przechwycenia zdarzenia zatwierdzenia lub wycofania transakcji. Usługa Oracle CDC porządkuje przechwytywane rekordy dziennika według czasu zatwierdzenia transakcji, a następnie według kolejności chronologicznej dla każdej transakcji. Rekordy dziennika dla tej samej transakcji są przechowywane w pamięci do momentu zakończenia transakcji, a następnie są zapisywane w docelowej tabeli zmian lub odrzucane (w przypadku wycofania). Ponieważ dostępna jest ograniczona ilość pamięci, duże transakcje są zapisywane w tabeli cdc.xdbcdc_staged_transactions do momentu zakończenia transakcji. Transakcje są również zapisywane w tabeli przejściowej, gdy działają przez długi czas. W związku z tym po ponownym uruchomieniu wystąpienia usługi Oracle CDC stare zmiany nie muszą być ponownie odczytywane z dzienników transakcji Oracle.
W poniższej tabeli opisano kolumny tabeli cdc.xdbcdc_staged_transactions .
Przedmiot | Opis |
---|---|
identyfikator_transakcji | Unikatowy identyfikator transakcji będącej w przygotowaniu. |
seq_num | Liczba wierszy xcbcdc_staged_transactions dla bieżącej transakcji (począwszy od 0). |
data_start_cn | Numer zmiany (CN) dla pierwszej zmiany danych w tym wierszu. |
data_end_cn | Numer zmiany (CN) dla ostatniej zmiany danych w tym wierszu. |
dane | Zmiany etapowe dla transakcji w formie obiektu BLOB. |
Zobacz też
Projektant przechwytywania zmian danych dla Oracle od Attunity