ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RAC环境利用备份恢复RAC数据库(五)

RAC环境利用备份恢复RAC数据库(五)

原创 Linux操作系统 作者:yangtingkun 时间:2010-04-18 23:48:46 0 删除 编辑

在另外的RAC环境中利用备份恢复RAC数据库的过程。

这一篇描述数据库恢复过程中碰到问题的最终解决。

RAC环境利用备份恢复RAC数据库(一):http://yangtingkun.itpub.net/post/468/499067

RAC环境利用备份恢复RAC数据库(二):http://yangtingkun.itpub.net/post/468/499096

RAC环境利用备份恢复RAC数据库(三):http://yangtingkun.itpub.net/post/468/499134

RAC环境利用备份恢复RAC数据库(四):http://yangtingkun.itpub.net/post/468/499267

 

 

由于篇幅的问题,上一篇文章只是描述了问题的现象,以及尝试的一些解决方法,但是这些方法并不奏效。

看来只能通过TRACE的方法来检查导致问题的原因了:

bash-3.00$ rman target / log=rman.log trace=rman.trc
RMAN> debug on;
RMAN> RUN
2> {
3> ALLOCATE CHANNEL C1 DEVICE TYPE DISK;
4> SET NEWNAME FOR DATAFILE 1 TO '+DATA/tradedb/tradedb_system_1_4g';
5> SET NEWNAME FOR DATAFILE 2 TO '+DATA/tradedb/tradedb_undotbs1_1_4g';
6> SET NEWNAME FOR DATAFILE 3 TO '+DATA/tradedb/tradedb_undotbs1_2_4g';
7> SET NEWNAME FOR DATAFILE 4 TO '+DATA/tradedb/tradedb_undotbs1_3_4g';
8> SET NEWNAME FOR DATAFILE 5 TO '+DATA/tradedb/tradedb_undotbs1_4_4g';
9> SET NEWNAME FOR DATAFILE 6 TO '+DATA/tradedb/tradedb_undotbs1_5_4g';
10> SET NEWNAME FOR DATAFILE 7 TO '+DATA/tradedb/tradedb_sysaux_1_1g';
11> SET NEWNAME FOR DATAFILE 8 TO '+DATA/tradedb/tradedb_undotbs2_1_4g';
12> SET NEWNAME FOR DATAFILE 9 TO '+DATA/tradedb/tradedb_undotbs2_2_4g';
13> SET NEWNAME FOR DATAFILE 10 TO '+DATA/tradedb/tradedb_undotbs2_3_4g';
14> SET NEWNAME FOR DATAFILE 11 TO '+DATA/tradedb/tradedb_undotbs2_4_4g';
15> SET NEWNAME FOR DATAFILE 12 TO '+DATA/tradedb/tradedb_undotbs2_5_4g';
16> SET NEWNAME FOR DATAFILE 13 TO '+DATA/tradedb/tradedb_users_1_200m';
17> SET NEWNAME FOR DATAFILE 14 TO '+DATA/tradedb/tradedb_ndmain_1_4g';
18> SET NEWNAME FOR DATAFILE 15 TO '+DATA/tradedb/tradedb_ndmain_2_4g';
19> SET NEWNAME FOR DATAFILE 16 TO '+DATA/tradedb/tradedb_ndmain_3_4g';
20> SET NEWNAME FOR DATAFILE 17 TO '+DATA/tradedb/tradedb_anhui_1';
21> SET NEWNAME FOR DATAFILE 18 TO '+DATA/tradedb/tradedb_anhui_2';
22> SET NEWNAME FOR DATAFILE 19 TO '+DATA/tradedb/tradedb_anhui_3';
23> SET NEWNAME FOR DATAFILE 20 TO '+DATA/tradedb/tradedb_anhui_4';
24> SET NEWNAME FOR DATAFILE 21 TO '+DATA/tradedb/tradedb_zhejiang_1_4g';
25> SET NEWNAME FOR DATAFILE 22 TO '+DATA/tradedb/tradedb_zhejiang_2_4g';
26> SET NEWNAME FOR DATAFILE 23 TO '+DATA/tradedb/tradedb_zhejiang_3_4g';
27> SET NEWNAME FOR DATAFILE 24 TO '+DATA/tradedb/tradedb_zhejiang_4_4g';
28> SET NEWNAME FOR DATAFILE 25 TO '+DATA/tradedb/tradedb_zhejiang_5_4g';
29> SET NEWNAME FOR DATAFILE 26 TO '+DATA/tradedb/tradedb_zhejiang_6_4g';
30> SET NEWNAME FOR DATAFILE 27 TO '+DATA/tradedb/tradedb_zhejiang_7_4g';
31> SET NEWNAME FOR DATAFILE 28 TO '+DATA/tradedb/tradedb_zhejiang_8_4g';
32> SET NEWNAME FOR DATAFILE 29 TO '+DATA/tradedb/tradedb_zhejiang_9_4g';
33> SET NEWNAME FOR DATAFILE 30 TO '+DATA/tradedb/tradedb_zhejiang_10_4g';
34> SET NEWNAME FOR DATAFILE 31 TO '+DATA/tradedb/tradedb_zhejiang_11_4g';
35> SET NEWNAME FOR DATAFILE 32 TO '+DATA/tradedb/tradedb_zhejiang_12_4g';
36> SET NEWNAME FOR DATAFILE 33 TO '+DATA/tradedb/tradedb_zhejiang_13_4g';
37> SET NEWNAME FOR DATAFILE 34 TO '+DATA/tradedb/tradedb_zhejiang_14_4g';
38> SET NEWNAME FOR DATAFILE 35 TO '+DATA/tradedb/tradedb_zhejiang_15_4g';
39> SET NEWNAME FOR DATAFILE 36 TO '+DATA/tradedb/tradedb_zhejiang_16_4g';
40> SET NEWNAME FOR DATAFILE 37 TO '+DATA/tradedb/tradedb_zhejiang_17_4g';
41> SET NEWNAME FOR DATAFILE 38 TO '+DATA/tradedb/tradedb_zhejiang_18_4g';
42> SET NEWNAME FOR DATAFILE 39 TO '+DATA/tradedb/tradedb_sysaux_2_1g';
43> SET NEWNAME FOR DATAFILE 40 TO '+DATA/tradedb/tradedb_gpo_1_4g';
44> SET NEWNAME FOR DATAFILE 41 TO '+DATA/tradedb/tradedb_gpo_2_4g';
45> SET NEWNAME FOR DATAFILE 42 TO '+DATA/tradedb/tradedb_gpo_3_4g';
46> SET NEWNAME FOR DATAFILE 43 TO '+DATA/tradedb/tradedb_gpo_4_4g';
47> SET NEWNAME FOR DATAFILE 44 TO '+DATA/tradedb/tradedb_zhejiang_19_4g';
48> SET NEWNAME FOR DATAFILE 45 TO '+DATA/tradedb/tradedb_zhejiang_20_4g';
49> SET NEWNAME FOR DATAFILE 46 TO '+DATA/tradedb/tradedb_beijing_1_4g';
50> SET NEWNAME FOR DATAFILE 47 TO '+DATA/tradedb/tradedb_beijing_2_4g';
51> SET NEWNAME FOR DATAFILE 48 TO '+DATA/tradedb/tradedb_beijing_3_4g';
52> SET NEWNAME FOR DATAFILE 49 TO '+DATA/tradedb/tradedb_beijing_4_4g';
53> SET NEWNAME FOR DATAFILE 50 TO '+DATA/tradedb/tradedb_beijing_5_4g';
54> SET NEWNAME FOR DATAFILE 51 TO '+DATA/tradedb/tradedb_beijing_6_4g';
55> SET NEWNAME FOR DATAFILE 52 TO '+DATA/tradedb/tradedb_beijing_7_4g';
56> SET NEWNAME FOR DATAFILE 53 TO '+DATA/tradedb/tradedb_beijing_8_4g';
57> SET NEWNAME FOR DATAFILE 54 TO '+DATA/tradedb/tradedb_beijing_9_4g';
58> SET NEWNAME FOR DATAFILE 55 TO '+DATA/tradedb/tradedb_beijing_10_4g';
59> SET NEWNAME FOR DATAFILE 56 TO '+DATA/tradedb/tradedb_beijing_11_4g';
60> SET NEWNAME FOR DATAFILE 57 TO '+DATA/tradedb/tradedb_beijing_12_4g';
61> SET NEWNAME FOR DATAFILE 58 TO '+DATA/tradedb/tradedb_beijing_13_4g';
62> SET NEWNAME FOR DATAFILE 59 TO '+DATA/tradedb/tradedb_beijing_14_4g';
63> SET NEWNAME FOR DATAFILE 60 TO '+DATA/tradedb/tradedb_beijing_15_4g';
64> RESTORE DATABASE;
65> SWITCH DATAFILE ALL;
66> SWITCH TEMPFILE ALL;
67> RELEASE CHANNEL C1;
68> }
RMAN> debug off;
RMAN> exit

下面检查RMAN生成的TRACE文件,由于文件包含了大量的信息,这里只列出和问题相关的部分信息:

RMAN-08003: 通道 C1: 正在读取备份段 /data/backup/tradedb/a7kmlkem_1_1

DBGSQL:        EXEC SQL AT TARGET select decode(open_mode,'MOUNTED',0,'READ WRITE',1,'READ ONLY',1,0) into :b1  from v$database  [11
:15:27.012]
DBGSQL:           sqlcode=0 [11:15:27.014]
DBGSQL:              :b1 = 0
DBGMISC:      EXITED krmzlog [11:15:27.015] elapsed time [00:00:00:00.002]
DBGRPC:       krmxrpc: xc=4311199728 kpurpc2 rc=3123 db=target proc=DBMS_BACKUP_RESTORE.RESTOREBACKUPPIECE
DBGRPC:       krmxrpc: xc=4311199728 chid=C1 rpc count=78
DBGRPC:       krmxrpc: xc=4311199728 starting longrunning RPC #78 to target: DBMS_BACKUP_RESTORE.RESTOREBACKUPPIECE
DBGRPC:       krmxr: xc=4311199728 started long running rpc
DBGRPC:       krmxpoq: xc=4311199728, action="0000078 STARTED40", col_l=17, ind=0, sid=161
DBGRPC:       krmxr: callback returned TRUE, skipping sleep
DBGRPC:       krmxpoq: xc=4311199728, action="0000078 STARTED40", col_l=17, ind=0, sid=161
DBGRPC:       krmxr: sleeping for 1 seconds
DBGRPC:       krmxpoq: xc=4311199728, action="0000078 FINISHED40", col_l=18, ind=0, sid=161
DBGRPC:       krmxpod: xc=4311199728 has finished remote rpc #78
DBGRPC:       krmxr: xc=4311199728 chid=C1 calling peicnt
DBGRPC:       krmxrpc: xc=4311199728 kpurpc2 rc=19624 db=target proc=DBMS_BACKUP_RESTORE.RESTOREBACKUPPIECE
DBGRPC:       krmxrpc: xc=4311199728 kpurpc2 rc=0 db=target proc=DBMS_BACKUP_RESTORE.FETCHFILERESTORED
DBGRPC:       krmxrpc: xc=4311199728 chid=C1 rpc count(non-blocking)=79
DBGRPC:       krmxrpc: xc=4311199728 RPC #79 completed immediately
DBGMISC:      ENTERED krmzlog [11:15:28.022]
DBGMISC:       Message (len=0) before truncation=ORA-19624:
操作失败, 如果可能请重试 [11:15:28.022] (krmzlog)
DBGMISC:      ORA-19870:
读取备份段 /data/backup/tradedb/a7kmlkem_1_1 时出错 (krmzlog)
DBGMISC:      ORA-19504:
无法创建文件"+DATA/tradedb/tradedb_system_1_4g" (krmzlog)
DBGMISC:      ORA-17502: ksfdcre: 3
未能创建文件 +DATA/tradedb/tradedb_system_1_4g (krmzlog)
DBGMISC:      ORA-15001:
磁盘组 "DATA" 不存在或尚未装载 (krmzlog)
DBGMISC:      ORA-15001: diskgroup "DATA" does not exist or is not mounted (krmzlog)
DBGMISC:       Unwanted messages removed [11:15:28.022] (krmzlog)
RMAN-01005:

根据这里显示的信息,问题一目了然了。ORA-15001:磁盘组DATA不存在或没有装载。由于前面碰到的一个错误,导致在ASM实例在建立DATA磁盘组的时候报错,而且最终DATA磁盘组无法被删除,只能处于OFFLINE状态。这个错误的描述可以参考:建立ASM磁盘组报错ORA-15063:http://yangtingkun.itpub.net/post/468/492945

正是由于这个错误,导致这个环境新建的磁盘组名称为MEMBER,而在重用单实例恢复的脚本的时候,没有将DATA磁盘组名称替换为MEMBER。正是这个低级的错误,引发了整个的错误。

不过RMAN的恢复操作没有将真正有价值的错误信息返回,而只是返回了一些言之不详的错误信息,也是导致这个错误很难被定位的一个原因。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-660082/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1964
  • 访问量
    11074930