将数据库从一台服务器移动至另一台服务器的最佳方法是什么
a) 停止数据库 > 创建数据库备份 > 恢复到“其他服务器”
b) 分离数据库 > 将 ldf 和 mdf 文件移动到新服务器并重新指向数据库
谢谢
答案1
我喜欢的方法:
方法 1:备份和还原用户数据库
备份源服务器上的用户数据库,然后将用户数据库还原到目标服务器。
备份过程中可以使用数据库。如果用户在备份完成后对数据库执行 INSERT、UPDATE 或 DELETE 语句,则备份将不包含这些更改。如果必须传输所有更改,则执行事务日志备份和完整数据库备份可以以最少的停机时间传输更改。在目标服务器上还原完整数据库备份并指定 WITH NORECOVERY 选项。
注意:为了防止对数据库进行其他修改,请指示用户停止源服务器上的数据库活动。
执行事务日志备份,并使用 WITH RECOVERY 选项将事务日志备份还原到目标服务器。停机时间仅限于事务日志备份和还原的时间。有关详细信息,请参阅 SQL Server 联机丛书的“Transact-SQL 参考”主题中的“RESTORE”子主题。
目标服务器上的数据库将与源服务器上的数据库大小相同。要减小数据库的大小,必须在执行备份之前减小源数据库,或者在还原完成后减小目标数据库。有关详细信息,请参阅 SQL Server 联机丛书的“创建和维护数据库”标题中的“缩小数据库”子主题。
如果将数据库还原到与源数据库不同的文件位置,则必须指定 WITH MOVE 选项。例如,在源服务器上,数据库位于 D:\Mssql\Data 文件夹中。目标服务器没有 D 驱动器,并且您想要将数据库还原到 C:\Mssql\Data 文件夹。有关如何将数据库还原到其他位置的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:
221465 使用 RESTORE 语句的 WITH MOVE 选项
304692 使用 BACKUP 和 RESTORE 将 SQL Server 7.0 数据库移动到新位置
如果要覆盖目标服务器上的现有数据库,则必须指定 WITH REPLACE 选项。有关详细信息,请参阅 SQL Server 联机丛书中“Transact-SQL 参考”主题中的“RESTORE”子主题。
根据要还原到的 SQL Server 版本,源服务器和目标服务器上的字符集、排序顺序和 Unicode 排序规则可能必须相同。有关详细信息,请参阅本节后面的“排序规则说明”。
我喜欢这种方法,因为即使移动失败,旧服务器仍能继续运行。
更多详细信息:如何在运行 SQL Server 的计算机之间移动数据库