【Oracle】oracle用rman异机恢复部分表空间方案

RMAN异机恢复部分表空间

RMAN单独恢复表空间(异机)并不是简单的restore tablespace tbs;recover tablespace tbs;
会报错如下:
RMAN-03002: failure of switch command at 11/12/2014 10:36:09
RMAN-20230: datafile copy not found in the repository
RMAN-06015: error while looking up datafile copy name: /u01/oracle11gR2/oracle/oradata/ora11g/system.dbf

正确恢复步骤如下
1、恢复控制文件,启到mount状态
2、查询v d a t a f i l e , v datafile,v datafile,vtempfile,v$tablespace,确认表空间、数据文件信息
3、恢复指定的表空间,但同时要恢复system、sysaux(若只需要测试验证业务数据,可以不恢复,则其状态就为offline,生产环境恢复当然要恢复它)、undo表空间、指定要恢复的业务表空间。
4、alter database open resetlogs;

操作如下
目标:生产环境有全备及归档备份,现需要将其中一个业务表空间恢复到测试服务器查看数据。

(1)编辑参数文件
vi /home/oracle/pfile_aa.ora

*.audit_file_dest='/oracle/tmp_test/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/oracle/tmp_test/control01.ctl','/oracle/tmp_test/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='test'
*.db_recovery_file_dest='/oracle/tmp_test/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest='/oracle/tmp_test'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)'
*.local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.114)(PORT=1523))'
*.log_archive_dest_1='location=/oracle/tmp_test/'
*.open_cursors=300
*.pga_aggregate_target=228589568
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=915406848
*.undo_tablespace='UNDOTBS1'

(2)启库到nomount状态

startup nomount pfile='/home/oracle/pfile_aa.ora';

(3)恢复控制文件

restore controlfile from '/oracle/rman/cntrl_44_1c018s3t_1_1_20210613';

(4)启库到mount状态

alter database mount;

(5)查询数据文件、表空间相关信息

set line 400
col name for a60
select file#,name from v$datafile;

     FILE# NAME
---------- ------------------------------------------------------------
         1 /oracle/test/datafile/test/system01.dbf
         2 /oracle/test/datafile/test/sysaux01.dbf
         3 /oracle/test/datafile/test/undotbs01.dbf
         4 /oracle/test/datafile/test/users01.dbf
         5 /oracle/test/datafile/test/tbs01.dbf


01:25:21 SQL> select * from v$tempfile;

no rows selected

01:25:15 SQL> select * from v$tablespace;

       TS# NAME                           INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
         0 SYSTEM                         YES NO  YES
         1 SYSAUX                         YES NO  YES
         2 UNDOTBS1                       YES NO  YES
         4 USERS                          YES NO  YES
         3 TEMP                           NO  NO  YES
         6 TBS01                          YES NO  YES

6 rows selected.

(6)恢复表空间

RMAN> run
{
 SET NEWNAME FOR DATABASE to '/oracle/tmp_test/datafile/%b';
 SET NEWNAME FOR TEMPFILE 1 TO '/oracle/tmp_test/datafile/temp01.dbf' ;
 set until time "to_date('2021-01-13 01:10:00','YYYY-MM-DD HH24:MI:SS')"; 
 restore tablespace system,sysaux,UNDOTBS1,tbs01;
 SWITCH DATAFILE 1;
 SWITCH DATAFILE 2;
 SWITCH DATAFILE 3;
 ##SWITCH DATAFILE 4;   ---users表空间
 SWITCH DATAFILE 5;
 switch tempfile all;
 recover database skip tablespace tbs02,tbs03,tbs04,USERS;
}
RMAN> alter database open resetlogs;
database opened

(7)查看表空间

FILENAME                                                        |CREATED           |TBSNAME           |STATUS      | INITMB|  CURMB|  MAXMB|AUTOEXT
----------------------------------------------------------------|------------------|------------------|------------|-------|-------|-------|--------
/oracle/tmp_test/datafile/sysaux01.dbf                          |2013-08-24 11:37  |SYSAUX            |ONLINE      |      0|    520|  32777|YES
/oracle/tmp_test/datafile/system01.dbf                          |2013-08-24 11:37  |SYSTEM            |SYSTEM      |      0|    770|  32777|YES
/oracle/tmp_test/datafile/tbs01.dbf                             |2021-06-13 00:56  |TBS01             |ONLINE      |     10|     10|     10|NO
/oracle/test/datafile/test/tbs02.dbf                            |2021-06-13 01:37  |TBS02             |OFFLINE     |     50|       |       |
/oracle/test/datafile/test/tbs03.dbf                            |2021-06-13 01:37  |TBS03             |OFFLINE     |     50|       |       |
/oracle/test/datafile/test/tbs04.dbf                            |2021-06-13 01:37  |TBS04             |OFFLINE     |     50|       |       |
/oracle/tmp_test/datafile/undotbs01.dbf                         |2013-08-24 12:07  |UNDOTBS1          |ONLINE      |      0|    215|  32777|YES
/oracle/tmp_test/datafile/users01.dbf                           |2013-08-24 11:37  |USERS             |OFFLINE     |      0|       |       |

8 rows selected.

(8)若不恢复sysaux表空间,则其状态为offline

若不恢复sysaux表空间,则如下:
[oracle@rhel11g ~]$ orafile

FILENAME                                                        |CREATED           |TBSNAME           |STATUS      | INITMB|  CURMB|  MAXMB|AUTOEXT
----------------------------------------------------------------|------------------|------------------|------------|-------|-------|-------|--------
/oracle/tmp_test/datafile/sysaux01.dbf                          |2013-08-24 11:37  |SYSAUX            |OFFLINE     |      0|       |       |
/oracle/tmp_test/datafile/system01.dbf                          |2013-08-24 11:37  |SYSTEM            |SYSTEM      |      0|    770|  32777|YES
/oracle/tmp_test/datafile/tbs01.dbf                             |2021-06-13 00:56  |TBS01             |ONLINE      |     10|     10|     10|NO
/oracle/test/datafile/test/tbs02.dbf                            |2021-06-13 01:37  |TBS02             |OFFLINE     |     50|       |       |
/oracle/test/datafile/test/tbs03.dbf                            |2021-06-13 01:37  |TBS03             |OFFLINE     |     50|       |       |
/oracle/test/datafile/test/tbs04.dbf                            |2021-06-13 01:37  |TBS04             |OFFLINE     |     50|       |       |
/oracle/tmp_test/datafile/undotbs01.dbf                         |2013-08-24 12:07  |UNDOTBS1          |ONLINE      |      0|    215|  32777|YES
/oracle/tmp_test/datafile/users01.dbf                           |2013-08-24 11:37  |USERS             |OFFLINE     |      0|       |       |

8 rows selected.

Elapsed: 00:00:00.02
[oracle@rhel11g ~]$ 

总结:
RMAN异机恢复指定的表空间,需要同时恢复system、sysaux(若只需要测试验证业务数据,可以不恢复,则其状态就为offline,生产环境恢复当然要恢复它)、undo表空间、指定要恢复的业务表空间。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值