Sdílet prostřednictvím


Služba Oracle CDC

Důležité

Funkce Change Data Capture for Oracle by Attunity je teď zastaralá. Podrobnosti najdete v oznámení.

Služba Oracle CDC je služba systému Windows, na které běží program xdbcdcsvc.exe. Službu Oracle CDC lze nakonfigurovat tak, aby spouštěla více služeb systému Windows na stejném počítači, z nichž každý má jiný název služby systému Windows. Vytváření více služeb Systému Windows Oracle CDC na jednom počítači se často provádí, aby bylo dosaženo lepšího oddělení mezi nimi, nebo když každý potřebuje pracovat s jinou instancí SQL Serveru.

Služba Oracle CDC je vytvořena pomocí konzoly konfigurace služby Oracle CDC nebo je definována prostřednictvím rozhraní příkazového řádku integrovaného do xdbcdcsvc.exe programu. V obou případech je každá vytvořená služba Oracle CDC přidružená k jedné instanci SQL Serveru (která může být clusterovaná nebo zrcadlená s nastavením AlwaysOn ) a informace o připojení (připojovací řetězec a přihlašovací údaje pro přístup) jsou součástí konfigurace služby.

Když se spustí služba Oracle CDC, pokusí se připojit k instanci SQL Serveru, ke které je přidružená, získat seznam instancí Oracle CDC, které potřebuje zpracovat, a provede počáteční ověření prostředí. Chyby při spuštění služby a všechny informace o spuštění/zastavení se vždy zapisují do protokolu událostí aplikace systému Windows. Při navázání připojení k SQL Serveru se všechny chyby a informační zprávy zapíšou do tabulky dbo.xdbcdc_trace v databázi MSXDBCDC instance SQL Serveru. Jednou z kontrol provedených během spouštění je ověření, že v současné době nefunguje žádná jiná služba Oracle CDC se stejným názvem. Pokud je služba se stejným názvem aktuálně připojená z jiného počítače, služba Oracle CDC zadá smyčku čekání a před pokračováním v práci Oracle CDC čeká na odpojení druhé služby.

Když služba Oracle CDC projde všemi ověřeními spuštění, zkontroluje dbo.xdbcdc_databases tabulku v databázi MSXDBCDC pro všechny povolené instance Oracle CDC. Pro každou povolenou instanci Oracle CDC služba spustí dílčí proces, který zpracuje instanci Oracle CDC.

Když se spustí instance Oracle CDC, přistupuje k databázi CDC SQL Serveru se stejným názvem jako instance CDC a načte její stav z předchozího spuštění. Ověřuje také, že všechno běží správně. Pak obnoví zpracování změn; Čtení protokolů transakcí Oracle a zápis změn do databáze CDC.

Služba Oracle CDC pravidelně monitoruje tabulku dbo.xdbcdc_tables v databázi MSXDBCDC a zjišťuje, jestli nedošlo k nějakým změnám konfigurace některé z konfigurací instance Oracle CDC. Pokud dojde ke změně, služba Oracle CDC oznámí instanci Oracle CDC, že by měla zkontrolovat změny konfigurace. Většina změn konfigurace, jako je přidání a odebrání instancí zachycení, se dá použít, když je povolená instance Oracle CDC, jiné vyžadují restartování instance Oracle CDC.

Při použití konzoly Návrháře Oracle CDC se automaticky zjistí změny. Při přímé aktualizaci konfigurace Oracle CDC pomocí SQL by se měla volat následující procedura, aby služba Oracle CDC zaznamenala změnu konfigurace:

DECLARE @dbname nvarchar(128) = 'HRcdc'
EXECUTE [MSXDBCDC].[dbo].[xdbcdc_update_config_version] @dbname
GO

Proces instance Oracle CDC aktualizuje svůj stav v systémové tabulce cdc.xdbcdc_state a zapíše informace o chybách do tabulky cdc.xdbcdc_trace . Tabulka xdbcdc_state je užitečná pro monitorování stavu instance Oracle CDC. Poskytuje aktuální stav, různé čítače (například počet změn načtených z Oracle, počet zapsaných změn na SQL Server, počet zapsaných potvrzených transakcí a aktuální počet probíhajících transakcí) a indikaci latence.

Konfigurace instance Oracle CDC je uložena v tabulce cdc.xdbcdc_config , což je tabulka, se kterou konzola Návrháře Oracle CDC pracuje. Vzhledem k tomu, že se celá konfigurace instance Oracle CDC nachází v cílové instanci SQL Serveru a databázích CDC, je možné vytvořit skripty nasazení SQL Serveru pro instanci Oracle CDC. To se provádí pomocí konzoly Oracle CDC Service Configuration a Oracle CDC Designer.

Aspekty zabezpečení

Následující popis popisuje požadavky na zabezpečení potřebné pro práci se službou CDC pro Oracle.

Ochrana zdrojových dat Oracle

Služba Oracle CDC nevyžaduje přístup ke zdrojovým datům Oracle a je chráněná tím, že zajišťuje, aby přihlašovací údaje pro dolování protokolů neudělily oprávnění SELECT pro tabulky Oracle zákazníků.

Ochrana zdrojových dat Oracle Change Data

Služba Oracle CDC je poskytována s přihlašovacími údaji pro dolování protokolů, které umožňují službě zaznamenávat změny provedené v jakékoli tabulce v databázi Oracle. Data změn nemají podrobná přístupová oprávnění k běžným tabulkám, takže přístup ke změnám dat obchází integrované ovládací prvky přístupu k datům Oracle.

Zachycené zdrojové tabulky Oracle mají prázdné zrcadlové tabulky se stejným schématem a názvem tabulky v databázi CDC. Zachycená data jsou uložená v instancích zachycení SQL Serveru a nabízejí stejnou ochranu jako u změn zachycených z databáze SQL Serveru. Pokud chcete získat přístup k datům změn přidruženým k instanci zachycení, musí být uživateli udělen přístup ke všem zachyceným sloupcům přidružené zrcadlové tabulky. Kromě toho, pokud je při vytváření instance zachycení zadána funkce omezení přístupu, volající musí být také členem zadané funkce omezení přístupu. Další obecné funkce zachytávání dat změn pro přístup k metadatům jsou přístupné všem uživatelům databáze prostřednictvím veřejné role, ačkoli přístup k vráceným metadatům je obvykle také omezován výběrovým přístupem k podkladovým zdrojovým tabulkám a členstvím v definovaných rolích.

To znamená, že uživatelé s pevnou rolí serveru sysadmin nebo pevnou rolí databáze db_owner mají (ve výchozím nastavení) plný přístup k zachyceným datům a další přístup může být udělen buď prostřednictvím specifických rolí, nebo udělením selektivního přístupu k zachyceným sloupcům.

Ochrana přihlašovacích údajů pro dolování protokolů Oracle

Konfigurace služby Oracle CDC uložená v databázi CDC (v tabulce cdc.xdbcdc_config) zahrnuje uživatelské jméno dolování protokolů a jeho přidružené heslo.

Heslo dolování protokolů se ukládá šifrovaně pomocí asymetrického klíče s pevným názvem xdbcdc_asym_key , který se automaticky vytvoří pomocí následujícího příkazu:

USE [<cdc-database-name>]
CREATE ASYMMETRIC KEY xdbcdc_asym_key
    WITH ALGORITHM = RSA_1024
    ENCRYPTION BY PASSWORD = '<cdc-database-name><asym-key-password>'

Pokud se použije jiný algoritmus, můžete tento klíč vynechat a nový pomocí stejného názvu a zašifrovat ho stejným heslem.

Heslo asymetrického klíče je hlavní heslo uložené v registru pod cestou HKLM\Software\Microsoft\XDBCDCSVC\\<název služby>. Tento klíč je přístupný pouze místním správcům a účtu služby Oracle CDC pro Windows. Klíč obsahuje šifrovanou binární hodnotu AsymmetricKeyPassword , která uložila asymetrické heslo klíče. Přístup k tomuto klíči registru je nutný pro přístup k přihlašovacím údajům dolování protokolů Oracle.

Pokud chcete použít klauzuli ENCRYPTION BY PASSWORD, musí heslo splňovat požadavky zásad hesel systému Windows pro počítač, na kterém běží instance SYSTÉMU SQL Server. To se provádí výběrem asymetrického hesla klíče podle této zásady.

Pokud dojde ke ztrátě hesla asymetrického klíče, musí být přihlašovací údaje pro dolování protokolů pro každou instanci Oracle CDC znovu zadány v nástroji Oracle CDC Service Designer.

Asymetrický klíč se automaticky vytvoří v databázi CDC, když služba CDC zjistí databázi CDC instance Oracle, která nemá tento asymetrický klíč nebo když klíč existuje, ale heslo se neshoduje.

Účet služby Oracle CDC systému Windows

Účet služby používaný se službou Oracle CDC pro Windows nevyžaduje žádná další oprávnění. Tento účet musí být schopný používat rozhraní API nativního klienta Oracle i rozhraní API ODBC nativního klienta SQL Serveru. Musí mít také přístup ke konfiguračnímu klíči služby v registru (tato konzola pro konfiguraci služby CDC nastaví seznam ACL).

V této části

Připojení k SQL Serveru

Když se přihlášení bez databázové role, která zahrnuje oprávnění k zápisu (například role db_owner ) k databázi MSXDBCDC pokusí vytvořit instanci Oracle CDC, zobrazí se dialogové okno Připojit k SQL Serveru.

V tomto dialogovém okně musíte zadat přihlašovací údaje pro přihlášení, které má oprávnění k zápisu do databáze MSXDBCDC, jako je například role databáze db_owner k vytvoření nové instance Oracle CDC.

Do dialogového okna Připojit k SQL Serveru zadejte následující informace.

Název serveru

Zadejte název serveru, na kterém se nachází SQL Server.

Autentizace

Vyberte jednu z následujících možností:

  • Ověřování systému Windows

  • Ověřování SQL Serveru: Pokud vyberete tuto možnost, musíte zadat přihlašovací jméno a heslo pro uživatele na SQL Serveru, ke kterému se připojujete.

Možnosti

Výběrem šipky zobrazíte dostupné možnosti, které chcete nakonfigurovat. Tyto možnosti můžete ponechat s výchozí hodnotou. Dostupné možnosti jsou:

  • Vypršení časového limitu připojení: Zadejte dobu (v sekundách), po kterou program čeká na navázání připojení k SQL Serveru, než dojde k chybě způsobené vypršením časového limitu. Výchozí hodnota je 15.

  • Časový limit spuštění: Zadejte čas (v sekundách), po který program čeká na dokončení spuštění příkazu SQL před vytvořením chyby časového limitu. Výchozí hodnota je 30.

  • Šifrované připojení: Vyberte Možnost Šifrovat připojení , abyste zajistili, že je vytvořené připojení k SQL Serveru šifrované, aby bylo zaručeno soukromí.

  • Upřesnit: V případě potřeby vyberte Upřesnit a zadejte všechny další vlastnosti připojení do dialogového okna Upřesnit vlastnosti připojení.

Připojení k SQL Serveru pro odstranění

Když se přihlášení bez databázové role, která zahrnuje oprávnění k zápisu (například role db_owner ) k databázi MSXDBCDC pokusí odstranit instanci Oracle CDC, zobrazí se dialogové okno Připojit k SQL Serveru.

V tomto dialogovém okně musíte zadat přihlašovací údaje pro přihlášení, které má oprávnění k zápisu do databáze MSXDBCDC, jako je například role databáze db_owner k odstranění instance Oracle CDC.

Do dialogového okna Připojit k SQL Serveru zadejte následující informace.

název serveru
Zadejte název serveru, na kterém se nachází SQL Server.

Autentizace
Vyberte jednu z následujících možností:

  • Ověřování systému Windows

  • Ověřování SQL Serveru: Pokud vyberete tuto možnost, musíte zadat přihlašovací jméno a heslo pro uživatele na SQL Serveru, ke kterému se připojujete.

Options
Výběrem šipky zobrazíte dostupné možnosti, které chcete nakonfigurovat. Tyto možnosti můžete ponechat s výchozí hodnotou. Dostupné možnosti jsou:

  • Vypršení časového limitu připojení: Zadejte dobu (v sekundách), po kterou program čeká na navázání připojení k SQL Serveru, než dojde k chybě způsobené vypršením časového limitu. Výchozí hodnota je 15.

  • Časový limit spuštění: Zadejte čas (v sekundách), po který program čeká na dokončení spuštění příkazu SQL před vytvořením chyby časového limitu. Výchozí hodnota je 30.

  • Šifrované připojení: Vyberte Možnost Šifrovat připojení , abyste zajistili, že je vytvořené připojení k SQL Serveru šifrované, aby bylo zaručeno soukromí.

  • Upřesnit: V případě potřeby vyberte Upřesnit a zadejte všechny další vlastnosti připojení do dialogového okna Upřesnit vlastnosti připojení.

Vytvoření a úprava služby Oracle CDC

Novou službu Systému Windows Oracle CDC vytvoříte a upravíte z konzoly konfigurace služby CDC.

Pokud chcete vytvořit novou službu Systému Windows Oracle CDC, vyberte v levém podokně místní služby CDC a pak v podokně Akce vyberte Možnost Nová služba. Můžete také kliknout pravým tlačítkem na Místní služby CDC a vybrat Možnost Nová služba. Otevře se dialogové okno Nová služba Systému Windows Oracle CDC.

OR

Chcete-li upravit vlastnosti služby CDC, vyberte službu, pro kterou chcete upravit vlastnosti, a v podokně Akce vyberte Vlastnosti. Můžete také kliknout pravým tlačítkem na službu, se kterou pracujete, a vybrat vlastnosti. Otevře se dialogové okno Vlastnosti služby CDC.

Do dialogového okna Nová služba systému Windows Oracle CDC nebo vlastnosti služby CDC zadejte následující informace.

Název služby
Zadejte název nové služby Systému Windows Oracle CDC. Pokud je to možné, neměli byste používat dlouhé názvy. Znaky / a \ nelze použít v názvu služby.

Poznámka:

Tato možnost není dostupná při úpravě služby. Nemůžete změnit název služby systému Windows, která už existuje.

Description
Zadejte popis služby, který vám pomůže ji identifikovat.

Účet služby
Vyberte jednu z následujících možností a určete, pod kterým účtem se má služba spustit:

  • Místní systémový účet

    To se nedoporučuje, protože službě dává příliš mnoho oprávnění.

  • Tento účet

    V systému Windows Vista nebo Windows Server 2008 je výchozím účtem služby účet NETWORK SERVICE.

    Ve Windows 7, Windows Server 2008 R2 a novější, výchozí účet služby je NT Service\\<service-name>.

    Použití těchto účtů vám umožní pracovat bez použití hesel, protože pro tyto účty není nutné heslo. Kromě toho tyto účty poskytují pouze potřebná oprávnění potřebná ke spuštění služby Oracle CDC.

    Pro účet služby můžete použít místní nebo doménový účet systému Windows. V takovém případě musíte zadat heslo pro tento účet. Tento účet může být určený pro místního hostitele nebo účet domény. Nezapomeňte aktualizovat heslo, když se změní pomocí místních služeb v Ovládacích panelech Windows.

Název serveru: Vyberte cílovou instanci SQL Serveru, ke které se chcete připojit (například \\<computer_name>\<instance_name>). Ve výchozím nastavení se zobrazí instance serveru, ke které se naposledy připojila.

Autentizace
Vyberte jednu z následujících možností:

  • Ověřování systému Windows: Pokud vyberete tuto možnost, služba Oracle CDC se připojí k cílové instanci SQL Serveru pomocí identity účtu služby. Pokud je instance SYSTÉMU SQL Server spuštěná na jiném počítači, musí být ověřování systému Windows použito s účty domény.

  • Ověřování SQL Serveru: Pokud vyberete tuto možnost, musíte zadat uživatelské jméno a heslo pro přihlášení k SQL Serveru, které chcete použít. Služba Oracle CDC používá tyto přihlašovací údaje při připojování k cílové instanci SQL Serveru.

Přihlášení k SQL Serveru používané službou Oracle CDC musí být pouze členem veřejné role s pevným serverem, žádná další oprávnění nejsou potřeba. Po přidání nových instancí Oracle CDC získá toto přihlášení db_owner přístup k přidruženým databázím CDC SQL Serveru.

K vytvoření definice služby Systému Windows Oracle CDC potřebuje program aktualizovat přístup k databázi MSXDBCDC v přidružené instanci SQL Serveru. Když vyberete OK, zobrazí se dialogové okno s výzvou k zadání přihlášení k SQL Serveru s přístupem k aktualizaci databáze MSXDBCDC.

Options
Výběrem šipky zobrazíte dostupné možnosti, které chcete nakonfigurovat. Tyto možnosti můžete ponechat s výchozí hodnotou. Dostupné možnosti jsou:

  • Vypršení časového limitu připojení: Zadejte čas (v sekundách), který služba CDC pro Oracle čeká na připojení k SQL Serveru před vypršením časového limitu. Výchozí hodnota je 15.

  • Časový limit spuštění: Zadejte čas (v sekundách), který služba Oracle CDC windows čeká, než se spustí příkaz před vypršením časového limitu. Výchozí hodnota je 30.

  • Šifrované připojení: Vyberte možnost Šifrovat připojení pro komunikaci mezi službou Oracle CDC a cílovou instancí SQL Serveru pomocí šifrovaného připojení.

  • Upřesnit: V případě potřeby zadejte všechny další vlastnosti připojení.

Hlavní heslo
Zadejte heslo, které bude služba Oracle CDC windows používat k ochraně přihlašovacích údajů k dolování protokolů Oracle.

Stejné hlavní heslo se musí použít také v případě, že jsou na jiných uzlech v clusteru nakonfigurované jiné instance stejné služby v konfiguraci s vysokou dostupností. Pokud ztratíte nebo upravíte hlavní heslo, musí být všechna hesla dolování protokolů uložená v databázích instance Oracle CDC znovu zadána pomocí konzoly návrháře CDC.

Správa služby Oracle CDC

Ke správě konkrétní služby CDC můžete použít konzolu konfigurace služby CDC.

Výběr služby CDC, se kterou chcete pracovat

  1. V levém podokně v konzole konfigurace služeb CDC rozbalte místní služby CDC.

  2. Vyberte službu CDC, se kterou chcete pracovat.

    Můžete také kliknout pravým tlačítkem myši na službu CDC, se kterou chcete pracovat, a vybrat požadovanou akci.

OR

  1. V levém podokně v konzole konfigurace služby CDC vyberte Místní služby CDC .

  2. V prostřední části konzoly konfigurace služby CDC vyberte službu, se kterou chcete pracovat.

    Můžete také kliknout pravým tlačítkem myši na službu CDC, se kterou chcete pracovat, a vybrat požadovanou akci.

Akce při práci se službou CDC

Při práci se službou CDC můžete provádět následující akce.

Odstranění služby

V podokně Akce na pravé straně konzoly konfigurace služby CDC vyberte odstranit službu.

Můžete také kliknout pravým tlačítkem myši na službu CDC, kterou chcete odstranit, a vybrat Odstranit.

Poznámka:

Pokud je služba spuštěná při odstraňování služby, služba se před odstraněním zastaví.

K odstranění definice služby Systému Windows Oracle CDC potřebuje program aktualizovat přístup k databázi MSXDBCDC v přidružené instanci SQL Serveru. Když vyberete OK pro odstranění služby, program se pokusí odstranit registraci služby Oracle CDC v databázi MSXDBCDC. Pokud program nemůže odstranit registraci služby Oracle CDC, protože nemá správná oprávnění, vyzve vás k zadání přihlášení k SQL Serveru s oprávněními k aktualizaci databáze MSXDBCDC.

Úprava vlastností služby CDC

V podokně Akce na pravé straně konzoly konfigurace služby CDC vyberte Vlastnosti.

Můžete také kliknout pravým tlačítkem myši na službu CDC, ve které chcete upravit vlastnosti, a vybrat Vlastnosti.

Příprava SQL Serveru na CDC

Služba Oracle CDC vyžaduje, aby všechny cílové instance SQL Serveru obsahovaly databázi MSXDBCDC. Tuto databázi vytvoříte pomocí akce Připravit SQL Server v konzole konfigurace služby CDC. Tím se vytvoří speciální skript, který se spustí pro vytvoření požadovaných tabulek, uložených procedur a dalších požadovaných artefaktů pro tuto databázi. Tato úloha se provádí jen jednou pro každou cílovou instanci SQL Serveru.

Další informace o databázi MSXDBCDC naleznete v tématu DATABÁZE MSXDBCDC.

V konzole konfigurace služby CDC vyberte Připravit SQL Server. Pokud tato možnost není dostupná, ujistěte se, že je v levém podokně konzoly vybraná místní služba CDC Services .

Možnosti

název serveru
Zadejte název serveru, na kterém se nachází SQL Server.

Autentizace
Vyberte jednu z následujících možností:

  • Ověřování systému Windows

  • Ověřování SQL Serveru: Pokud vyberete tuto možnost, musíte zadat uživatelské jméno a heslo pro uživatele na SQL Serveru, ke kterému se připojujete.

Pokud chcete připravit instanci SQL Serveru pro Oracle CDC, musí mít přihlášení oprávnění k zápisu do databáze MSXDBCDC. Zadejte přihlašovací údaje pro přihlášení, které má oprávnění k zápisu do databáze MSXDBCDC, například člena sysasmin role.

Options
Výběrem šipky zobrazíte dostupné možnosti, které chcete nakonfigurovat. Tyto možnosti můžete ponechat s výchozí hodnotou. Dostupné možnosti jsou:

  • Vypršení časového limitu připojení: Zadejte čas (v sekundách), který služba CDC pro Oracle čeká na připojení k SQL Serveru před vypršením časového limitu. Výchozí hodnota je 15.

  • Časový limit spuštění: Zadejte čas (v sekundách), který služba Oracle CDC windows čeká, než se spustí příkaz před vypršením časového limitu. Výchozí hodnota je 30.

  • Šifrované připojení: Vyberte možnost Šifrovat připojení pro komunikaci mezi službou Oracle CDC a cílovou instancí SQL Serveru pomocí šifrovaného připojení.

  • Upřesnit: V případě potřeby zadejte všechny další vlastnosti připojení.

Zobrazit skript
Výběrem Zobrazit skript zobrazíte instalační skript ve verzi pouze pro čtení. Správce systému SQL Serveru může tento skript zkopírovat do konzoly pro správu SYSTÉMU SQL Server a v případě potřeby ho upravit.

Příprava SQL Serveru na skript Oracle CDC-View

Toto dialogové okno zobrazuje skript Připravit SQL, který vytvoří databázi MSXDBCDC. Tato databáze musí být na instanci SQL Serveru, aby byla použita s Oracle CDC pro SQL Server.

V dialogovém okně Připravit skript SQL Serveru postupujte následovně.

Uložit jako
Uloží skript do textového souboru, který můžete uložit do libovolného umístění. Skripty pak můžete později spustit vložením skriptu do aplikace SQL Server Management Studio.

Copy
Zkopíruje skript do schránky. Potom můžete skript vložit do aplikace SQL Server Management Studio, aby se spustily, a vytvořit databázi MSXDBCDC.

Práce se službami CDC

Konzolu konfigurace služby CDC můžete použít k vytvoření nové služby CDC a k přípravě databáze SQL Serveru pro CDC.

Příprava SQL Serveru
Tuto možnost vyberte v podokně Akce na pravé straně konzoly konfigurace služby CDC.

Můžete také kliknout pravým tlačítkem na Místní služby CDC a vybrat Připravit SQL Server.

Otevře se dialogové okno Příprava instance SQL Serveru pro Oracle CDC.

Informace o použití tohoto dialogového okna naleznete v tématu Příprava SQL Serveru pro CDC. Informace o tom, jak povolit instanci SQL Serveru pro CDC, naleznete v tématu Příprava SQL Serveru pro CDC.

Vytvoření nové služby CDC
V podokně Akce na pravé straně konzoly konfigurace služby CDC vyberte Možnost Nová služba.

Můžete také kliknout pravým tlačítkem na Místní služby CDC a vybrat Možnost Nová služba.

Otevře se dialogové okno Nová služba Oracle CDC.