我正在研究将数据库从本地环境复制到Azure的方法,我发现的一个选择是建立一个Read-Scale可用性组。
之所以使用Read-Scale,而不是Always On可用性组,是因为出于成本原因,我不会使用SQL Server Enterprise版本。
我遵循了Microsoft(MS TUTORIAL)的教程进行了全部设置,最后,我认为它可以在数据库出现在Azure环境中时正常工作。
但是,问题是我的副本始终保持在Synchronizing
状态-这可能是由于我使用AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT
命令选择了异步复制的事实-但更糟糕的是,我无法访问数据库本身。每次我尝试对其发起查询时,它都会返回一个Object is not accessible
异常。
经过一番阅读之后,我发现造成这种情况的原因可能是因为我的副本没有次要角色。尝试通过... SECONDARY_ROLE({ALLOW_CONNECTIONS = ALL})...
命令进行设置,明确指出此功能在SQL Server的标准版本中不可用。
我的全部困惑来自以下事实:在Microsoft文档(MS DOCS)上说With availability groups, one or more secondary replicas can be configured to support read-only access to secondary databases.
正是我没有成功的地方。
有人遇到相同的问题,或者知道如何在SQL Server Standard上配置Read-Scale可用性组,以便我的第二个副本也可以访问并且可读吗?
P.S。我确实查看了带有事务复制的实际SQL复制,但是那里有很多移动的部分,因此在做出决定之前,我正在研究所有选项。