非系统表空间损坏,rman备份恢复
实验条件:有完整可用备份
--查询表空间情况
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE
SYSAUX                         ONLINE
TEMP                           ONLINE
USERS                          ONLINE
UNDOTBS2                       ONLINE
GOLDGATE                       ONLINE
FDA01                          ONLINE
FDA02                          ONLINE
ANDY                           ONLINE
9 rows selected.
SQL> 
col tablespace_name for a15
col file_name for a50
SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files where tablespace_name='ANDY' ORDER BY tablespace_name;
TABLESPACE_NAME    FILE_ID FILE_NAME                                          TOTAL_SPACE
--------------- ---------- -------------------------------------------------- -----------
ANDY                     3 /home/oracle/app/oradata/orcl/andy01.dbf                    10
ANDY                     5 /home/oracle/app/oradata/orcl/andy02.dbf                     1
--模拟表空间损坏
[oracle@11g orcl]$ ll andy*
-rw-r-----. 1 oracle oinstall 10493952 Mar 24 17:41 andy01.dbf
-rw-r-----. 1 oracle oinstall  1056768 Mar 24 17:53 andy02.dbf
[oracle@11g orcl]$ rm -rf andy*
[oracle@11g trace]$ cat alert_orcl.log |grep ORA-
ORA-01116: error in opening database file 3
ORA-01110: data file 3: '/home/oracle/app/oradata/orcl/andy01.dbf'
ORA-27041: unable to open file
ORA-01116: error in opening database file 5
ORA-01110: data file 5: '/home/oracle/app/oradata/orcl/andy02.dbf'
ORA-27041: unable to open file
--恢复过程
SQL> alter tablespace andy offline;
alter tablespace andy offline
*
ERROR at line 1:
ORA-01116: error in opening database file 3
ORA-01110: data file 3: '/home/oracle/app/oradata/orcl/andy01.dbf'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
如果文件不存在,就加immediate参数
SQL> alter tablespace andy offline immediate;
Tablespace altered.
rman>restore tablespace andy;
rman>recover tablespace andy;
rman>sql 'alter tablespace andy online';
sql statement: alter tablespace andy online
 
                    
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号