4 Nodes Oracle10g RAC on Linux x86-64

用时两天给客户安装完了4节点的Oracle10g RAC on Linux x86-64,使用了OCFS2存储数据文件以及ocr和voting disk。概括一下碰到的问题。 1. 基本上完全按照Oracle官方安装文档,但是其中kernel.shmall内核参数的设置,如果按照默认值2097152的话,最多只能使用到8G内存,当配置SGA过高的时候,就会在启动实例的时候报错。 SQL> startup nomount ORA-27102: out of memory Linux-x86_64 Error: 28: No space left on device 需要将此参数值修改为shmmax/PAGE_SIZE值(通过getconf PAGE_SIZE获取),在此次实施中,客户机器为64G内存,PAGE_SIZE = 4096,因此应该设置kernel.shmall = 16475728。 2.…

Continue Reading4 Nodes Oracle10g RAC on Linux x86-64

About SCN propagation in Oracle RAC

关于昨天被客户问到Oracle RAC在节点间的同步问题,今天稍微整理一下。 由于Oracle RAC多节点共用一份数据库Datafile,因此在磁盘存储方面不存在同步问题。那么实际上所谓各节点同步指的是每个节点间SGA的同步,更专业一些的术语其实就是SCN propagation的算法。 在Oracle9i和Oracle10gR1中,SCN propagation默认使用Lamport方案,受到初始化参数MAX_COMMIT_PROPAGATION_DELAY影响,默认的同步间隔是7秒,也就是在极限情况下,一个节点上的更新在7秒后另外的节点才能知道。将该参数值设置为0,则表示要求任何一个事务在commit之后就立刻通知其他节点SCN变更了,这种方式就被称为BOC(Broadcast On Commit)。 在Oracle10gR2和Oracle11g中,BOC被作为了SCN propagation的默认方案,初始化参数MAX_COMMIT_PROPAGATION_DELAY被废弃,转换成了隐含参数_IMMEDIATE_COMMIT_PROPAGATION,默认值为TRUE。 SQL> @hidden Enter value for par: propagation old 14: x.ksppinm like '%_&par%' new 14: x.ksppinm like '%_propagation%' NAME VALUE…

Continue ReadingAbout SCN propagation in Oracle RAC

ORA-00064 When Oracle Database Instance Startup

根据Metalink Bug 5455094的解释,在Oracle9iR2 RAC环境中,如果db_cache_size + db_keep_cache_size总共超过了50G,那么数据库实例就会在启动的时候报ORA-00064错误,无法正常启动。 00064, 00000, "object is too large to allocate on this O/S (%s,%s)" // *Cause: An initialization parameter was set to a value that required…

Continue ReadingORA-00064 When Oracle Database Instance Startup