[英]Migrate on premise SQL Server Database to AWS EC2 instances or AWS RDS using Data Migration Service?
[英]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)。
大多數錯誤包括:
因此,這可能無法作為將架構遷移到新數據庫的解決方案。 我聽說過 AWS DMS(數據遷移服務),但我對此知之甚少。 我在問,當 RDS 不支持 SQL 服務器的本機功能時,我可以研究哪些工具來遷移到 RDS?
導入模式的一種方法是通過生成的腳本向導。 您將不得不手動調整一些東西以使文件流和 sql 服務器的本地配置與 aws RDS 很好地配合使用。
生成和發布腳本指南
Go 到源數據庫
右鍵單擊左側菜單中的數據庫(對象資源管理器)任務>生成腳本
Select 所有表、過程等。除了文件流表。
在 Set Scripting Options 下彈出的 Scripts 向導中,選擇制作一個 .sql 文件,在高級選項下,選擇 Schema Only。 這將生成一個腳本,其中只有表的元數據,而不是其中的數據
生成文件。
將 .sql 文件復制到連接到 RDS 實例的 EC2 實例(可能是堡壘主機)。
打開 MS SQL Management Studio 並右鍵單擊 Object 資源管理器中最頂部的 object 並打開一個新查詢。
將 .sql 文件中的代碼復制並粘貼到查詢 window 中。
將數據和日志文件的文件路徑位置分別更改為 D:\rdsdbdata\DATA\TEST_AWS.mdf 和 D:\rdsdbdata\DATA\TEST_AWS_Log.ldf。 RDS 將無法識別任何其他文件位置,並且將無法創建表。
注釋或刪除以下代碼行:
一個。 ALTER DATABASE [TEST_AWS] 設置可信關閉
灣。 ALTER DATABASE [TEST_AWS] SET HONOR_BROKER_PRIORITY
c。 ALTER DATABASE [TEST_AWS] SET DB_CHAINING OFF 創建全局用戶
d。 文件流
執行腳本
考慮在創建新數據庫之前向腳本頂部添加 DROP DATABASE [TEST_AWS],以防您需要多次運行腳本來查找錯誤。 這將使您免於覆蓋錯誤或在 memory 中有未完成的表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.