sql server 2005 恢复数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2005 恢复数据库相关的知识,希望对你有一定的参考价值。

我用以下语句备份了数据库
BACKUP LOG STUDENTMANAGERTO DISK = 'XXX.BAK' WITH NORECOVERY

用以下语句恢复数据库时发生错误
RESTORE LOG STUDENTMANAGERFROM DISK = 'XXX.BAK' WITH RECOVERY

提示
无法还原日志备份或差异备份,因为没有文件可用于前滚。
消息 3013,级别 16,状态 1,第 1 行
RESTORE LOG 正在异常终止。

你这个只是备份了日志文件。

备份
backup database [库名] to disk = 'xxx.bak'

还原

use [master];--必须处于master库,才能还原数据库
alter database [库名] set offline with rollback immediate;
restore database [库名] from disk = 'xx.bak' ' with replace;
alter database [库名] set online with rollback immediate;
use [db_beauty];
参考技术A 要恢复尾日志,必须先还原尾日志之前的一个完全备份,之后还原完全备份之后的所有日志。直接还原日志是不行的。 参考技术B 如果恢复的时候用得是差异备份数据,只能在最后一次完整备份的基础上才能完成 参考技术C 你只备份了一个 应该还有个备份

sql 计算SQL Server数据库恢复时间

--
--	SQL SERVER 2008
--
DECLARE @DBName VARCHAR(64) = DB_NAME()	-- databasename
 
DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [TEXT] VARCHAR(MAX))
 
INSERT INTO @ErrorLog
EXEC sys.xp_readerrorlog 0, 1, 'Recovery of database', @DBName
 
SELECT TOP 5
	 [LogDate]
	,SUBSTRING([TEXT], CHARINDEX(') is ', [TEXT]) + 4,CHARINDEX(' complete (', [TEXT]) - CHARINDEX(') is ', [TEXT]) - 4) AS PercentComplete
	,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0 AS MinutesRemaining
	,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0/60.0 AS HoursRemaining
	,[TEXT]
 
FROM @ErrorLog ORDER BY [LogDate] DESC

--
--	SQL SERVER 2012
--
DECLARE @DBName VARCHAR(64) = DB_NAME()	-- databasename
 
DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [TEXT] VARCHAR(MAX))
 
INSERT INTO @ErrorLog
EXEC master..sp_readerrorlog 0, 1, 'Recovery of database', @DBName
 
SELECT TOP 5
	 [LogDate]
	,SUBSTRING([TEXT], CHARINDEX(') is ', [TEXT]) + 4,CHARINDEX(' complete (', [TEXT]) - CHARINDEX(') is ', [TEXT]) - 4) AS PercentComplete
	,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0 AS MinutesRemaining
	,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0/60.0 AS HoursRemaining
	,[TEXT]
 
FROM @ErrorLog ORDER BY [LogDate] DESC

以上是关于sql server 2005 恢复数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server 2005 中恢复数据库

SQL Server 2005 与VS2005编程语言C# winform实现数据库备份与恢复。

sql server2005中的段落还原/部分还原

每晚数据库还原 - SSIS 包 - SQL Server 2005

SQL SERVER数据库 三种 恢复模式

我在安装sql server 2005出现COM+警告后在网上找到:如下方法,照做后结果DTC服务没了,请问怎样恢复DTC