虚拟机VMware安装OracleRAC.RedHat Enterprise AS4安装Oracle10g RAC

虚拟机VMware安装OracleRAC.RedHat Enterprise AS4安装Oracle10g RAC

草木瓜  20080226

一、本文环境

 虚拟机版本:
  VMware GSX Server 3.2.0 build-14497
 安装Linux版本:
 
 [root@linuxrac6 etc]# lsb_release -a
 LSB Version:    :core-3.0-ia32:core-3.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch
 Distributor ID: RedHatEnterpriseAS
 Description:    Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
 Release:        4
 Codename:       NahantUpdate2
 
 [root@linuxrac6 etc]# cat /etc/redhat-release
 Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
 
 [root@linuxrac6 etc]# uname -a
 Linux linuxrac6 2.6.9-22.EL #1 Mon Sep 19 18:20:28 EDT 2005 i686 i686 i386 GNU/Linux
 
 可参照官方安装文档:
 http://www.oracle.com/technology/global/cn/pub/articles/hunter_rac10gr2.html 
 或其他比较全面的文档
 http://www.uml.org.cn/sjjm/200612311.htm#6
 
 主机环境 双节点:
  linuxrac9
  linuxrac6
  
 在生产环境下,完全按照官方文档是十分必要的,但在个人测试环境,很难去完全按照官方
文档,换句话说,也没有太多意义,我们不怕暴露问题,这样在安装的过程会了解的更多。一
次性安装成功是比较悲哀的。 

二、创建虚拟机 

 网络图文并茂的文章很多,这里简单列出笔者流程,以供参考:
 
 File ->
 New Vitual Machine ->
 Custom Next  ->
 Linux RedHat Enterprise Linux 4 Next ->
 名称与目录 Next ->
 Access Rights 不选中 make this virtual machine private <可动态调整> Next ->
 Use that power on the virtual machine  <可动态调整> Next ->
 Memory  <可动态调整> 当然是越大越好,可惜你没有那么多内存 Next -> 
 Use bridged networking  <可动态调整> Next->
 SCSI LSI Logic Next ->
 Create a new vitrual disk Next ->
 SCSI Next ->
 Disk Size 8G  选中 Allocate all disk space now 不选中 Split disk into 2GB files ->
 Disk file Name Finish


三、安装虚拟机操作系统,配置节点环境

 可参照《虚拟机VMware安装OracleRAC.环境综述》一文配置:
 
 <五、配置两台虚拟机>一节
  linuxrac9 linuxrac6
 <六、配置双机环境>一节
 
  Oracle10g RAC还需要设置VIP,即还需要修改/etc/hosts,添加如下内容:
  
  134.98.105.233  linuxrac9-vip
  134.98.105.234  linuxrac6-vip 
  
  VIP(virtual IP 虚拟 IP),使用外部网络IP地址,是Oracle10g RAC的新特性。
  采用这个技术后,一个节点发生故障后,与其关联的VIP将被自动切换到另外某个节点
 上。新的节点重新进行地址解析,显示一个新MAC地址。对于直接连接的客户端,就会因连接
 旧地址时而出现错误。
  随后发送到VIP的数据包前往新的节点,该节点将把错误的RST数据包返回客户端。客户端
 立即收到错误信息。
   
   当客户端向故障停机的节点发出请求SQL,或者在连接状态下遍历数据时,客户端不会等待
  很长的 TCP/IP 超时(大约 10 分钟),而是接收到一个TCP重置消息。对于SQL来说,该信息为
  ORA-3113。对于连接,可使用tnsname中的下一个地址。
   更进一步的操作是使用透明的应用程序故障切换(TAF)。成功配置TAF后,可以完全避免ORA
  -3113错误
 
  如果不使用VIP,连接已停用节点的客户端经常要等待10分钟的TCP超时,然后才能收到错误
 信息。不使用VIP不会真正拥有好的高可用性解决方案。
  
  $ cat /etc/hosts
  # Do not remove the following line, or various programs
  # that require network functionality will fail.
  127.0.0.1       localhost.localdomain   localhost
  134.98.105.170  linuxrac9
  134.98.105.171  linuxrac6
  192.168.0.9     linuxrac9-priv
  192.168.0.6     linuxrac6-priv
  134.98.105.233  linuxrac9-vip
  134.98.105.234  linuxrac6-vip   
  
 <七、设置共享磁盘>一节
 
 
四、安装配置OCFS2(oracle cluster file system)共享文件系统

 RAC必须设置好共享存储,目前企业生产大多使用磁盘阵列,共享卷组划分裸设备。即稳定,
性能也不错!不过本文要采用的是比较少用的OCFS2文件系统。

 提示:
 裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取
的特殊字符设备。

 Oracle为RedHatEnterpriseAS4提供了OCFS2,先前版本使用的是OCFS。
 
 安装OCFS2之前,须要设置 /usr/bin/system-config-securitylevel 。
 OCFS2无法在启用SELinux 的情况下运行。所以必须要禁用 SELinux,即运行“Security
Level Configuration”进行配置:
 # /usr/bin/system-config-securitylevel
 单击 SELinux 选项卡并取消选中“Enabled”复选框。单击 [OK] 后,将显示一个警告对话框。
只需单击“Yes”确认该警告。所有节点修改后皆须重新引导。

 http://oss.oracle.com/projects/ocfs2/ 下载相应组件(必须下载内核相对应的版本):
 
 在每台节点机下,分别安装RPM包。
 
 [root@linuxrac9 setup]# rpm -ivh ocfs2-tools-1.2.7-1.el4.i386.rpm
 Preparing...                ########################################### [100%]
    1:ocfs2-tools            ########################################### [100%]
 [root@linuxrac9 setup]# rpm -ivh ocfs2-tools-devel-1.2.7-1.el4.i386.rpm
 Preparing...                ########################################### [100%]
    1:ocfs2-tools-devel      ########################################### [100%]
 [root@linuxrac9 setup]# rpm -ivh ocfs2console-1.2.7-1.el4.i386.rpm
 Preparing...                ########################################### [100%]
    1:ocfs2console           ########################################### [100%]
 [root@linuxrac9 setup]# rpm -ivh ocfs2-2.6.9-22.EL-1.2.7-1.el4.i686.rpm
 Preparing...                ########################################### [100%]
    1:ocfs2-2.6.9-22.EL      ########################################### [100%]
   
 安装后,在每台节点机下,确认ocfs2模块已加载:
 
 [root@linuxrac6 init.d]# /etc/init.d/o2cb status
 Module "configfs": Loaded
 Filesystem "configfs": Mounted
 Module "ocfs2_nodemanager": Loaded
 Module "ocfs2_dlm": Loaded
 Module "ocfs2_dlmfs": Loaded
 Filesystem "ocfs2_dlmfs": Mounted
 Checking O2CB cluster ocfs2: Online
   Heartbeat dead threshold: 31
   Network idle timeout: 30000
   Network keepalive delay: 2000
   Network reconnect delay: 2000
 Checking O2CB heartbeat: Active 
 
 如未启动,可通过以下命令,重启
 [root@linuxrac6 init.d]# /etc/init.d/o2cb unload
 Stopping O2CB cluster ocfs2: OK
 Unloading module "ocfs2": OK
 Unmounting ocfs2_dlmfs filesystem: OK
 Unloading module "ocfs2_dlmfs": OK
 Unmounting configfs filesystem: OK
 Unloading module "configfs": OK
 [root@linuxrac6 init.d]# /etc/init.d/o2cb load
 Loading module "configfs": OK
 Mounting configfs filesystem at /config: OK
 Loading module "ocfs2_nodemanager": OK
 Loading module "ocfs2_dlm": OK
 Loading module "ocfs2_dlmfs": OK
 Mounting ocfs2_dlmfs filesystem at /dlm: OK

 配置OCFS2,建议使用ocfs2console进行图形化配置:
 
 linuxrac9  0  134.98.105.170  7777
 linuxrac6  0  134.98.105.171  7777
 
 配置后生成文件 /etc/ocfs2/cluster.conf (当然也可以手工进行配置) ,内容如下:
 
 [root@linuxrac6 ocfs2]# ls
 cluster.conf
 [root@linuxrac6 ocfs2]# cat *
 cluster:
         node_count = 2
         name = ocfs2
 node:
         ip_port = 7777
         ip_address = 134.98.105.170
         number = 0
         name = linuxrac9
         cluster = ocfs2
 node:
         ip_port = 7777
         ip_address = 134.98.105.171
         number = 1
         name = linuxrac6
         cluster = ocfs2
       
 再次强调,每台节点机必须都统一配置。
        

五、格式化与自动挂载

 在任一节点进行
 
 fdisk操作(具体分区方法可自带帮助),分区后显示内容:
 [root@linuxrac6 ocfs2]# fdisk -l
 
 Disk /dev/sda: 8589 MB, 8589934592 bytes
 255 heads, 63 sectors/track, 1044 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
    Device Boot      Start         End      Blocks   Id  System
 /dev/sda1   *           1         978     7855753+  83  Linux
 /dev/sda2             979        1043      522112+  82  Linux swap
 
 Disk /dev/sdb: 4294 MB, 4294967296 bytes
 255 heads, 63 sectors/track, 522 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
    Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1               1         522     4192933+  83  Linux 

 用ocfs2格式化分区,具体参数可参看man手册。
 
 [root@linuxrac9 ~]# mkfs.ocfs2 -b 4K -C 32K -N 4 -L oradata /dev/sdb1
 mkfs.ocfs2 1.2.7
 Overwriting existing ocfs2 partition.
 Proceed (y/N): y
 Filesystem label=orafiles
 Block size=4096 (bits=12)
 Cluster size=32768 (bits=15)
 Volume size=4293558272 (131029 clusters) (1048232 blocks)
 5 cluster groups (tail covers 2005 clusters, rest cover 32256 clusters)
 Journal size=67108864
 Initial number of node slots: 4
 Creating bitmaps: done
 Initializing superblock: done
 Writing system files: done
 Writing superblock: done
 Writing backup superblock: 1 block(s)
 Formatting Journals: done
 Writing lost+found: done
 mkfs.ocfs2 successful 
 
 在两台节点机分别挂载文件系统:
 mount -t ocfs2 -o datavolume  /dev/sdb1 /oradata
 
 注意:-o datavolume 不能丢也不能乱改,否则在安装CRS中执行root.sh会提示错误:
 ocrconfig Failed to upgrade Oracle Cluster Registry configuration ,查看日志会提示
 你分区格式类型错误!这个错误往往让人误解是权限问题,其实不然!
 Oracle 数据库用户必须使用 datavolume 挂载选项,安装包含表决磁盘文件、集群注
 册表 (OCR)、数据文件、重做日志、归档日志以及控制文件的卷,以确保Oracle进程
 打开包含o_direct 标志的文件。
 
 注意:有时会出现如下错误,确认配置无误的情况下,可以启动ocfs2console,点击
 下配置(cluster->configure nodes),然后关闭后再次挂载,可解决问题,实在不行再重启,
 问题主要来源于虚拟机下安装的不稳定性。
 [root@linuxrac6 oradata]# mount -t ocfs2 -o datavolume  /dev/sdb1 /oradata
 ocfs2_hb_ctl: Unable to access cluster service while starting heartbeat
 mount.ocfs2: Error when attempting to run /sbin/ocfs2_hb_ctl: "Operation not permitted"

 设置为开机自动启动挂载
 
 1、首先保证启动如下服务:
 o2cb
 ocfs2   <自动挂载文件系统>
 
 设置启动服务方法众多,如: 
 [root@linuxrac9 ora9]# system-config-services

 想让o2cb自动load须作如下设置
 [root@linuxrac9 ora9]# /etc/init.d/o2cb configure
 Configuring the O2CB driver.
 
 This will configure the on-boot properties of the O2CB driver.
 The following questions will determine whether the driver is loaded on
 boot.  The current values will be shown in brackets ('[]').  Hitting
 <ENTER> without typing an answer will keep that current value.  Ctrl-C
 will abort.
 
 Load O2CB driver on boot (y/n) [y]: y
 Cluster to start on boot (Enter "none" to clear) [ocfs2]: ocfs2
 Specify heartbeat dead threshold (>=7) [31]:
 Specify network idle timeout in ms (>=5000) [30000]:
 Specify network keepalive delay in ms (>=1000) [2000]:
 Specify network reconnect delay in ms (>=2000) [2000]:
 Writing O2CB configuration: OK
 
 2、修改/etc/fstab增加一项:
 [root@linuxrac9 ora9]# vi /etc/fstab
 
 # This file is edited by fstab-sync - see 'man fstab-sync' for details
 LABEL=/1                /                       ext3    defaults        1 1
 none                    /dev/pts                devpts  gid=5,mode=620  0 0
 none                    /dev/shm                tmpfs   defaults        0 0
 none                    /proc                   proc    defaults        0 0
 none                    /sys                    sysfs   defaults        0 0
 LABEL=SWAP-sda2         swap                    swap    defaults        0 0
 /dev/hdc                /media/cdrom            auto    pamconsole,exec,noauto,managed 0 0
 /dev/fd0                /media/floppy           auto    pamconsole,exec,noauto,managed 0 0
 /dev/sdb1               /oradata                ocfs2   datavolume      0 0 
 
 事实证明VMware GSX Server 3.2.0 build-14497的共享磁盘不稳定,复制数据经常无故
关机,使得安装无法继续,十分令人头疼,笔者建议如发现此类现象,重新删除重新添加,
可按《虚拟机VMware安装OracleRAC.环境综述》一文描述尝试。
 主要怀疑点:
  1.ocfs2本身的稳定性
  2.<有可能,操作系统不稳定>Red Hat Enterprise Linux AS release 4 本身问题
  3.<有可能>虚拟机共享磁盘本身的问题
  4.某环节的兼容性问题

 
六、设置节点机ORACLE的安装环境(各节点皆须设置)

 1.设置内核参数
 
 vi /etc/sysctl.conf
 
 该参数定义了共享内存段的最大尺寸值,对于oracle来说,该缺省值太低了,这里将其设置
为261986254 bytes,当然可以根据实际情况更大,曾有人因kernel.shmmax设置太低而在运行
sqlplus " / as sysdba"出现ORA-12547:TNS:lost contact错误,笔者这里设置的N低也没有事。
 
 kernel.shmmax = 261986254
 
 # sysctl -p 立刻生效
 
 2.添加用户组
 
 添加组 oradba
 添加用户 oracle
 
 安装,管理,使用多合一
 
 3. .bash_profile 设置

 所列出的都是必须项!
 a. 其中CRS_HOME没有特别的用义,主要用于查找方便。
 b. 安装10G,须要先装CRS,再装Oracle DB,需要修改ORACLE_HOME环境变量。
     如:
   export ORACLE_HOME=$ORACLE_BASE/crs  用于安装CRS
   export ORACLE_HOME=$ORACLE_BASE/db   用于安装Oracle Database
 c. export ORACLE_SID=liwei1 在另一台节点上是 export ORACLE_SID=liwei2 ,具体名称
 可自行拟定。
 
 # .bash_profile
 
 # Get the aliases and functions
 if [ -f ~/.bashrc ]; then
         . ~/.bashrc
 fi
 
 # User specific environment and startup programs
 
 PATH=$PATH:$HOME/bin
 
 #ORACLE
 export LD_ASSUME_KERNEL=2.4.1
 
 export ORACLE_BASE=/oracle/ora9
 export ORACLE_HOME=$ORACLE_BASE/db
 export ORACLE_SID=liwei1
 
 export CRS_HOME=$ORACLE_BASE/crs
 
 export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
 
 #LIB,CLASS
 LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
 
 export LD_LIBRARY_PATH
 export PATH=$PATH:$ORACLE_HOME/bin:$CRS_HOME/bin
 
 CLASSPATH=$CLASSPATH:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
 CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
 export CLASSPATH
 
 
 unset USERNAME
 
 4.配置hangcheck-timer
 
 Oracle9202以前,是使用watchdog来检查系统是否挂起。自9202以后,oracle使用hangcheck-timer
模块。加载hangcheck-timer模块到内核中,能够定时检查系统是否挂起。

 hangcheck_tick:该参数定义了模块启动的间隔时段。其默认值为 60 秒。
 Oracle建议将其设置为 30 秒。
 hangcheck_margin:该参数定义了多少时间以后系统没响应就认为是挂起。以秒为单位。
 其默认值为 180秒。Oracle 建议将其设置为 180 秒。
 
 该模块在AS3和AS4中是自带的,但AS4与AS3略有不同。
 
 [root@linuxrac9 bin]# find /lib/modules -name "hangcheck-timer*"
 /lib/modules/2.6.9-22.EL/kernel/drivers/char/hangcheck-timer.ko
 
 AS4不能够使用如下命令(AS3)进行加载:
 [root@linuxrac9 bin]# insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
 insmod: can't read 'hangcheck-timer': No such file or directory
 
 可使用如下方式:
 modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
 
 <添加到自动启动>
  修改 /etc/rc.local ,加入一行:
  modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
 
 加载成功显示如下,注意第一行。
 
 [root@linuxrac9 etc]# lsmod
 Module                  Size  Used by
 hangcheck_timer         3289  0
 ocfs2                 375748  1
 debugfs                 9992  2 ocfs2
 ocfs2_dlmfs            25352  1
 ocfs2_dlm             228360  2 ocfs2,ocfs2_dlmfs
 ocfs2_nodemanager     183024  7 ocfs2,ocfs2_dlmfs,ocfs2_dlm
 configfs               26252  2 ocfs2_nodemanager
 dm_mirror              27825  0
 dm_mod                 56661  1 dm_mirror
 button                  6481  0
 battery                 8901  0
 ac                      4805  0
 md5                     4033  1
 ipv6                  234881  16
 pcnet32                30409  0
 mii                     4673  1 pcnet32
 floppy                 58481  0
 ext3                  116809  1
 jbd                    71385  2 ocfs2,ext3
 mptscsih               41645  0
 mptbase                54957  1 mptscsih
 sd_mod                 17217  5
 scsi_mod              121293  2 mptscsih,sd_mod 
 
 [root@linuxrac9 etc]# grep hangcheck /var/log/messages
 Mar 21 09:11:53 linuxrac9 kernel: Hangcheck: starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds).

 
 5. 补充说明
 
 与安装Oracle 9i不同的是,笔者在安装Oracle10gRAC前,未安装相关补丁,也未修改gcc文件。

七、检查安装条件

 如果在安装操作系统过程中选择全部安装就不必烦心了,下面列出Oracle推荐须要的:
 
 binutils-2.15.92.0.2-13.EL4
 compat-db-4.1.25-9
 compat-libstdc++-296-2.96-132.7.2
 control-center-2.8.0-12
 gcc-3.4.3-22.1.EL4
 gcc-c++-3.4.3-22.1.EL44
 glibc-2.3.4-2.9
 glibc-common-2.3.4-2.9
 gnome-libs-1.4.1.2.90-44.1
 libstdc++-3.4.3-22.1
 libstdc++-devel-3.4.3-22.1
 make-3.80-5
 pdksh-5.2.14-30
 sysstat-5.0.5-1
 xscreensaver-4.18-5.rhel4.2
 setarch-1.6-1
 
 以及
 
 libaio-devel-0.3.103-3
 libaio-0.3.103-3

八、使用Oracle安装介质安装CRS

 Oracle 10g RAC 安装 需先安装CRS(Oracle提供的集群管理软件),再安装Oracle Database。
 
 这里使用的介质是:
 10201_clusterware_linux32.zip

 注意:安装CRS不能通过网络mount共享文件夹,否则在过程会提示找不着对应节点(如linuxrac9,
linuxrac9-priv,linuxrac9-vip等),错误提示是十分奇怪的。
 mount -t smbfs -o username=administrator,password=yiming,ip=134.98.105.169 -l //micropc/Speed /mntnet
 
 注意:安装有时也会提示linuxrac9-vip这类名称已被使用,首先确保linuxrac9-vip所用IP地址在
网络上无冲突。如问题依然存在,可重新设置节点机/etc/hosts的vip部分再重启。在系统启动信息中
不能相同IP已存在的提示。

 安装crs过程中,需要执行root.sh,必须要在单台节点机完成后,再到别外一台节点机执行。
 
 节点机linuxrac9执行记录:
 
 [root@linuxrac9 /]# /oracle/ora9/crs/root.sh
 WARNING: directory '/oracle/ora9' is not owned by root
 WARNING: directory '/oracle' is not owned by root
 Checking to see if Oracle CRS stack is already configured
 /etc/oracle does not exist. Creating it now.
 
 Setting the permissions on OCR backup directory
 Setting up NS directories
 Oracle Cluster Registry configuration upgraded successfully
 WARNING: directory '/oracle/ora9' is not owned by root
 WARNING: directory '/oracle' is not owned by root
 assigning default hostname linuxrac9 for node 1.
 assigning default hostname linuxrac6 for node 2.
 Successfully accumulated necessary OCR keys.
 Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
 node <nodenumber>: <nodename> <private interconnect name> <hostname>
 node 1: linuxrac9 linuxrac9-priv linuxrac9
 node 2: linuxrac6 linuxrac6-priv linuxrac6
 Creating OCR keys for user 'root', privgrp 'root'..
 Operation successful.
 Now formatting voting device: /oradata/crs/vote
 Format of 1 voting devices complete.
 Startup will be queued to init within 90 seconds.
 Adding daemons to inittab
 Expecting the CRS daemons to be up within 600 seconds.
 CSS is active on these nodes.
         linuxrac9
 CSS is inactive on these nodes.
         linuxrac6
 Local node checking complete.
 Run root.sh on remaining nodes to start CRS daemons.

 节点机linuxrac6执行记录:
 
 [root@linuxrac6 etc]# /oracle/ora9/crs/root.sh
 WARNING: directory '/oracle/ora9' is not owned by root
 WARNING: directory '/oracle' is not owned by root
 Checking to see if Oracle CRS stack is already configured
 /etc/oracle does not exist. Creating it now.
 
 Setting the permissions on OCR backup directory
 Setting up NS directories
 Oracle Cluster Registry configuration upgraded successfully
 WARNING: directory '/oracle/ora9' is not owned by root
 WARNING: directory '/oracle' is not owned by root
 clscfg: EXISTING configuration version 3 detected.
 clscfg: version 3 is 10G Release 2.
 assigning default hostname linuxrac9 for node 1.
 assigning default hostname linuxrac6 for node 2.
 Successfully accumulated necessary OCR keys.
 Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
 node <nodenumber>: <nodename> <private interconnect name> <hostname>
 node 1: linuxrac9 linuxrac9-priv linuxrac9
 node 2: linuxrac6 linuxrac6-priv linuxrac6
 clscfg: Arguments check out successfully.
 
 NO KEYS WERE WRITTEN. Supply -force parameter to override.
 -force is destructive and will destroy any previous cluster
 configuration.
 Oracle Cluster Registry for cluster has already been initialized
 Startup will be queued to init within 90 seconds.
 Adding daemons to inittab
 Expecting the CRS daemons to be up within 600 seconds.
 CSS is active on these nodes.
         linuxrac9
         linuxrac6
 CSS is active on all nodes.
 Waiting for the Oracle CRSD and EVMD to start
 Waiting for the Oracle CRSD and EVMD to start
 Waiting for the Oracle CRSD and EVMD to start
 Waiting for the Oracle CRSD and EVMD to start
 Waiting for the Oracle CRSD and EVMD to start
 Waiting for the Oracle CRSD and EVMD to start
 Waiting for the Oracle CRSD and EVMD to start
 Waiting for the Oracle CRSD and EVMD to start
 Waiting for the Oracle CRSD and EVMD to start
 Waiting for the Oracle CRSD and EVMD to start
 Oracle CRS stack installed and running under init(1M)
 Running vipca(silent) for configuring nodeapps
 
 Creating VIP application resource on (2) nodes...
 Creating GSD application resource on (2) nodes...
 Creating ONS application resource on (2) nodes...
 Starting VIP application resource on (2) nodes...
 Starting GSD application resource on (2) nodes...
 Starting ONS application resource on (2) nodes...
 Done.

九. 处理安装CRS失败

 由于各类原因,CRS在虚拟机下安装是十分脆弱的,如发现中途意外关机或重启现象,须
要彻底删除CRS,并重新安装,在原有基础进行修复是没有意义的。

 1.停止进程
 
 2.清除自启动文件

        rm -f /etc/init.d/init.cssd
        rm -f /etc/init.d/init.crs
        rm -f /etc/init.d/init.crsd
        rm -f /etc/init.d/init.evmd
       
  find /etc -name '*init.crs*' -exec rm {} /;
       
        rm -f /etc/inittab.crs
        修改 /etc/inittab 去除文件末尾crs部分
       
    3.重启
   
     确认无任何CRS进程,ps -ef 无 /oracle/ora9/crs/bin/ 类似项
     调用 ./runInstaller 删除安装组件
       
 4.手工清除其他文件
   
        rm -rf /etc/oracle/
        rm -rf /etc/ora*
        rm -rf <CRS安装目录>
        rm -rf  /tmp 
        rm -rf /var/tmp
       
        rm -rf <CRS 注册文件和表决文件>
       
    5.设置好环境变量,重新安装

十. 使用Oracle安装介质安装Database

 成功安装CRS后,使用如下命令查看运行状态:
 [root@linuxrac9 var]# crsctl check crs
 CSS appears healthy
 CRS appears healthy
 EVM appears healthy
 
 [oracle@linuxrac6 ~]$ crs_stat -t
 Name           Type           Target    State     Host       
 ------------------------------------------------------------
 ora....ac6.gsd application    ONLINE    ONLINE    linuxrac6  
 ora....ac6.ons application    ONLINE    ONLINE    linuxrac6  
 ora....ac6.vip application    ONLINE    ONLINE    linuxrac6  
 ora....ac9.gsd application    ONLINE    ONLINE    linuxrac9  
 ora....ac9.ons application    ONLINE    ONLINE    linuxrac9  
 ora....ac9.vip application    ONLINE    ONLINE    linuxrac9
 
 crs命令在任一节点均可操作,查看详细名称可用:
 
 [root@linuxrac6 ~]# crs_stat
 NAME=ora.linuxrac6.gsd
 TYPE=application
 TARGET=ONLINE
 STATE=ONLINE on linuxrac6
 
 NAME=ora.linuxrac6.ons
 TYPE=application
 TARGET=ONLINE
 STATE=ONLINE on linuxrac6
 
 NAME=ora.linuxrac6.vip
 TYPE=application
 TARGET=ONLINE
 STATE=ONLINE on linuxrac6
 
 ...
 
 查看详细信息,可用命令crs_stat -p ora.linuxrac6.gsd
 
 [root@linuxrac6 ~]# crs_stat -p ora.linuxrac6.gsd
 NAME=ora.linuxrac6.gsd
 TYPE=application
 ACTION_SCRIPT=/oracle/ora9/crs/bin/racgwrap
 ACTIVE_PLACEMENT=0
 AUTO_START=1
 CHECK_INTERVAL=600
 DESCRIPTION=CRS application for GSD on node
 FAILOVER_DELAY=0
 FAILURE_INTERVAL=0
 FAILURE_THRESHOLD=0
 HOSTING_MEMBERS=linuxrac6
 OPTIONAL_RESOURCES=
 PLACEMENT=restricted
 REQUIRED_RESOURCES=
 RESTART_ATTEMPTS=5
 SCRIPT_TIMEOUT=600
 START_TIMEOUT=0
 STOP_TIMEOUT=0
 UPTIME_THRESHOLD=7d
 USR_ORA_ALERT_NAME=
 USR_ORA_CHECK_TIMEOUT=0
 USR_ORA_CONNECT_STR=/ as sysdba
 USR_ORA_DEBUG=0
 USR_ORA_DISCONNECT=false
 USR_ORA_FLAGS=
 USR_ORA_IF=
 USR_ORA_INST_NOT_SHUTDOWN=
 USR_ORA_LANG=
 USR_ORA_NETMASK=
 USR_ORA_OPEN_MODE=
 USR_ORA_OPI=false
 USR_ORA_PFILE=
 USR_ORA_PRECONNECT=none
 USR_ORA_SRV=
 USR_ORA_START_TIMEOUT=0
 USR_ORA_STOP_MODE=immediate
 USR_ORA_STOP_TIMEOUT=0
 USR_ORA_VIP=

 确认一切正常后,使用安装介质安装,注意修改ORACLE_HOME路径,这里使用的是
  export ORACLE_HOME=/oracle/ora9/db 
 安装介质:
  10201_database_linux32.zip
  
  安装过程没有什么可说的,笔者推荐安装database全部组件项,不建议自定义安装。安
装过程内存尽量设置的大一些。
 强调,这里只安装软件,不创建数据库。

十一、处理安装Database失败

 rm -rf /tmp
 使用 ./runInstaller删除相应组件
 rm -rf <database安装目录>
 
 以下步骤,未安装数据库可跳过
 rm -rf <数据库文件目录>
 rm -rf <数据库RAC配置文件目录 admin>

十二、配置监听

 启动netca,选择配置集群,
 配置监听,添加监听,一直NEXT。
 配置本地命名方法,只添加“本地命名”,NEXT,完成。
 
 这时用crs_stat -t 查看,即多了两个lsnr的进程。
 
 [root@linuxrac6 ~]# crs_stat -t
 Name           Type           Target    State     Host       
 ------------------------------------------------------------
 ora....C6.lsnr application    ONLINE    ONLINE    linuxrac6  
 ora....ac6.gsd application    ONLINE    ONLINE    linuxrac6  
 ora....ac6.ons application    ONLINE    ONLINE    linuxrac6  
 ora....ac6.vip application    ONLINE    ONLINE    linuxrac6  
 ora....C9.lsnr application    ONLINE    ONLINE    linuxrac9  
 ora....ac9.gsd application    ONLINE    ONLINE    linuxrac9  
 ora....ac9.ons application    ONLINE    ONLINE    linuxrac9  
 ora....ac9.vip application    ONLINE    ONLINE    linuxrac9  
 
 如使用rsh的rcp方法,偶尔在配置监听时会提示rcp失败,还是推荐ssh!
 这个步骤十分重要,如跳过,直接创建数据库,会提示ORA-12547:TNS:lost contact,即
便以后重新正确配置,也还会提示ORA-12547:TNS:lost contact错误,在oracle用户下使用sqlplus
" / as sysdba "也会同样提示这个错误,解决这个问题,须重新安装oracle database。

提示ORA-12547:TNS:lost contact错误时,sqlnet.log内容:

***********************************************************************
Fatal NI connect error 12546, connecting to:
 (DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/oracle/ora9/db/bin/oracle)(ARGV0=oracleliwei1)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')(DETACH=NO))(CONNECT_DATA=(CID=(PROGRAM=sqlplus)(HOST=linuxrac9)(USER=root))))

  VERSION INFORMATION:
        TNS for Linux: Version 10.2.0.1.0 - Production
        Oracle Bequeath NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production
        TCP/IP NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production
  Time: 20-MAR-2008 17:24:08
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12546
    TNS-12546: TNS:permission denied
    ns secondary err code: 12560
    nt main err code: 516
    TNS-00516: Permission denied
    nt secondary err code: 13
    nt OS err code: 0

 另外,有个常见错误也要说明下:
 
 Unable to connect to database. ORA-12162: TNS:Service name is incorrectly specified
  这是由于配置文件.bash_profile中ORACLE_SID名称不对,或者配置文件里的名称前带空格造成。
  可以通过手工临时修改为安装时配置名称,然后进行后续操作。
 [root@linuxrac6 ~]# export ORACLE_SID=liwei1
 [root@linuxrac6 ~]# sqlplus '/ as sysdba'

十三、创建数据库

 使用 dbca -datafileDestination /oradata/liwei 创建数据库。
 -datafileDestination /oradata/liwei 表示指定数据库文件存放目录,也可在dbca界面选择。
 
 创建时选择全部节点,由于本示例未使用ASM,须跳过配置ASM部分。
 
 注意:
  临近最后配置服务时,须手工点击添加,输入服务名,这里是liwei,这里界面右侧会
 自动添加两个实例,默认设置为首选,默认TAF策略为无,单击下一步。

 注意:
  由于空间问题,可以缩减创建表空间的大小,但REDO不可盲目减少,RAC须指定不同
 thread,新手可直接保持REDO的默认设置。
 
 创建数据库这个步骤在虚拟机上操作是最慢的,须耐性等待。完成后,即可进行RAC数据库
的测试了。

 crs_stat -t 如下显示:
 
 [oracle@linuxrac6 ~]$ crs_stat -t
 Name           Type           Target    State     Host       
 ------------------------------------------------------------
 ora....C6.lsnr application    ONLINE    ONLINE    linuxrac6  
 ora....ac6.gsd application    ONLINE    ONLINE    linuxrac6  
 ora....ac6.ons application    ONLINE    ONLINE    linuxrac6  
 ora....ac6.vip application    ONLINE    ONLINE    linuxrac6  
 ora....C9.lsnr application    ONLINE    ONLINE    linuxrac9  
 ora....ac9.gsd application    ONLINE    ONLINE    linuxrac9  
 ora....ac9.ons application    ONLINE    ONLINE    linuxrac9  
 ora....ac9.vip application    ONLINE    ONLINE    linuxrac9  
 ora.liwei.db   application    ONLINE   ONLINE   linuxrac9                       
 ora....iwei.cs application    ONLINE   ONLINE    linuxrac6                  
 ora....ei1.srv application    ONLINE    ONLINE   linuxrac9  
 ora....ei2.srv application    ONLINE    ONLINE   linuxrac6  
 ora....i1.inst application    ONLINE   ONLINE   linuxrac9              
 ora....i2.inst application    ONLINE   ONLINE   linuxrac6                


十四、总结

 虚拟机 Oracle 10g RAC 环境构建完成。后续文章将着重介绍CRS相关应用方法和故障排除。

目录 第1章 RED HAT ENTERPRISE LINUX AS 4 Update 2 X86_64系统安装 1 1.1 安装准备(在所有节点上执行) 1 1.2 操作系统安装(在所有节点上执行) 2 1.3 关闭smartd、启动telnet和vsftpd(在所有节点上执行) 15 1.4 将缺省语言转为简体中文(在所有节点上执行) 17 1.5 配置Xmanager的使用(在所有节点上执行) 17 1.6 IBM DS 400 光纤磁盘阵列配置(只需从单个节点运行) 18 第2章 ORACLE 10.2.0.1 X86_64 Real Application Cluster (RAC) for RED HAT ENTERPRISE LINUX AS 4 Update 2 X86_64系统安装 24 2.1 检查软件环境需求的程序包(在所有节点上执行) 24 2.2 检查物理内存和交换空间(在所有节点上执行) 26 2.3 配置系统参数(在所有节点上执行) 28 2.4 创建Oracle帐户(在所有节点上执行) 28 2.5 创建Oracle目录(在所有节点上执行) 29 2.6 设置Oracle用户登录配置文件(在所有节点上执行) 29 2.7 配置网络设置(在所有节点上执行) 32 2.8 为用户等效性配置 SSH (在所有节点上执行) 34 2.9 配置 hangcheck-timer 内核模块(在所有节点上执行) 36 2.10 计划Oracle数据存储(只需从单个节点运行) 37 2.11 设置Oracle数据存储(只需从单个节点运行) 38 2.12 安装cvuqdisk包(在所有节点上执行) 42 2.13 安装和配置 OCFS(在所有节点上执行) 42 2.14 安装并配置自动存储管理和磁盘(在所有节点上执行) 46 2.15 安装 Oracle ClusterWare 10g软件(只需从单个节点运行) 49 2.16 安装 Oracle Database 10g 软件(只需从单个节点运行) 52 2.17 安装 Oracle Client 10g 软件(只需从单个节点运行) 55 2.18 安装 Oracle Companion 10g 软件(只需从单个节点运行) 56 2.19 创建 TNS 监听器进程(只需从单个节点运行) 57 2.20 创建 Oracle 集群数据库(只需从单个节点运行) 58 2.21 核实 TNS 联网文件(在所有节点上执行) 60 2.22 创建表空间和用户(只需从单个节点运行) 62 2.23 核实 RAC 集群/数据库配置(在所有节点上执行) 62 2.24 启动和停止集群(只需从单个节点运行) 66 2.25 远程管理集群(只需从单个节点运行) 67 2.26 ORACLE 透明故障切换 67 第3章 附录 70 3.1 操作系统版本升级 70 3.2 系统参数 73 3.2.1 共享内存参数 73 3.2.2 信号量参数 74 3.2.3 最大文件句柄数 75 3.2.4 网络参数 76 3.2.5 Oracle用户能够打开的文件句柄的最大数 77 3.2.6 Oracle用户能够执行的进程的最大数 78 3.3 磁盘管理 79 3.3.1 磁盘分区 79 3.3.2 逻辑盘卷管理 80 3.3.3 LVM术语 80 3.3.4 安装LVM 81 3.3.5 命令列表 82 3.3.6 创建分区 83 3.3.7 创建物理卷 83 3.3.8 创建卷组 83 3.3.9 激活卷组 83 3.3.10 添加新的物理卷到卷组中 83 3.3.11 从卷组中删除一个物理卷 84 3.3.12 创建逻辑卷 84 3.3.13 创建文件系统 84 3.3.14 删除一个逻辑卷 85 3.3.15 扩展逻辑卷大小 86 3.3.16 减少逻辑卷大小 86 3.4 Ifconfig 命令详解 87
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值