ITPub博客

首页 > 数据库 > Oracle > RMAN恢复案例:丢失非系统数据文件恢复

RMAN恢复案例:丢失非系统数据文件恢复

原创 Oracle 作者:blue_prince 时间:2005-01-06 15:39:26 0 删除 编辑
                  RMAN恢复案例:丢失非系统数据文件恢复
一、数据库运行过程中丢失一个数据文件恢复
1、模拟介质损坏:
SQL> host rm /u01/oracle/oradata/XUE/users01.dbf[@more@]

2、创建测试表验证介质损坏:
SQL> create table t tablespace users as select * from all_objects;
create table t tablespace users as select * from all_objects
                                                 *
ERROR at line 1:
ORA-01116: error in opening database file 4
ORA-01110: data file 4: '/u01/oracle/oradata/XUE/users01.dbf'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
3、将表空间脱机、查看数据文件状态:
SQL> alter tablespace users offline ;  

Tablespace altered.

SQL> select name,status,enabled from v$datafile;

NAME                                     STATUS  ENABLED
---------------------------------------- ------- ----------
/u01/oracle/oradata/XUE/system01.dbf     SYSTEM  READ WRITE
/u01/oracle/oradata/XUE/undotbs01.dbf    ONLINE  READ WRITE
/u01/oracle/oradata/XUE/indx01.dbf       ONLINE  READ WRITE
/u01/oracle/oradata/XUE/users01.dbf      OFFLINE DISABLED

SQL> alter tablespace users online;
alter tablespace users online
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/u01/oracle/oradata/XUE/users01.dbf'
4、查看恢复文件信息:
SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_
---------- ------- -------
ERROR                                                                CHANGE#
----------------------------------------------------------------- ----------
TIME
---------
         4 OFFLINE OFFLINE
OFFLINE NORMAL                                                             0

SQL> host rman target /

Recovery Manager: Release 9.2.0.4.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

connected to target database: XUE (DBID=285819149)
5、执行命令恢复表空间:
RMAN> run {
2> allocate channel c1 type disk;
3> restore tablespace users;
4> recover tablespace users;
5> sql 'alter tablespace users online';
6> release channel c1;
7> }

allocated channel: c1
channel c1: sid=16 devtype=DISK

Starting restore at 05-JAN-05

channel c1: starting datafile backupset restore
channel c1: specifying datafile(s) to restore from backup set
restoring datafile 00004 to /u01/oracle/oradata/XUE/users01.dbf
channel c1: restored backup piece 1
piece handle=/opt/rman_backup/df_546708956_8_1 tag=TAG20050104T153556 params=NULL
channel c1: restore complete
Finished restore at 05-JAN-05

Starting recover at 05-JAN-05

starting media recovery

archive log thread 1 sequence 66 is already on disk as file /u01/oracle/oradata/XUE/archive/66.arc
archive log thread 1 sequence 67 is already on disk as file /u01/oracle/oradata/XUE/archive/67.arc
archive log thread 1 sequence 68 is already on disk as file /u01/oracle/oradata/XUE/archive/68.arc
archive log thread 1 sequence 69 is already on disk as file /u01/oracle/oradata/XUE/archive/69.arc
archive log thread 1 sequence 70 is already on disk as file /u01/oracle/oradata/XUE/archive/70.arc
archive log thread 1 sequence 71 is already on disk as file /u01/oracle/oradata/XUE/archive/71.arc
archive log thread 1 sequence 72 is already on disk as file /u01/oracle/oradata/XUE/archive/72.arc
archive log filename=/u01/oracle/oradata/XUE/archive/66.arc thread=1 sequence=66
archive log filename=/u01/oracle/oradata/XUE/archive/67.arc thread=1 sequence=67
archive log filename=/u01/oracle/oradata/XUE/archive/68.arc thread=1 sequence=68
archive log filename=/u01/oracle/oradata/XUE/archive/69.arc thread=1 sequence=69
archive log filename=/u01/oracle/oradata/XUE/archive/70.arc thread=1 sequence=70
archive log filename=/u01/oracle/oradata/XUE/archive/71.arc thread=1 sequence=71
media recovery complete
Finished recover at 05-JAN-05

sql statement: alter tablespace users online

released channel: c1

RMAN> exit


Recovery Manager complete.
6、验证恢复成功:
SQL> select name,status,enabled from v$datafile;

NAME                                     STATUS  ENABLED
---------------------------------------- ------- ----------
/u01/oracle/oradata/XUE/system01.dbf     SYSTEM  READ WRITE
/u01/oracle/oradata/XUE/undotbs01.dbf    ONLINE  READ WRITE
/u01/oracle/oradata/XUE/indx01.dbf       ONLINE  READ WRITE
/u01/oracle/oradata/XUE/users01.dbf      ONLINE  READ WRITE

SQL> create table t tablespace users as select * from all_objects;

Table created.

SQL> select count(*) from t;

  COUNT(*)
----------
      6143

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/60857/viewspace-786317/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-23

  • 博文量
    92
  • 访问量
    2231940