我在我的旧服务器上备份了一个数据库,并在新服务器上恢复了它。 我完全是MSSQL 2005 Server Express的新手,所以花了我相当长的一段时间。 我花了30分钟才发现备份存储在服务器上,而不是在MSSQL 2005 Express Studio桌面上。
成功恢复后,在2小时后仍然在Express Studio中显示“正在恢复…”。 数据库的大小只有4,8 MB,所以我认为现在应该做很长时间了。
我运行了“不恢复”的恢复命令。 Sankar给出的SQL命令给出了以下输出:
TEID-UGNCHQ\SQLEXP_VIM;NetPerfMon;BACKUP DATABASE [NetPerfMon] TO DISK = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\NetPerfMon.bak' WITH RETAINDAYS = 1, NOFORMAT, INIT, NAME = N'NetPerfMon-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10;2011-05-25 18:16:04.527;1;TEID-UGNCHQ;Administrator;TEID-UGNCHQ;Microsoft SQL Server Management Studio Express;TEID-UGNCHQ\Administrator TEID-UGNCHQ\SQLEXP_VIM;VeeamBackup;RESTORE DATABASE [VeeamBackup] FROM DISK = N'C:\Documents and Settings\Administrator\My Documents\Downloads\VeeamBackup.bak' WITH FILE = 1, NOUNLOAD, STATS = 10;2011-05-25 18:47:32.843;1;TEID-UGNCHQ;Administrator;TEID-UGNCHQ;Microsoft SQL Server Management Studio Express;TEID-UGNCHQ\Administrator TEID-UGNCHQ\SQLEXP_VIM;VeeamBackup;RESTORE DATABASE [VeeamBackup] FROM DISK = N'C:\Documents and Settings\Administrator\My Documents\Downloads\VeeamBackup.bak' WITH FILE = 1, NOUNLOAD, STATS = 10;2011-05-25 18:47:53.453;1;TEID-UGNCHQ;Administrator;TEID-UGNCHQ;Microsoft SQL Server Management Studio Express;TEID-UGNCHQ\Administrator TEID-UGNCHQ\SQLEXP_VIM;VeeamBackup;RESTORE DATABASE [VeeamBackup] FROM DISK = N'C:\Documents and Settings\Administrator\My Documents\Downloads\VeeamBackup.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10;2011-05-25 18:48:14.627;1;TEID-UGNCHQ;Administrator;TEID-UGNCHQ;Microsoft SQL Server Management Studio Express;TEID-UGNCHQ\Administrator TEID-UGNCHQ\SQLEXP_VIM;VeeamBackup;RESTORE DATABASE [VeeamBackup] FROM DISK = N'C:\Documents and Settings\Administrator\My Documents\Downloads\VeeamBackup.bak' WITH FILE = 1, NORECOVERY, NOUNLOAD, REPLACE, STATS = 10;2011-05-25 19:01:19.970;1;TEID-UGNCHQ;Administrator;TEID-UGNCHQ;Microsoft SQL Server Management Studio Express;TEID-UGNCHQ\Administrator TEID-UGNCHQ\SQLEXP_VIM;VeeamBackup;RESTORE DATABASE [VeeamBackup] FROM DISK = N'C:\Documents and Settings\Administrator\My Documents\Downloads\VeeamBackup.bak' WITH FILE = 1, MOVE N'VeeamBackup' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\VeeamBackup.mdf', MOVE N'VeeamBackup_log' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\VeeamBackup_log.LDF', NORECOVERY, NOUNLOAD, REPLACE, STATS = 10;2011-05-25 19:09:58.370;1;TEID-UGNCHQ;Administrator;TEID-UGNCHQ;Microsoft SQL Server Management Studio Express;TEID-UGNCHQ\Administrator
在恢复数据库时,您是否检查了NORECOVERYcheckbox(或使用NORECOVERY关键字)?
如果您不确定如何运行先前使用的RESTORE命令,那么可以使用下面的查询使用默认跟踪来查看。 HTH。
DECLARE @filename VARCHAR(255) SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\',REVERSE(path))+1) + '\Log.trc' FROM sys.traces WHERE is_default = 1; --Check all the databases that are backed up and restored and their success/failure state. SELECT gt.ServerName , gt.DatabaseName , gt.TextData , gt.StartTime , gt.Success , gt.HostName , gt.NTUserName , gt.NTDomainName , gt.ApplicationName , gt.LoginName FROM [fn_trace_gettable](@filename, DEFAULT) gt JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id LEFT OUTER JOIN sys.databases d ON gt.DatabaseName = d.name WHERE EventClass = 115 --'Audit Backup/Restore Event' ORDER BY StartTime;