tou*_*der 32 sql-server amazon-rds
我一直在尝试从Win2008服务器上的常规SQL Server迁移到Amazon AWS RDS上的SQL Server.
我认为简单的备份和恢复会起作用.虽然AWS RDS似乎无法访问文件系统,因此sql脚本似乎都需要源服务器和目标服务器上的本地文件系统.我尝试了一个脚本跟随
exec sp_addlinkedserver @server='test.xxxx.us-east-1.rds.amazonaws.com'
-- Verify that the servers were linked (lists linked servers)
exec sp_linkedservers
EXEC ('RESTORE DATABASE [orchard] FROM DISK = ''C:\Temp\orchard.bak'' WITH FILE = 1, NOUNLOAD, STATS = 10')
AT [test.xxxx.us-east-1.rds.amazonaws.com]
Run Code Online (Sandbox Code Playgroud)
任何的意见都将会有帮助.
对于使用.bak文件迁移SQL数据库而获得AWS支持的官方消息是,它不受支持.所以不再从.bak文件中快速恢复.他们在此提供了迁移现有数据库的官方帮助:
这也让我对Azure数据库迁移工具进行了非正式的眨眼.只需使用它来生成模式和/或数据的脚本,并针对您的RDS实例执行它.它是一个很好的工具.您必须先将.bak导入非RDS SQL服务器才能执行此操作.
您可能会发现数据层应用程序 BACPAC格式将为您提供最方便的解决方案.您可以使用" 导出"生成包含数据库架构和数据的文件.导入将创建一个新数据库,该数据库使用基于该文件的数据填充.
与" 备份和还原"操作相反,"导出"和"导入"不需要访问数据库服务器的文件系统.
您可以使用SQL Server Management Studio或通过.Net,Powershell,MSBuild等API处理BACPAC文件.

请注意,使用此方法导出然后从Amazon RDS导入和导入到Amazon RDS存在问题.在RDS上创建新数据库时,会在其中创建以下两个对象.

在导入期间,BACPAC文件中包含的对象与RDS自动添加的对象之间将存在冲突.这些对象都存在于BACPAC文件中,并在创建新数据库时由RDS自动创建.
如果您有一个非RDS的SQL Server实例,那么您可以将BACPAC导入该实例,删除上面的对象,然后导出数据库以创建新的BACPAC文件.将它还原到RDS实例时,这个不会有任何冲突.
否则,可以使用以下步骤解决此问题.
注意:使用SQL Server Management Studio将BacPac导入RDS还有另一个相关问题,我在此解释.
我需要以下文章,讨论如何使用数据复制数据库 \xe2\x80\x93 生成 T-SQL 以将数据从一个表插入到另一个表。
\n\n\n| 归档时间: |
|
| 查看次数: |
22099 次 |
| 最近记录: |