Roby's profileblue_princePhotosBlogListsMore ![]() | Help |
|
|
June 24 AIX下ASM配置出错处理在配置AIX的ASM时,执行localconfig add报错,出错信息如下:
test:/@root>#/u01/oracle/product/10.2/bin/localconfig add
/etc/oracle does not exist. Creating it now. exec(): 0509-036 Cannot load program crsctl.bin because of the following errors: 0509-130 Symbol resolution failed for crsctl.bin because: 0509-136 Symbol _Getctype__FPCc (number 102) is not exported from dependent module /usr/lib/libC.a[ansi_64.o]. 0509-136 Symbol _Getnumpunct__FPCc (number 106) is not exported from dependent module /usr/lib/libC.a[ansi_64.o]. 0509-136 Symbol __ct__Q2_3std8_LocinfoFPCci (number 176) is not exported from dependent module /usr/lib/libC.a[ansi_64.o]. 0509-192 Examine .loader section symbols with the 'dump -Tv' command. Successfully accumulated necessary OCR keys. Creating OCR keys for user 'root', privgrp 'system'.. Operation successful. Configuration for local CSS has been initialized Adding to inittab
A file or directory in the path name does not exist. /etc/init.cssd[911]: /etc/oracle/scls_scr/test/root/cssrun: 0403-005 Cannot create the specified file. Startup will be queued to init within 30 seconds. Checking the status of new Oracle init process... exec(): 0509-036 Cannot load program crsctl.bin because of the following errors: 0509-130 Symbol resolution failed for crsctl.bin because: 0509-136 Symbol _Getctype__FPCc (number 102) is not exported from dependent module /usr/lib/libC.a[ansi_64.o]. 0509-136 Symbol _Getnumpunct__FPCc (number 106) is not exported from dependent module /usr/lib/libC.a[ansi_64.o]. 0509-136 Symbol __ct__Q2_3std8_LocinfoFPCci (number 176) is not exported from dependent module /usr/lib/libC.a[ansi_64.o]. 0509-192 Examine .loader section symbols with the 'dump -Tv' command. Giving up: Oracle CSS stack appears NOT to be running. Oracle CSS service would not start as installed Automatic Storage Management(ASM) cannot be used until Oracle CSS service is started 出现这个错误是由于AIX5.3自带的xlC的版本太低所致,需要到IBM的网站上下个新版本的xlC(推荐版本9以后)安装好后再配置,就可以解决问题:
test:/xlc@root>#/u01/oracle/product/10.2/bin/localconfig reset /u01/oracle/product/10.2
Successfully accumulated necessary OCR keys. Creating OCR keys for user 'root', privgrp 'system'.. Operation successful. Configuration for local CSS has been initialized Adding to inittab Startup will be queued to init within 30 seconds. Checking the status of new Oracle init process... Expecting the CRS daemons to be up within 600 seconds. CSS is active on these nodes. test CSS is active on all nodes. Oracle CSS service is installed and running under init(1M) 配置基于ASM存储的STANDBY时日志文件的处理在配置基于ASM存储的STANDBY时,由于控制文件里面记录的联机日志还是原来主库日志文件的信息,因此需要对其做进一步处理。就算是设置了log_file_name_convert这个参数,假如主库的联机日志有两组成员,那么只会有一组成员转换为log_file_name_convert设置的对应ASM目录,另外一个成员还会是原来的目录,另外STANDBY LOGFILE的联机日志目录也不会更改。比如日志文件配置如下,我们看一下整个操作过程:
Thread Group Member Archived Status (MB)
------ ----- ---------------------------------- ---------- ---------------- ------- 1 1 /oradata/datafile/redo1_01.log YES CLEARING 1000 1 1 +DATA/db/onlinelog/redo1_02.log YES CLEARING 1000 1 2 /oradata/datafile/redo1_01.log YES CLEARING_CURRENT 1000 1 2 +DATA/db/onlinelog/redo2_02.log YES CLEARING_CURRENT 1000 1 3 /oradata/datafile/redo3_01.log YES CLEARING 1000 1 3 +DATA/db/onlinelog/redo3_02.log YES CLEARING 1000 Group Member Archived Status (MB)
----- -------------------------------- ---------- ---------------- ------- 11 /oradata/datafile/redo1_01.log NO UNASSIGNED 1000 12 /oradata/datafile/redo1_01.log YES ACTIVE 1000 13 /oradata/datafile/redo1_01.log NO UNASSIGNED 1000 14 /oradata/datafile/redo1_01.log YES UNASSIGNED 1000 首先处理STANDBY LOGFILE,可以把所有的STANDBY LOGFILE GROUP都删除掉重建就行了:
alter database drop standby logfile group 11;
alter database drop standby logfile group 12; alter database drop standby logfile group 13; alter database drop standby logfile group 14; alter database add standby logfile group 11 ('+data') size 1000M;
alter database add standby logfile group 12 ('+data') size 1000M; alter database add standby logfile group 13 ('+data') size 1000M; alter database add standby logfile group 14 ('+data') size 1000M; 对于联机日志,则需要先把各组日志里面不转换为ASM目录的那组成员先删除掉,但是STATUS为CLEARING_CURRENT那组日志成员是无法删除的,可以后续再处理:
alter database drop logfile member '/oradata/datafile/redo1_01.log';
alter database drop logfile member '/oradata/datafile/redo3_01.log';
然后再将对应的日志组CLEAR掉再DROP,由于数据库至少需要两组联机日志,因此只能删除一组联机日志并重建好后才能再处理另一组:
alter database clear logfile group 1;
alter database drop logfile group 1; alter database add logfile group 1 ('+data','+data') size 1000M; alter database clear logfile group 3;
alter database drop logfile group 3; alter database add logfile group 3 ('+data','+data') size 1000M; 等日志组2的状态从CLEARING_CURRENT变成其他状态后,再进一步处理就可以了:
alter database drop logfile member '/oradata/datafile/redo2_01.log';
alter database clear logfile group 2;
alter database drop logfile group 2; alter database add logfile group 2 ('+data','+data') size 1000M; June 23 RMAN restore时ORA-27067错误处理今天在对一个数据库进行RESTORE时一直报ORA-27067,百思不得其解,后面查了下,得知要把备份集改成可读写才行。由于我的数据库备份是备份在NFS上面的,直接把备份集的权限改为666,问题解决。 December 11 关于Exadata(下)在Exadata中,每台Storage Server称为一个Exadata Cell。每个Exadata Cell配置一块具有512MB缓存带电池的RAID卡,一块双端口的Infiniband HCA卡,每个端口连接速度能够达到16Gb/s。如下图所示,一个标准的42U机柜最多可能容纳18台Exadata Cell,配置SAS硬盘的话存储容量能够达到65TB,如果配置SATA硬盘的话则容量为216TB。每个Exadata Cell上的HCA卡双端口分别接到两台不同的Infiniband交换机上以实现冗余。如果需要扩容的话,那么可以添加新的标准机柜,机柜之间的连接通过Infiniband相连。Oracle号称采用这种方式扩容以后,Exadata存储的容量和吞吐量都能够线性增长。 正如前面所说,一个Realm可以跟一台传统存储一样供多个数据库使用,但是传统存储无法控制不同数据库之间的IO消耗能力,有可能一个数据库把一台存储的IO使用完了,导致使用这个存储的其他数据库的IO性能受到影响。而在Exadata上则可以定制IORM(IO Resource Management),方便地将一个Realm中的IO资源分配给不同的数据库使用,比如一个Realm同时给A和B两个数据库使用,我们可以将40%的IO资源给A使用,剩余60%的IO资源给B使用,方便地解决了同一存储不同数据库的IO需求冲突。 December 04 关于Exadata(上)Oracle在今年旧金山的OOW大会上发布了自己和HP合作的第一款硬件产品——Exadata。Exadata包含主机Database Machine和存储Exadata Storage Server两种产品,硬件产品由HP提供,Oracle提供软件支持。Oracle号称该款产品在数据仓库的环境下,相比传统的Oracle数据库有着数量级的性能提升。到底该产品有着怎样的改进和亮点才会让Oracle如此自信,下面我们就Exadata的配置和产品特性做一个简单的了解。 Oracle RAC中的RDS内部互联传统的RAC内部互联大部分都是基于普通网络实现的,目前最为普及的是百兆和千兆网络,最快的也就是尚不普及的万兆网。由于普通网络的速度限制,在需要频繁进行内部通信的多节点RAC数据库中性能就无法得到保证。正是基于这一点,Oracle和Qlogic在2006年2月24号共同发布了基于Infiniband高速互联网络的RDS for Oracle RAC内部互联方案。 如图所示,传统的RAC内部互联协议都是使用UDP协议,这样无论内部互联网络是用普通网络交换机还是Infiniband交换机,都需要先把UDP协议转换成IP协议才能通过网络传输,如果使用Infiniband交换机的话,那么还需要把IP协议转换成为IPoIB协议(IP over Infiniband),这样几经转换,内部互联传输显然效率不高。而使用RDS内部互联的话,那么,Oracle RAC数据库内核可以直接通过RDS协议传输信息,少了几层转换,性能会有质的提升。 November 26 RAC上收集所有节点AWR报告的脚本假如你管理着一个超过十个节点的RAC数据库,而当你查看数据库的AWR报告时,相信你会跟我一样非常头疼,必须一个个节点把各自节点的AWR报告都找出来,然后一个个节点进行查看对比。有没有这么一个脚本,能够将RAC数据库中所有节点的AWR报告整合起来只生成一份,然后我们要诊断RAC数据库的性能时只需要查看这么一份整合好的AWR报告,里面有非常清晰的RAC各节点数据库性能指标的数据排列在一起,可以方便地查看对比各个节点的性能指标差异。Oracle从11g开始提供了$ORACLE_HOME/rdbms/admin/spawrrac.sql这个脚本,就可以满足此需求,而且还可以向下兼容到10g使用,非常方便。 November 12 RAC中的跨节点并行在RAC中,我们可以通过设置跨节点并行,将并行操作分布到RAC中的不同节点同时进行,以便发挥整个RAC环境的最大运算能力。在RAC中设置跨节点并行主要是通过设置parallel_instance_group和instance_groups这两个参数进行的。 instance_groups这个参数主要是设置该节点实例是否属于某一个实例组,这个实例组的命名可以根据你的需要随便命名,而没有严格的限制。每个节点可以设置多个不同的实例组名,实例组名用逗号隔开,比如:instance_groups=crm,erp,oltp。这样只要其他节点的instance_groups参数中有设置成一个一样的名字,就表示这个节点也属于这个实例组。比如在一个4节点RAC的环境中,A节点的instance_groups设置为(crm,erp,oltp),B节点设置为(crm,oltp),C节点设置为(crm,erp),D节点设置为(crm,erp,oltp),那么就有A、B、C、D这4个节点共同组成crm这个实例组,A、C、D这3个节点组成erp这个实例组,A、B、D这3个节点组成oltp这个实例组。 parallel_instance_group设置的值为instance_groups里面设置的值,表明这个节点上面进行的并行操作可以跨越哪些实例组。回到上面的例子,假如A节点的parallel_instance_group设置为crm,由于crm这个实例组的成员是A、B、C、D四个节点都有,那么A节点上的并行操作就可以跨越所有的4个节点。如果A节点的parallel_instance_group设置为erp,那么A节点并行操作就可以跨越A、C、D这3个节点。如果一个节点的parallel_instance_group设置的参数在instance_groups中没有设置,那么这个节点的并行操作将只会在本节点进行,假如B节点的parallel_instance_group设置为erp,那么它上面的并行操作将不会跨节点进行。 默认情况下这两个参数都为空,那么并行操作默认将会是跨节点并行的。当然并不是设置了这两个值就一定会发生跨节点并行,是由优化器和RAC的负载均衡机制共同决定一个并行操作是否跨节点并行,需要跨越实例组中的哪几个节点并行还是实例组的所有节点并行,每个节点分配多少个并行进程工作。由于跨节点并行还有内部互联通信的开销,因此并不一定就会比单节点并行会快多少,只有那些很大的并行操作可能才需要到跨节点并行。这个可以根据测试再进行变更。在我们运行的实际案例中,由于跨节点并行的机制比较复杂,有时候会触发一些BUG,甚至并行度为DEFAULT的表在进行跨节点并行DML时一个并行进程死掉导致整个节点宕机。推荐的做法是系统级别的parallel_instance_group这个参数不要设置,不同的程序在部署之前做好测试工作,看是否需要跨节点并行。由于parallel_instance_group是可以在会话级别设置的,可以修改一些需要跨节点并行的程序在执行之前先执行alter session set parallel_instance_group=……一下,然后只限制这些程序跨节点并行。 November 05 RAC的负载均衡RAC的负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工作。在RAC中,负载均衡分为两种,一种是基于客户端连接的,另外一种是基于服务器端的。
这样当客户端连接RAC数据库时,会随机在TNS里面挑个监听地址进行连接。在Oracle10g以前,假如有节点宕机或者类似事故时,客户端可能还是选择连接到这个节点,这样会发生较长时间的TCP等待超时。而在10g以后,由于VIP和FAN的引入,这样的情况可以得到很大程度的改善。客户端的负载均衡在通常情况下能够较好地工作,但是由于连接是在客户端随机发起的,这样客户端并不知道RAC各节点的负荷及连接数情况,有可能负荷大的节点还会源源不断地增加新的连接,导致RAC节点无法均衡工作。
这样服务器端的LOAD BALANCE便配置完成。
另外可以额外设置连接的负载均衡:
October 21 并行度为DEFAULT的表进行PDML时有可能导致RAC中的节点重启也发生过几次,一并记录一下,好记性不如烂笔头。并行度设置为DEFAULT的表如果进行PDML时,会导致相应的节点重启,DEFAULT在并行度默认是按cpu_count*parallel_threads_per_cpu来跑的,但是引起节点重启也是比较怪异的。解决办法便是将表的并行度设置为一个具体的数值。碰到过很多引起节点重启的怪异问题,接下逐渐记录。 wmsys.wm_concat这个函数可能导致RAC节点重启应用中有个行列转换需要使用wmsys.wm_concat这个函数来做,结果发现一旦使用了这个函数,就会导致相应的节点CPU和内存消耗非常之高,接下主机无法响应,导致节点被踢出重启,甚至其他节点为了防止splitbrain而将自己也重启了。看来这个函数的使用还是需要小心。 August 01 并行度设置为default时可能会导致PDML ora-12805错误最近在测试ETL迁移,结果有几条SQL语句老是报ora-12805错误,然后没有进一步的信息。隐约记得这个问题以前处理过,不过具体细节却是忘了。早上准备开SR了,wanghai过来提醒了一下,这几张表的并行为default,应该是因为这个原因引起的。猛然想起来去年也碰到这问题,解决办法便是把表的并行度固定住,设置为具体的数字,不再让它为DEFAULT,这样就好了。好记性不如烂笔头,还是需要多做做笔记。 July 22 如何转换RAC中RDS和UDP互联配置基于Infiniband RDS内部互联方案的RAC时,需要重新build Oracle library。在操作之前需要先把整个RAC中的ASM实例和数据库实例都停止掉,然后进行BUILD:
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk ipc_rds ioracle 而将RDS切换回普通的UDP协议时,则比较简单:
$ cd $ORACLE_HOME/rdbms/lib $ make -f ins_rdbms.mk ipc_g ioracle Solaris安装RAC运行root.sh失败解决一例前段时间一个朋友在安装Solaris上的RAC时,安装clusterware最后一步运行root.sh总是无法成功,报如下的错:
# ./root.sh WARNING: directory '/oracle/product/10.2' is not owned by root
WARNING: directory '/oracle/product' is not owned by root
WARNING: directory '/oracle' is not owned by root
Checking to see if Oracle CRS stack is already configured
Setting the permissions on OCR backup directory
Setting up NS directories
Failed to upgrade Oracle Cluster Registry configuration r
看了一下crs的alert日志:
2008-07-01 23:51:53.642 [client(2216)]CRS-1006:The OCR location /oracle/OCR_A is inaccessible. Details i n /oracle/product/10.2/cluster/log/db1/client/ocrconfig_2216.log. 2008-07-01 23:51:53.807 [client(2216)]CRS-1001:The OCR was formatted using version 2.
细看/oracle/product/10.2/cluster/log/db1/client/ocrconfig_2216.log:
Oracle Database 10g CRS Release 10.2.0.1.0 Production Copyright 1996, 2005 Oracl e. All rights reserved. 2008-07-01 23:51:53.612: [ OCRCONF][1]ocrconfig starts... 2008-07-01 23:51:53.612: [ OCRCONF][1]Upgrading OCR data 2008-07-01 23:51:53.630: [ OCRRAW][1]propriogid:1: INVALID FORMAT 2008-07-01 23:51:53.631: [ OCRRAW][1]ibctx:1:ERROR: INVALID FORMAT 2008-07-01 23:51:53.631: [ OCRRAW][1]propri
发现在格式化OCR的盘时出错。第一个反应是祼设备权限的问题,折腾几次后发现这个并不存在问题。最终定位到问题是由于ocr和voting disk对应的祼设备用了cylinder 0,而Solaris上祼设备的cylinder 0是要预留给系统使用的,因此才会导致格式化OCR失败。解决办法便是重建OCR和VOTING DISK对应的祼设备,跳过CYLINDER 0。 July 21 RAC中如何更改对外网卡和内部互联网卡的IP及VIP在RAC环境中,有时候由于需要会更改网卡或IP地址,这边简单记录一下操作步骤(参考metalink文档:283684.1)。
1、查看当前PUBLIC网卡和PRIVATE网卡的配置:
test1:/home/oracle>$oifcfg getif
eth1 10.0.100.0 global cluster_interconnect eth0 172.19.20.0 global public 2、更改PUBLIC网卡或者IP:
比如我们需要将PUBLIC网卡从eth0改为bond0,IP地址由172.19.20.0 改为172.13.20.0 。那么首先必须用oifcfg delif 命令删除原先的PUBLIC网卡设置,然后再用oifcfg setif 命令更改网卡及IP配置,这步只要在任意一个节点执行就可以了。(注意:在更改PUBLIC或者PRIVATE网卡及IP之前都需要将RAC中的资源停止,可以使用crs_stop -all来停止)
test1:/home/oracle>$oifcfg delif -global eth0
test1:/home/oracle>$oifcfg setif -global bond0/172.13.20.0:public
再查看可以看到PUBLIC网卡及IP都更改过来了:
test1:/home/oracle>$oifcfg getif
eth1 10.0.100.0 global cluster_interconnect bond0 172.19.20.0 global public 3、更改PRIVATE网卡或者IP:
这一步和更改PUBLIC网卡大同小异,比如说我们需要将PRIVATE网卡从eth1改为ib1:
test1:/home/oracle>$oifcfg delif -global eth1
test1:/home/oracle>$oifcfg setif -global ib1/172.13.20.0:cluster_interconnect
4、更改VIP配置:
更改PUBLIC网卡后,那么RAC各个节点的VIP必须重新配置,以便CRS知道VIP对应PUBLIC网卡名称的变更:
test1:/home/oracle>$srvctl modify nodeapps -n test1 -A 172.13.20.1/255.255.255.0/bond0
这样执行完以后,整个更改便完成了。
June 13 RAC:Write-to-Read TransferThe behavior of the write-to-read transfer is determined by the _FAIRNESS_THRESHOLD parameter,which was introduced in Oracle 8.1.5 and defaults to 4. Prior to the introduction of this parameter,when Instance A held a block in exclusive mode and Instance B requested a read-only copy of that block, Instance A would downgrade its exclusive lock to a shared lock and send the block to Instance B,which would also set a shared lock on the block. However, if Instance A is performing frequent updates From:Pro Database 10g RAC on Linux
June 12 RAC建库时报ASM单实例错误的解决办法 安装好RAC后,在用DBCA建库时选择ASM做为存储方案时,有时候会报错说ASM是单实例环境,不是RAC环境,这样就无法继续建库下来,出错信息如下:
The ASM instance configured on the local node is a single-instance ASM.To create a single-instance database using this ASM instance ,restart DBCA and select the single-instance database option ,to create a RAC database using this ASM instance,convert it to RAC ASM first.
这个错误一般是发生在重装clusterware和database后,这样无论怎么样重启DBCA运行都会报同样的错。具体的解决办法便是在/etc/oratab里面的关于ASM的记录:+ASM1:/u01/app/oracle/product/10.2.0/db_1:N这么一行删除掉,再接着建库就可以了。碰到过多次这个错误,记录在这里备忘一下。 May 15 使用DBMS_FILE_TRANSFER配置DATA GURAD和克隆数据库通常我们配置DATA GUARD,都需要对主库进行备份,再把备份的备份集复制到备库端进行配置。但是当数据库非常大时,尤其是数据库采用ASM作为存储方案时,如果没有足够的空间用于存放备份集,这样显然就无法通过常规的方式来配置STANDBY。利用DBMS_FILE_TRANSFER则可以方便地将主库的数据文件直接传递至备库的ASM磁盘组,这样再也不需要使用中间存储存放备份文件。下面简单介绍一下通过DBMS_FILE_TRANSFER配置基于ASM存储方案的DATA GUARD和克隆数据库的方法。
三、在主库端创建到数据文件目录的directory。
四、在备库端创建好备库的相应目录,比如bdump,udump等目录,另外在备库的ASM实例中创建备库的数据文件、控制文件等目录。
五、在备库的中间数据库上创建好两个DIRECTORY,用于存放传递过来的数据文件和控制文件。
六、在中间数据库开始传输数据文件。
这样依次对主库的每个数据文件进行处理传递后,主库上的数据文件都会传递至备库的ASM磁盘组上。
如果是克隆数据库的话,那么生成一个普通备份控制文件即可:
然后传输控制文件:
八、 配置备用库。 首先配置好备库的参数文件,并且配置好主库和备库的TNS,接下就可以配置备用库了:
如果是配置克隆数据库的话,则直接将数据库MOUNT就行:
执行RMAN的catalog命令,以使控制文件能够识别传输过来的数据文件:
然后将这些数据文件转换为备库的数据文件:
如果是配置DATA GUARD的话,则可以将备库置为恢复模式:
如果是配置克隆数据库的话,那么直接恢复数据库并打开:
这样DATA GUARD和克隆数据库就配置完成了。最后可以把中间操作创建的directory,DB LINK和中间数据库删除掉。 May 14 利用DBMS_FILE_TRANSFER传输数据库文件从Oracle 10g开始,Oracle提供了DBMS_FILE_TRANSFER这么一个程序包,可以方便地在本地数据库和远程数据库,ASM和文件系统间传输数据库文件。这样数据库文件的传输就方便了许多,尤其是在传输基于ASM存储的数据文件时,不再局限于利用RMAN来进行传输。下面介绍一下这个包的用法。 1、COPY_FILE。可以在数据库本机的文件系统之间,ASM磁盘组之间或者文件系统和ASM磁盘组之间方便地传输数据库文件。
2、GET_FILE。从远程数据库读取数据库文件并在本机的文件系统或者ASM磁盘组上创建一份复制文件。
3、PUT_FILE。在本地数据库将数据库文件传输至远程数据库的文件系统或者ASM磁盘组。
April 02 RAC升级到10.2.0.4碰到的几个问题及处理办法
上周末将10.2.0.3的RAC数据库升级到10.2.0.4。在升级过程中碰到了几个问题,记录一下解决办法。 第一个是在CRS打完Patch之后运行root102.sh脚本时报:
Preparing to recopy patched init and RC scripts. Recopying init and RC scripts. ocrcheck failed. Check /u01/oracle/product/10g/crs/srvm/log for more details
这一步事实上是这时候CRS无法启动,而且在/u01/oracle/product/10g/crs/srvm/log这个目录下面没有记录任何东西。尝试着手工启动CRS,报:
/u01/oracle/product/10g/crs/bin/crsctl.bin: error while loading shared libraries: /u01/oracle/product/10g/crs/lib/libclntsh.so.10.1: file too short
查看一下libclntsh.so.10.1,文件大小居然为0。查看该目录下的其他文件的大小和更改时间和备份的目录相比都没变化,解决办法便是将报错的libclntsh.so.10.1文件从升级之前备份的CRS目录COPY回来,再运行脚本就可以了。可见在升级之前做好备份有多重要。 第二个问题是打完PATCH,准备用DBUA升级数据库时将所有节点启动至MOUNT状态,DBUA运行下一步时报错:
DBUA thinks this is a Rerun operation and is trying to connect to the database with oracle home /u01/oracle/product/10g/db. If you believe this is not a Rerun operation, remove the below file and invoke DBUA again. /u01/oracle/product/10g/db/cfgtoollogs/dbua/logs/Welcome_dwdb.txt
但是Welcome_dwdb.txt这个文件压根不存在。这时候只好抛弃DBUA了,手工运行升级脚本,这样数据库才能正常升级成功。 第三个问题是发现发现我们原来RAC内部互联采用的是Infiniband RDS协议变成普通的UDP协议互联了:
Fri Mar 28 21:12:14 2008 cluster interconnect IPC version:Oracle UDP/IP (generic) IPC Vendor 1 proto 2
这个问题是由于在升级过程中ORACLE又重新将内部互联的方案更改为默认的UDP方式。需要重新配置一下RDS内部互联,在配置之前需要把ASM和数据库都停掉,然后重新RELINK成RDS互联:
$ cd $ORACLE_HOME/rdbms/lib $ make -f ins_rdbms.mk ipc_rds ioracle
这样以后,内部互联就恢复成正常的RDS了:
Fri Mar 28 21:25:39 2008 cluster interconnect IPC version:Oracle RDS/IP (generic)
在升级之后我们碰到了一个新的BUG,数据库会报:
ORA-00600: internal error code, arguments: [kddummy_blkchk], [47], [935468], [18038], [], [], [], []
解决办法是将db_block_checksum这个参数改为FALSE,不过这样做会有较大的风险,目前这个BUG ORACLE已经提交BUG开发部门进行开发了。 |
|
|