任何形式的数据损坏都有可能导致数据的丢失,宕机。对于 DBA 来讲是一个不小的打击。云中托管的数据库无论从数据库的管理、高可用或灾难恢复上来讲都是 DBA 的一个很好的选择。如何利用传统的 SQL Server 的备份文件还原到 AWS 托管的 SQL Server 数据库是用户们普遍关心的问题。下面我将介绍:如何使用备份文件将 MS_SQL Server 还原数据库到 RDS SQL Server.
步骤:
1.创建一台管理主机
2.创建 RDS SQL Server
3.修改安全组和关联选项组
4.将已经备份的数据上传到 S3 上
5.创建并配置选项组
6.使用 SSMS 将 S3 上的.bak 还原到 RDS 上
步骤一:创建一台管理主机
创建 EC2 虚拟机做为管理主机,目的是出于安全角度考虑使用跳板机连接数据库,而不是将 SQL Server 的 Endpoint 暴露在公网上。
创建一台 EC2 虚拟机并安装 SQL Server Management Studio,不再赘述。
SSMS 工具下载地址:[https://docs.microsoft.com/zh-tw/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017](
步骤二:创建 RDS SQL Server
创建一台 SQL Server Standard Edition,
可以选择生产(Production)或开发/测试(Dev/Test)
生产环境也就是多可用区部署:
多可用区部署为数据库实例提供了更高的可用性、数据持久性和容错能力。在进行计划的数据维护或发生未计划的服务中断时,Amazon RDS 会自动故障转移到最新的辅助数据库实例。
开发和测试环境就是单实例,会有单点故障。
步骤三:修改安全组和关联选项组
修改 RDS 安全组,目的是让刚创建的管理主机与 RDS 建立连接,如下图:
在 RDS 的安全组中的 Source 修改成 EC2 的安全组 ID:
返回到管理主机上,使用 SSMS 测试连通性
连接成功
步骤四:将已经备份的数据上传到 S3 上
一般而言,如果你的文件大小达到 100MB,你应该考虑使用分段上传。使用 AWS 的 s3 cp 命令和 s3 sync 等命令可以自动对要上传的大文件分片,然后上传。如果你对命令不熟悉可以参考这篇 blog 中的 5. 使用 AWS CLI 的自动分段上传https://aws.amazon.com/cn/blogs/china/uploading-using-s3/
步骤五:创建并配置选项组
下面就是要创建和配置选项组,目的是添加 S3 的路径将 S3 上的.bak 文件还原到 RDS 上。
在创建选项组之前要确认一下 RDS 的 Engine 版本号,先记下来。
创建 Option Group
这里可能会问到,我的 RDS SQL server 对应 Engine 是什么?如下图:
我的 RDS 用的是 SQL Server Standard Edition 所用选择 sqlserver-se
根据前面 RDS instance 的截图,Major engine version 就是 14.00。
Add Option:
选择 Add option,选项如下图:
修改 RDS 实例并关联选项组
Change Option Group 为我们创建的 Option Group
modifying 这个状态大概会持续 30-60 秒,刷新一下
步骤六:使用 SSMS 将 S3 上的 bak 还原到 RDS 上
回到 SSMS 工具的 EC2 管理主机上执行还原脚本:
例 未加密
例 带加密
这里执行未加密的脚本:
执行脚本,开始还原。
执行 exec msdb.dbo.rds_task_status;查看任务状态 complete 100 代表完成。
刷新数据库 还原的 adventurestore 已经建立好。
验证数据:
Trouble Shooting:
以下是使用本地备份和还原时可能会遇到的问题。
总结:
我们在迁移和还原的过程中就可以发现,AWS 对于服务的访问,数据库的连接,网络端口等等都会有非常详细的安全准则。数据库的安全是云中数据安全的非常重要的一部分。另外,对于数据库的高可用和安全,我们都可以通过这个博客了解。除此之外,Amazon Relational Database Service (Amazon RDS) 让用户能够在云中更轻松地设置、操作和扩展关系数据库。支持您已熟悉的数据库产品:MySQL、MariaDB、PostgreSQL、Oracle 和 Microsoft SQL Server。最后,打个广告,具有高性能并且与 MySQL 和 PostgreSQL 兼容的完全托管的关系数据库引擎——Aurora 不仅具有商用数据库的速度和可靠性,同时还具有开源数据库的简单性和成本效益。您可以通过 DMS 工具来进行同构或异构数据库的迁移。https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html
作者介绍:
李强
AWS 解决方案架构师,负责基于 AWS 的云计算方案架构的咨询和设计,同时致力于 AWS 云服务在国内的应用和推广,在物联网和微软的技术栈有着广泛的设计和实践经验。在加入 AWS 之前,曾在东芝中国负责系统开发和运维工作,在微软中国负责中小企业的技术咨询和方案设计工作。
本文转载自 AWS 技术博客。
原文链接:
https://amazonaws-china.com/cn/blogs/china/use-sql-server-copyfile-bak-rds/
评论