rac下的备份恢复
rac备份恢复与正常基本一样,但要注意一些常见问题:
- rac备份恢复要使归档能否被所有节点访问到
- asm相关的路径问题等等
备份
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup database format '/home/oracle/rman_back/full_%n_%T_%t_%s_%p.bak';
sql 'alter system archive log current';
backup archivelog all format '/home/oracle/rman_back/arch_%d_%T_%s_%p.bak' delete input;
backup current controlfile format '/home/oracle/rman_back/ctl_%d_%T_%s_%p.bak';
release channel c1;
release channel c2;
}
RMAN> list backup;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
3 Full 658.77M DISK 00:01:34 2022-06-07 14:23:28
BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20220607T142153
Piece Name: /home/oracle/rman_back/full_RAC1xxxx_20220607_1106749314_6_1.bak
List of Datafiles in backup set 3
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- ------------------- ----
1 Full 2331391 2022-06-07 14:21:54 +DATA/rac1/datafile/system.256.1105719819
3 Full 2331391 2022-06-07 14:21:54 +DATA/rac1/datafile/undotbs1.258.1105719819
6 Full 2331391 2022-06-07 14:21:54 +DATA/rac1/datafile/undotbs2.265.1105720401
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
4 Full 813.88M DISK 00:01:59 2022-06-07 14:23:53
BP Key: 4 Status: AVAILABLE Compressed: NO Tag: TAG20220607T142153
Piece Name: /home/oracle/rman_back/full_RAC1xxxx_20220607_1106749314_5_1.bak
List of Datafiles in backup set 4
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- ------------------- ----
2 Full 2331389 2022-06-07 14:21:54 +DATA/rac1/datafile/sysaux.257.1105719819
4 Full 2331389 2022-06-07 14:21:54 +DATA/rac1/datafile/users.259.1105719819
5 Full 2331389 2022-06-07 14:21:54 +DATA/rac1/datafile/example.264.1105720057
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
5 Full 80.00K DISK 00:00:01 2022-06-07 14:23:56
BP Key: 5 Status: AVAILABLE Compressed: NO Tag: TAG20220607T142153
Piece Name: /home/oracle/rman_back/full_RAC1xxxx_20220607_1106749435_8_1.bak
SPFILE Included: Modification time: 2022-06-07 14:12:53
SPFILE db_unique_name: RAC1
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
6 Full 17.67M DISK 00:00:27 2022-06-07 14:23:58
BP Key: 6 Status: AVAILABLE Compressed: NO Tag: TAG20220607T142153
Piece Name: /home/oracle/rman_back/full_RAC1xxxx_20220607_1106749411_7_1.bak
Control File Included: Ckp SCN: 2331444 Ckp time: 2022-06-07 14:23:49
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
7 25.03M DISK 00:00:08 2022-06-07 14:24:15
BP Key: 7 Status: AVAILABLE Compressed: NO Tag: TAG20220607T142407
Piece Name: /home/oracle/rman_back/arch_RAC1_20220607_9_1.bak
List of Archived Logs in backup set 7
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- ------------------- ---------- ---------
2 29 2309002 2022-06-07 08:18:02 2326827 2022-06-07 14:05:26
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
8 5.84M DISK 00:00:10 2022-06-07 14:24:17
BP Key: 8 Status: AVAILABLE Compressed: NO Tag: TAG20220607T142407
Piece Name: /home/oracle/rman_back/arch_RAC1_20220607_10_1.bak
List of Archived Logs in backup set 8
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- ------------------- ---------- ---------
1 27 2320530 2022-06-07 11:41:45 2331171 2022-06-07 14:16:52
1 28 2331171 2022-06-07 14:16:52 2331292 2022-06-07 14:20:02
2 30 2326965 2022-06-07 14:11:46 2331175 2022-06-07 14:16:53
2 31 2331175 2022-06-07 14:16:53 2331289 2022-06-07 14:20:01
2 32 2331289 2022-06-07 14:20:01 2331469 2022-06-07 14:24:02
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
9 371.00K DISK 00:00:01 2022-06-07 14:24:26
BP Key: 9 Status: AVAILABLE Compressed: NO Tag: TAG20220607T142407
Piece Name: /home/oracle/rman_back/arch_RAC1_20220607_11_1.bak
List of Archived Logs in backup set 9
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- ------------------- ---------- ---------
1 29 2331292 2022-06-07 14:20:02 2331465 2022-06-07 14:24:01
1 30 2331465 2022-06-07 14:24:01 2331861 2022-06-07 14:24:05
2 33 2331469 2022-06-07 14:24:02 2331864 2022-06-07 14:24:05
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
10 Full 17.67M DISK 00:00:07 2022-06-07 14:24:38
BP Key: 10 Status: AVAILABLE Compressed: NO Tag: TAG20220607T142431
Piece Name: /home/oracle/rman_back/ctl_RAC1_20220607_12_1.bak
Control File Included: Ckp SCN: 2331895 Ckp time: 2022-06-07 14:24:31
#注意的点:
#与普通实例不同的是,rac中的spfile会在backup database时自动备份,因为rac下的spfile默认是被所有节点共享的
RMAN> show all
......
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
......
RMAN> list backup of spfile;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
5 Full 80.00K DISK 00:00:01 2022-06-07 14:23:56
BP Key: 5 Status: AVAILABLE Compressed: NO Tag: TAG20220607T142153
Piece Name: /home/oracle/rman_back/full_RAC1xxxx_20220607_1106749435_8_1.bak
SPFILE Included: Modification time: 2022-06-07 14:12:53
SPFILE db_unique_name: RAC1
RMAN> list backup of controlfile;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
6 Full 17.67M DISK 00:00:27 2022-06-07 14:23:58
BP Key: 6 Status: AVAILABLE Compressed: NO Tag: TAG20220607T142153
Piece Name: /home/oracle/rman_back/full_RAC1xxxx_20220607_1106749411_7_1.bak
Control File Included: Ckp SCN: 2331444 Ckp time: 2022-06-07 14:23:49
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
10 Full 17.67M DISK 00:00:07 2022-06-07 14:24:38
BP Key: 10 Status: AVAILABLE Compressed: NO Tag: TAG20220607T142431
Piece Name: /home/oracle/rman_back/ctl_RAC1_20220607_12_1.bak
Control File Included: Ckp SCN: 2331895 Ckp time: 2022-06-07 14:24:31
删库
[grid@rac-node1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE rac-node1
ONLINE ONLINE rac-node2
ora.FRA.dg
ONLINE ONLINE rac-node1
ONLINE ONLINE rac-node2
ora.LISTENER.lsnr
ONLINE ONLINE rac-node1
ONLINE ONLINE rac-node2
ora.OCR.dg
ONLINE ONLINE rac-node1
ONLINE ONLINE rac-node2
ora.asm
ONLINE ONLINE rac-node1 Started
ONLINE ONLINE rac-node2 Started
ora.gsd
OFFLINE OFFLINE rac-node1
OFFLINE OFFLINE rac-node2
ora.net1.network
ONLINE ONLINE rac-node1
ONLINE ONLINE rac-node2
ora.ons
ONLINE ONLINE rac-node1
ONLINE ONLINE rac-node2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac-node2
ora.cvu
1 ONLINE ONLINE rac-node2
ora.oc4j
1 ONLINE ONLINE rac-node2
ora.rac-node1.vip
1 ONLINE ONLINE rac-node1
ora.rac-node2.vip
1 ONLINE ONLINE rac-node2
ora.rac1.db
1 ONLINE ONLINE rac-node1 Open
2 ONLINE ONLINE rac-node2 Open
ora.scan1.vip
1 ONLINE ONLINE rac-node2
#停止db的service: srvctl stop database -d rac1
#删库,删除掉asm里的数据文件
[grid@rac-node1 ~]$ srvctl status database -d rac1
实例 rac11 没有在 rac-node1 节点上运行
实例 rac12 没有在 rac-node2 节点上运行
[grid@rac-node1 ~]$ crsctl stat res -t
......
ora.rac1.db
1 OFFLINE OFFLINE Instance Shutdown
2 OFFLINE OFFLINE Instance Shutdown
......
#删除system和sysaux数据文件
ASMCMD> ls DATA/RAC1/DATAFILE
EXAMPLE.264.1105720057
SYSAUX.257.1105719819
SYSTEM.256.1105719819
UNDOTBS1.258.1105719819
UNDOTBS2.265.1105720401
USERS.259.1105719819
ASMCMD> rm -f DATA/RAC1/DATAFILE/SYS*
ASMCMD> ls DATA/RAC1/DATAFILE
EXAMPLE.264.1105720057
UNDOTBS1.258.1105719819
UNDOTBS2.265.1105720401
USERS.259.1105719819
恢复
SQL> startup
ORACLE instance started.
Total System Global Area 1536602112 bytes
Fixed Size 2253504 bytes
Variable Size 1023413568 bytes
Database Buffers 503316480 bytes
Redo Buffers 7618560 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '+DATA/rac1/datafile/system.256.1105719819'
asm中如果没有相关的路径,可能需要创建
只是少了数据文件而已,spfile存在,控制文件正确,所以需要恢复的只是数据文件
#Mount,system表空间没有,所以只能mount下恢复
alter database mount;
SQL> select status from gv$instance;
STATUS
------------
MOUNTED
#recover还原
RMAN> restore tablespace system,sysaux;
Starting restore at 2022-06-07 15:18:22
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=8 instance=rac11 device type=DISK
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to +DATA/rac1/datafile/system.256.1105719819
channel ORA_DISK_1: reading from backup piece /home/oracle/rman_back/full_RAC1xxxx_20220607_1106749314_6_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/rman_back/full_RAC1xxxx_20220607_1106749314_6_1.bak tag=TAG202206 07T142153
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00002 to +DATA/rac1/datafile/sysaux.257.1105719819
channel ORA_DISK_1: reading from backup piece /home/oracle/rman_back/full_RAC1xxxx_20220607_1106749314_5_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/rman_back/full_RAC1xxxx_20220607_1106749314_5_1.bak tag=TAG202206 07T142153
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:25
Finished restore at 2022-06-07 15:19:04
#recover恢复
RMAN> recover tablespace system,sysaux;
Starting recover at 2022-06-07 15:19:19
using channel ORA_DISK_1
starting media recovery
archived log for thread 2 with sequence 34 is already on disk as file +FRA/rac1/archivelog/2022_06_07/thread_2_ seq_34.268.1106751415
channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=2 sequence=32
channel ORA_DISK_1: reading from backup piece /home/oracle/rman_back/arch_RAC1_20220607_10_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/rman_back/arch_RAC1_20220607_10_1.bak tag=TAG20220607T142407
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=29
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=30
channel ORA_DISK_1: restoring archived log
archived log thread=2 sequence=33
channel ORA_DISK_1: reading from backup piece /home/oracle/rman_back/arch_RAC1_20220607_11_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/rman_back/arch_RAC1_20220607_11_1.bak tag=TAG20220607T142407
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
archived log file name=+FRA/rac1/archivelog/2022_06_07/thread_1_seq_29.267.1106752763 thread=1 sequence=29
archived log file name=+FRA/rac1/archivelog/2022_06_07/thread_2_seq_32.269.1106752761 thread=2 sequence=32
channel default: deleting archived log(s)
archived log file name=+FRA/rac1/archivelog/2022_06_07/thread_1_seq_29.267.1106752763 RECID=13 STAMP=1106752762
channel default: deleting archived log(s)
archived log file name=+FRA/rac1/archivelog/2022_06_07/thread_1_seq_30.266.1106752763 RECID=12 STAMP=1106752762
channel default: deleting archived log(s)
archived log file name=+FRA/rac1/archivelog/2022_06_07/thread_2_seq_32.269.1106752761 RECID=11 STAMP=1106752761
channel default: deleting archived log(s)
archived log file name=+FRA/rac1/archivelog/2022_06_07/thread_2_seq_33.265.1106752763 RECID=14 STAMP=1106752762
media recovery complete, elapsed time: 00:00:03
Finished recover at 2022-06-07 15:19:26
#open数据库,当前节点成功open
SQL> alter database open;
Database altered.
......
ora.rac1.db
1 ONLINE ONLINE rac-node1 Open
2 OFFLINE OFFLINE Instance Shutdown
......
#启动所有节点
srvctl start database -d rac1
......
ora.rac1.db
1 ONLINE ONLINE rac-node1 Open
2 ONLINE ONLINE rac-node2 Open
......
rac备份脚本参考
#参考脚本
#!/bin/bash
source /home/oracle/.bash_profile
backtime=$(date +%F)
mkdir -p /home/oracle/bak/$backtime
rman target / <<EOF
run {
allocate channel ch1 type disk;
allocate channel ch2 type disk;
allocate channel ch3 type disk;
allocate channel ch4 type disk;
allocate channel ch5 type disk;
allocate channel ch6 type disk;
sql 'alter system archive log current';
backup as compressed backupset database format '/home/oracle/bak/$backtime/racdb_%T_%U';
sql 'alter system archive log current';
backup as compressed backupset archivelog all format '/home/oracle/bak/$backtime/arch_%T_%U';
backup current controlfile format '/home/oracle/bak/$backtime/cron_%T_%U';
backup spfile format '/home/oracle/bak/$backtime/racdb%d.%s.%p.%T.SPFILE';
release channel ch1;
release channel ch2;
release channel ch3;
release channel ch4;
release channel ch5;
release channel ch6;
}
EOF