SQL Server:日志备份和差异备份还原中的常见问题示例
2 CREATE DATABASE db
3 GO
4
5 --正常备份
6 BACKUP DATABASE db TO DISK='c:\1.bak' WITH FORMAT
7 BACKUP LOG db TO DISK='c:\2.bak' WITH FORMAT
8 BACKUP LOG db TO DISK='c:\3.bak' WITH FORMAT
9 BACKUP DATABASE db TO DISK='c:\4.bak' WITH FORMAT
10 BACKUP DATABASE db TO DISK='c:\5.bak' WITH FORMAT,DIFFERENTIAL
11 BACKUP LOG db TO DISK='c:\6.bak' WITH FORMAT
12 GO
13
14 --下面是用于日志备份和差异备份还原中易犯的错误
15
16 --1. 恢复时使用错误的日志顺序
17 IF DB_ID('db') IS NOT NULL DROP DATABASE db
18 RESTORE DATABASE db FROM DISK='c:\1.bak' WITH NORECOVERY
19 RESTORE LOG db FROM DISK='c:\3.bak'
20 /*--收到信息
21 服务器: 消息 4305,级别 16,状态 1,行 5
22 此备份集中的日志开始于 LSN 6000000002800001,该 LSN 太晚,无法应用到数据库。包含 LSN 6000000002500001 的较早的日志备份可以还原。
23 --*/
24 GO
25
26 --2. 恢复时,将日志备份应用于错误的完全备份
27 IF DB_ID('db') IS NOT NULL DROP DATABASE db
28 RESTORE DATABASE db FROM DISK='c:\4.bak' WITH NORECOVERY
29 RESTORE LOG db FROM DISK='c:\2.bak'
30 /*--收到错误信息
31 服务器: 消息 4326,级别 16,状态 1,行 5
32 此备份集中的日志终止于 LSN 6000000002800001,该 LSN 太早,无法应用到数据库。包含 LSN 6000000003000001 的较新的日志备份可以还原。
33 --*/
34 GO
35
36 --3. 将日志备份用于RESTORE DATABASE
37 IF DB_ID('db') IS NOT NULL DROP DATABASE db
38 RESTORE DATABASE db FROM DISK='c:\2.bak' WITH NORECOVERY
39 /*--收到错误信息
40 服务器: 消息 3135,级别 16,状态 2,行 4
41 文件 'c:\2.bak' 中的备份集是由 BACKUP LOG 创建的,无法用于此还原操作。
42 --*/
43 GO
44
45 --4. 将差异备份用于RESTORE LOG
46 IF DB_ID('db') IS NOT NULL IF DB_ID('db') IS NOT NULL DROP DATABASE db
47 RESTORE DATABASE db FROM DISK='c:\4.bak' WITH NORECOVERY
48 RESTORE LOG db FROM DISK='c:\5.bak'
49 /*--收到错误信息
50 服务器: 消息 3135,级别 16,状态 2,行 3
51 文件 'c:\5.bak' 中的备份集是由 BACKUP DATABASE WITH DIFFERENTIAL 创建的,无法用于此还原操作。
52 --*/
53 GO
54
55 --5. 将差异备份用于RESTORE LOG
56 IF DB_ID('db') IS NOT NULL IF DB_ID('db') IS NOT NULL DROP DATABASE db
57 RESTORE DATABASE db FROM DISK='c:\4.bak' WITH NORECOVERY
58 RESTORE LOG db FROM DISK='c:\5.bak'
59 /*--收到错误信息
60 服务器: 消息 3135,级别 16,状态 2,行 3
61 文件 'c:\5.bak' 中的备份集是由 BACKUP DATABASE WITH DIFFERENTIAL 创建的,无法用于此还原操作。
62 --*/
63 GO
64
65 --6. 将差异备份用于错误的完全备份中
66 IF DB_ID('db') IS NOT NULL IF DB_ID('db') IS NOT NULL DROP DATABASE db
67 RESTORE DATABASE db FROM DISK='c:\1.bak' WITH NORECOVERY
68 RESTORE DATABASE db FROM DISK='c:\5.bak'
69 /*--收到错误信息
70 服务器: 消息 3136,级别 16,状态 1,行 3
71 无法将设备 'c:\5.bak' 上的备份应用于数据库 'db'。
72 --*/
73 GO
74
75 --7. 直接使用日志备份或者差异备份还原
76 IF DB_ID('db') IS NOT NULL IF DB_ID('db') IS NOT NULL DROP DATABASE db
77 RESTORE DATABASE db FROM DISK='c:\5.bak'
78 RESTORE LOG db FROM DISK='c:\2.bak'
79 /*--收到错误信息
80 服务器: 消息 913,级别 16,状态 8,行 3
81 未能找到 ID 为 65535 的数据库。可能该数据库尚未激活,也可能正在转换过程中。
82 --*/
83 GO
84
85 --8. 还原完全备份时,未使用NORECOVERY,导致不能正确还原日志备份或者差异备份
86 IF DB_ID('db') IS NOT NULL IF DB_ID('db') IS NOT NULL DROP DATABASE db
87 RESTORE DATABASE db FROM DISK='c:\1.bak'
88 RESTORE LOG db FROM DISK='c:\2.bak'
89 /*--收到错误信息
90 服务器: 消息 4306,级别 16,状态 1,行 4
91 先前的还原操作未指定 WITH NORECOVERY 或 WITH STANDBY。请在除最后步骤之外的所有其他步骤中指定 WITH NORECOVERY 或 WITH STANDBY 后,重新启动该还原序列。
92 --*/
93 GO
94
95 --删除测试
96 IF DB_ID('db') IS NOT NULL DROP DATABASE db
97
98
转载于:https://www.cnblogs.com/luomingui/archive/2010/03/04/1678271.html
SQL Server:日志备份和差异备份还原中的常见问题示例相关推荐
- SQL Server系统视图/表/功能。 现实生活中的常见问题和解决方案
介绍 (Introduction) In this new article, we will talk about the system views/tables/functions and how ...
- SQL Server 2008/2012 完整数据库备份+差异备份+事务日志备份 数据库备份
文章目录 数据备份分类 根据备份目标分类 根据备份数据文件的范围进行分类 完整数据库备份 从是否复制所有的数据分类 差异备份 日志备份 事务日志备份 最常用的备份方法 选择备份策略和恢复模式 简单恢复 ...
- Database之SQLSever:SQLSever数据库管理(GUI法/SQL语句命令法两种方法实现备份(完整备份、差异备份、日志备份)、还原、删除、修改数据库等案例)之详细攻略
Database之SQLSever:SQLSever数据库管理(GUI法/SQL语句命令法两种方法实现备份(完整备份.差异备份.日志备份).还原.删除.修改数据库等案例)之详细攻略 目录 数据库管理 ...
- SQL Server备份、完整备份,差异备份、日志备份
全备份(Full Backup):就是对整个系统进行完全备份,包括系统和数据.这种备份方式的好处就是很直观,容易被人理解,当数据丢失时容易恢复.然而它也有不足之处:首先由于每天都对系统进行完全备份,因 ...
- SQL Server 2000中的完整备份、差异备份操作
SQL Server 2000中的完整备份.差异备份操作 在SQL Server 2000中,假定我们拥有一个数据库为:Test, 现在需要它每天19:00自动进行一次备份,并且以后一旦发生数据库错误 ...
- Sql server 的完整备份和差异备份
Sql server 的完整备份和差异备份 完整备份当然就是将数据库的数据全部备份 而差异备份指得是将上一次备份后到现在对数据的修改进行备份. 因此差异备份不能单独使用,只能先还原上一次的完整备份后 ...
- SQL Server数据库还原操作(附加备份操作)
SQL Server数据库还原操作(附加备份操作) (前三步是新建数据库,已经有数据库的就不用看啦!!) 1.新建一个数据库 2.修改数据库名称,其他保持默认→确认 3.找到新建的数据库 还原操作开始 ...
- 使用SQL Server Management Studio 创建作业备份数据库
在项目中,经常需要备份数据库,如果能做到只需点个按钮("开始备份数据库"按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sq ...
- MS SQL Server 2000 按日期自动备份
MS SQL Server 2000 按日期自动备份 ms sql server 2000 1.管理-作业-步骤-命令 DECLARE @strPath NVARCHAR(200) set @str ...
最新文章
- Spring 教程(三) 环境设置
- activemq无账户密码登录配置修改
- Java使用Future设置方法超时
- 【Pascal's Triangle II 】cpp
- Unity3d之Http通讯GET方法和POST方法
- ajax给表格填值,填报表用ajax实现关联单元格自动填充
- 通信原理之数字调制原理
- Word 中,字体无法调整的解决方法
- SV学习(8)——随机约束和分布、约束块控制
- Springboot的快速入门
- 自制力的本质是什么?怎样才能变得自律?
- 视频播放器源码(WinForm)
- 在线翻译html网页,HTML网页到维基页面翻译器
- C++——new和delete操作符
- 九点手眼标定的原理及方法,视觉引导必知必会。
- 太阳人人都恨布鲁斯 小斯愤怒:马刺是支肮脏球队
- 电子制动辅助系统的传感器解决方案
- udp端口不可达 icmp
- 实验 二叉树的基本操作
- Feathers组件--之--列表
热门文章
- 葡萄城报表介绍:交叉报表
- BC#65 T5 ZYB's Prime
- [实变函数]4.4 依测度收敛
- GridView 里的删除不起作用
- TreeView控件结合js树形选择 .
- MYSQL数据库命名及设计规范
- 在Visual Studio 2008中编译snort-2.8.6.1.tar.gz
- dbeaver连接mysql 驱动jar_Jmeter(七) 从入门到精通 建立数据库测试计划实战lt;MySQL数据库gt;(详解教程)...
- css面试基础知识,CSS知识点与面试题解析
- linux下的zz命令,linux中cut命令的用法