ARCHIVELOG模式下用户管理的完全恢复—总结

来源:互联网 发布:听电子书的软件 编辑:程序博客网 时间:2024/05/17 03:28

首先说一下恢复的命令:

1、recover database;是sql*plus的命令,该命令对应的sql命令为alter database recover database; 后面的同理!

2、recover tablespace [tablespace name]; 对应 alter database recover tablespace [tablespace name];

3、recover datafile n; 对应 alter database recover datafile n;

如果要恢复的文件比较多,就是用第一个命令。如果要恢复表空间就使用第二个命令。如果只想恢复单个数据文件就使用第三个命令。

 

完全恢复的大致分类:

1、在mount状态下恢复数据文件

system表空间只能在mount状态下面恢复,因为system表空间损坏了,数据库是不能正常open的。其它的用户表空间都可以在open状态下面恢复。对于一个生产数据库应该在open状态下面恢复用户表空间,这样在恢复的时候数据库也可以对外提供服务。下面记录大致恢复步骤:

SQL> startup mount;

SQL> select * from v$recover_file;

SQL> ! cp ... ... 

SQL> alter database rename file 'xxx' to 'xxx';

SQL> recover datafile n;

SQL> alter database open;

 

2、在open状态下恢复关闭时意外丢失的数据文件

如果关闭数据库后,出现数据文件丢失,那么数据库是无法正常打开的。下面记录大致恢复步骤:

SQL> startup mount;

SQL> select * from v$recover_file;

SQL> alter database datafile n offline;

SQL> alter database open;

SQL> ! cp ... ... 

SQL> alter database rename file 'xxx' to 'xxx';

SQL> recover datafile n;

SQL> alter database datafile n online;

 

3、在open状态下恢复打开时意外丢失的数据文件

如果数据库打开的时候用户数据文件丢失了,那么数据库还是能够正常的使用,因为数据并不是每时每刻都要写到数据文件里面嘛。下面记录大致恢复步骤:

SQL> select * from v$recover_file;

SQL> alter database datafile n offline;

SQL> ! cp ... ... 

SQL> alter database rename file 'xxx' to 'xxx';

SQL> recover datafile n;

SQL> alter database datafile n online;

 

4、在open状态下恢复未备份的数据文件

要恢复未备份的数据文件,必须要这个数据文件在创建以后的所有日志存在,才可以恢复。下面记录大致恢复步骤:

SQL> startup mount;

SQL> select * from v$recover_file;

SQL> alter database datafile n offline;

SQL> alter database open;

SQL> alter database create datafile 'xxx' as 'xxx';

SQL> recover datafile n;

SQL> alter database datafile n online;

 

注意:要完全恢复只要日志文件不丢才可以,后面的不完全恢复就是日志文件丢失了,数据文件也丢失了,就只有丢数据了!

0 0