微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sqlserver 通过日志文件恢复数据库

USE master

--创建数据库
CREATE DATABASE db
ON PRIMARY(
    NAME='db_data',
    FILENAME= 'c:\db_data.mdf')
LOG ON(
    NAME='db_log',245)">    FILENAME ='c:\db.ldf')
GO
--创建表
CREATE TABLE db.dbo.ta(id int)
INSERT db.dbo.ta SELECT id FROM sysobjects
--做文件组备份
BACKUP DATABASE db TO disK='c:\db.bak' WITH FORMAT
--备份后,再做数据处理
CREATE TABLE db.dbo.tb(id int)
INSERT db.dbo.tb SELECT id FROM sysobjects
/*--下面演示了破坏数据文件的处理,这些操作在操作系统中进行
1. 停止sql Server服务(msqlserver服务)
2. 删除文件 c:\db_data.ndf (模拟破坏)
3. 重新sql Server服务,此时数据库DB置疑
--*/
--下面演示了如何恢复数据
--首先要备份当前日志
BACKUP LOG db TO disK='c:\db_log.bak' WITH FORMAT,NO_TruncATE
--利用文件组备份恢复破坏的文件
RESTORE DATABASE db FROM disK='c:\db.bak' WITH norECOVERY
--还原到日志点
RESTORE LOG db FROM disK='c:\db_log.bak' WITH RECOVERY
--显示已经恢复的数据
SELECT COUNT(*) FROM db.dbo.ta
SELECT COUNT(*) FROM db.dbo.tb
--删除测试
DROP DATABASE db

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐