Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
La captura de datos modificados para Oracle de Attunity está en desuso ahora. Para obtener información, consulte el anuncio.
El servicio CDC de Oracle es un servicio de Windows que ejecuta el programa xdbcdcsvc.exe. El servicio CDC de Oracle se puede configurar para ejecutar varios servicios de Windows en el mismo equipo, cada uno con un nombre de servicio de Windows diferente. La creación de varios servicios de Windows CDC de Oracle en un único equipo se realiza a menudo para lograr una mejor separación entre ellos o cuando cada uno necesita trabajar con una instancia de SQL Server diferente.
Se crea un servicio CDC de Oracle mediante la consola de configuración del servicio CDC de Oracle o se define a través de la interfaz de línea de comandos integrada en el programa xdbcdcsvc.exe. En ambos casos, cada servicio CDC de Oracle creado está asociado a una única instancia de SQL Server (que podría estar agrupada o reflejada con la configuración de AlwaysOn ) y la información de conexión (cadena de conexión y credenciales de acceso) forma parte de la configuración del servicio.
Cuando se inicia un servicio CDC de Oracle, intenta conectarse a la instancia de SQL Server con la que está asociado, obtener la lista de instancias CDC de Oracle que necesita controlar y realiza una validación inicial del entorno. Los errores durante el inicio del servicio y cualquier información de inicio o detención siempre se escriben en el registro de eventos de la aplicación de Windows. Cuando se establece una conexión a SQL Server, todos los errores y mensajes de información se escriben en la tabla dbo.xdbcdc_trace de la base de datos MSXDBCDC de la instancia de SQL Server. Una de las comprobaciones realizadas durante el inicio es la comprobación de que ningún otro servicio CDC de Oracle con el mismo nombre funciona actualmente. Si un servicio con el mismo nombre está conectado actualmente desde otro equipo, el servicio CDC de Oracle entra en un bucle de espera, esperando a que el otro servicio se desconecte antes de continuar con el trabajo CDC de Oracle.
Cuando el servicio CDC de Oracle pasa todas las comprobaciones de inicio, comprueba la dbo.xdbcdc_databases tabla de la base de datos MSXDBCDC para las instancias CDC de Oracle habilitadas. Para cada instancia CDC de Oracle habilitada, el servicio inicia un subproceso para controlar esa instancia CDC de Oracle.
Cuando se inicia una instancia CDC de Oracle, accede a la base de datos CDC de SQL Server con el mismo nombre que la instancia CDC y recupera su estado de la ejecución anterior. También comprueba que todo se está ejecutando correctamente. A continuación, reanuda el procesamiento de los cambios; Leer los registros de transacciones de Oracle y escribir cambios en la base de datos CDC.
El servicio CDC de Oracle supervisa periódicamente la tabla dbo.xdbcdc_tables de la base de datos MSXDBCDC para determinar si se han producido cambios de configuración en cualquiera de las configuraciones de la instancia CDC de Oracle. Si se encuentra un cambio, el servicio CDC de Oracle notifica a la instancia CDC de Oracle que debe comprobar si hay cambios en su configuración. La mayoría de los cambios de configuración, como agregar y quitar instancias de captura, se pueden aplicar mientras la instancia CDC de Oracle está habilitada, otras requieren que se reinicie la instancia CDC de Oracle.
Al usar la consola del Diseñador CDC de Oracle, los cambios se detectan automáticamente. Al actualizar la configuración CDC de Oracle directamente mediante SQL, se debe llamar al siguiente procedimiento para que el servicio CDC de Oracle observe el cambio de configuración:
DECLARE @dbname nvarchar(128) = 'HRcdc'
EXECUTE [MSXDBCDC].[dbo].[xdbcdc_update_config_version] @dbname
GO
El proceso de instancia CDC de Oracle actualiza su estado en la tabla del sistema cdc.xdbcdc_state y escribe información de error en la tabla cdc.xdbcdc_trace . La tabla xdbcdc_state es útil para supervisar el estado de la instancia CDC de Oracle. Proporciona el estado actualizado, varios contadores (como el número de cambios leídos de Oracle, el número de cambios escritos en SQL Server, el número de transacciones confirmadas y escritas y el número actual de transacciones en proceso) y la indicación de la latencia.
La configuración de la instancia CDC de Oracle se guarda en la tabla cdc.xdbcdc_config , que es la tabla con la que funciona la consola del Diseñador CDC de Oracle. Dado que toda la configuración de una instancia CDC de Oracle se encuentra en la instancia de SQL Server de destino y en las bases de datos CDC, es posible crear scripts de implementación de SQL Server para una instancia CDC de Oracle. Esto se hace mediante la configuración del servicio CDC de Oracle y las consolas del Diseñador CDC de Oracle.
Consideraciones de seguridad
A continuación se describen los requisitos de seguridad necesarios para trabajar con el servicio CDC para Oracle.
Protección de datos de Oracle de origen
El servicio CDC de Oracle no requiere acceso a los datos de origen de Oracle y está protegido asegurándose de que las credenciales de minería de registros no conceden permiso SELECT en las tablas oracle del cliente.
Protección de datos modificados de Oracle de origen
El servicio CDC de Oracle se proporciona con credenciales de minería de registros que permiten al servicio capturar los cambios realizados en cualquier tabla de la base de datos de Oracle. Los datos modificados no tienen los permisos de acceso pormenorizados que tienen las tablas normales, por lo que el acceso a los datos modificados omite los controles integrados de acceso a datos de Oracle.
Las tablas de Oracle de origen capturadas tienen tablas reflejadas vacías con el mismo esquema y nombre de tabla en la base de datos CDC. Los datos capturados se almacenan en instancias de captura de SQL Server y ofrecen la misma protección que se proporciona para los cambios capturados de la base de datos de SQL Server. Para obtener acceso a los datos modificados asociados a una instancia de captura, se debe conceder al usuario acceso selecto a todas las columnas capturadas de la tabla reflejada asociada. Además, si se especifica un rol de acceso cuando se crea la instancia de captura, el autor de la llamada también debe ser miembro del rol de acceso especificado. Otras funciones generales de captura de datos modificados para acceder a los metadatos son accesibles para todos los usuarios de la base de datos a través del rol público, aunque el acceso a los metadatos devueltos normalmente también se bloquea mediante el uso de acceso selecto a las tablas de origen subyacentes y la pertenencia a cualquier rol de acceso definido.
Esto significa que los usuarios con el rol fijo de servidor sysadmin o el rol fijo de base de datos db_owner tienen (de forma predeterminada) acceso total a los datos capturados y se puede conceder más acceso a través de roles de control de acceso o concediéndoles permisos de selección a las columnas capturadas.
Protección de las credenciales de análisis de registros de Oracle fuente
La configuración del servicio CDC de Oracle, almacenada en la base de datos CDC (en la tabla cdc.xdbcdc_config) incluye el nombre de usuario de minería de registros y su contraseña asociada.
La contraseña de minería de datos de registros se almacena cifrada mediante una clave asimétrica con el nombre xdbcdc_asym_key fijo que se crea automáticamente con el siguiente comando:
USE [<cdc-database-name>]
CREATE ASYMMETRIC KEY xdbcdc_asym_key
WITH ALGORITHM = RSA_1024
ENCRYPTION BY PASSWORD = '<cdc-database-name><asym-key-password>'
Si se usa un algoritmo diferente, esta clave se puede quitar y se puede crear una nueva por el mismo nombre y cifrada por la misma contraseña.
La contraseña de clave asimétrica es la contraseña maestra que se guarda en el registro en la ruta HKLM\Software\Microsoft\XDBCDCSVC\\<service-name>. Esta clave solo es accesible para los administradores locales y para la cuenta de servicio cdc de Oracle para Windows. La clave contiene un valor binario cifrado AsymmetricKeyPassword que almacenó la contraseña de clave asimétrica. Se requiere acceso a esta clave del Registro para poder acceder a las credenciales de minería de registros de Oracle.
Para usar la cláusula ENCRYPTION BY PASSWORD, la contraseña debe cumplir los requisitos de directiva de contraseñas de Windows para el equipo que ejecuta la instancia de SQL Server. Para ello, seleccione la contraseña de clave asimétrica según esa directiva.
Si se pierde la contraseña de clave asimétrica, las credenciales de minería de registros para cada una de las instancias CDC de Oracle deben especificarse de nuevo en el Diseñador de servicios CDC de Oracle.
La clave asimétrica se crea automáticamente en la base de datos CDC cuando el servicio CDC detecta una base de datos CDC de instancia de Oracle que no tiene esta clave asimétrica o cuando la clave existe, pero la contraseña no coincide.
Cuenta de servicio del Servicio de Windows CDC de Oracle
La cuenta de servicio que se usa con el servicio de Windows CDC de Oracle no requiere privilegios adicionales. Esta cuenta debe poder usar la API de Oracle Native Client y la API ODBC de SQL Server Native Client. También debe poder acceder a la clave de configuración del servicio en el Registro (esta consola de configuración del servicio CDC configura la ACL para eso).
En esta sección
Conexión a SQL Server
Cuando un inicio de sesión sin un rol de base de datos que incluye permiso de escritura (por ejemplo, el rol de db_owner ) en la base de datos MSXDBCDC intenta crear una instancia CDC de Oracle, se muestra el cuadro de diálogo Conectar a SQL Server.
En este cuadro de diálogo, debe escribir las credenciales de un inicio de sesión con permiso de escritura en la base de datos MSXDBCDC, como el rol de base de datos db_owner para crear la nueva instancia CDC de Oracle.
Escriba la siguiente información en el cuadro de diálogo Conectarse a SQL Server.
Nombre del servidor
Escriba el nombre del servidor donde se encuentra SQL Server.
Autenticación
Selecciona uno de los siguientes:
Autenticación de Windows
Autenticación de SQL Server: si selecciona esta opción, debe escribir el inicio de sesión y la contraseña del usuario en SQL Server al que se va a conectar.
Options
Seleccione la flecha para ver las opciones disponibles que se van a configurar. Puede optar por dejar estas opciones con su valor predeterminado. Las opciones disponibles son:
Tiempo de espera de conexión: escriba el tiempo (en segundos) que espera el programa para que se establezca la conexión de SQL Server antes de producir un error de tiempo de espera. El valor predeterminado es
15.Tiempo de espera de ejecución: escriba el tiempo (en segundos) que el programa espera a que finalice la ejecución del comando SQL antes de producir un error de tiempo de espera. El valor predeterminado es
30.Cifrar conexión: seleccione Cifrar conexión para asegurarse de que la conexión de SQL Server que se establece está cifrada para garantizar la privacidad.
Avanzadas: seleccione Avanzadas y escriba las propiedades de conexión adicionales en el cuadro de diálogo Propiedades de conexión avanzadas, si es necesario.
Conexión a SQL Server para eliminar
Cuando un inicio de sesión sin un rol de base de datos que incluye permiso de escritura (por ejemplo, el rol de db_owner ) en la base de datos MSXDBCDC intenta eliminar una instancia CDC de Oracle, se muestra el cuadro de diálogo Conectar a SQL Server.
En este cuadro de diálogo, debe introducir las credenciales de un inicio de sesión que tenga permiso de escritura sobre la base de datos MSXDBCDC, como el rol de base de datos db_owner, para eliminar la instancia de Oracle CDC.
Escriba la siguiente información en el cuadro de diálogo Conectarse a SQL Server.
Nombre del servidor
Escriba el nombre del servidor donde se encuentra SQL Server.
Autenticación
Selecciona uno de los siguientes:
Autenticación de Windows
Autenticación de SQL Server: si selecciona esta opción, debe escribir el inicio de sesión y la contraseña del usuario en SQL Server al que se va a conectar.
Opciones
Seleccione la flecha para ver las opciones disponibles que se van a configurar. Puede optar por dejar estas opciones con su valor predeterminado. Las opciones disponibles son:
Tiempo de espera de conexión: escriba el tiempo (en segundos) que espera el programa para que se establezca la conexión de SQL Server antes de producir un error de tiempo de espera. El valor predeterminado es
15.Tiempo de espera de ejecución: escriba el tiempo (en segundos) que el programa espera a que finalice la ejecución del comando SQL antes de producir un error de tiempo de espera. El valor predeterminado es
30.Cifrar conexión: seleccione Cifrar conexión para asegurarse de que la conexión de SQL Server que se establece está cifrada para garantizar la privacidad.
Avanzadas: seleccione Avanzadas y escriba las propiedades de conexión adicionales en el cuadro de diálogo Propiedades de conexión avanzadas, si es necesario.
Creación y edición de un servicio CDC de Oracle
Cree y edite un nuevo servicio de Windows CDC de Oracle desde la consola de configuración del servicio CDC.
Para crear un nuevo servicio de Windows CDC de Oracle, seleccione Servicios CDC locales en el panel izquierdo y, a continuación, seleccione Nuevo servicio en el panel Acciones . También puede hacer clic con el botón derecho en Servicios CDC locales y seleccionar Nuevo servicio. Se abre el cuadro de diálogo del nuevo servicio de Windows CDC de Oracle.
OR
Para editar las propiedades del servicio CDC, seleccione el servicio para el que desea editar las propiedades y seleccione Propiedades en el panel Acciones . También puede hacer clic con el botón derecho en el servicio con el que trabaja y seleccionar Propiedades. Se abre el cuadro de diálogo Propiedades del servicio CDC.
Escriba la siguiente información en el cuadro de diálogo Nuevo servicio de Windows CDC de Oracle o en el cuadro de diálogo Propiedades del servicio CDC.
Nombre del servicio
Escriba el nombre del nuevo servicio de Windows CDC de Oracle. Si es posible, no debe usar nombres largos. Los caracteres / y \ no se pueden usar en el nombre del servicio.
Nota:
Esta opción no está disponible al editar el servicio. No se puede cambiar el nombre de un servicio de Windows que ya existe.
Descripción
Escriba una descripción del servicio para ayudarle a identificarlo.
Cuenta de servicio
Seleccione una de las siguientes opciones para determinar en qué cuenta ejecutar el servicio:
Cuenta del sistema local
Esto no se recomienda porque concede demasiados permisos al servicio.
Esta cuenta
En Windows Vista o Windows Server 2008, la cuenta de servicio predeterminada es la cuenta DE SERVICIO DE RED.
En Windows 7, Windows Server 2008 R2 y versiones posteriores, la cuenta de servicio predeterminada es NT Service\\<service-name>.
El uso de estas cuentas le permite trabajar sin usar contraseñas porque no es necesaria una contraseña para estas cuentas. Además, estas cuentas solo proporcionan los permisos necesarios para que se ejecute el servicio CDC de Oracle.
Puede usar una cuenta de Windows local o de dominio para la cuenta de servicio. En este caso, debe escribir la contraseña de esa cuenta. Esta cuenta puede ser para el host local o una cuenta de dominio. Asegúrese de actualizar la contraseña cuando cambie mediante servicios locales en el Panel de control de Windows.
Nombre del servidor: seleccione la instancia de SQL Server de destino a la que conectarse (por ejemplo, \\<computer_name>\<instance_name>). La última instancia del servidor conectada a se muestra de forma predeterminada.
Autenticación
Selecciona uno de los siguientes:
Autenticación de Windows: si selecciona esta opción, el servicio CDC de Oracle se conecta a la instancia de SQL Server de destino mediante la identidad de la cuenta de servicio. Si la instancia de SQL Server se ejecuta en un equipo diferente, la autenticación de Windows debe usarse con cuentas de dominio.
Autenticación de SQL Server: si selecciona esta opción, debe escribir el nombre de usuario y la contraseña para el inicio de sesión de SQL Server que desea usar. El servicio CDC de Oracle usa estas credenciales al conectarse a la instancia de SQL Server de destino.
El inicio de sesión de SQL Server utilizado por el servicio de CDC de Oracle solo necesita ser miembro del rol fijo de servidor público; no se requieren otros privilegios. Una vez agregadas nuevas instancias CDC de Oracle, ese inicio de sesión obtendrá db_owner acceso a las bases de datos CDC de SQL Server asociadas.
Para crear la definición del servicio CDC de Windows de Oracle, el programa necesita actualizar el acceso a la base de datos MSXDBCDC en la instancia de SQL Server asociada. Al seleccionar Aceptar, un cuadro de diálogo le pide que escriba un inicio de sesión de SQL Server con un acceso de actualización a la base de datos MSXDBCDC.
Opciones
Seleccione la flecha para ver las opciones disponibles que se van a configurar. Puede optar por dejar estas opciones con su valor predeterminado. Las opciones disponibles son:
Tiempo de espera de conexión: escriba el tiempo (en segundos) que el servicio CDC para Oracle espera una conexión a SQL Server antes de que se agote el tiempo de espera. El valor predeterminado es
15.Tiempo de espera de ejecución: escriba el tiempo (en segundos) que el servicio de Windows CDC de Oracle espera a que se ejecute un comando antes de que se agote el tiempo de espera. El valor predeterminado es
30.Cifrar conexión: seleccione Cifrar conexión para la comunicación entre el servicio CDC de Oracle y la instancia de SQL Server de destino mediante una conexión cifrada.
Avanzado: escriba las propiedades de conexión adicionales, si es necesario.
Contraseña maestra
Escriba una contraseña que usará el servicio de Windows CDC de Oracle para proteger las credenciales de minería de registros de Oracle.
También se debe usar la misma contraseña maestra cuando otras instancias del mismo servicio están configuradas en otros nodos de un clúster en una configuración de alta disponibilidad. Si pierde o modifica la contraseña maestra, todas las contraseñas de minería de registros almacenadas en instancias de Oracle CDC deben volverse a ingresar utilizando la consola de CDC Designer.
Administración de un servicio CDC de Oracle
Puede usar la consola de configuración del servicio CDC para administrar un servicio CDC específico.
Para seleccionar el servicio CDC con el que desea trabajar
En el panel izquierdo de la Consola de configuración del servicio CDC, expanda Servicios CDC locales.
Seleccione el servicio CDC con el que desea trabajar.
También puede hacer clic con el botón derecho en el servicio CDC con el que desea trabajar y seleccionar la acción deseada.
OR
Seleccione Servicios CDC locales en el panel izquierdo en la Consola de configuración del servicio CDC.
En la sección central de la consola de configuración del servicio CDC, seleccione el servicio con el que desea trabajar.
También puede hacer clic con el botón derecho en el servicio CDC con el que desea trabajar y seleccionar la acción deseada.
Acciones al trabajar con un servicio CDC
Puede realizar las siguientes acciones al trabajar con un servicio CDC.
Eliminación del servicio
En el panel Acciones del lado derecho de la consola de configuración del servicio CDC, seleccione Eliminar para eliminar el servicio.
También puede hacer clic con el botón derecho en el servicio CDC que desea eliminar y seleccionar Eliminar.
Nota:
Si el servicio se está ejecutando al eliminar el servicio, el servicio se detiene antes de eliminarlo.
Para eliminar la definición del servicio Windows CDC de Oracle, el programa necesita acceso de actualización a la base de datos MSXDBCDC en la instancia de SQL Server asociada. Al seleccionar Aceptar para eliminar el servicio, el programa intenta eliminar el registro del servicio CDC de Oracle en la base de datos MSXDBCDC. Si el programa no puede eliminar el registro del servicio CDC de Oracle porque no tiene los permisos adecuados, le pedirá que escriba un inicio de sesión de SQL Server con permisos de actualización en la base de datos MSXDBCDC.
Editar las propiedades del servicio CDC
En el panel Acciones del lado derecho de la consola de configuración del servicio CDC, seleccione Propiedades.
También puede hacer clic con el botón derecho en el servicio CDC donde desea editar las propiedades y seleccionar Propiedades.
Preparación de SQL Server para CDC
El servicio CDC de Oracle requiere que todas las instancias de SQL Server de destino contengan la base de datos MSXDBCDC. Cree esta base de datos mediante la acción Preparar SQL Server en la Consola de configuración del servicio CDC. Esto crea un script especial que se ejecuta para crear las tablas, procedimientos almacenados necesarios y otros artefactos necesarios para esta base de datos. Esta tarea solo se realiza una vez para cada instancia de SQL Server de destino.
Para obtener más información sobre la base de datos MSXDBCDC, vea La base de datos MSXDBCDC.
En la Consola de configuración del servicio CDC, seleccione Preparar SQL Server. Si esta opción no está disponible, asegúrese de que servicios CDC locales está seleccionado en el panel izquierdo de la consola.
Options
Nombre del servidor
Escriba el nombre del servidor donde se encuentra SQL Server.
Autenticación
Selecciona uno de los siguientes:
Autenticación de Windows
Autenticación de SQL Server: si selecciona esta opción, debe escribir el nombre de usuario y la contraseña del usuario en SQL Server al que se va a conectar.
Para preparar la instancia de SQL Server para CDC de Oracle, la cuenta debe tener permisos de escritura en la base de datos MSXDBCDC. Escriba las credenciales de un usuario que tenga permiso de escritura en la base de datos MSXDBCDC, como un miembro del rol sysasmin.
Opciones
Seleccione la flecha para ver las opciones disponibles que se van a configurar. Puede optar por dejar estas opciones con su valor predeterminado. Las opciones disponibles son:
Tiempo de espera de conexión: escriba el tiempo (en segundos) que el servicio CDC para Oracle espera una conexión a SQL Server antes de que se agote el tiempo de espera. El valor predeterminado es
15.Tiempo de espera de ejecución: escriba el tiempo (en segundos) que el servicio de Windows CDC de Oracle espera a que se ejecute un comando antes de que se agote el tiempo de espera. El valor predeterminado es
30.Cifrar conexión: seleccione Cifrar conexión para la comunicación entre el servicio CDC de Oracle y la instancia de SQL Server de destino mediante una conexión cifrada.
Avanzado: escriba las propiedades de conexión adicionales, si es necesario.
Ver script
Seleccione Ver script para ver una versión de solo lectura del script de instalación. Un administrador del sistema de SQL Server puede copiar este script en la Consola de administración de SQL Server para editarlo, si es necesario.
Preparar SQL Server para el script de Oracle CDC-View
Este cuadro de diálogo muestra el script 'Prepare SQL' que crea la base de datos MSXDBCDC. Esta base de datos debe estar en una instancia de SQL Server para que se use con CDC de Oracle para SQL Server.
Haga lo siguiente en el cuadro de diálogo Preparar script de SQL Server.
guardar como
Guarda el script en un archivo de texto que puede guardar en cualquier ubicación que desee. Después, puede ejecutar los scripts más adelante pegando el script en SQL Server Management Studio.
Copy
Copia el script en el Portapapeles. Después, puede pegar el script en SQL Server Management Studio para ejecutarlos y crear la base de datos MSXDBCDC.
Trabajar con servicios CDC
Puede usar la consola de configuración del servicio CDC para crear un nuevo servicio CDC y preparar una base de datos de SQL Server para CDC.
Preparación de SQL Server
Seleccione esta opción en el panel Acciones del lado derecho de la consola de configuración del servicio CDC.
También puede hacer clic con el botón derecho en Servicios CDC locales y seleccionar Preparar SQL Server.
Se abre el cuadro de diálogo Preparar instancia de SQL Server para Oracle CDC.
Para obtener información sobre cómo usar este cuadro de diálogo, vea Preparar SQL Server para CDC. Para obtener información sobre cómo habilitar una instancia de SQL Server para CDC, consulte Preparación de SQL Server para CDC.
Creación de un nuevo servicio CDC
Seleccione Nuevo servicio en el panel Acciones del lado derecho de la consola de configuración del servicio CDC.
También puede hacer clic con el botón derecho en Servicios CDC locales y seleccionar Nuevo servicio.
Se abre el cuadro de diálogo Nuevo servicio CDC de Oracle.