我想把差异数据库进行恢复,总提示错误!
请问该如何恢复?
请问该如何恢复?
解决方案 »
- sql查询
- SQL2000出现一个奇怪的问题:在SQL2000的菜单中找不到查询分析器和事件管理器,求助
- 异地SQL数据库查询一个表
- 各位大俠,我剛在SQL 2000服務器上創建了 訂閱服務器,分發服務器,然後它自動創建了一個
- 请问:如何在SQL中选择前三条的记录,是每个商品的前三名,不是所有商品的前三名
- charindex求助该SQL语句如何写(数组查询)
- 如何在触发器中得到当前要执行的sql语句(Sql Server 2000)~,谢谢~````
- 疑难杂症!!!
- 优化的方法对不对,请各位大仙指点一下.
- SQL7.0 非常慢如何解决?
- 写一个测试连续插入的存储过程
- 各位,以下两种查询有什么区别,习惯性应该使用哪种方法
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老龟的!
你是每天备份10g方便还是1周10g 每天100m方便?
restore database d2 from bak2 with file=1,norecovery
restore database d2 from bak2 with file=5,recovery
你的数据库10G 每天新增500m数据
我们来看看
每天备份:
1个星期完备的量是70g+70.5+71+72+72.5+73+73.5
差异
1个星期备份的量是
70g+0.5+1g+1.5g+2.0g+2.5g+3g+3.5g这个备份效率差一比就了解,要知道备份的话会占用系统的极大比例...谁也不希望系统出问题
从存储概率来说 你每天备份的数据越小磁盘出问题的概率越小 恢复也容易