如何通过日志恢复数据库
2013-06-28 18:22
141 查看
数据库一定要设置成完整模式,给自己一个犯错的机会
在数据库->选项里->恢复模式里选择 完整 模式
DB2中可以使得数据库回复到指定的时间点,SQL Server数据库的Recovery Model为full 或者Bulk copy的时候,是可以从日志来恢复数据库的。实际上日志中记录的一条一条的transact sql语句,恢复数据库的时候会redo这些sql语句。
假设:
myBBS是数据库test中的一个表,
数据库test的Recovery Model为Full,Auto Close,Auto Shrink两个选项未选中。
数据库test的data files和log files均为默认的自动增长状态。
A
:
2004/10/13,16:00
进行数据库备份,
backup database test to disk='d:\db\1600.bak' with init
B
:
2004/10/14,13:00
对数据库进行了
update,delete
等操作;
C
:
2004/10/15,18:00使用delete mybbs where id>300时,语句误写成delete mybbs,因而删除了表mybbs中的所有数据。
现在在C点,C点对数据库进行了误操作,我们希望数据库能够恢复到C之前的状态,比如恢复到10月15日17:59分的状态。
要恢复数据库B点,使用的是A点备分的数据库1600.bak;而使用的日志备分是最新的备分1820.logs;因而进行如下操作:
--
备分日志:
BACKUP LOG test TO DISK='d:\1820.logs' WITH INIT
--
恢复数据库1600.bak,使用WITH NORECOVERY
参数:
RESTORE DATABASE test from disk='d:\db\1640.bak' WITH NORECOVERY
--
使用日志恢复数据库到10月15日17:59分:
RESTORE LOG test
FROM disk='d:\1820.logs' WITH RECOVERY
,STOPAT='10/15/2004 17:59'
上面的三条
Transact SQL语句的对应过程:
1.
恢复数据库到A点;
2.执行A-B之间的log记录,把数据库恢复到B点
.
这样就恢复数据库到了指定的时间点。如果恢复不成功,可能的原因是:
1.未使用正确的备分数据库;
2.数据库选项选中了Auto Shrink.
在数据库->选项里->恢复模式里选择 完整 模式
DB2中可以使得数据库回复到指定的时间点,SQL Server数据库的Recovery Model为full 或者Bulk copy的时候,是可以从日志来恢复数据库的。实际上日志中记录的一条一条的transact sql语句,恢复数据库的时候会redo这些sql语句。
假设:
myBBS是数据库test中的一个表,
数据库test的Recovery Model为Full,Auto Close,Auto Shrink两个选项未选中。
数据库test的data files和log files均为默认的自动增长状态。
A
:
2004/10/13,16:00
进行数据库备份,
backup database test to disk='d:\db\1600.bak' with init
B
:
2004/10/14,13:00
对数据库进行了
update,delete
等操作;
C
:
2004/10/15,18:00使用delete mybbs where id>300时,语句误写成delete mybbs,因而删除了表mybbs中的所有数据。
现在在C点,C点对数据库进行了误操作,我们希望数据库能够恢复到C之前的状态,比如恢复到10月15日17:59分的状态。
要恢复数据库B点,使用的是A点备分的数据库1600.bak;而使用的日志备分是最新的备分1820.logs;因而进行如下操作:
--
备分日志:
BACKUP LOG test TO DISK='d:\1820.logs' WITH INIT
--
恢复数据库1600.bak,使用WITH NORECOVERY
参数:
RESTORE DATABASE test from disk='d:\db\1640.bak' WITH NORECOVERY
--
使用日志恢复数据库到10月15日17:59分:
RESTORE LOG test
FROM disk='d:\1820.logs' WITH RECOVERY
,STOPAT='10/15/2004 17:59'
上面的三条
Transact SQL语句的对应过程:
1.
恢复数据库到A点;
2.执行A-B之间的log记录,把数据库恢复到B点
.
这样就恢复数据库到了指定的时间点。如果恢复不成功,可能的原因是:
1.未使用正确的备分数据库;
2.数据库选项选中了Auto Shrink.
相关文章推荐
- 详解如何通过Mysql的二进制日志恢复数据库数据
- 如何通过Mysql的二进制日志恢复数据库数据
- 如何通过 MySQL 的二进制日志恢复数据库数据
- 如何通过Mysql的二进制日志恢复数据库数据
- 如何通过 MySQL 的二进制日志恢复数据库数据
- 如何通过Mysql的二进制日志恢复数据库数据
- 如何通过Mysql的二进制日志恢复数据库数据
- 如何通过Mysql的二进制日志恢复数据库数据
- 通过日志恢复数据库
- sql server 如何通过mdf文件和ldf文件恢复数据库
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- 通过 MySQL 的二进制日志恢复数据库数据
- 通过Mysql的二进制日志恢复数据库数据
- MySQL 数据库通过日志恢复
- MySQL 数据库通过日志恢复
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- SQL Server 2005 如何在没有日志文件的情况下如何恢复MDF数据库文件(测试通过)
- SQLServer2005数据库日志文件损坏的情况下如何恢复数据库
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- 通过日志恢复数据库