主数据文件损坏(或丢失)情况下,如何备份尾部事务日志.
本文描述: 主数据文件损坏(或丢失), 而事务日志文件未损坏的情况下, 如何备份尾部事务日志(自上次备份日志,至发生损坏这段时间的事务日志). (当然,这么做的目的,是可以恢复数据库至损坏前的最近状态)。
转自:http://sudeeptaganguly.wordpress.com/2011/04/15/taillogbackupwithoutdatafile/
/* Create Tail-log backup after a crash, if the primary data file is missing
------------------------------------------------------------------------------
*/
-- 1.创建测试数据库, 设置为"完整"恢复模式
use [master]
go
if exists (select 1 from sys.databases where name = 'TestDB')
drop database TestDB;
go
-- Create database TestDB
use [master]
go
create database [TestDB] ON Primary
(name = 'TestDB_Data', filename = 'C:/TestDB_Data.MDF',
size = 10MB, filegrowth = 10MB)
LOG ON
(name = 'TestDB_Log', filename = 'C:/TestDB_Log.MDF',
size = 10MB, filegrowth = 10MB);
go
-- Changing the Recovery Model to full
use [master]
alter database [TestDB] set recovery full;
go
-- Initiate a Full backup of the database
use [master]
Backup database [TestDB] to disk = 'C:/TestDB.bak'
go
-- Create a table in the database
use [TestDB]
create table dbo.demotable1 (
demoid int identity(1,1),
demodate datetime default getdate()
);
go
-- Insert base data
use [TestDB]
insert into dbo.demotable1 default values;
go 10
-- verify base data
select * from TestDB.dbo.demotable1;
go
-- Initiate the 1st T-log backup
use [master]
backup log [TestDB] to disk = 'c:/testDB1.trn';
go
-- Insert some additional data
use [TestDB]
insert into dbo.demotable1 default values;
go 15
-- verify all the data in the database
select COUNT(*) from TestDB.dbo.demotable1;
go
/*(total = 25, till log backup it was 10)*/
-- 手动模拟故障: 关闭实例, 手动删除主数据文件, 再启动实例
-- initiate the crash, for this demo, I've shutdown the server and
-- delete the data file manually, to verify whether the tail-log backup is
-- possible or not if the data file is not available
-- try to access the table
-- 备份尾部事务日志
use [TestDB]
select COUNT(*) from TestDB.dbo.demotable1;
go
-- Database 'TestDB' cannot be opened due to inaccessible files
-- or insufficient memory or disk space
/* Initiate the tail log backup*/
use [master]
BACKUP log [testDB] to disk = 'C:/TestDB_Tail_Log.trn'
with No_Truncate, Norecovery;
go
-- 恢复至故障发生前的最新状态.
/* This complete the tail log backup without the primary data file */
/* The script will not be successful, if we can't restore the tail log.
Thus, we are going to restore the database and verify the data before cleanup */
use [master]
Restore database [TestDB]
from disk = 'C:/TestDB.bak'
with replace, norecovery;
go
Restore Log [TestDB]
from disk = 'c:/testDB1.trn'
with replace, norecovery;
go
Restore Log [TestDB]
from disk = 'c:/TestDB_Tail_Log.trn'
with recovery;
go
-- Verify the data
Select * from TestDB.dbo.demotable1;
Go
-- 清除测试数据
use [master]
drop database [TestDB]
go
转载于:https://www.cnblogs.com/qanholas/archive/2011/12/18/2292000.html
主数据文件损坏(或丢失)情况下,如何备份尾部事务日志.相关推荐
- 计算机文件丢失系统无法启动,文件损坏或丢失windows无法启动_windows无法启动文件损坏解决方法...
由于文件损坏或丢失造成windows无法启动,出现这种情况一般是非正常关机或者是病毒破坏或者是加载了你安装的其它软件的文件出问题,一般人就直接重新装系统去解决,但是有些电脑上有重要的数据和程序不能直接 ...
- 由于文件损坏或丢失造成windows无法启动
Windows 2000 或 XP 系统出现故障的时候,通常我们可以通过"最后一次正确配置"."安全模式"."系统还原"(只用于XP)来修复 ...
- CDR无法启动此程序 因为计算机丢失,coreldraw(CDR)文件损坏或丢失的处理方法...
Coreldraw一直是广大设计师用的非常多的矢量设计软件,大家在使用的过程中可能也遇到过Coreldraw文件损坏无法打开的情况(打开时提示Coreldraw文件损坏),眼见着辛辛苦苦设计出来的文档 ...
- 开机显示c:\windows\windows32\config\system文件损坏或丢失的解决方法(收集)
开机显示"c:\windows\windows32\config\system文件损坏或丢失.提示用软盘或光盘启动,用安装盘. XP系统system文件损坏的修复 2009-04-15 Cb ...
- oracle备份信息在控制文件丢失,恢复之利用备份在所有控制文件丢失情况下恢复(一)...
如果全部控制文件丢失,但是包含以前控制文件的备份,这时可以利用备份的控制文件进行恢复,不过在恢复后需要以RESETLOGS方式打开数据库. 根据联机重做日志文件是否可用和数据文件是否是最新的可以分为四 ...
- 系统System文件损坏或丢失的简单解决办法
本文经本人实践总结,感觉解决方法比较简单实用.只需个30多M的东东和个U盘即可. 今天下午,电脑莫名奇妙的卡住了,只有鼠标能动.本能性的强启,但是重启出现错误提示:因以下文件的损坏或者丢失,Windo ...
- 数据随机丢失情况下多传感器多速率鲁棒融合估计
问题描述 存在N个传感器进行观测,观测数据有一定概率丢失 简而言之,其中γ\gammaγ是一个随机数(非0即1),0代表数据丢失,1代表数据存在.其他的多传感器多速率表示与上篇文章一致. 下面同样对多 ...
- aec一pc_AEC_PC_DLL.dll文件下载|AEC_PC_DLL.dll文件损坏或丢失修复下载 - 维维软件园...
AEC_PC_DLL.dll文件损坏了怎么办,可以下载AEC_PC_DLL.dll文件进行修复它,此款dll是帮助解决因为AEC_PC_DLL.dll找不到或缺失导致的一系列错误问题的,要是你出现了应 ...
- java data文件夹_java-如何在不指定父文件夹/ ref的情况下遍历Datasnapshot
我想遍历具有以下结构的数据快照: { "data" : { "images" : { "fw88v6xu6wybamg9zzt6" : { ...
- mysql锁表查询_Mysql数据库锁情况下开启备份导致数据库无法访问处理分享
[背景简介] MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),因为其速度.可靠性和适应性而备受关注.大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择.mysql ...
最新文章
- java 查询 代码_java使用es查询的示例代码
- 一个 Babelfish ,看懂云数据库的发展方向
- matlab和C如何混编
- Caused by: java.lang.NoClassDefFoundError: Lorg/sl
- 风靡硅谷营销界的 MarTech 魔术
- BZOJ 1443 二分图博弈 网络流
- SRS性能、内存优化工具用法
- 怎样在待机时锁定计算机,教你电脑待机锁屏怎么设置
- vivado安装_Vivado下载与安装指南
- 2000年考研英语阅读理解文章三
- 白嫖船长几节课(2)
- Linux: Nginx 安装
- 目前机器学习最热门的领域有哪些
- Spring Boot基础学习笔记16:项目打包部署
- 产品研发流程与周期(非原创)
- gridview无法显示完整
- edge使用html2协议,微软推出Microsoft Edge WebView2控件 帮助开发者更好的加载网页
- bootloader recovery
- 安装Android adb驱动
- 健身服务公司iFIT赴美上市,64亿美元估值中藏着“喜”与“忧”?
热门文章
- layui jquery innerHTML 无效
- linux find mtime 用法,Linux find命令常见用法汇总(4)
- date java format_java-DateFormat
- 【spring】注解开发和spring整合junit
- 【spring】spring_IOC和DI
- mac 安装 mongo 及基本命令
- .tar文件和.tar.gz文件
- 惊呆了!不改一行 Java 代码竟然就能轻松解决敏感信息加解密|原创
- 阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_1 请求参数绑定入门
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_1_线程安全问题的概述...