日志备份和差异备份还原中的常见问题示例(转自&邹建)
--创建测试
CREATE
DATABASE
db
GO
--正常备份
BACKUP
DATABASE
db
TO
DISK=
'c:\1.bak'
WITH
FORMAT
BACKUP LOG db
TO
DISK=
'c:\2.bak'
WITH
FORMAT
BACKUP LOG db
TO
DISK=
'c:\3.bak'
WITH
FORMAT
BACKUP
DATABASE
db
TO
DISK=
'c:\4.bak'
WITH
FORMAT
BACKUP
DATABASE
db
TO
DISK=
'c:\5.bak'
WITH
FORMAT,DIFFERENTIAL
BACKUP LOG db
TO
DISK=
'c:\6.bak'
WITH
FORMAT
GO
--下面是用于日志备份和差异备份还原中易犯的错误
--1. 恢复时使用错误的日志顺序
IF DB_ID(
'db'
)
IS
NOT
NULL
DROP
DATABASE
db
RESTORE
DATABASE
db
FROM
DISK=
'c:\1.bak'
WITH
NORECOVERY
RESTORE LOG db
FROM
DISK=
'c:\3.bak'
/*
--收到信息
服务器: 消息 4305,级别 16,状态 1,行 5
此备份集中的日志开始于 LSN 6000000002800001,该 LSN 太晚,无法应用到数据库。包含 LSN 6000000002500001 的较早的日志备份可以还原。
--*/
GO
--2. 恢复时,将日志备份应用于错误的完全备份
IF DB_ID(
'db'
)
IS
NOT
NULL
DROP
DATABASE
db
RESTORE
DATABASE
db
FROM
DISK=
'c:\4.bak'
WITH
NORECOVERY
RESTORE LOG db
FROM
DISK=
'c:\2.bak'
/*
--收到错误信息
服务器: 消息 4326,级别 16,状态 1,行 5
此备份集中的日志终止于 LSN 6000000002800001,该 LSN 太早,无法应用到数据库。包含 LSN 6000000003000001 的较新的日志备份可以还原。
--*/
GO
--3. 将日志备份用于RESTORE DATABASE
IF DB_ID(
'db'
)
IS
NOT
NULL
DROP
DATABASE
db
RESTORE
DATABASE
db
FROM
DISK=
'c:\2.bak'
WITH
NORECOVERY
/*
--收到错误信息
服务器: 消息 3135,级别 16,状态 2,行 4
文件
'c:\2.bak'
中的备份集是由 BACKUP LOG 创建的,无法用于此还原操作。
--*/
GO
--4. 将差异备份用于RESTORE LOG
IF DB_ID(
'db'
)
IS
NOT
NULL
IF DB_ID(
'db'
)
IS
NOT
NULL
DROP
DATABASE
db
RESTORE
DATABASE
db
FROM
DISK=
'c:\4.bak'
WITH
NORECOVERY
RESTORE LOG db
FROM
DISK=
'c:\5.bak'
/*
--收到错误信息
服务器: 消息 3135,级别 16,状态 2,行 3
文件
'c:\5.bak'
中的备份集是由 BACKUP
DATABASE
WITH
DIFFERENTIAL 创建的,无法用于此还原操作。
--*/
GO
--5. 将差异备份用于RESTORE LOG
IF DB_ID(
'db'
)
IS
NOT
NULL
IF DB_ID(
'db'
)
IS
NOT
NULL
DROP
DATABASE
db
RESTORE
DATABASE
db
FROM
DISK=
'c:\4.bak'
WITH
NORECOVERY
RESTORE LOG db
FROM
DISK=
'c:\5.bak'
/*
--收到错误信息
服务器: 消息 3135,级别 16,状态 2,行 3
文件
'c:\5.bak'
中的备份集是由 BACKUP
DATABASE
WITH
DIFFERENTIAL 创建的,无法用于此还原操作。
--*/
GO
--6. 将差异备份用于错误的完全备份中
IF DB_ID(
'db'
)
IS
NOT
NULL
IF DB_ID(
'db'
)
IS
NOT
NULL
DROP
DATABASE
db
RESTORE
DATABASE
db
FROM
DISK=
'c:\1.bak'
WITH
NORECOVERY
RESTORE
DATABASE
db
FROM
DISK=
'c:\5.bak'
/*
--收到错误信息
服务器: 消息 3136,级别 16,状态 1,行 3
无法将设备
'c:\5.bak'
上的备份应用于数据库
'db'
。
--*/
GO
--7. 直接使用日志备份或者差异备份还原
IF DB_ID(
'db'
)
IS
NOT
NULL
IF DB_ID(
'db'
)
IS
NOT
NULL
DROP
DATABASE
db
RESTORE
DATABASE
db
FROM
DISK=
'c:\5.bak'
RESTORE LOG db
FROM
DISK=
'c:\2.bak'
/*
--收到错误信息
服务器: 消息 913,级别 16,状态 8,行 3
未能找到 ID 为 65535 的数据库。可能该数据库尚未激活,也可能正在转换过程中。
--*/
GO
--8. 还原完全备份时,未使用NORECOVERY,导致不能正确还原日志备份或者差异备份
IF DB_ID(
'db'
)
IS
NOT
NULL
IF DB_ID(
'db'
)
IS
NOT
NULL
DROP
DATABASE
db
RESTORE
DATABASE
db
FROM
DISK=
'c:\1.bak'
RESTORE LOG db
FROM
DISK=
'c:\2.bak'
/*
--收到错误信息
服务器: 消息 4306,级别 16,状态 1,行 4
先前的还原操作未指定
WITH
NORECOVERY 或
WITH
STANDBY。请在除最后步骤之外的所有其他步骤中指定
WITH
NORECOVERY 或
WITH
STANDBY 后,重新启动该还原序列。
--*/
GO
--删除测试
IF DB_ID(
'db'
)
IS
NOT
NULL
DROP
DATABASE
db
日志备份和差异备份还原中的常见问题示例(转自&邹建)的更多相关文章
- Sql server 2008 的完成备份和差异备份还原
当数据库数据量不大的情况下用 Sqlserver 的完全备份就完全可以了 步骤为: 1.在需要还原的数据库上右键选择如图 2.在“常规”选项中点击“源设备”选取磁盘上备份好的.bak文件后,勾上“还原 ...
- SQL Server 2012完全备份、差异备份、事务日志备份和还原操作;
SQL Server 2012完全备份.差异备份.事务日志备份和还原操作: 1.首先,建立一个测试数据库,TestA:添加一张表,录入二条数据:备份操作这里我就不详细截图和讲解了.相信大家都会备份,我 ...
- sqlserver2008r2还原完整备份和差异备份及自动删除过期备份
本文主要内容: 还原完整和差异备份 删除超过1个月的备份 注:保证SQL Server代理服务启动,并把服务设置为自动启动 完整备份和差异备份还原原理: 差异备份是完整备份的补充,只备份上次完整备份后 ...
- sql server 数据库备份,完整备份,差异备份,自动备份说明
Sql server 设置完整备份,差异备份说明 在数据库管理器中,选择要备份的数据库,右键找到“备份” 然后可以按照备份的方式进行备份. 关于文件的还原,作以下补充说明: 步骤为: 1.在需要还原的 ...
- 阿里云 如何减少备份使用量? mysql数据库的完整备份、差异备份、增量备份
RDS for MySQL备份.SQL审计容量相关问题_MYSQL使用_技术运维问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/knowledge_detail/4 ...
- SQL Server 2000中的完整备份、差异备份操作
在SQL Server 2000中,假定我们拥有一个数据库为:Test, 现在需要它每天19:00自动进行一次备份,并且以后一旦发生数据库错误,我们都可以通过备份文件将数据库恢复到任何一个备份过的时刻 ...
- sqlserver全备份,差异备份和日志备份
差异备份是以上一个全备为基点,这个期间所有差异数据的备份. 日志备份是基于前一个全备+日志备份为基点,这个期间的事务日志的备份.(日志备份用于确保还原数据库到某个时间点) 在利用全备+日志备份 ...
- sql server 完整备份、差异备份、事务日志备份
一. 理解: 完整备份为基础, 完整备份可以实物回滚还原,但是由于完整备份文件过大,对硬盘空间比较浪费这是就需要差异备份 或者 事务日志备份. 差异备份还原时,只能还原到备份的那个点, 日志备份还原时 ...
- Oracle Rman 增量备份与差异备份
一.增量与差异 关于Incremental增量备份级别: Oracle 9i 共有五种级别 0 1 2 3 4,0级最高-4级最低,0级是1级的基础以此类推. Oracle 10g官方文档明确指出增量 ...
随机推荐
- DevExpress 13.2.6源码、安装包、汉化包下载和教程
DevExpress比DotNetBar控件成熟很多,当然源码是公开的,但是最新版本需要9K多.如果不是土豪,用已经破解的版本或者自己拿源码编译一份就可以了,老外就是这么好. 首先在这里下载然后解压准 ...
- SCCM2007
Active Directory系统组发现:此方法按照上次运行发现方法时 Active Directory 中的响应返回对象,可发现活动目录OU.全局组.通用组.嵌套组.非安全组. Active Di ...
- NLog官方文档
NLog快速使用 NLog配置 NLog通过代码定义配置 Target Layouts Layout Renderers
- jQuery + jQuery Mobile 实现省市二级下拉列表页面
一.需求: 提供省.市下拉列表,当用户选择省一级下拉列表项后,市下拉列表的各个选项自动变为该省对应的城市列表. 二.效果: 三.实现: 1.省市json数据,来自: http://www.cnblog ...
- C#生成软件注册码
开发软件时,当用到商业用途时,注册码与激活码就显得很重要了.现在的软件破解技术实在在强了,各种国内外大型软件都有注册机制,但同时也不断地被破解.下面发的只是一个常用版本,发出源码被破就更容易了,但我们 ...
- Microsoft.AlphaImageLoader滤镜解说
Microsoft.AlphaImageLoader是IE滤镜的一种,其主要作用就是对图片进行透明处理.尽管FireFox和IE7以上的IE浏览器已经支持透明的PNG图片,可是就IE5-IE6而言还是 ...
- OC和JS之间的交互
OC和JS之间的交互 目录 对OC和JS之间交互的理解 JS调用OC OC调用JS 对OC和JS之间交互的理解 JS调用OC JS文件 function sendCommand(cmd,param){ ...
- IPC——信号
Linux进程间通信——使用信号 一.什么是信号 用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过 ...
- 深入解析ext2文件系统之mke2fs
上一遍博文的重点其实将ext2整体的组织框架,我们知道了ext2文件系统由块组组成,每个块组里面的组织形式.我们甚至直接把超级块和组描述符里面的内容,用十六进制形式展现了出来.这篇博文主要讲述如何 ...
- 使用SQL*PLUS,构建完美excel或html输出
通过SQL*PLUS我们可以构建友好的输出,满足多样化用户需求.本例通过简单示例,介绍通过sql*plus输出xls,html两种格式文件.首先创建两个脚本:1.main.sql用以设置环境,调用具体 ...