zl程序教程

您现在的位置是:首页 >  后端

当前栏目

SQL Server 计算机间移动数据库

2023-09-11 14:20:54 时间

注意:支持将数据从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整序都必须相同。有关更多信息,请参阅本文中的“关于排序规则的说明”一节。

最新内容请见作者的GitHub页:http://qaseven.github.io/