Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Change Data Capture per Oracle di Attunity è ora obsoleto. Per altri dettagli, si veda l'annuncio.
Il servizio Oracle CDC è un servizio Windows che esegue il programma xdbcdcsvc.exe. Il servizio Oracle CDC può essere configurato per eseguire più servizi Windows nello stesso computer, ognuno con un nome di servizio Windows diverso. La creazione di più servizi Windows Oracle CDC in un singolo computer viene spesso eseguita per ottenere una migliore separazione tra di essi o quando ognuna deve lavorare con un'istanza di SQL Server diversa.
Un servizio Oracle CDC viene creato usando la console di configurazione del servizio Oracle CDC o viene definito tramite l'interfaccia della riga di comando incorporata nel programma xdbcdcsvc.exe. In entrambi i casi, ogni servizio Oracle CDC creato è associato a una singola istanza di SQL Server (che potrebbe essere in cluster o con mirroring con l'installazione di Always On ) e le informazioni di connessione (stringa di connessione e credenziali di accesso) fanno parte della configurazione del servizio.
Quando viene avviato un servizio Oracle CDC, tenta di connettersi all'istanza di SQL Server a cui è associato, ottenere l'elenco delle istanze di Oracle CDC da gestire ed eseguire una convalida iniziale dell'ambiente. Gli errori durante l'avvio del servizio e le eventuali informazioni di avvio/arresto vengono sempre scritte nel registro eventi dell'applicazione di Windows. Quando viene stabilita una connessione a SQL Server, tutti gli errori e i messaggi informativi vengono scritti nella tabella dbo.xdbcdc_trace del database MSXDBCDC dell'istanza di SQL Server. Uno dei controlli eseguiti durante l'avvio è verificare che nessun altro servizio Oracle CDC con lo stesso nome funzioni attualmente. Se un servizio con lo stesso nome è attualmente connesso da un computer diverso, il servizio Oracle CDC entra in un ciclo di attesa, in attesa che l'altro servizio si disconnette prima di procedere per gestire il lavoro di Oracle CDC.
Quando il servizio Oracle CDC supera tutte le verifiche di avvio, controlla la tabella dbo.xdbcdc_databases nel database MSXDBCDC per le istanze di Oracle CDC abilitate. Per ogni istanza di Oracle CDC abilitata, il servizio avvia un sottoprocesso per gestire l'istanza di Oracle CDC.
All'avvio di un'istanza di Oracle CDC, accede al database CDC di SQL Server con lo stesso nome dell'istanza di CDC e recupera il relativo stato dall'esecuzione precedente. Verifica anche che tutto sia in esecuzione correttamente. Riprende quindi l'elaborazione delle modifiche; Lettura dei log delle transazioni Oracle e scrittura delle modifiche nel database CDC.
Il servizio Oracle CDC monitora periodicamente la tabella dbo.xdbcdc_tables nel database MSXDBCDC per determinare se sono state apportate modifiche di configurazione a una delle configurazioni dell'istanza di Oracle CDC. Se viene trovata una modifica, il servizio Oracle CDC invia una notifica all'istanza di Oracle CDC che deve verificare la presenza di modifiche alla configurazione. La maggior parte delle modifiche di configurazione, ad esempio l'aggiunta e la rimozione di istanze di acquisizione, è possibile applicare mentre l'istanza di Oracle CDC è abilitata, mentre altre richiedono il riavvio dell'istanza di Oracle CDC.
Quando si usa la console di Oracle CDC Designer, le modifiche vengono rilevate automaticamente. Quando si aggiorna la configurazione di Oracle CDC direttamente tramite SQL, è necessario chiamare la procedura seguente per il servizio Oracle CDC per notare la modifica della configurazione:
DECLARE @dbname nvarchar(128) = 'HRcdc'
EXECUTE [MSXDBCDC].[dbo].[xdbcdc_update_config_version] @dbname
GO
Il processo dell'istanza di Oracle CDC aggiorna lo stato nella tabella di sistema cdc.xdbcdc_state e scrive le informazioni sull'errore nella tabella cdc.xdbcdc_trace . La tabella xdbcdc_state è utile per monitorare lo stato dell'istanza di Oracle CDC. Fornisce lo stato aggiornato, vari contatori (ad esempio il numero di modifiche lette da Oracle, il numero di modifiche scritte in SQL Server, il numero di transazioni confermate e il numero corrente di transazioni in sospeso) e l'indicazione della latenza.
La configurazione dell'istanza di Oracle CDC viene salvata nella tabella cdc.xdbcdc_config , ovvero la tabella utilizzata dalla console di Oracle CDC Designer. Poiché l'intera configurazione di un'istanza di Oracle CDC si trova nell'istanza di SQL Server di destinazione e nei database CDC, è possibile creare script di distribuzione di SQL Server per un'istanza di Oracle CDC. Questa operazione viene eseguita usando oracle CDC Service Configuration e oracle CDC Designer console.
Considerazioni sulla sicurezza
Di seguito vengono descritti i requisiti di sicurezza necessari per lavorare con il servizio CDC per Oracle.
Protezione dei dati Oracle di origine
Il servizio Oracle CDC non richiede l'accesso ai dati di origine Oracle ed è protetto assicurandosi che le credenziali di log mining non concedono l'autorizzazione SELECT per le tabelle Oracle del cliente.
Protezione dei dati di modifica di origine Oracle
Il servizio Oracle CDC viene fornito con credenziali di log mining che consentono al servizio di acquisire le modifiche apportate a qualsiasi tabella nel database Oracle. I dati delle modifiche non dispongono delle autorizzazioni di accesso granulari per le tabelle regolari, pertanto l'accesso ai dati delle modifiche ignora i controlli di accesso ai dati Oracle predefiniti.
Le tabelle Oracle di origine acquisite hanno tabelle mirror vuote con lo stesso schema e lo stesso nome di tabella nel database CDC. I dati acquisiti vengono archiviati nelle istanze di acquisizione di SQL Server e offrono la stessa protezione fornita per le modifiche acquisite dal database di SQL Server. Per ottenere l'accesso ai dati delle modifiche associati a un'istanza di acquisizione, all'utente deve essere concesso l'accesso selezionato a tutte le colonne acquisite della tabella mirror associata. Inoltre, se viene specificato un ruolo di controllo quando viene creata l'istanza di acquisizione, il chiamante deve anche essere un membro del ruolo di controllo specificato. Altre funzioni generali di Change Data Capture per l'accesso ai metadati sono accessibili a tutti gli utenti del database tramite il ruolo pubblico, anche se l'accesso ai metadati restituiti viene in genere gestito anche mediante l'accesso seleziona alle tabelle di origine sottostanti e dall'appartenenza a eventuali ruoli di controllo definiti.
Ciò significa che gli utenti con il ruolo predefinito del server sysadmin o il ruolo predefinito del database db_owner hanno (per impostazione predefinita) l'accesso completo ai dati acquisiti e un ulteriore accesso può essere concesso tramite ruoli di controllo o concedendo l'accesso selezionato alle colonne acquisite.
Protezione delle credenziali di mining dei log Oracle di origine
La configurazione del servizio Oracle CDC, archiviata nel database CDC (nella tabella cdc.xdbcdc_config) include il nome utente di log mining e la password associata.
La password di log mining viene archiviata crittografata tramite una chiave asimmetrica con il nome xdbcdc_asym_key fisso creato automaticamente con il comando seguente:
USE [<cdc-database-name>]
CREATE ASYMMETRIC KEY xdbcdc_asym_key
WITH ALGORITHM = RSA_1024
ENCRYPTION BY PASSWORD = '<cdc-database-name><asym-key-password>'
Se viene usato un algoritmo diverso, è possibile eliminare questa chiave e crearne una nuova con lo stesso nome e crittografata con la stessa password.
La password della chiave asimmetrica è la password master salvata nel Registro di sistema nel percorso HKLM\Software\Microsoft\XDBCDCSVC\\<service-name>. Tale chiave è accessibile solo agli amministratori locali e all'account del servizio Windows Oracle CDC. La chiave contiene un valore binario crittografato AsymmetricKeyPassword che ha archiviato la password della chiave asimmetrica. L'accesso a questa chiave del registro è necessario per poter accedere alle credenziali di log mining Oracle.
Per usare la clausola ENCRYPTION BY PASSWORD, la password deve soddisfare i requisiti dei criteri password di Windows per il computer che esegue l'istanza di SQL Server. Per fare ciò, seleziona la password della chiave asimmetrica in base a quella politica.
Se la password della chiave asimmetrica viene persa, le credenziali di log mining per ognuna delle istanze di Oracle CDC devono essere specificate di nuovo in Oracle CDC Service Designer.
La chiave asimmetrica viene creata automaticamente nel database CDC quando il servizio CDC rileva un database CDC di istanza Oracle che non dispone di questa chiave asimmetrica o quando la chiave esiste, ma la password non corrisponde.
Account del servizio Oracle CDC nel servizio Windows
L'account del servizio usato con il servizio Windows Oracle CDC non richiede privilegi aggiuntivi. Questo account deve essere in grado di usare sia l'API Oracle Native Client che l'API ODBC di SQL Server Native Client. Deve anche essere in grado di accedere alla chiave di configurazione del servizio nel Registro di sistema . Questa console di configurazione del servizio CDC configura l'ACL per tale chiave.
In questa sezione
Connessione a SQL Server
Quando un login senza un ruolo del database che include i permessi di scrittura, ad esempio il ruolo db_owner, nel database MSXDBCDC tenta di creare un'istanza di Oracle CDC, viene visualizzata la finestra di dialogo di connessione a SQL Server.
In questa finestra di dialogo è necessario immettere le credenziali per un account di accesso con autorizzazione di scrittura per il database MSXDBCDC, ad esempio il ruolo del database db_owner per creare la nuova istanza di Oracle CDC.
Immettere le informazioni seguenti nella finestra di dialogo Connetti a SQL Server.
Nome del server
Digitare il nome del server in cui si trova SQL Server.
Authentication
Selezionare una delle opzioni seguenti:
Autenticazione di Windows
Autenticazione di SQL Server: se si seleziona questa opzione, è necessario digitare l'account di accesso e la password per l'utente in SQL Server a cui ci si connette.
Options
Selezionare la freccia per visualizzare le opzioni disponibili da configurare. È possibile scegliere di lasciare queste opzioni con il relativo valore predefinito. Le opzioni disponibili sono:
Timeout connessione: inserire il tempo, espresso in secondi, che il programma attende affinché venga stabilita la connessione a SQL Server prima di generare un errore di timeout. Il valore predefinito è
15.Timeout di esecuzione: Digitare il tempo in secondi che il programma attende per il completamento dell'esecuzione del comando SQL prima di generare un errore di timeout. Il valore predefinito è
30.Crittografa connessione: selezionare Crittografa connessione per assicurarsi che la connessione di SQL Server stabilita sia crittografata per garantire la privacy.
Avanzate: selezionare Avanzate e digitare eventuali proprietà di connessione aggiuntive nella finestra di dialogo Proprietà connessione avanzata, se necessario.
Connessione a SQL Server per l'eliminazione
Quando un account di accesso senza un ruolo del database che include l'autorizzazione di scrittura (ad esempio il ruolo db_owner ) al database MSXDBCDC tenta di eliminare un'istanza di Oracle CDC, viene visualizzata la finestra di dialogo Connetti a SQL Server.
In questa finestra di dialogo è necessario immettere le credenziali per un account di accesso con autorizzazione di scrittura per il database MSXDBCDC, ad esempio il ruolo del database db_owner per eliminare l'istanza di Oracle CDC.
Immettere le informazioni seguenti nella finestra di dialogo Connetti a SQL Server.
Nome server
Digitare il nome del server in cui si trova SQL Server.
Autenticazione
Selezionare una delle opzioni seguenti:
Autenticazione di Windows
Autenticazione di SQL Server: se si seleziona questa opzione, è necessario digitare l'account di accesso e la password per l'utente in SQL Server a cui ci si connette.
Opzioni
Selezionare la freccia per visualizzare le opzioni disponibili da configurare. È possibile scegliere di lasciare queste opzioni con il relativo valore predefinito. Le opzioni disponibili sono:
Timeout connessione: inserire il tempo, espresso in secondi, che il programma attende affinché venga stabilita la connessione a SQL Server prima di generare un errore di timeout. Il valore predefinito è
15.Timeout di esecuzione: Digitare il tempo in secondi che il programma attende per il completamento dell'esecuzione del comando SQL prima di generare un errore di timeout. Il valore predefinito è
30.Crittografa connessione: selezionare Crittografa connessione per assicurarsi che la connessione di SQL Server stabilita sia crittografata per garantire la privacy.
Avanzate: selezionare Avanzate e digitare eventuali proprietà di connessione aggiuntive nella finestra di dialogo Proprietà connessione avanzata, se necessario.
Creare e modificare un servizio Oracle CDC
Creare e modificare un nuovo servizio Windows Oracle CDC da CDC Service Configuration Console.
Per creare un nuovo servizio Windows Oracle CDC, selezionare Local CDC Services (Servizi CDC locali ) nel riquadro sinistro e quindi selezionare New Service (Nuovo servizio ) nel riquadro Azioni . È anche possibile fare clic con il pulsante destro del mouse su Servizi CDC locali e scegliere Nuovo servizio. Verrà visualizzata la finestra di dialogo Nuovo servizio Windows Oracle CDC.
OR
Per modificare le proprietà del servizio CDC, selezionare il servizio per cui si desidera modificare le proprietà e selezionare Proprietà nel riquadro Azioni . È anche possibile fare clic con il pulsante destro del mouse sul servizio in uso e scegliere Proprietà. Verrà visualizzata la finestra di dialogo Proprietà servizio CDC.
Immettere le informazioni seguenti nella finestra di dialogo Nuovo servizio Windows Oracle CDC o nella finestra di dialogo Proprietà servizio CDC.
Nome servizio
Digitare il nome del nuovo servizio Windows Oracle CDC. Se possibile, non è consigliabile usare nomi lunghi. I caratteri / e \ non possono essere usati nel nome del servizio.
Annotazioni
Questa opzione non è disponibile durante la modifica del servizio. Non è possibile modificare il nome di un servizio Windows già esistente.
Descrizione
Digitare una descrizione del servizio per identificarlo.
Account di servizio
Selezionare una delle opzioni seguenti per determinare in quale account eseguire il servizio:
Account di sistema locale
Questa operazione non è consigliata perché concede troppe autorizzazioni al servizio.
Questo account
In Windows Vista o Windows Server 2008, l'account del servizio predefinito è l'account SERVIZIO DI RETE.
In Windows 7, Windows Server 2008 R2 e versioni successive, l'account del servizio predefinito è NT Service\\<service-name>.
L'uso di questi account consente di lavorare senza usare le password perché non è necessaria una password per questi account. Inoltre, questi account forniscono solo le autorizzazioni necessarie per l'esecuzione del servizio Oracle CDC.
È possibile usare un account di Windows locale o di dominio per l'account del servizio. In questo caso, è necessario immettere la password per tale account. Questo account può essere per l'host locale o un account di dominio. Assicurarsi di aggiornare la password quando viene modificata usando i servizi locali nel Pannello di controllo di Windows.
Nome server: selezionare l'istanza di SQL Server di destinazione a cui connettersi, ad esempio \\<computer_name>\<instance_name>). L'ultima istanza del server connessa a viene visualizzata per impostazione predefinita.
Autenticazione
Selezionare una delle opzioni seguenti:
Autenticazione di Windows: se si seleziona questa opzione, il servizio Oracle CDC si connette all'istanza di SQL Server di destinazione usando l'identità dell'account del servizio. Se l'istanza di SQL Server è in esecuzione in un computer diverso, l'autenticazione di Windows deve essere usata con gli account di dominio.
Autenticazione di SQL Server: se si seleziona questa opzione, è necessario digitare il nome utente e la password per l'account di accesso di SQL Server che si vuole usare. Il servizio Oracle CDC usa queste credenziali per la connessione all'istanza di SQL Server di destinazione.
L'account di accesso di SQL Server usato dal servizio Oracle CDC deve essere solo un membro del ruolo predefinito del server pubblico, non sono necessari altri privilegi. Dopo aver aggiunto nuove istanze di Oracle CDC, tale account di accesso otterrà db_owner accesso ai database DI SQL Server CDC associati.
Per creare la definizione del servizio Windows Oracle CDC, il programma deve aggiornare l'accesso al database MSXDBCDC nell'istanza di SQL Server associata. Quando si seleziona OK, una finestra di dialogo richiede di immettere un account di accesso di SQL Server con un accesso di aggiornamento al database MSXDBCDC.
Opzioni
Selezionare la freccia per visualizzare le opzioni disponibili da configurare. È possibile scegliere di lasciare queste opzioni con il relativo valore predefinito. Le opzioni disponibili sono:
Timeout connessione: inserire il tempo (in secondi) che il servizio CDC per Oracle attende una connessione al server SQL prima del timeout. Il valore predefinito è
15.Timeout esecuzione: digitare il tempo in secondi in cui il servizio Windows Oracle CDC attende l'esecuzione di un comando prima del timeout. Il valore predefinito è
30.Crittografa Connessione: Selezionare Crittografa Connessione per la comunicazione tra il servizio Oracle CDC e l'istanza di SQL Server di destinazione utilizzando una connessione crittografata.
Avanzate: digitare eventuali proprietà di connessione aggiuntive, se necessario.
Master Password
Immettere una password da usare dal servizio Windows Oracle CDC per proteggere le credenziali di log mining Oracle.
La stessa password master deve essere usata anche quando altre istanze dello stesso servizio sono configurate in altri nodi in un cluster nella configurazione a disponibilità elevata. Se si perde o si modifica la password master, tutte le password di log mining archiviate nei database dell'istanza di Oracle CDC devono essere immesse nuovamente tramite cdc Designer Console.
Gestire un servizio Oracle CDC
È possibile usare CDC Service Configuration Console per gestire un servizio CDC specifico.
Per selezionare il servizio CDC da usare
Nel riquadro sinistro della CDC Service Configuration Console, espandi Servizi CDC locali.
Selezionare il servizio CDC con cui si vuole lavorare.
È anche possibile fare clic con il pulsante destro del mouse sul servizio CDC da usare e selezionare l'azione desiderata.
OR
Selezionare Local CDC Services (Servizi CDC locali ) nel riquadro sinistro in CDC Service Configuration Console( Console di configurazione del servizio CDC).
Nella sezione centrale di CDC Service Configuration Console selezionare il servizio che si vuole usare.
È anche possibile fare clic con il pulsante destro del mouse sul servizio CDC da usare e selezionare l'azione desiderata.
Azioni quando si usa un servizio CDC
Quando si usa un servizio CDC, è possibile eseguire le azioni seguenti.
Eliminare il servizio
Nel riquadro Azioni sul lato destro di CDC Service Configuration Console selezionare Elimina per eliminare il servizio.
È anche possibile fare clic con il pulsante destro del mouse sul servizio CDC da eliminare e scegliere Elimina.
Annotazioni
Se il servizio è in esecuzione durante l'eliminazione del servizio, il servizio viene arrestato prima di essere eliminato.
Per eliminare la definizione del servizio Windows Oracle CDC, il programma deve aggiornare l'accesso al database MSXDBCDC nell'istanza di SQL Server associata. Quando si seleziona OK per eliminare il servizio, il programma tenta di eliminare la registrazione del servizio Oracle CDC nel database MSXDBCDC. Se il programma non riesce a eliminare la registrazione del servizio Oracle CDC perché non dispone delle autorizzazioni appropriate, richiede di immettere un account di accesso di SQL Server con autorizzazioni di aggiornamento per il database MSXDBCDC.
Modificare le proprietà del servizio CDC
Nel riquadro Azioni sul lato destro di CDC Service Configuration Console selezionare Proprietà.
È anche possibile fare clic con il pulsante destro del mouse sul servizio CDC in cui si desidera modificare le proprietà e selezionare Proprietà.
Preparare SQL Server per CDC
Il servizio Oracle CDC richiede che tutte le istanze di SQL Server di destinazione contengano il database MSXDBCDC. Questo database viene creato usando l'azione Prepara SQL Server in CDC Service Configuration Console. Verrà creato uno script speciale che viene eseguito per creare le tabelle, le stored procedure e altri artefatti necessari per questo database. Questa attività viene eseguita una sola volta per ogni istanza di SQL Server di destinazione.
Per altre informazioni sul database MSXDBCDC, vedere Database MSXDBCDC.
In CDC Service Configuration Console, selezionare Prepare SQL Server. Se questa opzione non è disponibile, assicurarsi che Servizi CDC locali sia selezionato nel riquadro sinistro della console.
Options
Nome server
Digitare il nome del server in cui si trova SQL Server.
Autenticazione
Selezionare una delle opzioni seguenti:
Autenticazione di Windows
Autenticazione di SQL Server: se si seleziona questa opzione, è necessario digitare il nome utente e la password per l'utente in SQL Server a cui ci si connette.
Per preparare l'istanza di SQL Server per Oracle CDC, l'account di accesso deve disporre dell'autorizzazione di scrittura per il database MSXDBCDC. Immettere le credenziali per un account di accesso con autorizzazione di scrittura per il database MSXDBCDC, ad esempio un membro del sysasmin ruolo.
Opzioni
Selezionare la freccia per visualizzare le opzioni disponibili da configurare. È possibile scegliere di lasciare queste opzioni con il relativo valore predefinito. Le opzioni disponibili sono:
Timeout connessione: inserire il tempo (in secondi) che il servizio CDC per Oracle attende una connessione al server SQL prima del timeout. Il valore predefinito è
15.Timeout esecuzione: digitare il tempo in secondi in cui il servizio Windows Oracle CDC attende l'esecuzione di un comando prima del timeout. Il valore predefinito è
30.Crittografa Connessione: Selezionare Crittografa Connessione per la comunicazione tra il servizio Oracle CDC e l'istanza di SQL Server di destinazione utilizzando una connessione crittografata.
Avanzate: digitare eventuali proprietà di connessione aggiuntive, se necessario.
Visualizza script
Selezionare Visualizza script per visualizzare una versione di sola lettura dello script di installazione. Un amministratore di sistema di SQL Server può copiare questo script nella Console di gestione di SQL Server per modificarlo, se necessario.
Preparare SQL Server per lo script CDC-View di Oracle
Questa finestra di dialogo mostra lo script PREPARE SQL che crea il database MSXDBCDC. Questo database deve trovarsi in un'istanza di SQL Server per poterlo usare con Oracle CDC per SQL Server.
Eseguire le operazioni seguenti nella finestra di dialogo Prepare SQL Server Script .Do the following in the Prepare SQL Server Script dialog box.
Salva con nome
Salva lo script in un file di testo che è possibile salvare in qualsiasi posizione desiderata. È quindi possibile eseguire gli script in un secondo momento incollando lo script in SQL Server Management Studio.
Copy
Copia lo script negli Appunti. È quindi possibile incollare lo script in SQL Server Management Studio per eseguirli e creare il database MSXDBCDC.
Usare i servizi CDC
È possibile usare CDC Service Configuration Console per creare un nuovo servizio CDC e preparare un database di SQL Server per CDC.
Preparare SQL Server
Selezionare questa opzione nel riquadro Azioni sul lato destro di CDC Service Configuration Console.
È anche possibile fare clic con il pulsante destro del mouse su Servizi CDC locali e scegliere Prepara SQL Server.
Verrà visualizzata la finestra di dialogo Preparazione dell'istanza di SQL Server per Oracle CDC.
Per informazioni su come usare questa finestra di dialogo, vedere Preparare SQL Server per CDC. Per informazioni su come abilitare un'istanza di SQL Server per CDC, vedere Come preparare SQL Server per CDC.
Creare un nuovo servizio CDC
Selezionare Nuovo servizio nel riquadro Azioni sul lato destro di CDC Service Configuration Console.
È anche possibile fare clic con il pulsante destro del mouse su Servizi CDC locali e scegliere Nuovo servizio.
Verrà visualizzata la finestra di dialogo Nuovo servizio Oracle CDC.