一:Oracle RAC环境中归档日志的存放方式
Oracle RAC环境中归档日志的存放方式有如下几种方式:
1. 本地文件系统
2. 集群文件系统
3. 网络文件系统(NFS)
4. 自动存储管理(ASM)
本篇文章主要是讨论NFS方式相关。
必须保证,在操作系统层面,节点间都能互相访问彼此的归档日志
二:目前所在环境NFS配置
本人公司现在生产环境归档日志是这样配置的:
1:归档路径
两个节点的归档路径都是:/u01/app/oracle/archlog.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/archlog
2:exports文件
Rac1:
[oracle@rac1 archivelog2]$ cat /etc/exports
/u01/app/oracle/archlog rac2(rw,async,no_root_squash)
Rac2:
/u01/app/oracle/archlog rac1(rw,async,no_root_squash)
3:挂载
RAC1:
RAC2:
即将rac2的归档路径:/u01/app/oracle/archlog挂载到rac1的/u01/app/oracle/archivelog2 ,
将rac1的归档路径:/u01/app/oracle/archlog挂载到rac1的/u01/app/oracle/archivelog1.
我个人认为这样不合理。因为它们的归档日志路径都是路径/u01/app/oracle/archlog,挂载到u01/app/oracle/archivelog1或者u01/app/oracle/archivelog2毫无意义,节点间仍旧无法访问彼此的归档日志。
感觉应该将其中一个节点的归档日志路径共享给另一个节点的归档日志路径。
如将rac2的归档路径:/u01/app/oracle/archlog共享给rac1的归档路径/u01/app/oracle/archlog,这样就能访问彼此的归档日志了。
三:模拟生产环境配置
为了规避风险,现准备在测试环境上模拟和生产环境同样的归档配置,然后进行相关操作。(现测试环境集群已搭建好,只是归档配置不同)。
1:创建目录
--在俩节点下都创建/u01/app/oracle/archlog
[oracle@rac1 oracle]$ mkdir /u01/app/oracle/archlog
[oracle@rac2 ~]$ mkdir /u01/app/oracle/archlog
--在rac1下创建/u01/app/oracle/archivelog2
[oracle@rac1 oracle]$ mkdir /u01/app/oracle/archivelog2
--在rac2下创建/u01/app/oracle/archivelog1
[oracle@rac2 ~]$ mkdir /u01/app/oracle/archivelog1
2:修改归档路径
--在rac1下执行
SQL> alter system set log_archive_dest_1='location=/u01/app/oracle/archlog';
System altered.
3:修改exports文件
在rac1下:
添加/u01/app/oracle/archlog rac2(rw,async,no_root_squash)
在rac2下:
添加/u01/app/oracle/archlog rac1(rw,async,no_root_squash)
4:挂载
--前提是NFS服务已启动。
在rac1下:
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,timeo=600,actimeo=0 rac2:/u01/app/oracle/archlog /u01/app/oracle/archivelog2
在rac2下:
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,timeo=600,actimeo=0 rac1:/u01/app/oracle/archlog /u01/app/oracle/archivelog1
5:设置开机自动启动NFS
--开机启动NFS
[root@rac1 ~]# chkconfig --level 35 portmap on
[root@rac1 ~]# chkconfig --level 35 nfs on
-----------------现在下面的所有操作都是在第二天做的(12-23日)-----------------
重新打开数据库,发现节点二上的归档日志路径还是原来的/home/oracle/arch,之前查看的时候,还是更改以后的/u01/app/oracle/arclog呢。
所以,这里也要在节点2上设置归档路径。
SQL> alter system set log_archive_dest_1='location=/u01/app/oracle/archlog';
四:数据恢复
在当前同生产环境一样的归档配置下,看能否正常实现数据恢复。
现打算对库做全备,造几条数据,生成几个归档日志,然后模拟数据库出问题,看能否实现完全恢复。因为访问不到另一个节点的归档日志,肯定不能。得拷贝过来归档日志,才行。
1:在rac2下做全备
RMAN> backup database format '/home/oracle/backup/rman_bak/%d_%s_%p_%T.bak';
Starting backup at 23-DEC-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=122 instance=prod2 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=+DATA/prod/datafile/system.256.857444647
input datafile fno=00003 name=+DATA/prod/datafile/sysaux.257.857444649
input datafile fno=00005 name=+DATA/prod/datafile/example.264.857444773
input datafile fno=00002 name=+DATA/prod/datafile/undotbs1.258.857444651
input datafile fno=00006 name=+DATA/prod/datafile/undotbs2.265.857444885
input datafile fno=00004 name=+DATA/prod/datafile/users.259.862997145
channel ORA_DISK_1: starting piece 1 at 23-DEC-14
channel ORA_DISK_1: finished piece 1 at 23-DEC-14
piece handle=/home/oracle/backup/rman_bak/PROD_57_1_20141223.bak tag=TAG20141223T073857 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 23-DEC-14
channel ORA_DISK_1: finished piece 1 at 23-DEC-14
piece handle=/home/oracle/backup/rman_bak/PROD_58_1_20141223.bak tag=TAG20141223T073857 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 23-DEC-14
2:准备测试数据
--scott.t表现有以下数据
ID NAME
---------- --------------------------------------------------
1 ????
2 ????
3 ????
5 ????
6 jiao
7 jiao
8 jiao
9 song
10 song
11 jiao
12 jiao
ID NAME
---------- --------------------------------------------------
13 jiao
14 jiao
15 jiao
16 jiaojiao
15 rows selected.
--造几条数据
SQL> insert into t(id,name) values(17,'dan');
1 row created.
SQL> c/17/18
1* insert into t(id,name) values(18,'dan')
SQL> /
1 row created.
SQL> c/18/19
1* insert into t(id,name) values(19,'dan')
SQL> /
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t order by id;
ID NAME
---------- --------------------------------------------------
1 ????
2 ????
3 ????
5 ????
6 jiao
7 jiao
8 jiao
9 song
10 song
11 jiao
12 jiao
ID NAME
---------- --------------------------------------------------
13 jiao
14 jiao
15 jiao
16 jiaojiao
17 dan
18 dan
19 dan
18 rows selected.
SQL>
---在rac1下归档日志:
SQL> conn / as sysdba
Connected.
SQL> alter system switch logfile;
System altered.
SQL> /
System altered.
-rw-rw---- 1 oracle oinstall 1942528 Dec 23 07:43 1_48_858567385.arc
-rw-rw---- 1 oracle oinstall 1897472 Dec 23 08:03 1_49_858567385.arc
--再造几条数据
SQL> insert into t(id,name) values(20,'dandan');
1 row created.
SQL> insert into t(id,name) values(21,'dandan')
2 ;
1 row created.
--在rac2下也生成归档日志:
SQL> alter system switch logfile;
System altered.
SQL> /
System altered.
-rw-rw---- 1 oracle oinstall 4028416 Dec 23 08:13 2_45_858567385.arc
-rw-rw---- 1 oracle oinstall 3584 Dec 23 08:13 2_46_858567385.arc
--现在查看一下,这四个归档日志,状态都是AVALIABLE的:
/u01/app/oracle/archlog/1_48_858567385.arc NO A
NAME APP S
-------------------------------------------------- --- -
/u01/app/oracle/archlog/1_49_858567385.arc NO A
/u01/app/oracle/archlog/2_45_858567385.arc NO A
/u01/app/oracle/archlog/2_46_858567385.arc NO A
RMAN> crosscheck archivelog all;
再查看:
/u01/app/oracle/archlog/1_48_858567385.arc NO X
NAME APP S
-------------------------------------------------- --- -
/u01/app/oracle/archlog/1_49_858567385.arc NO X
/u01/app/oracle/archlog/2_45_858567385.arc NO A
/u01/app/oracle/archlog/2_46_858567385.arc NO A
Rac1的俩归档,变成X了。
RMAN> list expired archivelog all;
也能看到那俩日志。
这是因为,在rac2下看不到rac1的归档日志,不能访问。
3:模拟数据库文件被毁坏,看能否实现完全恢复
关掉两个数据库实例:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
在rac2下
删掉scott.t所在数据文件:+DATA/prod/datafile/users.259.862997145
[oracle@rac2 archlog]$ export ORACLE_SID=+ASM2
[oracle@rac2 archlog]$ asmcmd
ASMCMD> cd +DATA/prod/datafile/
ASMCMD> rm USERS.259.862997145
现在,在rac2下启动实例:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 230688336 bytes
Database Buffers 50331648 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '+DATA/prod/datafile/users.259.862997145'
SQL> select status from v$instance;
STATUS
------------
MOUNTED
--用刚才做的全备和归档日志在rac2上尝试做完全恢复
RMAN> run
2> {
3> restore database;
4> recover database;
5> }
Starting restore at 23-DEC-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=143 instance=prod2 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to +DATA/prod/datafile/system.256.857444647
restoring datafile 00002 to +DATA/prod/datafile/undotbs1.258.857444651
restoring datafile 00003 to +DATA/prod/datafile/sysaux.257.857444649
restoring datafile 00004 to +DATA/prod/datafile/users.259.862997145
restoring datafile 00005 to +DATA/prod/datafile/example.264.857444773
restoring datafile 00006 to +DATA/prod/datafile/undotbs2.265.857444885
channel ORA_DISK_1: reading from backup piece /home/oracle/backup/rman_bak/PROD_57_1_20141223.bak
channel ORA_DISK_1: restored backup piece 1
piece handle=/home/oracle/backup/rman_bak/PROD_57_1_20141223.bak tag=TAG20141223T073857
channel ORA_DISK_1: restore complete, elapsed time: 00:00:46
Finished restore at 23-DEC-14
Starting recover at 23-DEC-14
using channel ORA_DISK_1
starting media recovery
archive log thread 2 sequence 45 is already on disk as file /u01/app/oracle/archlog/2_45_858567385.arc
archive log thread 2 sequence 46 is already on disk as file /u01/app/oracle/archlog/2_46_858567385.arc
archive log thread 2 sequence 47 is already on disk as file /home/oracle/arch/2_47_858567385.arc
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 12/23/2014 08:49:44
RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of log thread 1 seq 50 lowscn 1724286 found to restore
RMAN-06025: no backup of log thread 1 seq 49 lowscn 1721151 found to restore
RMAN-06025: no backup of log thread 1 seq 48 lowscn 1713072 found to restore
RMAN>
报错,缺少节点一刚生成的那两个归档日志和seq 为50的归档日志(应该是后来新产生的)
4:拷贝缺少的归档日志
需要把缺少的归档日志拷贝到rac2下。
[oracle@rac1 archlog]$ scp 1_48_858567385.arc rac2:/u01/app/oracle/archlog/
1_48_858567385.arc 100% 1897KB 1.9MB/s 00:00
[oracle@rac1 archlog]$ scp 1_49_858567385.arc rac2:/u01/app/oracle/archlog/
1_49_858567385.arc 100% 1853KB 1.8MB/s 00:00
[oracle@rac1 archlog]$ scp 1_50_858567385.arc rac2:/u01/app/oracle/archlog/
1_50_858567385.arc 100% 1005KB 1.0MB/s 00:00
RMAN> crosscheck archivelog all;
现在状态都是AVALIABLE,不是EXPIRED了。
RMAN> run
2> {
3> restore database;
4> recover database;
5> alter database open;
6> }
Starting restore at 23-DEC-14
using channel ORA_DISK_1
skipping datafile 1; already restored to file +DATA/prod/datafile/system.256.857444647
skipping datafile 2; already restored to file +DATA/prod/datafile/undotbs1.258.857444651
skipping datafile 3; already restored to file +DATA/prod/datafile/sysaux.257.857444649
skipping datafile 4; already restored to file +DATA/prod/datafile/users.259.867055739
skipping datafile 5; already restored to file +DATA/prod/datafile/example.264.857444773
skipping datafile 6; already restored to file +DATA/prod/datafile/undotbs2.265.857444885
restore not done; all files readonly, offline, or already restored
Finished restore at 23-DEC-14
Starting recover at 23-DEC-14
using channel ORA_DISK_1
starting media recovery
archive log thread 1 sequence 48 is already on disk as file /u01/app/oracle/archlog/1_48_858567385.arc
archive log thread 1 sequence 49 is already on disk as file /u01/app/oracle/archlog/1_49_858567385.arc
archive log thread 1 sequence 50 is already on disk as file /u01/app/oracle/archlog/1_50_858567385.arc
archive log thread 2 sequence 45 is already on disk as file /u01/app/oracle/archlog/2_45_858567385.arc
archive log thread 2 sequence 46 is already on disk as file /u01/app/oracle/archlog/2_46_858567385.arc
archive log thread 2 sequence 47 is already on disk as file /home/oracle/arch/2_47_858567385.arc
archive log filename=/u01/app/oracle/archlog/2_45_858567385.arc thread=2 sequence=45
archive log filename=/u01/app/oracle/archlog/1_48_858567385.arc thread=1 sequence=48
archive log filename=/u01/app/oracle/archlog/1_49_858567385.arc thread=1 sequence=49
archive log filename=/u01/app/oracle/archlog/2_46_858567385.arc thread=2 sequence=46
media recovery complete, elapsed time: 00:00:05
Finished recover at 23-DEC-14
database opened
5:验证
SQL> select * from scott.t order by id;
ID NAME
---------- --------------------------------------------------
1 丹丹
2 丹丹
3 丹丹
5 丹丹
6 jiao
7 jiao
8 jiao
9 song
10 song
11 jiao
12 jiao
ID NAME
---------- --------------------------------------------------
13 jiao
14 jiao
15 jiao
16 jiaojiao
17 dan
18 dan
19 dan
20 dandan
21 dandan
20 rows selected.
--数据全恢复过来了。
可是每次都需要拷贝另一个节点的归档日志,多麻烦,而且不智能。
五:设置正确NFS挂载
上面每次恢复时,都需要拷贝归档日志,所以设置成正确的归档挂载,看看。
现打算将rac2的归档路径:/u01/app/oracle/archlog共享给rac1的归档路径/u01/app/oracle/archlog。
--这是第二天(12-24日进行的)
--重新打开数据库,不知为何,发现在节点2上的归档路径,又变成了/home/oracle/arch.
SQL> alter system set log_archive_dest_1='location=/u01/app/oracle/archlog' sid = 'prod2';
System altered.
现再重启数据库后,看到没再变回去了(哎,太愚笨,之前都没指定实例名)。
1:Umount掉原先错误挂载
Rac 1:
[oracle@rac1 archlog]$ su -
Password:
[root@rac1 ~]# umount /u01/app/oracle/archivelog2
umount: /u01/app/oracle/archivelog2: device is busy
umount: /u01/app/oracle/archivelog2: device is busy
--如果显示device is busy,就用fuser -k命令:
[root@rac1 ~]# fuser -k /u01/app/oracle/archivelog2
/u01/app/oracle/archivelog2: 9251c 13919c
[root@rac1 ~]# umount /u01/app/oracle/archivelog2
Rac2:
[root@rac2 ~]# umount /u01/app/oracle/archivelog1
2:移动归档日志
--以免rac1的/u01/app/oracle/archlog/下的归档日志被覆盖掉,要先将其下面的归档日志移动到另一目录下。
/*
--此时,rac1下又生成了好几个归档日志:
-rw-r----- 1 oracle oinstall 1001984 Dec 23 09:09 1_51_858567385.arc
-rw-rw---- 1 oracle oinstall 1297920 Dec 24 06:22 1_52_858567385.arc
-rw-rw---- 1 oracle oinstall 8364544 Dec 24 07:21 1_53_858567385.arc
Rac2下新生成了俩个归档日志:
-rw-r----- 1 oracle oinstall 1024 Dec 24 07:21 2_52_858567385.arc
-rw-r----- 1 oracle oinstall 3051520 Dec 24 07:21 2_51_858567385.arc
*/
创建目录:
[oracle@rac1 archlog]$ pwd
/u01/app/oracle
[oracle@rac1 oracle]$ mkdir archlog_temp
移动文件:
[oracle@rac1 oracle]$ mv archlog/* archlog_temp/
[oracle@rac1 oracle]$ cd archlog_temp/
[oracle@rac1 archlog_temp]$ ls
1_42_858567385.arc 1_44_858567385.arc 1_46_858567385.arc 1_48_858567385.arc 1_50_858567385.arc 1_52_858567385.arc
1_43_858567385.arc 1_45_858567385.arc 1_47_858567385.arc 1_49_858567385.arc 1_51_858567385.arc 1_53_858567385.arc
3:挂载
将rac2的/u01/app/oracle/archlog共享给rac1的/u01/app/oracle/archlog.
--在rac1下执行:
[root@rac1 ~]# mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,timeo=600,actimeo=0 rac2:/u01/app/oracle/archlog /u01/app/oracle/archlog
[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ cd /u01/app/oracle/archlog
[oracle@rac1 archlog]$ ls -ltr
total 11708
-rw-rw---- 1 oracle oinstall 4028416 Dec 23 08:13 2_45_858567385.arc
-rw-rw---- 1 oracle oinstall 3584 Dec 23 08:13 2_46_858567385.arc
-rw-r----- 1 oracle oinstall 1942528 Dec 23 09:03 1_48_858567385.arc
-rw-r----- 1 oracle oinstall 1897472 Dec 23 09:04 1_49_858567385.arc
-rw-r----- 1 oracle oinstall 1029120 Dec 23 09:04 1_50_858567385.arc
-rw-r----- 1 oracle oinstall 1024 Dec 24 07:21 2_52_858567385.arc
-rw-r----- 1 oracle oinstall 3051520 Dec 24 07:21 2_51_858567385.arc
可以看到挂载成功。
4:移回归档日志
将archlog_temp/下的归档日志移动回来
--为方便后续移动所有归档日志,删除上面实验为了实现完全恢复拷贝过来的48,49,50
[oracle@rac1 archlog]$ rm 1*
--移动:
[oracle@rac1 archlog]$ mv /u01/app/oracle/archlog_temp/* /u01/app/oracle/archlog
[oracle@rac1 archlog]$ ls -ltr
total 38144
-rw-rw---- 1 oracle oinstall 13805568 Dec 22 08:22 1_42_858567385.arc
-rw-rw---- 1 oracle oinstall 314368 Dec 22 08:36 1_43_858567385.arc
-rw-rw---- 1 oracle oinstall 1024 Dec 22 08:36 1_44_858567385.arc
-rw-rw---- 1 oracle oinstall 2052096 Dec 22 09:28 1_45_858567385.arc
-rw-rw---- 1 oracle oinstall 1024 Dec 22 09:28 1_46_858567385.arc
-rw-rw---- 1 oracle oinstall 161280 Dec 23 07:05 1_47_858567385.arc
-rw-rw---- 1 oracle oinstall 1942528 Dec 23 07:43 1_48_858567385.arc
-rw-rw---- 1 oracle oinstall 1897472 Dec 23 08:03 1_49_858567385.arc
-rw-rw---- 1 oracle oinstall 4028416 Dec 23 08:13 2_45_858567385.arc
-rw-rw---- 1 oracle oinstall 3584 Dec 23 08:13 2_46_858567385.arc
-rw-rw---- 1 oracle oinstall 1029120 Dec 23 08:42 1_50_858567385.arc
-rw-r----- 1 oracle oinstall 1001984 Dec 23 09:09 1_51_858567385.arc
-rw-rw---- 1 oracle oinstall 1297920 Dec 24 06:22 1_52_858567385.arc
-rw-r----- 1 oracle oinstall 1024 Dec 24 07:21 2_52_858567385.arc
-rw-r----- 1 oracle oinstall 3051520 Dec 24 07:21 2_51_858567385.arc
-rw-rw---- 1 oracle oinstall 8364544 Dec 24 07:21 1_53_858567385.arc
5:crosscheck archivelog all;
select name,status from v$archived_log where status <>'A'
确保状态都为A,而不是X。
六:数据恢复
--再造数据,看看在这样配置NFS,能否实现完全恢复。
1:准备测试数据
Rac2:
SQL> insert into t(id,name) values(22,'dan')
2 ;
1 row created.
SQL> commit;
Commit complete.
SQL> conn / as sysdba
Connected.
SQL> alter system switch logfile;
System altered.
SQL> /
System altered.
生成了如下两个归档日志;
-rw-r----- 1 oracle oinstall 1684480 Dec 24 07:59 2_53_858567385.arc
-rw-r----- 1 oracle oinstall 2560 Dec 24 07:59 2_54_858567385.arc
Rac1:
[oracle@rac1 archlog]$ sqlplus scott/tiger;
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Dec 24 08:00:28 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> insert into t(id,name) values(23,'dandan');
1 row created.
SQL> commit;
Commit complete.
SQL> conn / as sysdba
Connected.
SQL> alter system switch logfile;
System altered.
SQL> /
System altered.
生成了如下归档日志:
-rw-rw---- 1 oracle oinstall 1625600 Dec 24 08:01 1_54_858567385.arc
-rw-rw---- 1 oracle oinstall 11776 Dec 24 08:01 1_55_858567385.arc
2:模拟数据库遭到破坏
关库:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
[oracle@rac2 archlog]$ export ORACLE_SID=+ASM2
[oracle@rac2 archlog]$ asmcmd
ASMCMD> cd DATA/PROD/DATAFILE
ASMCMD> rm USERS.259.867055739
在rac2上启库:
SQL> startup;
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 247465552 bytes
Database Buffers 33554432 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '+DATA/prod/datafile/users.259.867055739'
--恢复:
RMAN> run
2> {restore database;
3> recover database;
4> alter database open;
5> }
Starting restore at 24-DEC-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=143 instance=prod2 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to +DATA/prod/datafile/system.256.857444647
restoring datafile 00002 to +DATA/prod/datafile/undotbs1.258.857444651
restoring datafile 00003 to +DATA/prod/datafile/sysaux.257.857444649
restoring datafile 00004 to +DATA/prod/datafile/users.259.867055739
restoring datafile 00005 to +DATA/prod/datafile/example.264.857444773
restoring datafile 00006 to +DATA/prod/datafile/undotbs2.265.857444885
channel ORA_DISK_1: reading from backup piece /home/oracle/backup/rman_bak/PROD_57_1_20141223.bak
channel ORA_DISK_1: restored backup piece 1
piece handle=/home/oracle/backup/rman_bak/PROD_57_1_20141223.bak tag=TAG20141223T073857
channel ORA_DISK_1: restore complete, elapsed time: 00:00:15
Finished restore at 24-DEC-14
Starting recover at 24-DEC-14
using channel ORA_DISK_1
starting media recovery
archive log thread 1 sequence 48 is already on disk as file /u01/app/oracle/archlog/1_48_858567385.arc
archive log thread 1 sequence 49 is already on disk as file /u01/app/oracle/archlog/1_49_858567385.arc
archive log thread 1 sequence 50 is already on disk as file /u01/app/oracle/archlog/1_50_858567385.arc
archive log thread 1 sequence 51 is already on disk as file /u01/app/oracle/archlog/1_51_858567385.arc
archive log thread 1 sequence 52 is already on disk as file /u01/app/oracle/archlog/1_52_858567385.arc
archive log thread 1 sequence 53 is already on disk as file /u01/app/oracle/archlog/1_53_858567385.arc
archive log thread 1 sequence 54 is already on disk as file /u01/app/oracle/archlog/1_54_858567385.arc
archive log thread 1 sequence 55 is already on disk as file /u01/app/oracle/archlog/1_55_858567385.arc
archive log thread 2 sequence 45 is already on disk as file /u01/app/oracle/archlog/2_45_858567385.arc
archive log thread 2 sequence 46 is already on disk as file /u01/app/oracle/archlog/2_46_858567385.arc
archive log thread 2 sequence 47 is already on disk as file /home/oracle/arch/2_47_858567385.arc
archive log thread 2 sequence 48 is already on disk as file /home/oracle/arch/2_48_858567385.arc
archive log thread 2 sequence 49 is already on disk as file /home/oracle/arch/2_49_858567385.arc
archive log thread 2 sequence 50 is already on disk as file /home/oracle/arch/2_50_858567385.arc
archive log thread 2 sequence 51 is already on disk as file /u01/app/oracle/archlog/2_51_858567385.arc
archive log thread 2 sequence 52 is already on disk as file /u01/app/oracle/archlog/2_52_858567385.arc
archive log thread 2 sequence 53 is already on disk as file /u01/app/oracle/archlog/2_53_858567385.arc
archive log thread 2 sequence 54 is already on disk as file /u01/app/oracle/archlog/2_54_858567385.arc
archive log filename=/u01/app/oracle/archlog/2_45_858567385.arc thread=2 sequence=45
archive log filename=/u01/app/oracle/archlog/1_48_858567385.arc thread=1 sequence=48
archive log filename=/u01/app/oracle/archlog/1_49_858567385.arc thread=1 sequence=49
archive log filename=/u01/app/oracle/archlog/1_50_858567385.arc thread=1 sequence=50
archive log filename=/u01/app/oracle/archlog/2_46_858567385.arc thread=2 sequence=46
archive log filename=/home/oracle/arch/2_47_858567385.arc thread=2 sequence=47
archive log filename=/u01/app/oracle/archlog/1_51_858567385.arc thread=1 sequence=51
archive log filename=/home/oracle/arch/2_48_858567385.arc thread=2 sequence=48
archive log filename=/home/oracle/arch/2_49_858567385.arc thread=2 sequence=49
archive log filename=/u01/app/oracle/archlog/1_52_858567385.arc thread=1 sequence=52
archive log filename=/home/oracle/arch/2_50_858567385.arc thread=2 sequence=50
archive log filename=/u01/app/oracle/archlog/1_53_858567385.arc thread=1 sequence=53
archive log filename=/u01/app/oracle/archlog/2_51_858567385.arc thread=2 sequence=51
archive log filename=/u01/app/oracle/archlog/2_52_858567385.arc thread=2 sequence=52
archive log filename=/u01/app/oracle/archlog/2_53_858567385.arc thread=2 sequence=53
archive log filename=/u01/app/oracle/archlog/1_54_858567385.arc thread=1 sequence=54
media recovery complete, elapsed time: 00:00:08
Finished recover at 24-DEC-14
database opened
RMAN>
3:验证
[oracle@rac2 archlog]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Dec 24 08:11:57 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> select * from scott.t order by id;
ID NAME
---------- --------------------------------------------------
1 丹丹
2 丹丹
3 丹丹
5 丹丹
6 jiao
7 jiao
8 jiao
9 song
10 song
11 jiao
12 jiao
ID NAME
---------- --------------------------------------------------
13 jiao
14 jiao
15 jiao
16 jiaojiao
17 dan
18 dan
19 dan
20 dandan
21 dandan
22 dan
23 dandan
22 rows selected.
恢复成功,欧耶……
七:补充NFS共享特点
例如,把rac2的/u01/app/oracle/archlog 挂载到rac1的/u01/app/oracle/archivelog2下。
此时在rac1下/u01/app/oracle/archivelog2写文件,会写到rac2的/u01/app/oracle/archlog 这里。
在rac2 的/u01/app/oracle/archlog 写文件,rac1的u01/app/oracle/archivelog2也能看到。
但是,如果在挂载前,rac1的/u01/app/oracle/archivelog2已经有文件存在了,挂载后则会覆盖。
Umount后,会显示出来。
如果在挂载前rac2的u01/app/oracle/archlog 有个新文件,挂载后,能在rac1下看到新文件的。