65.9K
CodeProject 正在变化。 阅读更多。
Home

将 MS SQL 数据库导入 Amazon RDS

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2021 年 7 月 20 日

CPOL

4分钟阅读

viewsIcon

6897

在本文中,我将向您展示如何轻松地将您的 MS SQL 数据库迁移到 Amazon RDS 云。

引言

如今,几乎所有应用程序都使用数据库来存储和处理信息。有时,数据库维护会出现问题。问题可能迟早出现,无论如何,总会有那么一天,数据库会变得不可用。我在软件开发方面拥有 5 年以上的经验,在我工作过的所有公司,数据库变得不可用的情况都发生过。我遇到的另一个问题是托管数据库的服务器容量不足,或者服务器容量过大且成本高昂。最近,我开始思考是否最好将数据迁移到云提供商并按存储付费。我特别被不需要维护运行所有这些的操作系统这一点所吸引。在本文中,我将向您展示如何将任何 **MS SQL** 数据库转换为 **Amazon RDS**,我将向您展示如何创建云数据库,将其连接到 MS SQL,以及从数据库备份进行部署。我首先要说明的是,本文是为了培训目的而创建的,我将使用一个计费计划的 AWS 账户和一个来自微软的免费数据库。

创建 RDS 数据库

首先,我们需要在 Amazon RDS 中创建一个数据库并进行配置。让我们转到 RDS 选项卡,然后选择创建一个新的 MS SQL Server 数据库(图 1)。在我们的示例中,使用 RDS 免费使用套餐 即可,但对于真实项目,如果您有大型数据库,则需要仔细考虑数据库的正确实例大小。

图 1 - 创建 RDS 数据库

接下来,单击 下一步 按钮,然后设置 RDS 参数,例如 SQL Server DB 实例类型等版本。在 DB 实例标识符部分,为数据库选择一个名称,然后输入登录名和密码(图 2)。

图 2 - 指定 DB 详细信息

接下来,转到配置高级设置部分,务必检查 MS SQL 的端口 1433,并指定 VPC,如果没有,则创建一个新的 VPC,并将 公共可访问性 设置为 true。正如您在图 3 中看到的,我们已经创建了一个数据库。

图 3 - 数据库列表

接下来,让我们检查到数据库的连接。为此,请转到 MS Server Management Studio,然后指定连接到数据库的参数:端点 以及之前指定的登录名密码。如果连接成功,您应该会看到 RDS 中的数据库列表。由于我们还没有任何数据库,我们将只看到 rdsadmin(图 4)。

图 4 - MS Server Management Studio 中的数据库列表

第一个阶段到此结束。

创建用于备份的 S3 存储桶

成功完成的第二步是在与 rds 相同的区域创建 S3 存储桶。为此,让我们在相同的区域创建一个 S3 存储桶,这一点很重要,然后上传扩展名为 .bak 的文件。在我们的示例中,我使用了 Microsoft Adventure Works,这对于我们的示例来说很好,但对于真实项目,您应该使用自己的数据库 .bak 文件(图 5)。

图 5 - 创建 S3 存储桶并上传 .bak 文件

第二阶段到此结束。

创建新的选项组

第三步是创建一个新的选项组,因为默认情况下,您无法在其上进行任何更改。
为此,请转到 Amazon RDS 中的 Option Group(图 6),然后单击 Create Group

图 6 - 创建新的选项组

接下来,我们将为我们的组命名,并指定引擎及其版本(图 7)。

图 7 - 为选项组选择名称和引擎

接下来,将一个新选项添加到我们刚刚创建的选项中,并添加 SQLSERVER_BACKUP_RESTORE(图 8)。

图 8 - 创建新选项

此步骤完成。

连接新的选项组

第四步,我们将连接的选项组替换默认选项组。
为此,请更改我们 RDS 设置中的选项,并在设置中更改 OptionGroup(图 9)。

图 9 - 将新的选项组附加到 RDS 数据库

接下来,单击以同意修改 DB 实例(图 10)。

图 10 - 修改 Amazon RDS 数据库

此步骤完成。

恢复数据库

第五步——连接并运行数据库恢复脚本。
现在,我们只需要放入一个脚本来恢复数据库。为此,让我们创建一个新请求。

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 中。

图 11 - 运行脚本

您可以使用以下命令检查状态:

exec msdb.dbo.rds_task_status

结果应该是成功的,那么您的数据库就已精确恢复。

结论

正如本文所示,如果您遵循所有建议的步骤,迁移到云存储并不是一个困难的过程。

历史

  • 2021 年 7 月 19 日:初始版本
© . All rights reserved.