[Microsoft SQL Server] RDS SQL SERVER通过Generate Script(生成脚本)功能对数据库进行逻辑迁移

适用场景:

1.用户在本地的实例或者在ECS上的实例

2.数据库整体大小不是很大(最好不超过300M)

3.适用于华为云合营云场景,在没有部署DRS,甚至没有公网IP的情况下可选择本方案

 

操作步骤:

1.在你本地或ECS上,通过SSMS连接你的实例

2.通过SQL SERVER自带的脚本生成工具,将数据库结构脚本和每个对象的静态数据库通过SQL脚本生成出来,步骤如下:

a.选中要生成schema脚本的数据库,点击鼠标右键选择任务-->生成脚本

    blob.png


b.在导航页中根据提示选择下一步,并确认要导出的对象,可选全部,也可以选择独立对象模块导出

    blob.png


c.下一步,选择将要导出的文件保存到对应的位置

i.当你的数据库整体大小<=50M时,可以选择单个文件

ii.当你的数据库大小>50M时,可以选择每个对象一个文件

    blob.png


d.同时点击高级按钮进入详细选项页面,根据实际需要选择具体脚本生成规则和相关细节,例如:触发器,索引,唯一键,主键,服务器版本等重要选项。

特别注意:要编写脚本的数据库的类型选择为架构和数据

    blob.png

e.最后点击下一步完成脚本生成

5.将生成的每一个SQL脚本文件在SSMS上打开,远程连接到RDS对应实例上,逐个进行执行就可以将数据库结构和数据在远端重新生成。

 

备注:该方案在某些表中数据库特别大的时候,可能无法直接在SSMS管理工具中直接打开执行,需要通过SQLCMD命令远程连接到实例端直接进行执行。

例如:sqlcmd -s 127.0.0.1 -i g:\1.sql -U rdsuser -P 123456

官方地址:https://docs.microsoft.com/zh-cn/sql/relational-databases/scripting/sqlcmd-start-the-utility?view=sql-server-2017