数据库管理平台DMP

深信服数据库管理平台(DMP)提供MySQL、Oracle的RDS功能,支持全生命周期管理、自动MySQL主从切换、故障自愈、事务一致性备份、监控告警等,能够实现业务快速上线、资源快速分发、数据安全保护,提供SLA保障,使数据库运维复杂度大幅下降,帮助客户减少被动性救火工作,专注业务创新。
点击可切换产品版本
知道了
不再提醒
DMP 2.3.0
{{sendMatomoQuery("数据库管理平台DMP","连接到只读库")}}

连接到只读库

更新时间:2023-10-07

使用SQLCMD连接到只读库

使用SQLCMD命令行工具,添加“-K ReadOnly”参数,连接侦听IP,即可连接到只读库。

如:sqlcmd -S 192.168.7.160 -K ReadOnly -d nthq -Q "select @@servername" -e

使用SSMS连接到只读库

  1. 打开SSMS连接到服务器页面,填写数据库服务器IP信息(侦听器IP),打开“选项”。

  1. 在连接属性中选择需要访问的只读数据库。

  1. 选择“其他连接参数”,填写“ApplicationIntent=ReadOnly”参数。

  1. 连接上数据库实例后,进入服务器属性,确认当前连接的实例名称为只读副本所在实例。

5.7.Always On 作业管理

客户单实例运行的Job迁移到Always On高可用架构下,并加入了可用性组的数据库,客户源库自定的Job需要进行改造。

由于Always On可用性组仅提供管理可用性组中的数据库的功能。在所有可用性副本上,客户需要手动创建或更新“登录名”和 “SQL 代理作业”。

在Always On可用性组中,所有副本都处于活动状态、正在运行且可用。当Always On进行主备切换或故障转移后,要确保SQL Server定时Job还能正常运行,就需要编写Job脚本时,对当前副本进行判断。sys.fn_hadr_is_primary_replica返回1则表示当前是主副本,返回0表示是辅助副本。由用户根据Job脚本的业务逻辑判断是在主副本还是辅助副本运行。

5.7.1.判断语句示例

若要确保这些作业仅在当前主副本上执行,每个作业中的每个步骤都必须包含在 IF 块中。

示例1:如果job必须要在主副本执行,则判断逻辑如下

IF (sys.fn_hadr_is_primary_replica('dbname') = 1)  
BEGIN  
  
END

ELSE

 PRINT('当前副本不是主副本')

 ‘dbname’ 配置为替换为运行作业所针对的相应数据库名称。

...省略号代表Job的业务逻辑实现 

5.7.2.创建代理作业示例

以下示例演示 BizTalkMsgBoxDb1数据库上对原bts_CopyTrackedMessageToDTA 语句进行的更改: