我们目前正在运行多AZ服务器(镜像),并希望打开READ_COMMITTED_SNAPSHOT。在参数组或rdsadmin存储过程中,这个选项似乎不可用,执行ALTER DATABASE [database1] SET READ_COMMITTED_SNAPSHOT会引发一个在镜像关系中的错误。关于如何做到这一点,有什么建议吗?由于我们不确定RDS的响应方式,所以我们尝试恢复数据库来测试转换合作伙伴,但是所有的恢复都像往常一样在线,而不是镜像,因此我们无法进行测试。
发布于 2022-06-02 02:48:42
下面是微软公司关于如何实现您所要求的内容的过程。您的问题是,在将数据库更改为RCSI时,唯一可以在数据库中存在的会话是Alter语句。但是,镜像会话存在,因此有两个会话连接到数据库。您只希望存在一个会话。
您需要中断镜像,更改RCSI,然后重新启用镜像。别相信我的话。查看下面的Microsoft链接
发布于 2022-06-03 18:08:51
这在AWS镜像实现中工作得很好。我不需要打开合作伙伴,因为RDS服务会在大约30秒内自动添加合作伙伴。
-停止镜像
alter database {dbname} set partner off
GO-限制使用者
ALTER DATABASE {dbname} SET RESTRICTED_USER WITH ROLLBACK AFTER 30 SECONDS
GO-启用RCSI
ALTER DATABASE {dbname} SET READ_COMMITTED_SNAPSHOT ON WITH NO_WAIT;
GO-允许再次建立联系
ALTER DATABASE {dbname} SET MULTI_USER
GOhttps://dba.stackexchange.com/questions/312830
复制相似问题