--创建测试
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

日志备份和差异备份还原中的常见问题示例(转自&邹建)的更多相关文章

  1. Sql server 2008 的完成备份和差异备份还原

    当数据库数据量不大的情况下用 Sqlserver 的完全备份就完全可以了 步骤为: 1.在需要还原的数据库上右键选择如图 2.在“常规”选项中点击“源设备”选取磁盘上备份好的.bak文件后,勾上“还原 ...

  2. SQL Server 2012完全备份、差异备份、事务日志备份和还原操作;

    SQL Server 2012完全备份.差异备份.事务日志备份和还原操作: 1.首先,建立一个测试数据库,TestA:添加一张表,录入二条数据:备份操作这里我就不详细截图和讲解了.相信大家都会备份,我 ...

  3. sqlserver2008r2还原完整备份和差异备份及自动删除过期备份

    本文主要内容: 还原完整和差异备份 删除超过1个月的备份 注:保证SQL Server代理服务启动,并把服务设置为自动启动 完整备份和差异备份还原原理: 差异备份是完整备份的补充,只备份上次完整备份后 ...

  4. sql server 数据库备份,完整备份,差异备份,自动备份说明

    Sql server 设置完整备份,差异备份说明 在数据库管理器中,选择要备份的数据库,右键找到“备份” 然后可以按照备份的方式进行备份. 关于文件的还原,作以下补充说明: 步骤为: 1.在需要还原的 ...

  5. 阿里云 如何减少备份使用量? mysql数据库的完整备份、差异备份、增量备份

    RDS for MySQL备份.SQL审计容量相关问题_MYSQL使用_技术运维问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/knowledge_detail/4 ...

  6. SQL Server 2000中的完整备份、差异备份操作

    在SQL Server 2000中,假定我们拥有一个数据库为:Test, 现在需要它每天19:00自动进行一次备份,并且以后一旦发生数据库错误,我们都可以通过备份文件将数据库恢复到任何一个备份过的时刻 ...

  7. sqlserver全备份,差异备份和日志备份

      差异备份是以上一个全备为基点,这个期间所有差异数据的备份. 日志备份是基于前一个全备+日志备份为基点,这个期间的事务日志的备份.(日志备份用于确保还原数据库到某个时间点)   在利用全备+日志备份 ...

  8. sql server 完整备份、差异备份、事务日志备份

    一. 理解: 完整备份为基础, 完整备份可以实物回滚还原,但是由于完整备份文件过大,对硬盘空间比较浪费这是就需要差异备份 或者 事务日志备份. 差异备份还原时,只能还原到备份的那个点, 日志备份还原时 ...

  9. Oracle Rman 增量备份与差异备份

    一.增量与差异 关于Incremental增量备份级别: Oracle 9i 共有五种级别 0 1 2 3 4,0级最高-4级最低,0级是1级的基础以此类推. Oracle 10g官方文档明确指出增量 ...

随机推荐

  1. SQL Server2005中使用XML-数据类型、查询与修改

    SQL 2005引进了XML数据类型,可以直接将XML当作字符串直接存入该列. 这样可以不需要对它进行XML解析. USE AdventureWorks -- 创建一个送货排程表 CREATE TAB ...

  2. C++ 方法隐藏

    1.过载:一个类中,方法名相同,形参表不同的方法. 2.重写:子类与父类的virtual方法,方法名,形参表相同. 3.考虑下面的情况,子类与父类方法名相同. 父类是virtual方法         ...

  3. 推荐几个可以与PhoneGap很好搭配的UI框架

    - xui.js:可以被视作是jquery在phonegap上的替代品,挺好用的- jq.mobi:同上,不过体积比xui.js要大,一般还是用xui.js- jq.ui:jq.mobi配套的UI框架 ...

  4. css中postion的fixed与absolute区别详解

    fixed:固定定位,参照位置是浏览器窗口的左上角,即坐标点为(0px, 0px) absolute:绝对定位,参展位置是离当前元素最近的定位方式为fixed,absolute,relative的祖先 ...

  5. 进程控制之fork函数

    一个现有进程可以调用fork函数创建一个新进程. #include <unistd.h> pid_t fork( void ); 返回值:子进程中返回0,父进程中返回子进程ID,出错返回- ...

  6. 被淡忘的c#析构函数

    析构函数在C#中已经很少使用了,以至于很多人已经把它淡忘了,虽然用处不大,研究一下也无防.(原文:http://bbs.csdn.net/topics/300178463)一. 析构函数的特征:析构函 ...

  7. 1.4.1.Documents,Fields和Schema概述

    Documents,Fields和Schema概述 solr的基本前提是非常简单,你可以给它很多信息,然后可以向它提出问题,获取你想要的问题的信息.所有信息输入的地方就叫做索引或者更新.当你提出问题时 ...

  8. XACML-PolicySet与request结构简介

    本文由@呆代待殆原创,转载请注明出处. 一.PolicySet的结构 PolicySet 的基本嵌套结构如上图所示,下面让我们一个一个来说明. PolicySet:XACML策略架构的顶层元素,由Po ...

  9. 用bootstrapValidator来验证UEditor

    我们的项目使用了bootstrapValidator来作为前端校验,但是表单里面有一个UEditor,它用bootstrapValidator是没有效果的,为了页面风格统一,只好修修改改咯 首先来看一 ...

  10. Ultra Edit常用正则表达式

    一.怎样可以删除包含特殊字符的行? 你可以用正则表示式全部替换命令替换行中包含的字符.要执行这个操作,你应该先进行查找: 查找: %*YOUR STRING*^p 替换为: (随便什么文字) 帮助文件 ...