
下面是一个使用日志的示例:
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的状态。
使用Transact-SQL。1.连接到您要还原数据库的服务器实例。2.执行使用 NORECOVERY 选项的 RESTORE DATABASE 语句。如果部分还原顺序不包括任何 FILESTREAM 文件组,则不支持时间点还原。 可以强制该还原顺序以继续执行 *** 作。 但在 RESTORE 语句中省略的 FILESTREAM 文件组将永远无法还原。 若要强制执行时点还 原,请指定 CONTINUE_AFTER_ERROR 选项以及 STOPAT、STOPATMARK 或 STOPBEFOREMARK 选项,还必须在随后的 RESTORE LOG 语句中指定后面的三个选项。 如果指定 CONTINUE_AFTER_ERROR,则部分还原顺序将成功,但 FILESTREAM 文件组将不可恢复。3.还原上次差异数据库备份(如果有),而不恢复数据库 (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY)。4.应用每个事务日志备份中相同的顺序在其中创建了它们,指定想要停止还原日志的时间 (RESTORE DATABASE database_name FROM WITH STOPAT = time , 恢复)。恢复的方法是RMAN数据全备+增量备份+归档日志(+联机日志),或者RMAN数据全备+归档日志(+联机日志)。比如你要恢复到 19号中午12点的,你首先要有一个19号12点之前的一个RMAN数据库全备,比如是18号12点的,然后必须有18号12点到19号12点的归档日志和联机日志(一般恢复到某个时间点的时候联机日志可能用不到)。先做restore恢复,然后recover指定时间点。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)