ORACLE 10G RAC for Linux AS4 安装
ORACLE 10G RAC for Linux AS4 安装
1。 预先准备和检查工作 集群中所有计算机上禁用 SELinux(只适用于 RHEL4 U2 以及更高版本),disable follow service: chkconfig --level 2345 pcmcia off chkconfig --level 2345 kudzu off chkconfig --level 2345 isdn off chkconfig --level 2345 sendmail off chkconfig --level 2345 rhnsd off chkconfig --level 2345 cups off chkconfig --level 2345 cups-config-daemon off chkconfig --level 2345 cpuspeed off chkconfig --level 2345 gpm off chkconfig --level 2345 apmd off chkconfig --level 2345 lm_sensors off chkconfig --level 2345 mdmonitor off 集群中所有计算机上configure ntp server and clinet on two server vi /etc/ntp.conf service ntpd start chkconfig --level 35 ntpd on 2.集群中所有计算机上修改vi /etc/hosts文件,如下所示 127.0.0.1 localhost(这里必须这样修改,否则RAC节点名出现在回送地址中,安装RAC期间可能会报错) 10.1.250.17 racl 10.1.250.18 rac2 192.168.100.100 rac1-priv 192.168.100.200 rac2-priv 10.1.250.19 rac1-vip 10.1.250.20 rac2-vip
3.集群中所有计算机上检查必需的 RPM 必须安装以下程序包(或更高版本): make-3.80-5 glibc-2.3.4-2.9 glibc-devel-2.3.4-2.9 glibc-headers-2.3.4-2.9 glibc-kernheaders-2.4-9.1.87 cpp-3.4.3-22.1 compat-db-4.1.25-9 compat-gcc-32-3.2.3-47.3 compat-gcc-32-c++-3.2.3-47.3 compat-libstdc++-33-3.2.3-47.3 compat-libstdc++-296-2.96-132.7.2 openmotif-2.2.3-9.RHEL4.1 setarch-1.6-1 iscsi-initiator-utils-4.0.3.0-2.i386.rpm (use IP SAN)
4.集群中所有计算机上调整网络设置,设置共享内存和信号参数 vi /etc/sysconfig/network-script/ifcfg-ethX service network restart
编辑 vi /etc/sysctl.conf文件,添加如下信息,这些信息可以根据自己的机器实际情况来调整 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_max = 262144 net.core.rmem_default=262144 net.core.wmem_default=262144 net.core.rmem_max=262144 net.core.wmem_max=262144 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 /etc/sysctl.conf -p 使配置生效 设置oracle对文件的要求: 编辑文件:vi /etc/security/limits.conf 加入以下语句: oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 编辑文件:vi /etc/pam.d/login 加入以下语句(可能应该加在最后一条规则之前): session required /lib/security/pam_limits.so 配置并加载 hangcheck-timer 模块 hangcheck-timer 模块有两个关键的参数: hangcheck-tick:此参数定义了系统运行状况检查的间隔时间。默认值为 60 秒;Oracle 建议将它设置为 30 秒。 hangcheck-margin:此参数定义了 hangcheck-timer 在重置 RAC 节点前所容许的最大挂起延迟。它定义了以秒为单位的误差幅度。默认值为 180 秒;Oracle 建议将它设置为 180 秒。 注意:这两个 hangcheck-timer 模块参数表示在该模块重置系统前 RAC 节点必须挂起的时长。当以下条件为真时将会重置节点: 系统挂起时间 > (hangcheck_tick + hangcheck_margin) 配置 Hangcheck 内核模块参数 每次加载 hangcheck-timer 内核模块(手动加载或由 Oracle 加载)时,它都需要知道对我们刚刚讨论的两个参数(hangcheck-tick 和 hangcheck-margin) 所使用的值。这些值需要在每次重新启动 Linux 服务器后可用。为此,在 /etc/modprobe.conf 文件中创建一个具有正确值的条目,如下所示: # su - # echo "options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/modprobe.conf 每次加载 hangcheck-timer 内核模块时,它将使用在 /etc/modprobe.conf 文件中创建的条目定义的值 要手动加载 hangcheck-timer 内核模块并验证它是否使用在 /etc/modprobe.conf 文件中定义的正确值,运行以下命令:
modprobe hangcheck-timer grep Hangcheck /var/log/messages | tail -2 Sep 27 23:11:51 linux2 kernel:Hangcheck:starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds)
5. 在集群的一个节点的共享存储设备上创建分区 创建四个分区:一个1G分区用于 Oracle 的集群件共享文件, 余下的三个分区用于 ASM(存储所有 Oracle 数据库文件和闪回恢复区)。 在创建了所有必要分区后,现在应以 root 用户帐户在集群中所有计算机上使用以下语法将分区的更改情况通知给内核: partprobe
6. 在集群中所有计算机上创建oracle用户和目录 /opt/oracle/app 用于安装oracle 数据库程序文件 /opt/oracle/ocfs2 用于Oracle 集群文件系统 (OCFS2) 的挂载点;/opt/oracle/crs用于安装oracle crs软件. groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle mkdir -p /opt/oracle/app mkdir -p /opt/oracle/ocfs2 mkdir -p /opt/oracle/crs chown -R oracle:oinstall /opt/oracle chmod -R 775 /opt/oracle passwd oracle 集群中所有计算机上修改oracle用户的.bash_profile文件如下所示 注意:当为每个 RAC 节点设置 Oracle 环境变量时,请确保为每个 RAC 节点分配唯一的 Oracle SID! su - oracle vi ~/.bash_profile export ORACLE_BASE=/opt/oracle export ORACLE_HOME=/opt/oracle/app export ORA_CRS_HOME=/opt/oracle/crs export ORACLE_SID=orcl1 export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:ORA_CRS_HOME/bin:$ORACLE_BASE/common/oracle/bin export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin export ORACLE_TERM=xterm export TNS_ADMIN=$ORACLE_HOME/network/admin export ORA_NLS10=$ORACLE_HOME/nls/data export LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=$ORACLE_HOME/JRE export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export THREADS_FLAG=native export TEMP=/tmp export TMPDIR=/tmp
为每个 RAC 节点设置 root 环境变量 su - root vi ~/.bash_profile export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin: 注意,在第二个节点上,修改SID=orcl2 source ~/.bash_profile 使配置生效 7.集群中所有计算机上建立节点之间的互信 sudo vi /etc/ssh/sshd_config PermitRootLogin yes PubkeyAuthentication yes sudo service sshd restart 采用ssh建立oracle用户的互信. su - oracle ssh-keygen -t dsa 一路回车结束 vi authorized_keys 加入集群中所有计算机(包括自己)~/.ssh/id_dsa.pub文件中的内容 exec ssh-agent $SHELL ssh-add ssh rac1(rac2...,rac1-priv...) date 应该在所有节点上跨集群的所有接口执行这些测试,注意:首次执行这些测试时,*作系统将显示一个密钥并请求用户接受或拒绝。 输入“Yes”将接受并注册此密钥。
8.安装配置ocfs2 使用与自己*作系统版本相符合的ocfs,ocfs console rpm -Uvh ocfs2-2.6.9-42.EL-1.2.3-1.i686.rpm ocfs2console-1.2.1-1.i386.rpm ocfs2-tools-1.2.1-1.i386.rpm 在集群中所有计算机配置ocfs2 su root 作为根用户,执行以下命令 # ocfs2console & Cluster 选择“Configure Nodes” 在客户端 1 上添加 2 个节点 rac1 10.1.250.17 rac2 10.1.250.18 单击 apply Cluster 选择“Propogate Configuration”(发送至客户端 2)
退出 ocfs2console 后,将获得一个类似如下所示的 /etc/ocfs2/cluster.conf。需要在集群中的所有节点上完成该过程, 并且所有节点的 OCFS2 配置文件必须完全相同: node: ip_port = 7777 ip_address = 10.1.250.17 number = 0 name = linux1 cluster = ocfs2 node: ip_port = 7777 ip_address = 10.1.250.18 number = 1 name = linux2 cluster = ocfs2 cluster: node_count = 2 name = ocfs2 在使用 OCFS2 执行任何*作(如格式化或挂载文件系统)之前,我们需要先运行 OCFS2 的集群堆栈 O2CB NM:用于跟踪 cluster.conf 中的所有节点的节点管理器 HB:当节点加入或离开集群时向上/向下发出通知的心跳服务 TCP:处理节点之间的通信 DLM:用于跟踪所有锁、这些锁的所有者和状态的分布式锁管理器 CONFIGFS:在 /config 中挂载的用户空间驱动的配置文件系统 DLMFS:用户空间与内核空间 DLM 的接口 已将以上所有集群服务打包到 o2cb 系统服务 (/etc/init.d/o2cb) 中。 调整 O2CB 心跳阈值 (驱动器越慢,心跳阀值设置越大。) 在集群的所有节点上执行以下*作。 /etc/init.d/o2cb unload /etc/init.d/o2cb configure Load O2CB driver on boot (y/n) [n]:y Cluster to start on boot (Enter "none" to clear) [ocfs2]:ocfs2 O2CB_HEARTBEAT_THRESHOLD 设置为 301 确认 O2CB 心跳阈值的设置是否正确 cat /proc/fs/ocfs2_nodemanager/hb_dead_threshold
格式化 OCFS2 文件系统 注意:只能在 RAC 集群中的一个节点上创建 OCFS2 文件系统。为创建文件系统,我们使用 Oracle 可执行文件 mkfs.ocfs2 ,以 root 用户帐户仅从 rac1 运行以下命令: mkfs.ocfs2 -b 4K -C 32K -N 2 -L ocfs2 /dev/sda1
在所有节点上挂载 OCFS2 文件系统: mount -t ocfs2 -o datavolume,nointr -L "ocfs2" /opt/oracle/ocfs2 将以下行添加到集群中两个 Oracle RAC 节点上的 /etc/fstab 文件中: LABEL=ocfs2 /opt/oracle/ocfs2 ocfs2 _netdev,datavolume,nointr 0 0 注意用于挂载此文件系统的“_netdev”选项。OCFS2 卷必须使用 _netdev 挂载选项。 该挂载选项指示将在网络启动后挂载该卷,在关闭网络前卸载该卷。 使用 ls 命令检查/opt/oracle/ocfs2的所有权。应把权限设置为 0775,并将所有者设置为“oracle”、将组设置为“oinstall”。 reboot 再次检查以确保这些设置 mount LABEL=ocfs2 /opt/oracle/ocfs2 ocfs2 type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local) cat /proc/fs/ocfs2_nodemanager/hb_dead_threshold 301 OCFS2 包含一个错误,即不会在每次引导时加载驱动程序,如果在每次引导时收到以下错误: ... Mounting other filesystems: mount.ocfs2:Unable to access cluster service Cannot initialize cluster mount.ocfs2: Unable to access cluster service Cannot initialize cluster [FAILED] ... Red Hat 更改了在 chkconfig-1.3.11.2-1 与 chkconfig-1.3.13.2-1 之间注册服务的方式。O2CB 脚本习惯使用前者。 在尝试配置引导属性之前: 删除 /etc/init.d/o2cb 中的以下几行 ### BEGIN INIT INFO # Provides:o2cb # Required-Start: # Should-Start: # Required-Stop: # Default-Start: 2 3 5 # Default-Stop: # Description:Load O2CB cluster services at system boot. ### END INIT INFO
重新注册 o2cb 服务。 chkconfig --del o2cb chkconfig --add o2cb chkconfig --list o2cb o2cb 0:off 1:off 2:on 3:on 4:on 5:on 6:off # ll /etc/rc3.d/*o2cb* lrwxrwxrwx 1 root root 14 Sep 29 11:56 /etc/rc3.d/S24o2cb -> ../init.d/o2cb 该服务应为默认运行级别中的 S24o2cb。 继续设置引导属性,如下所示: /etc/init.d/o2cb offline ocfs2 /etc/init.d/o2cb unload /etc/init.d/o2cb configure
9. 安装,配置自动存储管理ASM2.0 在集群的全部节点上安装ASM2.0 rpm rpm -Uvh oracleasm-2.6.9-42.EL-2.0.3-1.i686.rpm \ oracleasmlib-2.0.2-1.i386.rpm \ oracleasm-support-2.0.3-1.i386.rpm 执行/etc/init.d/oracleasm configure 默认用户输入oracle,默认组输入dba,其他都y,y就可以了 9.1创建ASM磁盘 在一个节点上执行 /etc/init.d/oracleasm createdisk VOL1 /dev/sda2 /etc/init.d/oracleasm createdisk VOL2 /dev/sda3 /etc/init.d/oracleasm createdisk VOL3 /dev/sda4
创建好后,执行/etc/init.d/oracleasm listdisks可以看到 VOL1 VOL2 VOL3
使用oracleasm-discover来探测ASM硬盘:
然后在另外节点上执行 应该可以看到相同的内容 /etc/init.d/oracleasm scandisks /etc/init.d/oracleasm listdisks oracleasm-discover
10. 集群的一个节点安装Oracle 10G cluster软件 如果运行的是 Red Hat Linux,则必须安装到集群中的每个 Oracle RAC 节点上。安装 cvuqdisk RPM(仅适用于 RHEL 用户) 如果没有 cvuqdisk,CVU 将无法发现共享磁盘,您在运行 CVU 时会收到错误消息“Package cvuqdisk not installed(程序包 cvuqdisk 未安装)”。 cvuqdisk RPM 可在 rpm 目录中的 Oracle 集群件安装介质中找到. 在 rac1 中找到 cvuqdisk RPM 并将其复制到 rac2,然后在两个 Oracle RAC 节点上执行以下步骤进行安装: cd /opt/oracle/clusterware/rpm rpm -iv cvuqdisk-1.0.1-1.rpm 利用 CVU 检查 CRS 的安装前任务 验证远程访问/用户等效性 应该从 rac1(将在该节点运行所有的 Oracle 安装)运行 CVU。运行 CVU 之前, 以 oracle 用户帐户登录并验证已针对集群中的所有节点配置了远程访问. 利用 CVU 检查 CRS 的安装前任务: /opt/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose 查看 CVU 报告。注意,报告中几个可以忽略的错误。 第一个错误有关“oinstall”组 [作为基本组] 中的用户“oracle”的成员资格。考虑到本文的目的,“oracle”用户帐户只能分配给“dba”组, 因此可以忽略该错误,没什么问题。 第二个错误与为 VIP 查找一组适合的接口有关。 最后一组可忽略的错误与处理 RHEL4 Update 4 中不存在的特定 RPM 程序包版本有关。例如: compat-gcc-7.3-2.96.128 compat-gcc-c++-7.3-2.96.128 compat-libstdc++-7.3-2.96.128 compat-libstdc++-devel-7.3-2.96.128 这些特定的程序包在 CVU 报告中列为缺少,请确保在集群中的两个 Oracle RAC 节点上安装了正确版本的 compat-* 程序包。 例如,在 RHEL4 Update 4 中,这些程序包应为: compat-gcc-32-3.2.3-47.3 compat-gcc-32-c++-3.2.3-47.3 compat-libstdc++-33-3.2.3-47.3 利用 CVU 检查硬件和*作系统设置 /opt/oracle/clusterware/cluvfy/runcluvfy.sh stage -post hwos -n rac1,rac2 -verbose 查看 CVU 报告。注意,报告中几个可以忽略的错误。 第一个错误有关“oinstall”组 [作为基本组] 中的用户“oracle”的成员资格。考虑到本文的目的,“oracle”用户帐户只能分配给“dba”组,因此可以忽略该错误,没什么问题。 第二个错误与为 VIP 查找一组适合的接口有关。这是 Metalink 说明 338924.1 中的一个错误文件: Suitable interfaces for the private interconnect on subnet "192.168.2.0": linux2 eth1:192.168.2.101 linux1 eth1:192.168.2.100 ERROR: Could not find a suitable set of interfaces for VIPs. Result: Node connectivity check failed. 如说明中所述,可以忽略该错误,没什么问题。 另请注意,如果检查共享存储可访问性将失败。 Checking shared storage accessibility... WARNING: Unable to determine the sharedness of /dev/sde on nodes: linux2,linux2,linux2,linux2,linux2,linux1,linux1,linux1,linux1,linux1 Shared storage check failed on nodes "linux2,linux1". 该警告也可忽略,没什么问题。虽然我们知道这些磁盘可见并在集群中的两个 Oracle RAC 节点中共享, 但本身将失败。导致该错误的若干原因已得到证明。第一个原因来自 Metalink, 指出 cluvfy 当前没有使用 SCSI 设备之外的其他设备。这将包括设备(如 EMC PowerPath)和卷组(如 Openfiler 中的卷组)。 截至本文撰写之日,除了使用手动方法检测共享设备外没有其他解决方法。 该错误的另一个原因由 Oracle Corporation 的 Bane Radulovic 提出。他的研究表明, CVU 在 Linux 上调用 smartclt 时,smartclt 不会从 iSCSI 设备返回序列号。 例如,针对 /dev/sde 进行的检查显示: # /usr/sbin/smartctl -i /dev/sde smartctl version 5.33 [i686-redhat-linux-gnu] Copyright (C) 2002-4 Bruce Allen Home page is http://smartmontools.sourceforge.net/ Device: Openfile Virtual disk Version: 0 Serial number: Device type: disk Local Time is: Wed Oct 25 23:41:20 2006 EDT Device supports SMART and is Disabled Temperature Warning Disabled or Not Supported 安装 Oracle 10g 集群件软件 Oracle 集群件共享文件 系统将把由 Oracle 集群件使用的两个共享文件(实际上是文件组)存储到我们在前面创建的 Oracle 集群文件系统第 2 版 (OFCS2) 中。 这两个共享 Oracle 集群件文件组是: Oracle 集群注册表 (OCR) 文件 1:/opt/oracle/ocfs2/OCRFile 文件 2:/opt/oracle/ocfs2/OCRFile_mirror 大小:(2 * 100MB) = 200M CRS 表决磁盘 文件 1:/opt/oracle/ocfs2/CSSFile 文件 2:/opt/oracle/ocfs2/CSSFile_mirror1 文件 3:/opt/oracle/ocfs2/CSSFile_mirror2 大小:(3 * 20MB) = 60MB 注意:不能对这两个共享 Oracle 集群件文件使用自动存储管理 (ASM):Oracle 集群注册表 (OCR) 或 CRS 表决磁盘 文件。 问题是只有这两个文件就绪并可以访问后才可以启动 Oracle 实例。要使 ASM 可用,应首先运行 ASM 实例。 另请注意,可以将这两个共享文件存储到 OCFS2、共享的原始设备或其他供应商的集群化文件系统中。 以oracle用户登录X终端,建立集群中所有计算机上节点之间的互信! exec ssh-agent $SHELL ssh-add 开始安装cluster软件 clusterware unzip 目录./runInstaller *确认安装目录是/opt/oracle/crs *如果愿意可以将clustername由crs修改成其他的名称 *添加两个节点,如下所示 ____________________________________________________________________ Public Node Name Private Node Name Virtual Node Name rac1 rac1-priv rac1-vip rac2 rac2-priv rac2-vip ____________________________________________________________________ *要修改一下eth0的类型,他默认的是private,修改为public *指定OCR和mirror的路径 Specify OCR Location: /opt/oracle/crs/OCRFile Specify OCR Mirror Location:/opt/oracle/crs/OCRFile_mirror *指定Voting磁盘路径 Voting Disk Location: /opt/oracle/crs/CSSFile Additional Voting Disk 1 Location:/opt/oracle/crs/CSSFile_mirror1 Additional Voting Disk 2 Location:/opt/oracle/crs/CSSFile_mirror2 *安装快结束时.会要求以root执行orainsRoot.sh和root.sh脚本,以root用户打开一个新的终端,一个一个节点顺序执行, 千万不要抢时间一起执行 *执行最后一个root.sh的时候,可能会报""eth0" is not public.Public interfaces should be used to configure virtual IPs." 这样的错误.最简单的变通方法是从出现错误的上一个节点中以 root 用户的身份手动重新运行 vipca (GUI)。 请记住,vipca 是一个 GUI. $ORA_CRS_HOME/bin/vipca 出现“VIP Configuration Assistant”时,我按如下所示回应屏幕提示: Network interfaces: 选择两个接口 — eth0 和 eth1 选择两个节点,配置一下虚拟ip的信息:rac1-vip,rac2-vip. * 选择"ok","exit".退出vipca.
这时,才能返回CRS安装界面选择"ok",运行三个脚本后,选择"exit" 至此,clusterware安装就ok了. 检查一下集群节点 $ORA_CRS_HOME/bin/olsnodes -n rac1 1 rac2 2 验证crs安装 /opt/oracle/crs/bin/crs_stat NAME=ora.rac1.gsd TYPE=application TARGET=ONLINE STATE=ONLINE on rac1
NAME=ora.rac1.ons TYPE=application TARGET=ONLINE STATE=ONLINE on rac1
NAME=ora.rac1.vip TYPE=application TARGET=ONLINE STATE=ONLINE on rac1
NAME=ora.rac2.gsd TYPE=application TARGET=ONLINE STATE=ONLINE on rac2
NAME=ora.rac2.ons TYPE=application TARGET=ONLINE STATE=ONLINE on rac2
NAME=ora.rac2.vip TYPE=application TARGET=ONLINE STATE=ONLINE on rac2 检查 Oracle 集群件自动启动脚本 ls -l /etc/init.d/init.*
如果发现因 CSS 后台程序超时引起的问题。 错误在日志文件 $ORA_CRS_HOME/css/log/ocssd1.log 中记录为: clssnmDiskPingMonitorThread:voting device access hanging (45010 miliseconds) 驱动器越慢,这种情况就越经常出现。需要将misscount修改为 360 只启动集群中的一个节点! 从一个节点中,以 root 用户帐户的身份登录并键入: /opt/oracle/crs/bin/crsctl set css misscount 360 重新引导此单个节点 ,启动集群中的所有其他节点。 安装失败删除CRS的方法(先建立集群中所有计算机上节点之间的互信和X WINDWOS 环境!) su - root chown oracle.oinstall /opt/oracle/crs su - oracle(建立集群中所有计算机上节点之间的互信和X WINDWOS 环境!) ./runInstall-->deinstall-->所有Oracle 10g软件-->remove rm -rf /etc/ora* /opt/oracle/oraInventory/ /opt/oracle/crs /tmp/* /etc/init.d/init* /opt/oracle/ocfs2/* reboot
11. 安装Oracle 10g软件 (先建立集群中所有计算机上节点之间的互信和X WINDWOS 环境!) 安装 Oracle 数据库软件之前,我们应该使用集群验证实用程序 (CVU) 运行以下数据库安装前检查。 /opt/oracle/clusterware/cluvfy/runcluvfy.sh stage -pre dbinst -n rac1,rac2 -r 10gR2 -verbose 查看 CVU 报表。注意,该报表将包含我们在检查 CRS 安装前任务时收到的错误:找不到一组合适的 VIP 接口, 以及找不到 RHEL4 Update 中不存在的特定 RPM 程序包。可以忽略这两个错误,没什么问题。
Oracle的安装需要注意 Name: OraDb10g_home1 Location:/opt/oracle/app *节点的选择上,一定要选上所有的节点. *保留其他默认值 *选择 "Install database software only",先不要建instance,等数据库安装完毕后时候dbca创建 *安装完成后,需要执行root.sh脚本,(从运行数据库安装的节点开始)不要着急,一个节点一个节点执行 安装结束时,退出 OUI
12. 建立TNS侦听 (先建立集群中所有计算机上节点之间的互信和X WINDWOS 环境!) 集群的一个节点以oracle用户执行 $ netca & *选择所有节点 *选择Listener configuration *其他的都选择默认即可 结束后可以验证一下侦听是否已经在所有节点上运行 ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' | awk '{print $9}' 应该可以看到 LISTENER_RAC1 另外一个节点应该是 LISTENER_RAC2 13. 创建数据库实例 (先建立集群中所有计算机上节点之间的互信和X WINDWOS 环境!) 在执行 DBCA 前,确保为 ORACLE环境正确设置了 $ORACLE_HOME 和 $PATH 以oracle用户在任一节点执行 dbca & *选择 Create a Database *选择所有节点 *选择Custom Database *全局数据库名输入orcl,SID也是orcl *择 Use the Same Password for All Accounts。输入口令(两次)并确保此口令不是以数字开头。 *存储选项选择 use ASM *提供要用于新 ASM 实例的 SYS 口令。 此外,从第 2 版开始,ASM 实例服务器参数文件 (SPFILE) 可以位于共享磁盘上。 您将需要修改“Create server parameter file (SPFILE)”的默认条目以驻留在 OCFS2 分区上, 如下所示:/opt/oracle/ocfs2/dbs/spfile+ASM.ora。所有其他选项可以保留其默认值。 然后将有一个对话框询问您是否要创建并启动 ASM 实例。选择 OK 按钮确认此对话框。 OUI 将立即在 RAC 集群的所有节点上创建并启动 ASM 实例。 *在ASM Disk Groups配置界面,选择Create New,会显示之前通过ASMlib创建的3个卷VOL1到VOL3 如果在本文前面部分创建的卷没有显示在“Select Member Disks”窗口中:(ORCL:VOL1、ORCL:VOL2 和 ORCL:VOL3), 则单击“Change Disk Discovery Path”按钮并输入“ORCL:VOL*”。对于第一个“Disk Group Name”,我使用了字符串“DATA”。 在“Select Member Disks”窗口中选择前两个 ASM 卷(ORCL:VOL1 和 ORCL:VOL2)。将“Redundancy”设置为“Normal”。 这两列现在的状态应为“PROVISIONED”。确认此窗口中的所有值均正确后,单击 [OK] 按钮。 这将显示“ASM Disk Group Creation”对话框。完成 ASM 磁盘组创建过程时,将返回到“ASM Disk Groups”窗口。 再次单击 Create New 按钮。对于第二个“Disk Group Name”,使用字符串 FLASH。 在“Select Member Disks”窗口中选择最后一个 ASM 卷 (ORCL:VOL3)。将“Redundancy”选项设置为“External”。 最后一个卷的状态也将更改为“PROVISIONED”。确认此窗口中的所有值均正确后,单击 [OK] 按钮。 这将显示“ASM Disk Group Creation”对话框。完成 ASM 磁盘组创建过程后,您将返回到“ASM Disk Groups”窗口, 其中创建并选择了两个磁盘组。使用新创建的 Disk Group Name ORCL_DATA1 旁边的复选框选择一个磁盘组 (确保未选择 FLASH_RECOVERY_AREA 的磁盘组),然后单击 [Next] 继续。 *Database File Locations 选择DATA *Recovery Configuration 选择FLASH_RECOVERY_AREA ,DATA Redundancy,选择externel,使用磁盘组名称 +FLASH 如果使用的磁盘组的大小约为 100GB。可以使用 90GB 的 Flash Recovery Area Size *Database Content所有数据库组件(和目标表空间)设置为它们的默认值 数据库字符集选Simplified Chinese ZHS16GBK *Service name 可以输入taf,TAF Policy选择Basic *Database Storage 可以保留其默认值。 完成dbca,Oracle RAC就已经完全安装成功了! 安装失败删除Oracle 10g软件的方法 ./runInstall-->deinstall-->所有Oracle 10g软件-->remove rm -rf /opt/oracle/app/* /opt/oracle/ocfs2/* /usr/local/bin/dbhome /usr/local/bin/oraenv rm -rf /etc/ora* /opt/oracle/oraInventory/ /opt/oracle/admin /opt/oracle/crs /tmp/* /etc/init.d/init* delete ASM磁盘 在一个节点上执行 /etc/init.d/oracleasm deletedisk VOL1 /etc/init.d/oracleasm deletedisk VOL2 /etc/init.d/oracleasm deletedisk VOL3 重新创建ASM磁盘 在一个节点上执行 /etc/init.d/oracleasm createdisk VOL1 /dev/sda2 /etc/init.d/oracleasm createdisk VOL2 /dev/sda3 /etc/init.d/oracleasm createdisk VOL3 /dev/sda4 /etc/init.d/oracleasm listdisks
然后在另外节点上执行 /etc/init.d/oracleasm scandisks /etc/init.d/oracleasm listdisks 重新格式化OCFS2 分区 mkfs.ocfs2 -b 4k -C 32k -N 2 -L ocfs2 /dev/sda1 reboot
14. 验证 RAC 集群和数据库配置 有五个为 SRVCTL 定义的节点级任务: 添加和删除节点级应用程序 设置和取消设置节点级应用程序的环境 管理节点应用程序 管理 ASM 实例 启动和停止一组包含虚拟 IP 地址、监听器、Oracle 通知服务和 Oracle 企业管理器代理的程序(出于维护目的)。 所有实例和服务的状态 $ srvctl status database -d orcl Instance orcl1 is running on node rac1 Instance orcl2 is running on node rac2 单个实例的状态 $ srvctl status instance -d orcl -i orcl2 Instance orcl2 is running on node rac2 在数据库全局命名服务的状态 $ srvctl status service -d orcl -s taf Service orcltest is running on instance(s) orcl2, orcl1 特定节点上节点应用程序的状态 $ srvctl status nodeapps -n rac1 VIP is running on node:rac1 GSD is running on node:rac1 Listener is running on node:rac1 ONS daemon is running on node:rac1 ASM 实例的状态 $ srvctl status asm -n rac1 ASM instance +ASM1 is running on node rac1. 列出配置的所有数据库 $ srvctl config database orcl 显示 RAC 数据库的配置 $ srvctl config database -d orcl
显示指定集群数据库的所有服务 $ srvctl config service -d orcl orcltest PREF:orcl2 orcl1 AVAIL: 显示节点应用程序的配置 -(VIP、GSD、ONS、监听器) $ srvctl config nodeapps -n rac1 -a -g -s -l VIP exists.:/vip-linux1/192.168.1.200/255.255.255.0/eth0:eth1 GSD exists. ONS daemon exists. Listener exists. 显示 ASM 实例的配置 $ srvctl config asm -n linux1 +ASM1 /u01/app/oracle/product/10.2.0/db_1
RAC的启动和关闭 如果都遵循了上面的安装步骤,那么每次节点重新启动的时候,所有服务都会自动启动,如果需要关闭或者启动某个节点,如下所示 *停止RAC emctl stop dbconsole srvctl stop instance -d orcl -i orcl1 srvctl stop instance -d orcl -i orcl2 srvctl stop asm -n rac1 srvctl stop asm -n rac2 srvctl stop nodeapps -n rac1 srvctl stop nodeapps -n rac2 *启动RAC 和上面的步骤正好相反即 srvctl start nodeapps -n rac1 srvctl start nodeapps -n rac2 srvctl start asm -n rac1 srvctl start asm -n rac2 srvctl start instance -d orcl -i orcl2 srvctl start instance -d orcl -i orcl1 emctl start dbconsole
使用 SRVCTL 启动/停止所有实例 启动/停止所有实例及其启用的服务。 srvctl start database -d orcl srvctl stop database -d orcl
|