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

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
26 9
|
4月前
|
SQL 存储 Unix
Flink SQL 在快手实践问题之设置 Window Offset 以调整窗口划分如何解决
Flink SQL 在快手实践问题之设置 Window Offset 以调整窗口划分如何解决
74 2
|
1月前
|
SQL 开发框架 .NET
突破T-SQL限制:利用CLR集成扩展RDS SQL Server的功能边界
CLR集成为SQL Server提供了强大的扩展能力,突破了T-SQL的限制,极大地拓展了SQL 的应用场景,如:复杂字符串处理、高性能计算、图像处理、机器学习集成、自定义加密解密等,使开发人员能够利用 .NET Framework的丰富功能来处理复杂的数据库任务。
|
1月前
|
SQL
开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql
开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql
35 1
|
2月前
|
SQL 存储 数据库
SQL部分字段编码设置技巧与方法
在SQL数据库管理中,设置字段的编码对于确保数据的正确存储和检索至关重要
|
3月前
|
关系型数据库 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)")
|
3月前
|
关系型数据库 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’
239 0
|
4月前
|
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`识别索引碎片。同时,合理的备份策略和文件组设置也有助于优化空间使用,确保数据库高效运行。
116 2
|
4月前
|
数据采集 关系型数据库 MySQL
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
50 1
|
4月前
|
SQL 监控 供应链