
# 使用DAS在RDS for SQL Server主备实例上分别创建和配置Agent Job和Dblink
#### 操作背景
数据管理服务（Data Admin Service，简称DAS），用来登录和操作云上数据库的Web服务，提供数据库开发、运维、智能诊断一站式云上数据库管理平台，方便用户使用和运维华为云数据库。DAS目前支持SQL Server主库和备库切换操作，从而为云数据库 RDS for SQL Server实例的主库和备库同步操作提供了便捷。
#### 登录DAS
1. [登录管理控制台](https://console.huaweicloud.com)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/bestpractice-rds-mssql/zh-cn_image_0000002229547994.png)，选择区域。
3. 单击页面左上角的![](https://support.huaweicloud.com/bestpractice-rds-mssql/zh-cn_image_0000002264547321.png)，选择"数据库 \> 云数据库 RDS"，进入RDS信息页面。
4. 在"实例管理"页面，选择目标实例，单击操作列的"登录"，进入数据管理服务数据库登录界面。 
   您也可以在"实例管理"页面，单击目标实例名称，在页面右上角，单击"登录"，进入数据管理服务数据库登录界面。
   
   
5. 正确输入数据库用户名和密码，单击"登录"，即可进入您的数据库并进行管理。
 
#### 创建JOB同步备库
1. 在主节点创建job。
   
   在DAS管理页面，操作栏单击"SQL查询"，在msdb库下，执行创建job命令。
   ![](https://support.huaweicloud.com/bestpractice-rds-mssql/public_sys-resources/note_3.0-zh-cn.png)
   如果在主机通过其他方式已经有job创建不执行此步骤。
   ```
   USE [msdb]
   GO
   DECLARE @jobId BINARY(16)
   EXEC  msdb.dbo.sp_add_job @job_name=N'hwtest', 
                      @enabled=1, 
                      @notify_level_eventlog=0, 
                      @notify_level_email=2, 
                      @notify_level_page=2, 
                      @delete_level=0, 
                      @category_name=N'[Uncategorized (Local)]', 
                      @owner_login_name=N'rdsuser', @job_id = @jobId OUTPUT
   select @jobId
   GO
   EXEC msdb.dbo.sp_add_jobserver @job_name=N'hwtest', @server_name = N'*******'
   GO
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_add_jobstep @job_name=N'hwtest', @step_name=N'select orders', 
                      @step_id=1, 
                      @cmdexec_success_code=0, 
                      @on_success_action=1, 
                      @on_fail_action=2, 
                      @retry_attempts=0, 
                      @retry_interval=0, 
                      @os_run_priority=0, @subsystem=N'TSQL', 
                      @command=N'select * from orders;', 
                      @database_name=N'test', 
                      @flags=0
   GO
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_update_job @job_name=N'hwtest', 
                      @enabled=1, 
                      @start_step_id=1, 
                      @notify_level_eventlog=0, 
                      @notify_level_email=2, 
                      @notify_level_page=2, 
                      @delete_level=0, 
                      @description=N'', 
                      @category_name=N'[Uncategorized (Local)]', 
                      @owner_login_name=N'zf1', 
                      @notify_email_operator_name=N'', 
                      @notify_page_operator_name=N''
   GO
   ```
   使用如下SQL查询job是否被创建。
   **use \[msdb\]**
   **select \* from msdb.dbo.sysjobs where name ='hwtest';**
   
   
2. 切换到备库。 
   ![](https://support.huaweicloud.com/bestpractice-rds-mssql/public_sys-resources/note_3.0-zh-cn.png)
   目前云数据库 RDS for SQL Server实例暂不支持主备库job同步，因此需要在备库同步执行job创建，同步job。在[在主节点创建job]中，我们处于主库，单击主库旁的"切换SQL执行点"，即可切换到备库。
   
   
3. 使用[在主节点创建job]的语句在备库上创建job。
   
   通过SQL Server Management Studio（简称：SSMS）工具导出之前创建的job到编辑窗，并复制到DAS的SQL查询窗口，执行sql即可。
   若创建失败，建议先进行delete job操作后，再重新执行创建job。
   图1导出job   
   ![](https://support.huaweicloud.com/bestpractice-rds-mssql/zh-cn_image_0000002264627457.png "点击放大")
   图2在DAS管理界面备库界面执行创建job   
   ![](https://support.huaweicloud.com/bestpractice-rds-mssql/zh-cn_image_0000002229548082.png "点击放大")
   使用如下SQL删除job命令。
   **USE \[msdb\]**
   **GO**
   **EXEC msdb.dbo.sp_delete_job @job_name=N'hwtest', @delete_unused_schedule=1**
   **GO**
   
   
 
#### 创建DBLink同步备库
通过DAS服务可以创建链接服务器，实现实例间的数据同步。
![](https://support.huaweicloud.com/bestpractice-rds-mssql/public_sys-resources/note_3.0-zh-cn.png)
请参考[RDS for SQL Server添加链接服务器](https://support.huaweicloud.com/bestpractice-rds-mssql/rds_04_0010.html)章节检查分布式事务MSDTC是否配置。
1. 参考如下代码在主库创建DBlink。 
   **USE \[master\]**
   **GO**
   **EXEC master.dbo.sp_addlinkedserver @server = N'TEST', @srvproduct=N'mytest', @provider=N'SQLOLEDB', @datasrc=N'abcd'**
   **EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TEST', @locallogin = NULL , @useself = N'False', @rmtuser = N'rdsuser', @rmtpassword = N'\*\*\*\*\*\*\*\*'**
   **GO**
   创建成功后，可以连接到对应的实例或者其他数据库查看数据验证，如执行数据库查询：
   **SELECT name FROM \[TEST\].master.sys.databases ;**
   **GO**
   图3数据库查询   
   ![](https://support.huaweicloud.com/bestpractice-rds-mssql/zh-cn_image_0000002229548078.png "点击放大")
   
   
2. 在备库创建DBLink。 
   在DAS管理界面，主库旁单击"切换SQL执行点"，同样执行创建DBLink的SQL。
   ![](https://support.huaweicloud.com/bestpractice-rds-mssql/public_sys-resources/note_3.0-zh-cn.png)
   如果当前实例与对接的数据库不是同一VPC，或者使用公网EIP开启分布式事务，则备库上暂时无法执行查询语句，仅此步骤用于同步DBLink配置，若实例进行主备倒换后，则可以正常使用DBLink。
   
   
 
