将数据库从 SQL Server 2008 Express 移动到 SQL Server 2012

Move database from SQL Server 2008 Express to SQL Server 2012

我们正在考虑将我们的一个数据库从 SQL Server 2008 Express 迁移到 SQL Server 2012。负责数据库的人说他总是执行分离、复制文件到新服务器并附加。这当然会使数据库脱机。

与在新服务器上右键单击备份、复制备份文件并右键单击还原相比,这样做有什么好处吗?

进行备份应该在不使数据库脱机的情况下提取所有内容,对吗?

对此有推荐的最佳做法吗?

(MS 数据库世界的新手)

我不确定最佳做法,但我已经做过很多次了,我记不得了,而且在备份数据库、使旧数据库脱机以及将备份还原到新服务器方面从未遇到过问题.

我想在非常高流量的系统上,您可能希望首先使数据库脱机,以确保在备份过程中没有任何变化(添加的新记录等会丢失)。如果您先使数据库脱机,那么您将无法备份数据库,所以我想那时候就需要将各个文件附加到新服务器,而不是仅仅恢复备份。

您可以备份和恢复

您仍然需要 "un-orphan" sql-users 到 db-users。

BACKUP DATABASE MyDB TO DISK = 'c:\backups\MyDB.bak' WITH FORMAT

RESTORE DATABASE MyDB FROM DISK = 'c:\backups\MyDB.bak' WITH REPLACE, 
MOVE 'MyDB' TO 'd:\sqlfiles\mydb.mdf',
MOVE 'MyDB_Log' TO 'd:\sqlfiles\mydb_log.ldf'

根据需要更改路径。