杠氯 发表于 2025-11-1 12:45:02

Oracle手工完全恢复的几种方式

一、基本概念


[*]完全恢复步骤

[*]restore:通过 OS 拷贝命令还原全部或部分 datafile。
[*]recover:利用 SQL*PLUS 结合归档日志和当前 redo 日志恢复。

[*]完全恢复级别

[*]recover database:多数或所有 datafile 损坏时使用,通常在 mount 状态进行。
[*]recover tablespace:非关键表空间的数据文件损坏、无法访问时采用,一般在 open 状态完成。
[*]recover datafile:单一或少量数据文件损坏时适用,关键文件损坏在 mount 状态,非关键文件在 open 状态操作。

[*]关键文件
损坏后会使数据库无法维持 open 状态,甚至崩溃或死机,包括 system01 file、undotbs file、control file、current log file。
[*]恢复相关视图

[*]v$recover_file:查看需恢复的 datafile。
[*]v$recovery_log:查看 recover 所需的 redo 日志。
[*]v$archvied_log:查看已归档的日志。

二、适用场景


[*]recover database(所有或大部分数据文件损坏)

[*]OS:用 cp 还原受损的 dbf(按 v$recover_file 记录还原)。
[*]SQLPLUS:

[*]recover database;
[*]alter database open;


[*]recover tablespace(表空间的非关键数据文件损坏)

[*]OS:用 cp 还原表空间 XXX 下所有数据文件。
[*]SQLPLUS:

[*]alter tablespace XXX offline immediate;
[*]recover tablespace XXX;
[*]alter tablespace XXX online;


[*]recover datafile(单个或几个数据文件损坏)

[*]第一种情形(关键文件,mount 下)

[*]OS:用 cp 还原相关关键数据文件。
[*]SQLPLUS:

[*]recover datafile 6,8;
[*]alter database open;


[*]第二种情形(非关键文件,open 下)

[*]OS:用 cp 还原相关非关键数据文件。
[*]SQLPLUS:

[*]alter database datafile 6,8 offline;
[*]recover datafile 6,8;
[*]alter database datafile 6,8 online;




来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

遇玷 发表于 2025-11-29 10:38:56

谢谢楼主提供!
页: [1]
查看完整版本: Oracle手工完全恢复的几种方式