Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Change Data Capture voor Oracle door Attunity is nu verouderd verklaard. Raadpleeg de aankondigingvoor meer informatie.
In deze sectie worden enkele belangrijke concepten van de Oracle CDC-service beschreven. De concepten in deze sectie zijn:
-
In deze sectie worden de tabellen beschreven die zijn opgenomen in deze database en hoe het belangrijk is voor CDC.
-
Deze sectie bevat een korte beschrijving van de CDC-databases. Deze databases worden gemaakt met behulp van de Oracle CDC Designer-console. Zie de documentatie die is opgenomen in uw installatie van de CDC Designer-console voor meer informatie over de CDC-databases.
De opdrachtregel gebruiken om de CDC-service te configureren
In deze sectie worden de opdrachtregelopdrachten beschreven die kunnen worden gebruikt om de Oracle CDC-service te configureren.
De MSXDBCDC-database
De MSXDBCDC -database (Microsoft External-Database CDC) is een speciale database die is vereist bij het gebruik van de CDC-service voor Oracle met een SQL Server-exemplaar.
De naam van deze database kan niet worden gewijzigd. Als er een database met de naam MSXDBCDC bestaat op het SQL Server-hostexemplaar en deze andere tabellen bevat dan die gedefinieerd door de CDC-service voor Oracle, kan het hostexemplaar van SQL Server niet worden gebruikt.
De belangrijkste toepassingen voor deze database zijn:
Fungeren als een register van Oracle CDC Services die zijn gekoppeld aan een SQL Server-exemplaar. Deze informatie wordt gebruikt voor de onderdelen van de serviceconfiguratie en het ontwerp en ter ondersteuning van de coördinatie van meerdere CDC-services met dezelfde naam op verschillende knooppunten waarover één de actieve is.
Fungeren als een register van de Oracle CDC-exemplaren in een SQL Server-exemplaar, de CDC-service die elk exemplaar verwerkt en de configuratieversie die elk van deze exemplaren gebruikt. Deze informatie is gelijk aan de kolom is_cdc_enabled in de tabel sys.databases van de hoofddatabase. De CDC-service scant periodiek de dbo.xdbcdc_databases tabel om wijzigingen in de CDC-configuratie of de lijst met vastgelegde exemplaren te identificeren.
Bewaar sysadmin-eigendom opgeslagen procedures die helpen bij het creëren en onderhouden van CDC-instanties. Deze zijn vergelijkbaar met de systeemprocedures die worden gebruikt voor de implementatie van de SQL Server CDC-functie.
De MSXDBCDC-database maken
Er moet een MSXDBCDC-database worden gemaakt voordat de Oracle CDC-service kan worden gedefinieerd. U kunt slechts één MSXDBCDC-database maken op een SQL Server-exemplaar. De MSXDBCDC-database wordt gemaakt wanneer u een SQL Server-database voorbereidt voor Oracle CDC. U kunt dit doen met behulp van de Oracle CDC Service Configuration-console of door een script voor het maken uit te voeren dat wordt gegenereerd door de CDC-serviceconfiguratieconsole.
De eigenaar van deze database is de Oracle CDC-servicebeheerder die alle Oracle CDC-exemplaren kan beheren die worden gehost onder het SQL Server-exemplaar.
Zie ook:
SQL Server voorbereiden voor CDC
De MSXDBCDC-databasetabellen
In deze sectie worden de volgende tabellen in de MSXDBCDC-database beschreven.
dbo.xdbcdc_trace
In deze tabel worden traceringsgegevens voor de Oracle CDC-service opgeslagen. De informatie die in deze tabel is opgeslagen, bevat belangrijke statuswijzigingen en traceringsrecords.
De Oracle CDC-service schrijft foutrecords en enkele informatierecords naar zowel het Windows-gebeurtenislogboek als de traceringstabel. In sommige gevallen is de traceringstabel mogelijk niet toegankelijk. In dat geval is de foutinformatie toegankelijk vanuit het gebeurtenislogboek.
Hieronder worden de items beschreven die zijn opgenomen in de dbo.xdbcdc_trace tabel.
| Onderdeel | Beschrijving |
|---|---|
| tijdstempel | De exacte UTC-tijdstempel waarop de traceringsrecord is geschreven. |
| soort | Bevat een van de volgende waarden. FOUT INFORMATIE SPOOR |
| knooppunt | De naam van het knooppunt waarop de record is geschreven. |
| stand van zaken | De statuscode die wordt gebruikt door de statustabel. |
| sub_status | De substatuscode die wordt gebruikt door de statustabel. |
| statusbericht | Het statusbericht dat wordt gebruikt door de statustabel. |
| bron | De naam van het Oracle CDC-onderdeel dat de traceringsrecord heeft geproduceerd. |
| tekst_data | Aanvullende tekstgegevens voor gevallen waarin de fout- of traceringsrecord een tekstuele gegevensinhoud bevat. |
| binaire_gegevens | Aanvullende binaire gegevens voor gevallen waarin een fout- of traceringsrecord een binaire payload bevat. |
Met het Oracle CDC-exemplaar worden oude rijen van de traceringstabel verwijderd volgens het retentiebeleid voor wijzigingstabellen.
dbo.xdbcdc_databases
Deze tabel bevat de namen van CDC Service voor Oracle CDC-databases in het huidige SQL Server-exemplaar. Elke database komt overeen met een Oracle CDC-exemplaar. De Oracle CDC-service gebruikt deze tabel om te bepalen welke exemplaren moeten worden gestart of gestopt en welke exemplaren opnieuw moeten worden geconfigureerd.
In de volgende tabel worden de items beschreven die zijn opgenomen in de dbo.xdbcdc_databases tabel.
| Onderdeel | Beschrijving |
|---|---|
| naam | De naam van de Oracle-database in het SQL Server-exemplaar. |
| configuratie_versie | De tijdstempel (UTC) voor de laatste wijziging in de bijbehorende CDC-database xdbcdc_config tabel of de tijdstempel (UTC) voor de huidige rij in deze tabel. Met de UPDATE-trigger wordt een waarde van GETUTCDATE() afgedwongen voor dit item. config_version kan de CDC-service het CDC-exemplaar identificeren dat moet worden gecontroleerd op configuratiewijziging of voor in- of uitschakelen. |
| cdc_servicenaam | Dit item bepaalt welke Oracle CDC-service de geselecteerde Oracle-database verwerkt. |
| Ingeschakeld | Geeft aan of het Oracle CDC-exemplaar actief is (1) of is uitgeschakeld (0). Wanneer de Oracle CDC-service wordt gestart, worden alleen de exemplaren gestart die zijn gemarkeerd als inschakelen (1). Opmerking: Een Oracle CDC-exemplaar kan worden uitgeschakeld vanwege een fout die niet opnieuw kan worden geprobeerd. In dit geval moet het exemplaar handmatig opnieuw worden gestart nadat de fout is opgelost. |
dbo.xdbcdc_services
Deze tabel bevat de CDC-services die zijn gekoppeld aan het SQL Server-hostexemplaar. Deze tabel wordt gebruikt door de CDC Designer-console om de lijst met CDC-services te bepalen die zijn geconfigureerd voor het lokale SQL Server-exemplaar. Het wordt ook gebruikt door de CDC-service om ervoor te zorgen dat slechts één actieve Windows-service een bepaalde Oracle CDC-servicenaam verwerkt.
Hieronder worden de vastgelegde statusitems beschreven die zijn opgenomen in de tabel dbo.xdbcdc_databases .
| Onderdeel | Beschrijving |
|---|---|
| cdc_servicenaam | De naam van de Oracle CDC-service (de Windows-servicenaam). |
| cdc_service_sql_login | De naam van de SQL Server-aanmelding die door de Oracle CDC-service wordt gebruikt om verbinding te maken met het SQL Server-exemplaar. Er wordt een nieuwe SQL-gebruiker met de naam cdc_service aangemaakt, gekoppeld aan deze aanmeldingsnaam, en vervolgens toegevoegd als lid van de vaste databaserollen db_ddladmin, db_datareader en db_datawriter voor elke CDC-database die door de service wordt beheerd. |
| ref_count | Dit item telt het aantal machines waarop dezelfde Oracle CDC-service is geïnstalleerd. Het wordt verhoogd met elke toevoeging van een Oracle CDC-service met dezelfde naam en verlaagd wanneer een dergelijke service wordt verwijderd. Wanneer de teller nul bereikt, wordt deze rij verwijderd. |
| actieve_dienstenknoop | De naam van het Windows-knooppunt dat momenteel de CDC-service verwerkt. Wanneer de service correct is gestopt, wordt deze kolom ingesteld op null, wat aangeeft dat er geen actieve service meer is. |
| actieve_service_hartslag | Dit item houdt de huidige CDC-service bij om te bepalen of het nog actief is. Dit item wordt bijgewerkt met de huidige UTC-tijdstempel van de database voor de actieve CDC-service met regelmatige tussenpozen. Het standaardinterval is 30 seconden, maar het interval kan worden geconfigureerd. Wanneer een in behandeling zijnde CDC-service detecteert dat de heartbeat niet is bijgewerkt nadat het geconfigureerde interval is verstreken, probeert de in behandeling zijnde service de actieve CDC-servicerol over te nemen. |
| Opties | Dit onderdeel specificeert de secundaire opties, zoals tracering of afstellen. Deze wordt geschreven in de vorm van naam[=waarde][; ]. De tekenreeks met opties maakt gebruik van dezelfde semantiek als de ODBC-verbindingsreeks. Als de optie Booleaanse waarde is (met een waarde van ja/nee), kan de waarde alleen de naam bevatten. trace heeft de volgende mogelijke waarden. waar op onwaar uit <klassenaam>[,klassenaam>] De standaardwaarde is onwaar. service_heartbeat_interval is het tijdsinterval (in seconden) voor de service om de kolom active_service_heartbeat bij te werken. De standaardwaarde is 30. De maximumwaarde is 3600. service_config_polling_interval is het polling-interval (in seconden) voor de CDC-service om te controleren op configuratiewijzigingen. De standaardwaarde is 30. De maximumwaarde is 3600. sql_command_timeout is de time-out van de opdracht die werkt met de SQL Server. De standaardwaarde is 1. De maximumwaarde is 3600. |
De opgeslagen procedures van de MSXDBCDC-database
In deze sectie worden de volgende opgeslagen procedures in de MSXDBCDC-database beschreven.
dbo.xcbcdc_reset_db(databasenaam)
Met deze procedure worden de gegevens van een Oracle CDC-exemplaar gewist. Deze wordt gebruikt:
Om het vastleggen van gegevens opnieuw te starten terwijl u eerdere gegevens negeert, bijvoorbeeld na het herstel van de brondatabase of na een periode van inactiviteit waarbij sommige Oracle-transactielogboeken niet beschikbaar zijn.
Wanneer er sprake is van een beschadiging in de CDC-status (met name in de gegevens van cdc.*tabellen).
De dbo.xcbcdc_reset_db procedure voert de volgende taken uit:
Stopt het CDC-exemplaar (indien actief).
Hiermee worden de wijzigingstabellen, de cdc_lsn_mapping tabel en de cdc_ddl_history tabel afgekapt.
Hiermee wist u de cdc_xdbcdc_state tabel.
Leegmaken de start_lsn-kolom voor elke rij van de cdc_change_table.
Als u de dbo.xcbcdc_reset_db procedure wilt gebruiken, moet de gebruiker lid zijn van de db_owner-databaserol voor de CDC-voorbeelddatabase die wordt genoemd, of anders lid zijn van de vaste serverrol sysadmin of serveradmin.
Zie De CDC-databases in het Help-systeem in de CDC Designer-console voor meer informatie over de CDC-tabellen.
dbo.xdbcdc_disable_db(dbname)
De dbo.xcbcdc_disable_db procedure voert de volgende taak uit:
- Hiermee verwijdert u de vermelding voor de geselecteerde CDC-database in de MSXDBCDC.xdbcdc_databases tabel.
Als u de dbo.xcbcdc_disable_db procedure wilt gebruiken, moet de gebruiker lid zijn van de db_owner-databaserol voor het CDC-exemplaar dat een naam heeft of lid is van de vaste serverrol sysadmin of serveradmin .
Zie De CDC-databases in het Help-systeem in de CDC Designer-console voor meer informatie over de CDC-tabellen.
dbo.xcbcdc_add_service(svcname,sqlusr)
De dbo.xcbcdc_add_service procedure voegt een vermelding toe aan de MSXDBCDC.xdbcdc_services tabel en voegt een verhoging van een toe aan de kolom ref_count voor de servicenaam in de MSXDBCDC.xdbcdc_services tabel. Wanneer de ref_count 0 is, wordt de rij verwijderd.
Als een gebruiker de procedure < met de servicenaam en gebruikersnaam wil gebruiken, moet deze gebruiker een lid zijn van de > rol van de benoemde CDC-exemplaardatabase of lid zijn van de vaste rol sysadmin of serveradmin.
dbo.xdbcdc_start(dbname)
De dbo.xdbcdc_start procedure verzendt een startaanvraag naar de CDC-service die het geselecteerde CDC-exemplaar verwerkt om de wijzigingsverwerking te starten.
Als u de dbo.xcdcdc_start procedure wilt gebruiken, moet de gebruiker lid zijn van de db_owner-databaserol voor de CDC-database of lid zijn van de sysadmin- of serveradmin-functies voor het SQL Server-exemplaar.
dbo.xdbcdc_stop(dbname)
De dbo.xdbcdc_stop procedure verzendt een stopaanvraag naar de CDC-service die het geselecteerde CDC-exemplaar verwerkt om de verwerking van wijzigingen te stoppen.
Als u de dbo.xcdcdc_stop procedure wilt gebruiken, moet de gebruiker lid zijn van de db_owner databaserol voor de CDC-database of lid zijn van de sysadmin- of serveradmin-functies voor het SQL Server-exemplaar.
De CDC-databases
Elk Oracle CDC-exemplaar dat in een CDC-service wordt gebruikt, is gekoppeld aan een specifieke SQL Server-database, de CDC-database. Deze SQL Server-database wordt gehost in het SQL Server-exemplaar dat is gekoppeld aan de Oracle CDC-service.
De CDC-database bevat een speciaal CDC-schema. De Oracle CDC-service gebruikt dit schema met tabelnamen met het voorvoegsel xdbcdc_. Dit schema wordt gebruikt voor beveiligings- en consistentiedoeleinden.
Zowel het Oracle CDC-exemplaar als de CDC-databases worden gemaakt met behulp van de Oracle CDC Designer-console. Zie de documentatie die is opgenomen in uw installatie van de Oracle CDC Designer-console voor meer informatie over de CDC-databases.
De opdrachtregel gebruiken om de CDC-service te configureren
U kunt het Oracle CDC Service-programma (xdbcdcsvc.exe) vanaf de opdrachtregel gebruiken. Het CDC-serviceprogramma is een systeemeigen 32-bits/64-bits uitvoerbaar Windows-bestand.
Zie ook
De CDC-service Command-Line-interface gebruiken
Opdrachten voor serviceprogramma's
In de sectie worden de volgende opdrachten beschreven die worden gebruikt om de CDC-service te configureren.
Configuratie
Hiermee Config werkt u een Oracle CDC-serviceconfiguratie bij vanuit een script. De opdracht kan worden gebruikt om alleen specifieke onderdelen van de CDC-serviceconfiguratie bij te werken (bijvoorbeeld alleen de verbindingsreeks zonder het wachtwoord van de asymmetrische sleutel te kennen). De opdracht moet worden uitgevoerd door een computerbeheerder. Hier volgt een voorbeeld van de Config opdracht.
"<path>xdbcdcsvc.exe" config
<cdc-service-name>
[connect= <sql-server-connection-string>]
[key= <asym-key-password>]
[svcacct= <windows-account> <windows-password>]
[sqlacct= <sql-username> <sql-password>]
Waar:
cdc-service-name is de naam van de CDC-service die moet worden bijgewerkt. Dit is een vereiste parameter.
sql-server-connection-string is de verbindingsreeks die moet worden bijgewerkt. Als de verbindingsreeks spaties of aanhalingstekens bevat, moet deze tussen dubbele aanhalingstekens () worden geplaatst. Ingesloten aanhalingstekens worden ontsnapt door de aanhalingstekens te verdubbelen.
asym-key-password is het wachtwoord dat moet worden bijgewerkt.
windows-account, windows-wachtwoord zijn de Windows-accountreferenties voor de service die wordt bijgewerkt.
sql-username, sql-password zijn de SQL Server-verificatiereferenties die worden bijgewerkt. Als sqlacct zowel een lege gebruikersnaam als een leeg wachtwoord heeft, maakt de Oracle CDC-service verbinding met SQL Server met behulp van Windows-verificatie.
Opmerking: elke parameter die spaties of dubbele aanhalingstekens bevat, moet worden verpakt met dubbele aanhalingstekens ("). Ingesloten dubbele aanhalingstekens moeten worden verdubbeld (als u bijvoorbeeld 'A#B' D als wachtwoord wilt gebruiken, voert u ''A#B'' D' in).
Maak
Hiermee Create maakt u een Oracle CDC-service op basis van een script. De opdracht moet worden uitgevoerd door een computerbeheerder. Hier volgt een voorbeeld van de Create opdracht:
"<path>xdbcdcsvc.exe" create
<cdc-service-name>
[connect= "<sql-server-connection-string>"]
[key= <asym-key-password>]
[svcacct <windows-account> <windows-password>]
[sqlacct <sql-username> <sql-password>]
Waar:
cdc-service-name is de naam van de zojuist gemaakte service. Als er al een service met deze naam is, retourneert het programma een fout. Gebruik geen lange namen of namen met spaties. De tekens '/' en '\' zijn ongeldige tekens in een servicenaam. Dit is een vereiste parameter.
sql-server-connection-string is de verbindingsreeks die moet worden gebruikt om verbinding te maken met het SQL Server-exemplaar dat is gekoppeld aan de nieuwe Oracle CDC-service.
asym-sleutel-wachtwoord is het wachtwoord dat de asymmetrische sleutel beveiligt die wordt gebruikt voor het opslaan van de referenties voor logboekanalyse van de brondatabase.
windows-account, windows-wachtwoord zijn de accountnaam en het wachtwoord die zijn gekoppeld aan de Oracle CDC-service die wordt gemaakt.
sql-username, sql-password zijn de sql Server-accountnaam en het wachtwoord die worden gebruikt om verbinding te maken met het SQL Server-exemplaar. Als beide parameters leeg zijn, maakt CDC Service voor Oracle verbinding met SQL Server met behulp van Windows-verificatie.
Opmerking: elke parameter die spaties of dubbele aanhalingstekens bevat, moet worden verpakt met dubbele aanhalingstekens ("). Ingesloten dubbele aanhalingstekens moeten worden verdubbeld (als u bijvoorbeeld 'A#B' D als wachtwoord wilt gebruiken, voert u ''A#B'' D' in.
Verwijderen
Gebruik Delete dit om de Oracle CDC-service schoon te verwijderen uit een script. Deze opdracht moet worden uitgevoerd door een computerbeheerder. Hier volgt een voorbeeld van de Delete opdracht.
"<path>xdbcdcsvc.exe" delete
<cdc-service-name>
Waar:
cdc-service-name is de naam van de CDC-service die moet worden verwijderd.
Opmerking: elke parameter die spaties of dubbele aanhalingstekens bevat, moet worden verpakt met dubbele aanhalingstekens ("). Ingesloten dubbele aanhalingstekens moeten worden verdubbeld (als u bijvoorbeeld 'A#B' D als wachtwoord wilt gebruiken, voert u ''A#B'' D' in).
Zie ook
De CDC-service Command-Line-interface gebruiken
SQL Server voorbereiden voor CDC