SSIS 转移数据库和SQL Server对象组件
转移组件分为:转移数据库组件和转移数据库对象组件,前者把整个数据库复制或移动到新的SQL Server实例中,后者把数据库中的对象转移到新的SQL Server数据库中。
一,Transfer Database Task
转移数据库任务用于在两个SQL Server实例之间转移数据库,可以拷贝或移动数据库,可以联机或脱机转移。改组件的配置选项如下图所示:
1,转移的动作:拷贝和移动
在Action列表中,可以选择Copy和Move,拷贝(Copy)是指把数据库赋值一个副本,拷贝的结果是存在两个数据库,而移动(Move)是指创建新的数据库,并把旧的数据库删除,移动的结果是只有一个数据库。
2,转移的方法:联机和脱机模式
在Method列表中,可以选择:DatabaseOnline和DatabaseOffline,当使用联机(Online)模式时,数据库保持连接状态,并通过SQL管理对象(SMO)复制数据库对象来进行数据传输。
当使用脱机(Offline)模式时,数据库处于分离(Detached)状态,该组件把数据库文件转移(赋值或移动)到目标服务器;在数据库文件转移到新的服务器之后,把数据库重新附加(attach)到目标SQL Server实例上。当使用Copy模式时,在复制成功之后,原始数据库会被重新附加到原始实例上。在脱机模式下,数据库文件拷贝的速度更快,缺点是脱机模式下无法使用数据库。
在脱机模式下,需要指定源服务器和目标服务器之间的网络文件共享(Network File Share),网络共享文件夹是目标服务器上的共享目录,数据库文件会被转移到改目的下。当在脱机模式下转移数据库时,数据库文件被拷贝到网络文件共享中。
二,Transfer SQL Server Objects Task
转移数据库对象组件用于把一个或多个数据库对象从一个SQL Server实例转移到其他SQL Server实例。使用该组件,需要先创建数据库,然后该组件就会把数据和Table Schema 复制到目标数据库中。
常用的数据库对象有:
- Table
- View
- Stored Procedure
- User-defined Function
参考文档:
Transfer SQL Server Objects Task