配置 Azure SQL 数据库

以下步骤介绍了如何配置 Azure SQL 数据库以与 Datastream 搭配使用。

如需配置 Azure SQL 数据库,请执行以下操作:

  1. 为源 Azure SQL 数据库启用变更数据捕获 (CDC)。为此, 使用 Azure Data Studio 或 SQL Server Management Studio 连接到数据库 然后运行以下命令:

    EXEC sys.sp_cdc_enable_db;
    GO
    
  2. 在需要捕获更改的表上启用 CDC:

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

    替换以下内容:

    • SCHEMA_NAME:表所属的架构的名称
    • TABLE_NAME:要为其启用 CDC 的表的名称
  3. 启动 SQL Server Agent 并确保其始终运行。如果 SQL Server 代理长时间处于停机状态,日志可能会被截断,导致 Datastream 未读取的更改数据永久丢失。

    如需了解如何运行 SQL Server 代理,请参阅 启动、停止或重启 SQL Server Agent 实例

  4. 启用快照隔离。

    从 SQL Server 数据库回填数据时,请务必确保快照一致。如果您不应用本部分中所述的设置,在回填过程中对数据库所做的更改可能会导致重复或错误的结果,尤其是对于没有主键的表。

    启用快照隔离后,系统会在回填流程开始时创建数据库的临时视图。这样可以确保正在复制的数据保持一致 即使其他用户同时更改实时表格也是如此。 启用快照隔离功能可能会对性能产生轻微影响,但对于可靠的数据提取至关重要。

    如需启用快照隔离,请执行以下操作:

    1. 使用 SQL Server 客户端连接到您的数据库。
    2. 运行以下命令:
    ALTER DATABASE DATABASE_NAME SET ALLOW_SNAPSHOT_ISOLATION ON;
    

    DATABASE_NAME 替换为数据库的名称。

  5. 创建 Datastream 用户:

    1. 连接到 master 数据库并创建登录:

      USE master;
      CREATE LOGIN YOUR_LOGIN WITH PASSWORD = 'PASSWORD';
      
    2. 连接到源数据库并为您的登录账号创建用户:

      USE DATABASE_NAME
      CREATE USER USER_NAME FOR LOGIN YOUR_LOGIN;
      
    3. 向用户分配 db_ownerdb_denydatawriter 角色:

      EXEC sp_addrolemember 'db_owner', 'USER_NAME';
      EXEC sp_addrolemember 'db_denydatawriter', 'USER_NAME';
      

后续步骤