restore和recover区别
restore 是还原物理文件,recover 是用日志恢复到一致,用了RMAN备份后就必须要用restore还原,然后才用recover恢复 restore——还原,与backup相对,从备份读出恢复备份的数据。
recover——恢复,把restore回来的数据经过一番处理变成正常数据。 如果restore,而不recover的话,数据库是打不开的!因为各文件都不同步 积累型(COMULATIVE ERPORT):备份上一次积累型备份所改变的数据; 增量型(INCREAMENTAL EXPORT):备份上一次备份后改变的数据。
在Oracle的备份与恢复的知识点中,经常会出现Restore 和 Recovery两个词。
由于这两个词在字典中的解释很接近,Oracle的官方文档中看到了以下解释。
Restoration:A corrupted data file is overwritten from a backup of the data file.The data file is at a prior point of time than the current database.
Recovery:Recovery applies the changes to the individual blocks,using archive and redo information,to move the database forward to the current point in time.
从原理上解释,Restore是使用备份文件,将数据库还原到过去的某个状态。
Recovery是使用redo日志和归档日志将数据库向前恢复,一步步的恢复到现在这个时点。
举个例子。
某生产环境的数据库,每天凌晨一点会作一次备份。某天下午两点时数据库文件损害,同时数据库宕机。
接着DBA开始恢复数据库。
1.首先,使用最近一次的备份文件还原数据库到当天凌晨一点的状态。但是凌晨一点到下午两点的数据丢失了。
2.接着,使用redo日志和归档日志,把当天凌晨一点开始的数据库操作重做一遍,直到下午两点数据库宕机前。
这样数据库就一点都不差的被恢复起来了。
所以,把Restore翻译为还原。Recovery翻译为恢复比较好。
Oracle rman中recover和restore的区别:
restore just copy the physical file, recover will consistent the database.
restore 是还原,文件级的恢复。就是物理文件还原。
recover 是恢复,数据级的恢复。逻辑上恢复,比如应用归档日志、重做日志,全部同步,保持一致。
1、restore 命令:用于还原已经备份的数据文件。
(1)restore database 还原所有的数据文件。
(2)restore tablespace 还原特定表空间的数据文件。
(3)restore datafile 还原特定的数据文件。
(4)restore controlfile 还原控制文件。
(5)restore archivelog 还原归档日志文件。
2、recover 命令:当数据库需要应用归档日志文件恢复数据文件时,使用recover命令。使用该命令数据库系统会自动应用归档的日志文件。
(1)recover database 恢复所有的数据文件。
(2)recover tablespace 恢复特定表空间的数据文件。
(3)recover datafile 恢复特定的数据文件。
alter database open;
alter database open resetlog;
查看数据库配置文件在操作系统位置
select name from v
d
a
t
a
f
i
l
e
;
s
e
l
e
c
t
n
a
m
e
f
r
o
m
v
datafile; select name from v
datafile;selectnamefromvcontrolfile;
select member from v$logfile;
show parameter spfile;