将 MS SQL 数据库导入 Amazon RDS





5.00/5 (1投票)
在本文中,我将向您展示如何轻松地将您的 MS SQL 数据库迁移到 Amazon RDS 云。
引言
如今,几乎所有应用程序都使用数据库来存储和处理信息。有时,数据库维护会出现问题。问题可能迟早出现,无论如何,总会有那么一天,数据库会变得不可用。我在软件开发方面拥有 5 年以上的经验,在我工作过的所有公司,数据库变得不可用的情况都发生过。我遇到的另一个问题是托管数据库的服务器容量不足,或者服务器容量过大且成本高昂。最近,我开始思考是否最好将数据迁移到云提供商并按存储付费。我特别被不需要维护运行所有这些的操作系统这一点所吸引。在本文中,我将向您展示如何将任何 **MS SQL** 数据库转换为 **Amazon RDS**,我将向您展示如何创建云数据库,将其连接到 MS SQL,以及从数据库备份进行部署。我首先要说明的是,本文是为了培训目的而创建的,我将使用一个计费计划的 AWS 账户和一个来自微软的免费数据库。
创建 RDS 数据库
首先,我们需要在 Amazon RDS 中创建一个数据库并进行配置。让我们转到 RDS 选项卡,然后选择创建一个新的 MS SQL Server 数据库(图 1)。在我们的示例中,使用 RDS 免费使用套餐 即可,但对于真实项目,如果您有大型数据库,则需要仔细考虑数据库的正确实例大小。
接下来,单击 下一步 按钮,然后设置 RDS 参数,例如 SQL Server DB 实例类型等版本。在 DB 实例标识符部分,为数据库选择一个名称,然后输入登录名和密码(图 2)。
接下来,转到配置高级设置部分,务必检查 MS SQL 的端口 1433,并指定 VPC,如果没有,则创建一个新的 VPC,并将 公共可访问性 设置为 true。正如您在图 3 中看到的,我们已经创建了一个数据库。
接下来,让我们检查到数据库的连接。为此,请转到 MS Server Management Studio,然后指定连接到数据库的参数:端点 以及之前指定的登录名和密码。如果连接成功,您应该会看到 RDS 中的数据库列表。由于我们还没有任何数据库,我们将只看到 rdsadmin(图 4)。
第一个阶段到此结束。
创建用于备份的 S3 存储桶
成功完成的第二步是在与 rds 相同的区域创建 S3 存储桶。为此,让我们在相同的区域创建一个 S3 存储桶,这一点很重要,然后上传扩展名为 .bak 的文件。在我们的示例中,我使用了 Microsoft Adventure Works,这对于我们的示例来说很好,但对于真实项目,您应该使用自己的数据库 .bak 文件(图 5)。
第二阶段到此结束。
创建新的选项组
第三步是创建一个新的选项组,因为默认情况下,您无法在其上进行任何更改。
为此,请转到 Amazon RDS 中的 Option Group(图 6),然后单击 Create Group。
接下来,我们将为我们的组命名,并指定引擎及其版本(图 7)。
接下来,将一个新选项添加到我们刚刚创建的选项中,并添加 SQLSERVER_BACKUP_RESTORE
(图 8)。
此步骤完成。
连接新的选项组
第四步,我们将连接的选项组替换默认选项组。
为此,请更改我们 RDS 设置中的选项,并在设置中更改 OptionGroup(图 9)。
接下来,单击以同意修改 DB 实例(图 10)。
此步骤完成。
恢复数据库
第五步——连接并运行数据库恢复脚本。
现在,我们只需要放入一个脚本来恢复数据库。为此,让我们创建一个新请求。
exec msdb.dbo.rds_restore_database
@restore_db_name='CodeProjectDatabase',
@s3_arn_to_restore_from='arn:aws:s3:::s3bucketrestore/AdventureWorks2016.bak'
其中
restore_db_name
是数据库名称s3bucketrestore
- S3 存储桶名称- AdventureWorks2016.bak 是 .bak 文件的名称
结果显示在图 11 中。
您可以使用以下命令检查状态:
exec msdb.dbo.rds_task_status
结果应该是成功的,那么您的数据库就已精确恢复。
结论
正如本文所示,如果您遵循所有建议的步骤,迁移到云存储并不是一个困难的过程。
历史
- 2021 年 7 月 19 日:初始版本