【问题标题】:How to migrate the schema of a SQL Server database from on-premise to SQL Server on AWS RDS with non-supported features如何使用不受支持的功能将 SQL Server 数据库的架构从本地迁移到 AWS RDS 上的 SQL Server
【发布时间】:2022-08-18 00:00:55
【问题描述】:

我正在开发一个与 SQL Server 2019 配合使用的本地服务器并将其迁移到云中。现在的数据不是重要的东西,而是模式,因为这是概念证明。主要问题是本地服务器有时使用filestream 来处理文件。随着重构和应用程序更新的发生,这将不得不在未来改变。

我认为最简单的方法是 generate a schema .sql script from the old db 并在新环境中运行它,但这会产生大量错误(25k)。

大多数错误包括:

  1. 数据库\'master\'中的权限失败
  2. 在新的干净数据库中找不到某些对象
  3. 对象上不允许有扩展属性,或者它不存在
  4. 无效的数据类型
  5. 数据库不存在或权限不允许
  6. 文件流功能被禁用

    因此,这可能无法作为将架构迁移到新数据库的解决方案。我听说过 AWS DMS(数据迁移服务),但对此我知之甚少。我在问,当 RDS 不支持 SQL Server 的本机功能时,我可以查看哪些工具来迁移到 RDS?

    标签: sql-server migration amazon-rds sqlfilestream


    【解决方案1】:

    导入模式的一种方法是通过生成的脚本向导。您将不得不手动调整一些东西以使文件流和 sql 服务器的本地配置与 aws RDS 很好地配合使用。

    生成和发布脚本指南

    1. 转到源数据库

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

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

    4. 在 Set Scripting Options 下弹出的 Scripts 向导中,选择制作一个 .sql 文件,在高级选项下,选择 Schema Only。这将生成一个脚本,其中只有表的元数据,而不是其中的数据

    5. 生成文件。

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

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

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

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

    10. 注释或删除以下代码行:

      一个。 ALTER DATABASE [TEST_AWS] 设置可信关闭

      湾。 ALTER DATABASE [TEST_AWS] SET HONOR_BROKER_PRIORITY

      C。 ALTER DATABASE [TEST_AWS] SET DB_CHAINING OFF 创建全局用户

      d。文件流

    11. 执行脚本

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

    【讨论】:

      猜你喜欢
      • 2020-06-30
      • 2020-10-11
      • 2013-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多