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

本文涉及的产品
云数据库 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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
SQL 关系型数据库 MySQL
mysql用户权限设置
mysql用户权限设置
|
22天前
|
网络协议 关系型数据库 MySQL
mysql8.0远程连接权限设置
mysql8.0远程连接权限设置
53 0
|
2月前
|
关系型数据库 MySQL 数据库
MySQL时间字段设置自动更新
MySQL时间字段设置自动更新
26 0
|
3月前
|
SQL 关系型数据库 MySQL
mysql使用default给列设置默认值的问题
mysql使用default给列设置默认值的问题
34 0
|
3月前
|
关系型数据库 MySQL 数据库
百度搜索:蓝易云【【Docker】Docker部署Mysql并设置数据持久化教程】
通过以上步骤,您已经成功地在Docker中部署了MySQL,并设置了数据持久化,确保数据在容器重新启动或迁移时得以保留。
50 0
|
3月前
|
关系型数据库 MySQL API
|
2月前
|
关系型数据库 MySQL Docker
MySQL 5.7 timestamp类型设置default value为'0000-00-00 00:00:00'报错的解决方法
MySQL 5.7 timestamp类型设置default value为'0000-00-00 00:00:00'报错的解决方法
|
1月前
|
SQL 关系型数据库 MySQL
IDEA+Mysql+Sqlserver安装步骤_kaic
IDEA+Mysql+Sqlserver安装步骤_kaic
|
4月前
|
SQL 关系型数据库 MySQL
使用Flink CDC从SQL Server同步数据到MySQL
使用Flink CDC从SQL Server同步数据到MySQL
148 1
|
2天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
12 0