oracle中为什么不能恢复到备份的时间

oracle中为什么不能恢复到备份的时间,第1张

Oracle数据库不能恢复到特定的时间是因为Oracle的redo log并不保存每一次事务 *** 作,而是将所有 *** 作放在一起,当redolog文件被重写或者被标记为inactive时,数据库就不能复原到特定时间点,只能复原到执行最后一次备份之前的数据状态。

恢复数据库到之前的某个时间点,必须要有日志备份。

下面是一个使用日志的示例:

create

database

db1

go

alter

database

db1

set

recovery

full

go

backup

database

db1

to

disk='db1.bak'

with

init--首先要对数据库进行全备份,否则checkpoint会阶段inactive的日志(类似于simple

recovery)

go

use

db1

go

create

table

t(col

int)

go

---一些数据库 *** 作

---一些数据库 *** 作

---一些数据库 *** 作

--假设你在15点15分以后删除了这个表

drop

table

t

--如果想恢复这个表,需要对数据库进行日志备份

use

master

go

backup

log

db1

to

disk='db1.trn'

with

norecovery

go

---然后执行以下 *** 作

use

master

go

restore

database

db1

from

disk='db1.bak'

with

norecovery

go

restore

log

db1

from

disk='db1.trn'

with

recovery,stopat='2009-03-08

15:15:00'--这时,数据库恢复到15:15的状态。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6692424.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存