46.Oracle中的restore和recover

1.restore 是还原,文件级别的恢复,就是物理文件的还原

2.recover是恢复,是数据级别的还原,逻辑上的恢复,比如应用归档日志、重做日志

restore命令先从上次备份的文件提出数据文件拷贝到原目录下进行替换,而recover是在restore之后,使用redo log & archive log补全从备份到现在时刻的差异数据

3.restore 命令:用于还原已经备份的数据文件。
  (1)、restore database 还原所有的数据文件。
  (2)、restore tablespace 还原特定表空间的数据文件。
  (3)、restore datafile 还原特定的数据文件。
  (4)、restore controlfile 还原控制文件。
  (5)、restore archivelog 还原归档日志文件。
4.recover 命令:当数据库需要应用归档日志文件恢复数据文件时,使用recover命令。使用该命令数据库系统会自动应用归档的日志文件。

  (1)、recover database 恢复所有的数据文件。
  (2)、recover tablespace 恢复特定表空间的数据文件。
  (3)、recover datafile 恢复特定的数据文件。

restore 只是备份来还原,recover是用archivelog或者online log

举例说明:
假设我时间点A,做了个备份,时间点B数据库挂了
restore database ;// 这个操作利用时间点A做的备份来还原,返回到时间点A
recover database ;//这个操作利用archivelog and online log做recover,从时间点A,推进到时间点B

restore 是还原,文件级的恢复,还原被损坏的文件,RMAN经常用。
recovery是恢复,数据级的恢复,通过重做日志文件或归档日志文件进行恢复。

举例:

1.基于scn进行rman 恢复(在mount状态进行恢复)

restore  database  until scn xxxx;  或者这里写resotre database
recover  database  until scn xxxx;

2.基于时间点的rman恢复(在mout状态进行恢复)

sql 'alter session set nls_date_format="yyyymmdd hh24:mi:ss"';
restore database;
recover database until time '20110414 11:33:56'; 
sql 'alter datatabase open resetlogs'

或者写

restore database until time "to_date('20230-01-30 20:30:00','yyyy-mm-dd hh24:mi:ss')";

 

posted on 2022-11-23 16:03  太白金星有点烦  阅读(816)  评论(0)    收藏  举报

导航