RDS SQL Server 如何设置为快照隔离级别 READ_COMMITTED_SNAPSHOT

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: RDS SQL Server 如何设置为快照隔离级别 READ_COMMITTED_SNAPSHOT

问题描述


RDS SQL Server 如何设置为快照隔离级别 READ_COMMITTED_SNAPSHOT


前提条件

设置快照条件:

  1. 设置快照隔离有运行alter database 命令权限。
  2. 执行此命令时,不能有任何连接到此数据库的活动连接。
  3. 数据库不是必须设置单用户模式。
  4. 当数据库为脱机状态,无法执行此操作。
  5. 数据库为云盘版实例


场景1:RDS SQL Server 高可用版本


执行SQL:

ALTER DATABASE ""SET READ_COMMITTED_SNAPSHOT ON;

报错:

Msg 1468, Level 16, State 6, Line 19The operation cannot be performed on database "" because it is involved in a database mirroring session or an availability group. Some operations are not allowed on a database that is participating in a database mirroring session orin an availability group.
Msg 5069, Level 16, State 1, Line 19ALTER DATABASE statement failed.

原因

由于 RDS SQL Server 实例是高可用版本,所以会一直有活动连接进行主备之间同步数据,导致不能设置成功。


解决方案


1. 关闭镜像

示例数据名称:db10,参考更改此名称。

ALTER DATABASE db10 SET PARTNER OFF;

2. 检查是否还有其它会话使用此数据库

select*from sys.sysprocesseswhere dbid = db_id('db10');

3.若存在会话,可以使用kill spid 直接杀掉

注:若存在大事务会话,要自行评估,是否需要等待会话执行完成。直接kill,事务需要回滚,回滚时长至少是事务已经执行的时长。


4. 执行配置快照设置

ALTER DATABASE db10 SET READ_COMMITTED_SNAPSHOT ON;



场景2: RDS SQL Server 基础版本和集群版本

问题:一直无法执行成功


原因

有其它会话阻塞此会话,设置快照隔离。



解决方案

  1. 检查是否还有活跃会话(脚本同场景1)
  2. kill 活跃会话(脚本同场景1)
  3. 执行配置快照隔离操作(脚本同场景1)


附:其它相关命令

查看指定数据库快照隔离是否开启

SELECT name,is_read_committed_snapshot_on FROM sys.databasesWHERE name ='db10';

查看数据库是否开启镜像同步

SELECT DB_NAME(database_id),mirroring_state,mirroring_state_desc,mirroring_role_desc FROM sys.database_mirroringWHERE DB_NAME(database_id)='db10';



适用于

云盘版:


RDS SQL Server 高可用版本、集群版本、基础版本。(直接检查活动连接即可)


注:本地盘为什么不支持

因产品侧限制,所以本地盘实例无法设置,如截图,会出现类似报错

Procedure TGR#ALTERDATABASE, ... Current user 用户名 have no permission


参考文档:

https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-set-options?view=sql-server-ver15

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
30天前
|
存储 SQL 关系型数据库
MySQL的事务隔离级别
【10月更文挑战第17天】MySQL的事务隔离级别
97 43
|
5天前
|
SQL 开发框架 .NET
突破T-SQL限制:利用CLR集成扩展RDS SQL Server的功能边界
CLR集成为SQL Server提供了强大的扩展能力,突破了T-SQL的限制,极大地拓展了SQL 的应用场景,如:复杂字符串处理、高性能计算、图像处理、机器学习集成、自定义加密解密等,使开发人员能够利用 .NET Framework的丰富功能来处理复杂的数据库任务。
|
1月前
|
存储 关系型数据库 MySQL
RR隔离级别在MySQL中的实现与幻读问题探讨
【10月更文挑战第3天】在数据库管理系统中,事务隔离级别是确保数据一致性和并发性能的关键要素。MySQL作为广泛使用的关系型数据库管理系统,支持多种事务隔离级别,其中可重复读(Repeatable Read,简称RR)是其默认隔离级别。本文将深入探讨RR隔离级别在MySQL中的实现原理,以及RR隔离级别下幻读问题的产生与解决方案。
74 2
|
2月前
|
关系型数据库 MySQL 数据库
深入理解MySQL数据库隔离级别
深入理解MySQL数据库隔离级别
118 1
|
2月前
|
SQL 关系型数据库 MySQL
创建包含MySQL和SQLServer数据库所有字段类型的表的方法
创建一个既包含MySQL又包含SQL Server所有字段类型的表是一个复杂的任务,需要仔细地比较和转换数据类型。通过上述方法,可以在两个数据库系统之间建立起相互兼容的数据结构,为数据迁移和同步提供便利。这一过程不仅要考虑数据类型的直接对应,还要注意特定数据类型在不同系统中的表现差异,确保数据的一致性和完整性。
35 4
|
3月前
|
人工智能 小程序 关系型数据库
【MySQL】黑悟空都掌握的技能,数据库隔离级别全攻略
本文以热门游戏《黑神话:悟空》为契机,深入浅出地解析了数据库事务的四种隔离级别:读未提交、读已提交、可重复读和串行化。通过具体示例,展示了不同隔离级别下的事务行为差异及可能遇到的问题,如脏读、不可重复读和幻读等。此外,还介绍了在MySQL中设置隔离级别的方法,包括全局和会话级别的调整,并通过实操演示了各隔离级别下的具体效果。本文旨在帮助开发者更好地理解和运用事务隔离级别,以提升数据库应用的一致性和性能。
142 2
【MySQL】黑悟空都掌握的技能,数据库隔离级别全攻略
|
2月前
|
SQL Oracle 关系型数据库
详解 MySQL 的事务以及隔离级别
详解 MySQL 的事务以及隔离级别
41 0
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
2月前
|
关系型数据库 MySQL 数据库
docker启动mysql多实例连接报错Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’
docker启动mysql多实例连接报错Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’
187 0
|
3月前
|
SQL 关系型数据库 数据库
数据库空间之谜:彻底解决RDS for SQL Server的空间难题
【8月更文挑战第16天】在管理阿里云RDS for SQL Server时,合理排查与解决空间问题是确保数据库性能稳定的关键。常见问题包括数据文件增长、日志文件膨胀及索引碎片累积。利用SQL Server的动态管理视图(DMV)可有效监测文件使用情况、日志空间及索引碎片化程度。例如,使用`sp_spaceused`检查文件使用量,`sys.dm_db_log_space_usage`监控日志空间,`sys.dm_db_index_physical_stats`识别索引碎片。同时,合理的备份策略和文件组设置也有助于优化空间使用,确保数据库高效运行。
83 2
下一篇
无影云桌面