如何使用不支持的功能将 SQL Server 数据库的架构从本地迁移到 AWS RDS 上的 SQL Server

问题描述 投票:0回答:2

我正在努力采用与 SQL Server 2019 配合使用的本地服务器并将其迁移到云。现在的数据并不重要,重要的是模式,因为这是概念证明。主要问题是本地服务器有时使用 filestream 来处理文件。随着重构和应用程序更新的发生,这种情况将来必须改变。

我认为最简单的方法是从旧数据库生成模式

.sql
脚本并在新环境中运行它,但这会产生大量错误(25k)。

大多数错误包括:

    数据库“master”中的权限失败
  1. 在新的干净数据库中找不到某些对象
  2. 对象不允许使用扩展属性或者该对象不存在
  3. 无效的数据类型
  4. 数据库不存在或权限不允许
  5. 文件流功能已禁用
因此,这可能无法作为将架构迁移到新数据库的临时解决方案。我听说过AWS DMS(数据迁移服务),但对此了解不多。我想问,当 RDS 不支持 SQL Server 原生功能时,我可以使用哪些工具来迁移到 RDS?

sql-server migration amazon-rds sqlfilestream
2个回答
0
投票
导入架构的一种方法是通过生成的脚本向导。您必须手动调整一些内容才能使文件流和 sql 服务器的本地配置与 aws RDS 很好地配合使用。

生成和发布脚本指南

  1. 前往源数据库

  2. 右键单击菜单中的数据库 左侧(对象资源管理器)任务>生成脚本

  3. 选择所有表格, 程序等..除了文件流表。

  4. 在设置脚本选项下弹出的脚本向导中,选择制作.sql文件,在高级选项下,选择仅架构。这将生成一个脚本,其中仅包含表的元数据,而不包含表中的数据

  5. 生成文件。

  6. 将 .sql 文件复制到 连接到的 EC2 实例(可能是堡垒主机) RDS 实例。

  7. 打开 MS SQL Management Studio 并右键单击 对象资源管理器中最顶层的对象并打开一个新查询。

  8. 将 .sql 文件内的代码复制并粘贴到查询窗口中。

  9. 将数据和日志文件的文件路径位置更改为 d: dsdbdata\DATA\TEST_AWS.mdf 和 D: dsdbdata\DATA\TEST_AWS_Log.ldf 分别。 RDS 将无法识别任何其他文件位置 并且将无法创建表。

  10. 注释或删除包含以下内容的代码行:

    a.更改数据库 [TEST_AWS] 将可信设置关闭  

    b.更改数据库 [TEST_AWS] 设置 HONOR_BROKER_PRIORITY

    c. ALTER DATABASE [TEST_AWS] SET DB_CHAINING OFF 创建全局用户

    d。文件流

  11. 执行脚本

  12. 考虑在创建新数据库之前在脚本顶部添加 DROP DATABASE [TEST_AWS],以防您需要多次运行脚本来查找错误。这将使您避免覆盖错误或内存中出现未完成的表格。


0
投票
你成功了吗?特别是关于 FILESTREAM。

© www.soinside.com 2019 - 2024. All rights reserved.