将所有数据移动到新的MS SQL Server的最简单方法是什么?

时间:2013-10-22 02:19:00

标签: sql-server database backup restore database-migration

我正在从1 Server 2012框迁移到另一个Server 2012框。我正在尝试将我的SQL Server 2012 Express实例完全(数据库,登录,等等)从1台服务器移动到另一台服务器。

最简单的方法是什么?我刚刚意识到我的.bak备份不能恢复我想象的方式。

这是我备份数据库的代码。

REM @ECHO OFF
SETLOCAL

REM Get date in format YYYY-MM-DD (assumes the locale is the United States)
FOR /F "tokens=1,2,3,4 delims=/ " %%A IN ('Date /T') DO SET NowDate=%%D-%%B-%%C

REM Build a list of databases to backup
SET DBList=%SystemDrive%SQLDBList.txt
SqlCmd -E -S LOCALHOST\SQLEXPRESS -h-1 -W -Q "SET NoCount ON; SELECT Name FROM master.dbo.sysDatabases WHERE [Name] NOT IN ('tempdb')" > "%DBList%"

REM Backup each database, prepending the date to the filename
FOR /F "tokens=*" %%I IN (%DBList%) DO (
ECHO Backing up database: %%I
SqlCmd -E -S LOCALHOST\SQLEXPRESS -Q "BACKUP DATABASE [%%I] TO Disk='C:\SQLBackup\Database\MSSQL\%NowDate%_%%I.bak'"
ECHO.
)

REM Clean up the temp file
IF EXIST "%DBList%" DEL /F /Q "%DBList%"

ENDLOCAL

如何使用此功能恢复数据?

1 个答案:

答案 0 :(得分:1)

最简单的数据库迁移是分离/移动文件/附加,但您必须先复制登录。你想拥有相同的uid来自动重新绑定它们。为此,您可以使用sp_help_revlogin(http://support.microsoft.com/kb/918992)。此脚本将生成必须在目标服务器上运行的登录创建脚本。然后,您可以使用“复制数据库向导”或手动分离它们,复制文件,然后将它们附加到目的地。