日志备份和差异备份还原中的常见问题示例(转自&邹建)
--创建测试
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官方文档明确指出增量 ...
随机推荐
- sql注入在线检測(sqlmapapi)
之前一搞渗透的同事问我.sqlmapapi.py是干啥的,我猜非常多人都玩过sqlmap,但玩过sqlmapapi的应该比較少,今天就和大家一起看看怎样使用以及一些美的地方. 说白了.sqlmapap ...
- 你已经毁了JavaScript
以前 过去我们在页面上用很时尚的方式写了一些确实很可怕的代码,它给我们带来了巨大的麻烦.可能很多人现在还在这样做,但他们不会看这篇博文,我们可以假装他们不存在. JS的伟大/了不起/让人惊讶的地方在于 ...
- Codeforces Educational Codeforces Round 3 C. Load Balancing 贪心
C. Load Balancing 题目连接: http://www.codeforces.com/contest/609/problem/C Description In the school co ...
- 64位ubuntu下装32位软件
本帖最后由 wuy069 于 2013-10-25 12:28 编辑 很多软件只有32位的,有的依赖32位库还挺严重的:从ubuntu 13.10已经废弃了ia32-libs,但可以使用多架构,安装软 ...
- C#操作注册表全攻略
相信每个人对注册表并不陌生,在运行里面输入“regedit”就可以打开注册表编辑器了.这东西对Windows系统来说可是比较重要的,也是病 毒常常会光顾的地方,比如病毒和恶意软件常常会在注册表的启动项 ...
- C# 仿制QQ弹出新闻消息框
打开QQ的时候,QQ新闻弹出窗体在屏幕的右下角就会慢慢升起一个小窗口,占用的地方不大,可以起到提示的作用.下面就让我们来看看,怎样用系统API来轻松实现这个功能. API原型函数: bool Anim ...
- TP复习3
## ThinkPHP 3.1.2 CURD特性#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲: 一.ThinkPHP 3 的CURD介绍 (了解) 二. ...
- [Angular2 Router] CanDeactivate Route Guard - How To Confirm If The User Wants To Exit A Route
In this tutorial we are going to learn how we can to configure an exit guard in the Angular 2 Router ...
- [Angular2 Router] Load Data Based on Angular 2 Route Params
You can load resource based on the url using the a combination of ActivatedRouteand Angular 2’s Http ...
- iOS开发——实用技术OC篇&8行代码教你搞定导航控制器全屏滑动返回效果
8行代码教你搞定导航控制器全屏滑动返回效果 前言 如果自定了导航控制器的自控制器的leftBarButtonItem,可能会引发边缘滑动pop效果的失灵,是由于 self.interactivePop ...