SQL Server 计算机间移动数据库计算机间移动数据库
注意:支持将数据从SQL Server 2000迁移到Microsoft SQL Server 2000(64位)。您可以将一个32位数据库附加到一
个64位数据库上,方法是:使用sp_attach_db系统存储过程或sp_attach_single_file_db系统存储过程,或者使用32位企业管
理器中的备份和还原功能。您可以在SQL Server的32位和64位两种版本之间来回移动数据库。您还可以使用同样的方法从
SQL Server 7.0迁移数据。但是,不支持将数据从SQL Server 2000(64位)降级到SQL Server 7.0。下面分别介绍这几种方
法。
如果您使用的是SQL Server 2005
您可以使用相同的方法从SQL Server 7.0或SQL Server 2000迁移数据。但是,Microsoft SQL Server 2005中的管理工具
与SQL Server 7.0或SQL Server 2000中的管理工具有所不同。您应该使用SQL Server Management Studio(而不是SQL
Server企业管理器)以及SQL Server导入和导出向导(DTSWizard.exe)(而不是数据转换服务导入和导出数据向导)。
备份和还原
在源服务器上备份用户数据库,然后将用户数据库还原到目标服务器上。在备份过程中时可能有人使用数据库。如果用户
在备份完成后对数据库执行INSERT、UPDATE或DELETE语句,则备份中不会包含这些更改。如果您必须传输所有更改,那
么,假如您既执行事务日志备份又执行完整数据库备份,您可以以尽可能短的停止时间来传输这些更改。
1.在目标服务器上还原完整数据库备份,并指定WITH NORECOVERY选项。
注意:为防止对数据库做进一步的修改,请指导用户在源服务器上退出数据库活动。
2.执行事务日志备份,然后使用WITH RECOVERY选项将事务日志备份还原到目标服务器上。停止时间于事务日志备份
和恢复的时间。
◆目标服务器上的数据库将与源服务器上的数据库大小相同。要减小数据库的大小,您必须在执行备份前压缩源数据库的
大小,或者在完成还原后压缩目标数据库的大小。
◆如果您将数据库还原到的文件位置不同于源数据库的文件位置,则必须指定WITH MOVE选项。例如,在源服务器上,
数据库位于D:/Mssql/Data文件夹中。目标服务器没有D驱动器,因而您需要将数据库还原到C:/Mssql/Data文件夹。有关如何
将数据库还原到其他位置的更多信息,请查看相关资料。
◆如果您想覆盖目标服务器上的一个现有数据库,则必须指定WITH REPLACE选项。
◆源服务器和目标服务器上的字符集、排序顺序和Unicode整序可能必须相同,具体取决于您要还原到SQL Server的哪种
版本。有关更多信息,请参阅本文中的“关于排序规则的说明”一节。
Sp_detach_db和Sp_attach_db存储过程
要使用sp_detach_db和sp_attach_db这两个存储过程,请按下列步骤操作:
1.使用sp_detach_db存储过程分离源服务器上的数据库。您必须将与数据库关联的.mdf、.ndf和.ldf这三个文件复制到目标
服务器上。参见下表中对文件类型的描述:
文件扩展名
说明
.mdf
主要数据文件
.ndf
辅助数据文件
.ldf
事务日志文件
2.使用sp_attach_db存储过程将数据库附加到目标服务器上,并指向您在上一步骤中复制到目标服务器的文件。
◆分离数据库后将无法访问该数据库,并且复制文件时也无法使用该数据库。在进行分离的那一时刻数据库中包含的所有
数据都被移动。
◆在您使用附加或分离方法时,两个服务器上的字符集、排序顺序和Unicode整序都必须相同。有关更多信息,请参阅本
文中的“关于排序规则的说明”一节。关于排序规则的说明
如果您使用备份和还原或附加和分离方法在两个SQL Server 7.0服务器之间移动数据库,则两个服务器上的字符集、排序
顺序和Unicode整序都必须相同。如果您将数据库从SQL Server 7.0移到SQL Server 2000,或者在不同的SQL Server 2000
服务器之间移动数据库,则数据库将保留源数据库的整序。这意味着,如果运行SQL Server 2000的目标服务器的整序与源数
据库的整序不同,则目标数据库的整序也将与目标服务器的master、model、tempdb和msdb数据库的整序不同。
第1步:导入和导出数据(在SQL Server数据库之间复制对象和数据)
您可以使用数据转换服务导入和导出数据向导来复制整个数据库或有选择地将源数据库中的对象和数据复制到目标数据
库。在传输过程中,可能有人在使用源数据库。如果在传输过程中有人在使用源数据库,您可能会看到传输过程中出现一些阻
滞现象。
◆在您使用导入和导出数据向导时,源服务器与目标服务器的字符集、排序顺序和整序不必相同。
◆因为源数据库中未使用的空间不会移动,所以目标数据库不必与源数据库一样大。同样,如果您只移动某些对象,则目
标数据库也不必与源数据库一样大。
◆SQL Server 7.0数据转换服务可能无法正确地传输大于64KB的文本和图像数据。但SQL Server 2000版本的数据转换
服务不存在此问题。
第2步:如何传输登录和密码
如果您不将源服务器中的登录传输到目标服务器,当前的SQL Server用户无法登录到目标服务器。目标服务器上的登录
的默认数据库可能与源服务器上的登录的默认数据库不同。您可以使用sp_defaultdb存储过程来更改登录的默认数据库。
#p#
第3步:如何解决孤立用户
在您向目标服务器传输登录和密码后,用户可能还无法访问数据库。登录与用户是靠安全识别符(SID)关联在一起的;在
您移动数据库后,如果SID不一致,SQL Server可能会拒绝用户访问数据库。此问题称为孤立用户。如果您使用SQL Server
2000 DTS传输登录功能来传输登录和密码,可能会产生孤立用户。此外,被允许访问与源服务器处于不同域中的目标服务器
的集成登录帐户,也会导致出现孤立用户。
1.查找孤立用户。在目标服务器上打开查询分析器,然后在您移动的用户数据库中运行以下代码:
评论0
最新资源