Windows 下使用快照为SQL Server创建应用一致性快照最佳实践

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 通过应用一致性快照回退云盘,数据不会损坏和丢失,可以避免数据库启动时日志回滚,确保应用(例如SQL Server)处于一致性的启动状态。本文以SQL Server数据库为例,介绍如何创建Windows实例的应用一致性快照,并验证应用一致性快照的数据备份效果。


前提条件

  • ECS实例的操作系统属于Windows Server 2019、Windows Server 2016或Windows Server 2012 R2。
  • ECS实例中云盘必须是ESSD类型云盘,且文件系统为EXT3、EXT4、XFS或NTFS。同时,不支持网络文件系统和共享文件系统。
  • ECS实例已安装云助手客户端。具体操作,请参见安装云助手客户端
    说明 2017年12月01日之后使用公共镜像创建的ECS实例,已默认预装云助手客户端。
  • 您已经了解如何安装和使用SQL Server数据库。更多信息,请参见官方文档。

背景信息

本文使用的验证环境信息如下所示。

环境 说明
ECS实例规格 ecs.g7.2xlarge
操作系统 Windows Server 2019 数据中心版 64位中文版
云盘 ESSD云盘
应用 Microsoft SQL Server 2019(64位)

说明 如何安装部署Microsoft SQL Server,请参见官方文档。

操作流程

  1. 步骤一:准备数据库验证环境
  2. 步骤二:为ECS实例授予RAM角色
  3. 步骤三:通过控制台创建应用一致性快照
  4. 步骤四:验证是否成功创建应用一致性快照。
  5. 步骤五:验证通过应用一致性快照恢复数据的效果

步骤一:准备数据库验证环境

在操作之前,您已经安装好Microsoft SQL Server 2019(64位)环境,此操作介绍如何准备数据库验证环境。

  1. 远程连接ECS实例。具体操作,请参见连接方式概述
  2. 连接SQL Server数据库。
  1. 在左下角单击搜索按钮,在搜索栏中输入ssms

image.png

  1. 单击Microsoft SQL Server Management Studio 18
  2. 连接到服务器对话框中,设置服务器连接信息,单击连接
  1. Microsoft SQL Server Management Studio 18中,创建验证需要的数据库(AdventureWorks)。
  1. 单击新建查询
  2. 在查询窗口中,输入以下SQL语句。
CREATE DATABASE AdventureWorks;
  1. 右键单击查询窗口,再单击运行
  1. Microsoft SQL Server Management Studio 18中,创建验证需要的数据库表 (PointInTime)。
  1. 单击新建查询
  2. 在查询窗口中,输入以下SQL语句。
USE AdventureWorks
GO
IF NOT EXISTS (SELECT name FROM sysobjects WHERE name = 'PointInTime' AND TYPE ='U')
CREATE TABLE PointInTime (PIT datetime)
WHILE ( 1 = 1 )
BEGIN
    INSERT PointInTime SELECT GETDATE()
    WAITFOR DELAY '00:00:001'
END
  1. 右键单击运行
  1. 在左侧目录树中,您可以查看创建的数据库和表。

image.png

步骤二:为ECS实例授予RAM角色

开启应用一致性快照前,必须先为ECS实例配置相关的RAM角色。

  1. 使用阿里云账号登录RAM控制台
  2. 创建应用一致性快照相关的RAM角色。具体操作,请参见创建可信实体为阿里云服务的RAM角色示例为创建一个AppSnapshotRoleName的RAM角色。

image.png

  1. 创建应用一致性快照相关权限策略。具体操作,请参见创建自定义策略

image.png

创建一个AppSnapshotPolicy权限策略,具有查询快照相关信息、创建快照、设置标签和查询云盘信息等相关权限。您可以直接使用以下策略内容。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:DescribeSnapshot*",
                "ecs:CreateSnapshot*",
                "ecs:TagResources",
                "ecs:DescribeDisks"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {}
        }
    ]
}
  1. 为RAM角色(AppSnapshotRoleName)设置自定义权限(AppSnapshotPolicy)。具体操作,请参见为RAM角色授权

image.png

  1. 为目标实例设置RAM角色(AppSnapshotRoleName)。具体操作,请参见授予实例RAM角色

image.png

步骤三:通过控制台创建应用一致性快照

此操作介绍如何在控制台为SQL Server数据库所在的Windows实例创建应用一致性快照。

  1. 进入ECS实例列表页面。
  1. 登录ECS管理控制台
  2. 在左侧导航栏,选择实例与镜像 > 实例
  3. 在顶部菜单栏处,选择目标ECS实例所在地域。
  1. 找到目标实例,在操作列中选择更多 > 云盘和镜像 > 创建实例快照
  2. 创建实例快照对话框中,设置实例快照参数并启用快照极速可用功能。
  1. 创建实例快照对话框中,选中启用应用一致性快照是否默认包含Writer

image.png

  1. 单击确定创建后会返回云助手命令ID和命令执行ID,您可以根据命令执行ID查看创建结果。

image.png

步骤四:验证是否成功创建应用一致性快照。

此操作介绍如何在ECS管理控制台查看应用一致性快照创建结果,并在数据库中查看数据暂停提交的效果。

  1. 云助手页面,查看命令执行结果。
  1. 登录ECS管理控制台
  2. 在左侧导航栏,选择运维与监控 > 发送命令/文件(云助手)
  3. 单击命令执行结果页签。
  4. 单击目标命令执行ID,查看执行结果。

image.png

如上图所示,ExitCode返回值为0,表示云助手上创建应用一致性快照执行成功,此时回显信息中显示创建应用一致性快照和实例快照ID。

说明 如果ExitCode返回值不为0,请根据ExitCode错误码信息排查相关问题。更多信息,请参见错误码信息

  1. 在云助手的返回信息中,查看实例快照创建过程信息。
  • 检查一致性组件,如果没有则自动安装。

image.png

  • 自动识别并加载逻辑卷。

image.png

  • 自动加入SQL Server中相应的数据库。

image.png

  • 快照冻结时间点为2021-08-05 16:42:59

image.png

  1. 快照页面查看实例快照和云盘快照信息。
  1. 在左侧导航栏,选择存储与快照 > 快照
  2. 单击实例快照页签,查看已创建的实例快照。
  3. 单击云盘快照页签,根据快照的标签信息,检查是否成功创建应用一致性快照。示例中云盘快照的标签显示APPConsistent:True,表示创建的是应用一致性快照。

image.png

  1. 连接数据库,查看数据暂停提交时间。
  1. 远程连接ECS实例。
  2. 通过Microsoft SQL Server Management Studio 18连接SQL Server数据库。
  3. 单击新建查询
  4. 在查询窗口中,输入以下SQL语句。
USE AdventureWorks
select * from PointInTime
GO
  1. 右键单击运行
  2. 在查询结果中,您可以发现在冻结时间段内,数据库没有写入记录插入进来。

image.png

步骤五:验证通过应用一致性快照恢复数据的效果

通过应用一致性快照恢复数据后,检查MySQL数据最后写入时间是在应用冻结脚本执行前,因此可以判断应用一致性快照的数据恢复有效果。

  1. 在ECS管理控制台,通过上面创建的实例快照回滚ECS实例。具体操作,请参见通过实例快照回滚云盘
  2. 登录SQL Server并查询数据库表PointInTime的内容。
  1. 远程连接ECS实例。
  2. 通过Microsoft SQL Server Management Studio 18连接SQL Server数据库。
  3. 单击新建查询
  4. 在查询窗口中,输入以下SQL语句。
USE AdventureWorks
select * from PointInTime
GO
  1. 右键单击运行
  2. 在查询结果中,您可以查看恢复数据后最后一条记录的时间点。

image.png

数据库冻结成功之前会停止插入数据。使用应用一致性的实例快照恢复数据后,最后一条数据对应的时间为2021-08-05 16:42:57.,早于步骤四中查询的冻结时间点2021-08-05 16:42:59.9732143。因此证明关于SQL Server的应用一致性快照备份的结果是正确的。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
1月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
171 3
|
11天前
|
安全 前端开发 Windows
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
本文介绍了 Electron 应用在 Windows 中的更新原理,重点分析了 `NsisUpdater` 类的实现。该类利用 NSIS 脚本,通过初始化、检查更新、下载更新、验证签名和安装更新等步骤,确保应用的更新过程安全可靠。核心功能包括差异下载、签名验证和管理员权限处理,确保更新高效且安全。
25 4
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
|
7天前
|
监控 安全 网络安全
Windows Server管理:配置与管理技巧
Windows Server管理:配置与管理技巧
35 3
|
18天前
|
SQL 数据库
如何应用SQL约束条件?
【10月更文挑战第28天】如何应用SQL约束条件?
34 11
|
11天前
|
存储 安全 网络安全
Windows Server 本地安全策略
由于广泛使用及历史上存在的漏洞,Windows服务器成为黑客和恶意行为者的主要攻击目标。这些系统通常存储敏感数据并支持关键服务,因此组织需优先缓解风险,保障业务的完整性和连续性。常见的威胁包括勒索软件、拒绝服务攻击、内部威胁、恶意软件感染等。本地安全策略是Windows操作系统中用于管理计算机本地安全性设置的工具,主要包括用户账户策略、安全选项、安全设置等。实施强大的安全措施,如定期补丁更新、网络分段、入侵检测系统、数据加密等,对于加固Windows服务器至关重要。
|
1月前
|
边缘计算 安全 网络安全
|
1月前
|
SQL Oracle 关系型数据库
SQL语言的主要标准及其应用技巧
SQL(Structured Query Language)是数据库领域的标准语言,广泛应用于各种数据库管理系统(DBMS)中,如MySQL、Oracle、SQL Server等
|
11天前
|
SQL 监控 安全
员工上网行为监控软件:SQL 在数据查询监控中的应用解析
在数字化办公环境中,员工上网行为监控软件对企业网络安全和管理至关重要。通过 SQL 查询和分析数据库中的数据,企业可以精准了解员工的上网行为,包括基础查询、复杂条件查询、数据统计与分析等,从而提高网络管理和安全防护的效率。
24 0
|
1月前
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019
|
1月前
|
网络协议 Windows
Windows Server 2019 DHCP服务器搭建
Windows Server 2019 DHCP服务器搭建
下一篇
无影云桌面