反馈已提交

网络繁忙

SQL Server环境准备

  • 文档创建者:Naya
  • 历史版本:4
  • 最近更新:Naya 于 2023-11-02
  • 1. 概述

    通过本地宝连接 SQL Server 数据库,在九数云中开启「实时数据」前,需要参考本文在数据源中进行一些配置,为后续开启「实时数据」做好准备。

    2. 操作步骤

    2.1 确认当前使用的数据库版本

    本地宝支持的 SQL Server 数据库读取类型(来源数据库)及版本如下表所示:

    数据库类型支持数据库读取版本企业版(Enterprise Edition)支持数据库读取版本标准版(Standard)
    SQL Server

    2008 

    2012

    2014

    2016 

    2017

    2019

    2016 SP1 

    2017

    2019

    本地宝支持的 SQL Server 数据库写入类型(目标数据库)及版本如下表所示:

    数据库类型支持数据库版本
    SQL Server

    2000

    2005

    2008

    2012

    2014

    2016

    2017

    2019

    使用命令行sqlcmd -S 服务器地址 -U 用户名 -P 密码,或者通过 sql server management studio 进入数据库操作界面。

    可以通过如下语句查看数据库的版本。

    select @@version
    11.png

    2.2 读取数据库开启CDC

    2.2.1 开启 Sql Server 数据库代理服务

    需要确保 SQL Server Agent 为运行状态。

    检查方法:使用 sysadmin 角色的用户执行 EXEC master.dbo.xp_servicecontrol N'QUERYSTATE', N'SQLSERVERAGENT'; 并确保结果为 Running,则标识SQL Server Agent 运行中。

    12.png

    若结果为 Stopped,此时需要使用 sysadmin 角色的用户开启数据库代理服务。

    界面操作方式:

    在开始菜单中,找到 Microsoft SQL Server >配置工具,然后打开SQL Server 配置管理器。

    在 SQL Server 配置管理器中,展开服务,然后单击SQL 代理。在结果窗格中,右键单击启动,如下图所示:

    13.png

    SQL Server Agent 旁的图标上和工具栏上的绿色箭头指示 SQL Server Agent 已成功启动,如下图所示:

    14.png

    2.2.2 开启 CDC 变更数据捕获

    开启数据库 CDC

    使用命令开启:

    use 数据库名称
    go
    EXEC sys.sp_cdc_enable_db
    go

    注:其中数据库名称是要启用增量复制的数据库。

    15.png

    使用命令检查是否已经开启CDC:

    SELECT name, database_id, is_cdc_enabled 
    FROM sys.databases WHERE name ='数据库名称'
    go

    注:其中数据库名称是要启用增量复制的数据库。

    16.png

    开启数据表 CDC

    注:对数据库开启 CDC 后,需要对数据表也开启 CDC。

    使用命令开启:

    use 数据库名称
    go
    EXEC sys.sp_cdc_enable_table
    @source_schema = N'Schema',
    @source_name = N'Table',
    @role_name = N'Role'
    go

    注:Table是数据表的名称(没有 schema )。Role 是可以访问更改数据的角色。数据管道功能需要使用 SQL Server 数据库 public 数据库角色 中的 db_datareader 用户。

    例如,schema 模式为 dbo,则示例如下:

    use Roxy
    go
    EXEC sys.sp_cdc_enable_table
    @source_schema = N'dbo',
    @source_name = N'test',
    @role_name = N'public'
    go

    如下图所示:

    17.png

    使用命令检查是否已经开启CDC:

    use 数据库名称
    go
    SELECT name,is_tracked_by_cdc
    FROM sys.tables
    WHERE name = N'table'
    go

    18.png

    2.3 确认数据库账号权限

    需要规划一个可访问数据源的账号,用于后续同步过程中访问数据源并进行数据提取、写入的同步操作。

    创建账号操作详情请参见: 创建Sql server 账号

    创建用户示例语句可参考:

    use your database;
    create login test with password='your password';
    go
    create user test for login test;
    go

    19.png

    注:test 为用户名称;your password 改为用户实际的数据库密码。


    2.3.1 角色要求

    需要使用 SQL Server 数据库 public 数据库角色 中的 db_datareader 用户。

    例如可使用以下命令将用户添加到固定数据库级角色 db_datareader。

    use your database;
    go
    exec sp_addrolemember 'db_datareader','your user'
    go

    20.png

    2.3.2 权限要求

    道需要 SQL Server 数据库用户拥有数据源表的 SELECT 权限、INFORMATION_SCHEMA 的 SELECT 权限、sys 的 SELECT 权限。

    • 对需要进行同步的表赋予SELECT权限

    use your database;
    grant select on OBJECT::your schema.your table name to test;

    // 假设database是master,schema是dbo,表名是users,示例:
    use master;
    grant select on OBJECT::dbo.users to test;

    注:test 为用户名称。

    • 对 SCHEMA 下面所有表赋予SELECT权限

    use your database;
    grant select on SCHEMA::your schema to test;

    // 假设database是master,schema是dbo,示例:
    use master;
    grant select on SCHEMA::dbo to test;

    注:如果 capture instance 指定了角色(role),该角色需要包含当前用户。

    注:test 为用户名称。

    • 增量同步,需要对名为cdc的schema,赋予SELECT权限

    -- 增量权限
    use your database;
    grant select on SCHEMA::cdc to test;

    3. 后续步骤

    配置好数据库环境后,使用九数云本地宝连接 SQL Server 数据库。详情参见文档:连接数据库

    附件列表


    主题: 导入数据源
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持