SQLServer Always On 可用性组副本只读设置

SQLServer Always On 可用性组副本只读设置,第1张

概述SQLServer Always On 可用性副本是允许只读的,默认情况下不可读。 其中副本的可读性有几个选项: NO : 不可连接到副本数据库,因此也不可读。默认设置。 Read-intent only:只有限定 “read-only” 时才能访问数据库,但只读。 Yes:所有连接都有可访问数据库,但只读。 如果设置为 “Read-intent only” ,客户端查询该数据库对象时提示以下错

sqlServer Always On 可用性组副本是允许只读的,默认情况下不可读。

其中副本的可读性有几个选项:

NO : 不可连接到副本数据库,因此也不可读。默认设置。

Read-intent only:只有限定 “read-only” 时才能访问数据库,但只读。

Yes:所有连接都有可访问数据库,但只读。



如果设置为 “Read-intent only” ,客户端查询该数据库对象时提示以下错误:

Msg 976,Level 14,State 1,line 1
The target database,'TestDB', 
is participating in an availability group and is currently not accessible for querIEs. 
Either data movement is suspended or the availability replica is not enabled for read access. 
To allow read-only access to this and other databases in the availability group, 
enable read access to one or more secondary availability replicas in the group.  
For more information,see the ALTER AVAILABIliTY GROUP statement in sql Server Books Online.

若设置为 “Read-intent only”,又打算可读副本数据库数据,客户端连接设置如下:

连接时加上 Readonly 参数: ApplicationIntent=Readonly



其他程序连接设置如:ApplicationIntent=Readonly

("Driver={sql Server Native ClIEnt 11.0};server=AGListener;Database=dbname;trusted_connection=yes;ApplicationIntent=Readonly”)

使用 sqlcmd 工具连接需要设置参数 “-K”

sqlcmd -SAGListener -E -dDBname -KReadonly

若都允许只读,选择 “Yes” 即可更改,或使用命令更改:

USE [master]GOALTER AVAILABIliTY GROUP [AGname]MODIFY REPliCA ON N'Instancename' WITH (SECONDARY_RolE(ALLOW_CONNECTIONS = ALL))GO


参考:

将连接字符串关键字用于 SQL Server Native Client

onnect to SQL Server AlwaysOn replica with SSMS when Readable Secondary is set to Read-intent only

总结

以上是内存溢出为你收集整理的SQLServer Always On 可用性组副本只读设置全部内容,希望文章能够帮你解决SQLServer Always On 可用性组副本只读设置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1173021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存