簡體   English   中英

如何將 SQL 服務器數據庫的架構從本地遷移到 AWS RDS 上具有不受支持的功能的 SQL 服務器

[英]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 2019 一起使用的本地服務器並將其遷移到雲中。 現在的數據不是重要的東西,而是模式,因為這是概念證明。 主要問題是本地服務器有時使用文件來處理文件。 隨着重構和應用程序更新的發生,這將不得不在未來改變。

我認為最簡單的方法是從舊數據庫生成模式.sql腳本並在新環境中運行它,但這會產生大量錯誤(25k)。

大多數錯誤包括:

  1. 數據庫“主”中的權限失敗
  2. 在新的干凈數據庫中找不到某些對象
  3. object 上不允許擴展屬性,或者它不存在
  4. 無效的數據類型
  5. 數據庫不存在或權限不允許
  6. 文件流功能被禁用

因此,這可能無法作為將架構遷移到新數據庫的解決方案。 我聽說過 AWS DMS(數據遷移服務),但我對此知之甚少。 我在問,當 RDS 不支持 SQL 服務器的本機功能時,我可以研究哪些工具來遷移到 RDS?

導入模式的一種方法是通過生成的腳本向導。 您將不得不手動調整一些東西以使文件流和 sql 服務器的本地配置與 aws RDS 很好地配合使用。

生成和發布腳本指南

  1. Go 到源數據庫

  2. 右鍵單擊左側菜單中的數據庫(對象資源管理器)任務>生成腳本

  3. Select 所有表、過程等。除了文件流表。

  4. 在 Set Scripting Options 下彈出的 Scripts 向導中,選擇制作一個 .sql 文件,在高級選項下,選擇 Schema Only。 這將生成一個腳本,其中只有表的元數據,而不是其中的數據

  5. 生成文件。

  6. 將 .sql 文件復制到連接到 RDS 實例的 EC2 實例(可能是堡壘主機)。

  7. 打開 MS SQL Management Studio 並右鍵單擊 Object 資源管理器中最頂部的 object 並打開一個新查詢。

  8. 將 .sql 文件中的代碼復制並粘貼到查詢 window 中。

  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],以防您需要多次運行腳本來查找錯誤。 這將使您免於覆蓋錯誤或在 memory 中有未完成的表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM