Configurar una base de datos de Azure SQL para CDC

En esta página se describe cómo configurar la captura de datos de cambios (CDC) para transmitir datos de una base de datos de Azure SQL a un destino admitido, como BigQuery o Cloud Storage.

Para configurar una base de datos de Azure SQL, sigue estos pasos:

  1. Habilita la captura de datos de cambios (CDC) en tu base de datos Azure SQL de origen. Para ello, conéctate a la base de datos con Azure Data Studio o SQL Server Management Studio y ejecuta el siguiente comando:

    EXEC sys.sp_cdc_enable_db;
    GO
    
  2. Habilita CDC en las tablas de las que necesites capturar cambios:

    EXEC sys.sp_cdc_enable_table
    @source_schema = N'SCHEMA_NAME',
    @source_name = N'TABLE_NAME',
    @role_name = NULL
    GO
    

    Haz los cambios siguientes:

    • SCHEMA_NAME: el nombre del esquema al que pertenecen las tablas.
    • TABLE_NAME: el nombre de la tabla en la que quieres habilitar CDC
  3. Habilita el aislamiento de instantáneas.

    Cuando rellenas datos de tu base de datos de SQL Server, es importante que las copias de seguridad sean coherentes. Si no aplica los ajustes descritos en esta sección, los cambios realizados en la base de datos durante el proceso de relleno pueden provocar duplicados o resultados incorrectos, sobre todo en las tablas sin claves principales.

    Si habilita el aislamiento de la captura, se creará una vista temporal de su base de datos al inicio del proceso de relleno. De esta forma, los datos que se copian siguen siendo coherentes, aunque otros usuarios hagan cambios en las tablas activas al mismo tiempo. Habilitar el aislamiento de instantáneas puede afectar ligeramente al rendimiento, pero es esencial para extraer datos de forma fiable.

    Para habilitar el aislamiento de la captura, sigue estos pasos:

    1. Conéctate a tu base de datos con un cliente de SQL Server.
    2. Ejecuta el siguiente comando:
    ALTER DATABASE DATABASE_NAME SET ALLOW_SNAPSHOT_ISOLATION ON;
    

    Sustituye DATABASE_NAME por el nombre de tu base de datos.

  4. Crea un usuario de Datastream:

    1. Conéctate a la base de datos master y crea un inicio de sesión:

      USE master;
      CREATE LOGIN YOUR_LOGIN WITH PASSWORD = 'PASSWORD';
      
    2. Conéctate a la base de datos de origen y crea un usuario para iniciar sesión:

      USE DATABASE_NAME
      CREATE USER USER_NAME FOR LOGIN YOUR_LOGIN;
      
    3. Asigna los roles db_owner y db_denydatawriter a tu usuario:

      EXEC sp_addrolemember 'db_owner', 'USER_NAME';
      EXEC sp_addrolemember 'db_denydatawriter', 'USER_NAME';
      
    4. Concede el permiso VIEW DATABASE STATE al usuario:

      GRANT VIEW DATABASE STATE TO USER_NAME;
      

Siguientes pasos