RAC数据库的RMAN备份异机恢复到单节点数据库

时间:2021-07-02 05:42:15

1、首先在rac环境用rman备份数据库。
[oracle@rac1 admin]$ rman target /
run
{
allocate channel c1 device type disk connect  'sys/welcome123@IRAC1';
allocate channel c2 device type disk connect  'sys/welcome123@IRAC2';
backup AS COMPRESSED BACKUPSET incremental level= 0  Database format='/u01/app/oracle/backup/full_%U_%T'  tag='fullbackup';
sql 'alter system archive log current';
backup archivelog all tag='arc_bak' format='/u01/app/oracle/backup/arch_%U_%T' delete input;
backup current controlfile tag='bak_ctlfile' format='/u01/app/oracle/backup/ctl_file_%U_%T';
backup spfile tag='spfile' format='/u01/app/oracle/backup/spfile_%U_%T';
release channel c2;
release channel c1;
}

备份过程中出现如下报错
released channel: c1
released channel: c2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================

RMAN-03009: failure of backup command on c1 channel at 08/25/2017 17:19:41
ORA-00245: control file backup failed; target is likely on a local file system

处理方法如下,在RAC环境运行如下命令:
RMAN>show snapshot controlfile name;
RMAN>CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATA/IRAC/CONTROLFILE/snapcf_IRAC.f'; 
处理后备份成功。

2、将rac环境的rman备份拷贝到单机(注意需要从rac的节点二上拷贝一部分来)。并就rac环境pfile copy到单机,根据单机主机资源,修改集群参数,实例名,文件路径以及sga和pga等参数。修改如下:
*.audit_file_dest='/u01/oracle/admin/IRAC/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/oracle/oradata/IRAC/control01.dbf','/u01/oracle/oradata/IRAC/control02.dbf'
*.db_block_size=8192
*.db_create_file_dest='/u01/oracle/oradata/IRAC/'
*.db_name='IRAC'
*.db_recovery_file_dest='/u01/oracle/'
*.db_recovery_file_dest_size=4558159872
*.diagnostic_dest='/u01/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=IRACXDB)'
*.log_archive_dest_1='location=/u01/oracle/archive'
*.open_cursors=300
*.pga_aggregate_target=100m
*.processes=150
*.remote_login_passwordfile='exclusive'
*.sga_target=400m
IRAC.undo_tablespace='UNDOTBS1'

3、用pfile将数据库启动到nomount
export ORACLE_SID=IRAC
[orapre@ouc backup]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Sun Aug 27 19:06:40 2017

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup nomount pfile='/u01/backup/1.ora';
ORACLE instance started.

Total System Global Area  417546240 bytes
Fixed Size                  2228944 bytes
Variable Size             134221104 bytes
Database Buffers          272629760 bytes
Redo Buffers                8466432 bytes
SQL>

4、restore 控制文件。
restore controlfile from '/u01/backup/ctl_file_18sd1hv3_1_1_20170828';
[orapre@ouc backup]$ rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Sun Aug 27 20:48:13 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: IRAC (not mounted)

RMAN> restore controlfile from '/u01/backup/ctl_file_18sd1hv3_1_1_20170828';

Starting restore at 27-AUG-17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=134 device type=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:07
output file name=/u01/oracle/oradata/IRAC/control01.dbf
output file name=/u01/oracle/oradata/IRAC/control02.dbf
Finished restore at 27-AUG-17
RMAN>

5、restore 数据文件、归档。
alter database mount;
catalog start with '/u01/backup';  
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
set newname for datafile 1  to '/u01/oracle/oradata/IRAC/system.dbf';
set newname for datafile 2  to '/u01/oracle/oradata/IRAC/sysaux.dbf';
set newname for datafile 3  to '/u01/oracle/oradata/IRAC/undotbs1.dbf';
set newname for datafile 4  to '/u01/oracle/oradata/IRAC/users.dbf';
set newname for datafile 5  to '/u01/oracle/oradata/IRAC/undotbs2.dbf';
set newname for datafile 6  to '/u01/oracle/oradata/IRAC/example.dbf';
restore database; 
switch datafile all;
release channel c1;
release channel c2;       
}

RMAN> list backup of archivelog all;
List of Backup Sets
===================

BS Key  Size
------- ----------
35      4.81M

List of Archived Logs in backup set 35
  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time
  ---- ------- ---------- --------- ---------- ---------
  1    41      3183645    28-AUG-17 3209549    28-AUG-17
  2    30      3183649    28-AUG-17 3209517    28-AUG-17

Backup Set Copy #1 of backup set 35
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:00:00     28-AUG-17       NO         ARC_BAK

List of Backup Pieces for backup set 35 Copy #1
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    35      1   EXPIRED     /u01/app/oracle/backup/arch_14sd1hv1_1_1_20170828

Backup Set Copy #2 of backup set 35
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:00:00     27-AUG-17       NO         ARC_BAK

List of Backup Pieces for backup set 35 Copy #2
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    44      1   AVAILABLE   /u01/backup/arch_14sd1hv1_1_1_20170828

BS Key  Size
------- ----------
36      1.68M

List of Archived Logs in backup set 36
  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time
  ---- ------- ---------- --------- ---------- ---------
  1    42      3209549    28-AUG-17 3216276    28-AUG-17
  2    31      3209517    28-AUG-17 3209519    28-AUG-17

Backup Set Copy #1 of backup set 36
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:00:00     28-AUG-17       NO         ARC_BAK

List of Backup Pieces for backup set 36 Copy #1
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    36      1   EXPIRED     /u01/app/oracle/backup/arch_15sd1hv2_1_1_20170828

Backup Set Copy #2 of backup set 36
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:00:00     27-AUG-17       NO         ARC_BAK

List of Backup Pieces for backup set 36 Copy #2
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    43      1   AVAILABLE   /u01/backup/arch_15sd1hv2_1_1_20170828

BS Key  Size
------- ----------
37      1.85M

List of Archived Logs in backup set 37
  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time
  ---- ------- ---------- --------- ---------- ---------
  2    32      3209656    28-AUG-17 3216272    28-AUG-17
  2    33      3216272    28-AUG-17 3216288    28-AUG-17

Backup Set Copy #1 of backup set 37
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:00:00     28-AUG-17       NO         ARC_BAK

List of Backup Pieces for backup set 37 Copy #1
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    37      1   EXPIRED     /u01/app/oracle/backup/arch_16sd1hut_1_1_20170828

Backup Set Copy #2 of backup set 37
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:00:00     27-AUG-17       NO         ARC_BAK

List of Backup Pieces for backup set 37 Copy #2
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    47      1   AVAILABLE   /u01/backup/arch_16sd1hut_1_1_20170828

BS Key  Size
------- ----------
38      2.00K

List of Archived Logs in backup set 38
  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time
  ---- ------- ---------- --------- ---------- ---------
  1    43      3216276    28-AUG-17 3216284    28-AUG-17

Backup Set Copy #1 of backup set 38
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:00:00     28-AUG-17       NO         ARC_BAK

List of Backup Pieces for backup set 38 Copy #1
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    38      1   EXPIRED     /u01/app/oracle/backup/arch_17sd1hv2_1_1_20170828

Backup Set Copy #2 of backup set 38
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:00:00     27-AUG-17       NO         ARC_BAK

List of Backup Pieces for backup set 38 Copy #2
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    42      1   AVAILABLE   /u01/backup/arch_17sd1hv2_1_1_20170828

RMAN>restore archivelog  sequence between 30 and 33 thread 2;
RMAN>restore archivelog  sequence between 41 and 43 thread 1;

6、打开数据库

SQL> recover database using backup controlfile until cancel;
ORA-00279: change 3216190 generated at 08/28/2017 11:38:07 needed for thread 1
ORA-00289: suggestion : /u01/oracle/archive/1_42_951416315.dbf
ORA-00280: change 3216190 for thread 1 is in sequence #42
Specify log: {=suggested | filename | AUTO | CANCEL}
AUTO
>recover出现报错,直接常识open resetlogs

open resetlog之前需要对redolog重命名
alter database rename file '+DATA/irac/onlinelog/group_2.264.951416317' to '/u01/oracle/oradata/IRAC/redo01.dbf';
alter database rename file '+DATA/irac/onlinelog/group_2.265.951416317' to '/u01/oracle/oradata/IRAC/redo02.dbf';
alter database rename file '+DATA/irac/onlinelog/group_1.262.951416315' to '/u01/oracle/oradata/IRAC/redo03.dbf';
alter database rename file '+DATA/irac/onlinelog/group_1.263.951416317' to '/u01/oracle/oradata/IRAC/redo04.dbf';
alter database rename file '+DATA/irac/onlinelog/group_3.268.951416437' to '/u01/oracle/oradata/IRAC/redo05.dbf';
alter database rename file '+DATA/irac/onlinelog/group_3.269.951416439' to '/u01/oracle/oradata/IRAC/redo06.dbf';
alter database rename file '+DATA/irac/onlinelog/group_4.270.951416439' to '/u01/oracle/oradata/IRAC/redo07.dbf';
alter database rename file '+DATA/irac/onlinelog/group_4.271.951416439' to '/u01/oracle/oradata/IRAC/redo08.dbf';

alter database open resetlogs;
create temporary tablespace temp1 tempfile '/u01/oracle/oradata/IRAC/temp1.dbf'size 20M;
alter database default temporary tablespace temp1;

------结束