全部博文(2759)
分类: Oracle
2013-04-28 06:14:00
不过,这其中也有不少朋友与我联系,说是过程中遇到问题,其中大多数 问题 均是 出在 节点2执行oracleasm listdisks时检测不到共享的磁盘。
对于vmware下配置数据库,出现这一问题的原因通常有两个方面,下面分别描述 。
使用VMWARE 配置RAC数据库,一定要选择的VMWARE(VMWARE分为server和workstation两种类型),这一点 三思在文档中专门强调了,有些朋友可能仍未注意 ;再一个就是 各个 vmware 节点的*.vmx配置文件中,添加相关的磁盘共享参数, 否则也有可能导致 无法正常识别共享的磁盘。
下面举一下三思配置环境时,vmx文件中关于磁盘共享参数的示例,如下:
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
scsi1.sharedBus = "virtual"第2个原因就更加BT了,不过这种问题导致磁盘无法共享的例子也不鲜见,出现这种问题 主要是对于 RAC 架构的理解不深入导致的。
在阐述主题之前,俺首先想明确一个相关概念:究竟何为共享存储。所谓 共享存储,顾名思义,也就是 磁盘空间应由相关的节点共享访问,更直白的讲就是节点访问的是同一个(或几个)磁盘, 对于虚机 环境 的话,就是访问相同的磁盘文件。
ORACLE 是由实例+数据库组成,实例是由一组操作系统进程+操作系统的一块内存区域组成;数据库则是一堆各种类型的特性文件的合集(比如数据文件、临时文件,重做日志文件、控制文件等),RAC环境的ORACLE数据库,实际上是多个实例(每个实例分别运行在不同的节点上----一般情况下,你要让它运行于同一个节点应该也是可行的)访问和读写一份数据库。数据库是放在哪呢,就是放在共享存储上,也就是说RAC的几个实例 访问的文件应该在 相 同的磁盘上 。
Ok,回到主题,有些朋友在创建第二个节点,为该节点添加用于voting disk,ocr以asm用的磁盘时,并不是选择第一个节点中创建的文件 (Use an existing virtual disk) ,而是又重新创建了 新的磁盘文件(Create a new virtual disk), 这种情况完全没有共享的概念,自然也就不可能实现磁盘的共享存储了。