技术开发 频道

虚拟RHEL5上安装11g RAC

  【IT168 技术文档】

  本文描述了如何使用VMware ESX Server和NFS作为共享存储在Red Hat Enterprise Linux 5上安装Oracle 11g R1 RAC。

  介绍

  ESX Server是VMware公司提供的企业级管理程序(hypervisor),它安装在裸机上,比起桌面虚拟工具而言,它的效率高多了,本文使用ESX Server为安装Oracle真正应用集群(RAC)提供基础架构。

  本文假设你已经安装了VMware ESX Server和一个VMware基础架构客户端(VMware Infrastructure Client),它们的安装说明请参考:

  http://www.oracle-base.com/articles/misc/VMwareESXServer3Installation.php

  下载软件

  需要的软件:Red Hat Enterprise Linux (RHEL) 5和Oracle 11g Release 1 (11.1) Clusterware and DB software。请去www.redhat.com和www.oracle.com下载。

  虚拟机设置

  在左边窗格ESX服务器上点击右键,然后选择“新的虚拟机... ”菜单选项。

  选择自定义选项,并点击“下一步”按钮。

  输入你希望出现在客户端右侧窗格中的虚拟机的名称( RAC1 ),然后点击“下一步”按钮。

  选择默认的数据存储,然后点击“下一步”按钮。

  选择“ Linux系统”和“红帽企业Linux 5 ”选项,然后点击“下一步”按钮。

  为虚拟机选择所需处理器的数量,然后点击“下一步”按钮。

  这里证明我们完成安装最低需要1G的内存。输入虚拟机所需的内存数量,然后点击“下一步”按钮。

  我们至少需要两个网卡。一个为公网IP和虚拟IP地址,为私有IP地址单独提供一个。选择需要的数量和网卡类型,然后点击“下一步”按钮。

  接受默认的存储适配器,点击“下一步”按钮

  接受“创建一个新的虚拟磁盘”选项,点击“下一步”按钮。

  我们使用的是NFS共享存储ORACLE HOME和数据库文件,因此在每个虚拟机上我们并不需要多少磁盘空间。假设您使用的是1G的内存,您将确定的2G的交换空间,使10G的磁盘空间足够了。如果您使用了更多的内存,您将需要增加相应的磁盘空间。输入适当的磁盘容量,然后点击“下一步”按钮。

  本地磁盘不需要共享,所以点击“下一步”按钮,忽略高级选项。

  如果你对摘要信息感到满意,请单击“完成”按钮。

  现在在左侧窗格中就可以看到虚拟机了。

  重复此过程来创建第二个节点(RAC2)。

  要启动虚拟机,在工具栏上点击播放按钮。

  虚拟机将开始从已安装媒体或网络启动。

  客户端操作系统安装

  请将RHEL 第5版Linux的DVD放到客户端PC的DVD驱动器,在工具栏上点击播放按钮,启动虚拟机,右窗格中显示VMware ESX服务器的客户机启动加载器,然后显示RHEL Linux 5安装屏幕。

  下面的安装就和正常的操作系统安装一样了,但至少要有2G SWAP空间,要禁用防火墙和SELinux,并安装下列软件包:

   GNOME Desktop Environment

   Editors

   Graphical Internet

   Text-based Internet

   Development Libraries

   Development Tools

   Server Configuration Tools

   Administration Tools

   Base

   System Tools

   X Window System

  要保持和本文剩余的部分一致,在安装过程中必须象下面这样进行设置:

  RAC1:

  主机名:rac1.localdomain

  eth0的IP地址:10.1.10.201(公共地址)

  eth0默认网关:10.1.10.1(公共地址)

  eth1的IP地址:10.1.9.201(私有地址)

  eth1默认网关:无

  RAC2:

  主机名:rac2.localdomain

  eth0的IP地址:10.1.10.202(公共地址)

  eth0默认网关:10.1.10.2(公共地址)

  eth1的IP地址:10.1.9.202(私有地址)

  eth1默认网关:无

  你可以自由更改IP地址,以适应您的网络,但请记住保持这些调整符合文章的其他内容。

  一旦基本安装完成后,您必须安装一些额外的软件包,同时登录为根用户。如果您有互联网连接,您可以使用以下命令进行下载和安装。

  yum install binutils elfutils-libelf glibc glibc-common libaio \

  libgcc libstdc++ make compat-libstdc++-33 elfutils-libelf-devel \

  glibc-headers glibc-devel libgomp gcc gcc-c++ libaio-devel \

  libstdc++-devel unixODBC unixODBC-devel sysstat

  或者从RHEL 5的DVD安装它们。

  # From Enterprise Linux 5.2 DVD

  cd /media/dvd/Server

  rpm -Uvh binutils-2.*

  rpm -Uvh elfutils-libelf-0.*

  rpm -Uvh glibc-2.*

  rpm -Uvh glibc-common-2.*

  rpm -Uvh libaio-0.*

  rpm -Uvh libgcc-4.*

  rpm -Uvh libstdc++-4.*

  rpm -Uvh make-3.*

  rpm -Uvh compat-libstdc++-33*

  rpm -Uvh elfutils-libelf-devel-*

  rpm -Uvh glibc-headers*

  rpm -Uvh glibc-devel-2.*

  rpm -Uvh libgomp*

  rpm -Uvh gcc-4.*

  rpm -Uvh gcc-c++-4.*

  rpm -Uvh libaio-devel-0.*

  rpm -Uvh libstdc++-devel-4.*

  rpm -Uvh unixODBC-2.*

  rpm -Uvh unixODBC-devel-2.*

  rpm -Uvh sysstat-7.*

  cd /

  eject

  请记住,安装完客户端操作系统后要安装VMware工具。

  Oracle安装先决条件

  请作为root用户登录到RAC1虚拟机执行下列步骤。

  在/etc/hosts文件必须包含以下信息:

  127.0.0.1 localhost.localdomain localhost

  # Public

  10.1.10.201 rac1.localdomain rac1

  10.1.10.202 rac2.localdomain rac2

  #Private

  10.1.9.201 rac1-priv.localdomain rac1-priv

  10.1.9.202 rac2-priv.localdomain rac2-priv

  #Virtual

  10.1.10.203 rac1-vip.localdomain rac1-vip

  10.1.10.204 rac2-vip.localdomain rac2-vip

  #NAS

  10.1.10.61 nas1.localdomain nas1

  将下列语句添加到/etc/sysctl.conf文件:

  kernel.shmmni = 4096

  # semaphores: semmsl, semmns, semopm, semmni

  kernel.sem = 250 32000 100 128

  net.ipv4.ip_local_port_range = 1024 65000

  net.core.rmem_default=4194304

  net.core.rmem_max=4194304

  net.core.wmem_default=262144

  net.core.wmem_max=262144

  # Additional and amended parameters suggested by Kevin Closson

  #net.core.rmem_default = 524288

  #net.core.wmem_default = 524288

  #net.core.rmem_max = 16777216

  #net.core.wmem_max = 16777216

  net.ipv4.ipfrag_high_thresh=524288

  net.ipv4.ipfrag_low_thresh=393216

  net.ipv4.tcp_rmem=4096 524288 16777216

  net.ipv4.tcp_wmem=4096 524288 16777216

  net.ipv4.tcp_timestamps=0

  net.ipv4.tcp_sack=0

  net.ipv4.tcp_window_scaling=1

  net.core.optmem_max=524287

  net.core.netdev_max_backlog=2500

  sunrpc.tcp_slot_table_entries=128

  sunrpc.udp_slot_table_entries=128

  net.ipv4.tcp_mem=16384 16384 16384

  运行以下命令以改变当前的内核参数:

  /sbin/sysctl –p

  将下列语句添加到/etc/security/limits.conf文件:

  oracle soft nproc 2047

  oracle hard nproc 16384

  oracle soft nofile 1024

  oracle hard nofile 65536

  请将以下几行添加到/etc/pam.d /login文件,如果它们不存在的话:

  session required /lib/security/pam_limits.so

  session required pam_limits.so

  通过编辑/etc/SELinux/config文件禁用安全Linux,确保了SELinux标志设置如下:

  SELINUX=disabled

  另外,这一改动可以使用GUI工具(系统?管理?安全级和防火墙)做到 。按一下SELinux标签,点击停用功能。

  创建新的组和用户:

  groupadd oinstall

  groupadd dba

  groupadd oper

  groupadd asmadmin

  useradd -u 500 -g oinstall -G dba,oper,asmadmin oracle

  passwd oracle

  配置群集每个节点上的SSH。在每个节点上以Oracle用户登陆执行下列任务:

  su - oracle

  mkdir ~/.ssh

  chmod 700 ~/.ssh

  /usr/bin/ssh-keygen -t rsa # Accept the default settings.

  exit

  RSA公钥被写入~/.ssh/id_rsa.pub文件,私钥写入~/.ssh/id_rsa文件。

  在RAC1节点上以Oracle用户登陆,生成一个authorized_keys文件,然后复制到RAC2上:

  su - oracle

  cd ~/.ssh

  cat id_rsa.pub >> authorized_keys

  scp authorized_keys rac2:/home/oracle/.ssh/

  exit

  接下来,在RAC2上以Oracle用户登陆,执行下面的命令:

  su - oracle

  cd ~/.ssh

  cat id_rsa.pub >> authorized_keys

  scp authorized_keys rac1:/home/oracle/.ssh/

  exit

  现在在两台服务器上的authorized_keys文件都包括了所有节点的公钥。

  为了使每个群集成员节点上的SSH用户都对等,在每个节点上执行下面的命令:

  su - oracle

  ssh rac1 date

  ssh rac2 date

  ssh rac1.localdomain date

  ssh rac2.localdomain date

  exec /usr/bin/ssh-agent $SHELL

  /usr/bin/ssh-add

  现在在这两台服务器之间应该可以不要密码使用SSH和SCP了。

  以Oracle用户登陆,然后将下面的语句添加到.bash_profile末尾:

  # Oracle Settings

  TMP=/tmp; export TMP

  TMPDIR=$TMP; export TMPDIR

  ORACLE_HOSTNAME=rac1.localdomain; export ORACLE_HOSTNAME

  ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

  ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1; export ORACLE_HOME

  ORACLE_SID=RAC1; export ORACLE_SID

  ORACLE_TERM=xterm; export ORACLE_TERM

  PATH=/usr/sbin:$PATH; export PATH

  PATH=$ORACLE_HOME/bin:$PATH; export PATH

  LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

  CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

  if [ $USER = "oracle" ]; then

  if [ $SHELL = "/bin/ksh" ]; then

  ulimit -p 16384

  ulimit -n 65536

  else

  ulimit -u 16384 -n 65536

  fi

  fi

  请记住,在第二个节点上为ORACLE_SID和ORACLE_HOSTNAME设置正确的值。

  创建共享磁盘

  这里安装使用NFS为RAC提供共享存储,修改下面的语句以适应你的NAS或NFS服务器。

  如果你使用了第三个Linux服务器提供NFS服务,你应该如下面语句这样创建一些共享目录:

  mkdir /shared_config

  mkdir /shared_crs

  mkdir /shared_home

  mkdir /shared_data

  将下列语句添加到/etc/exports文件:

  /shared_config *(rw,sync,no_wdelay,insecure_locks,no_root_squash)

  /shared_crs *(rw,sync,no_wdelay,insecure_locks,no_root_squash)

  /shared_home *(rw,sync,no_wdelay,insecure_locks,no_root_squash)

  /shared_data *(rw,sync,no_wdelay,insecure_locks,no_root_squash)

  运行以下命令导出NFS共享:

  chkconfig nfs on

  service nfs restart

  如果你使用的是NAS或其他一些支持NFS的存储设备,也请创建4个共享。

  在RAC1和RAC2上创建用于安装Oracle软件的目录:

  mkdir -p /u01/app/crs/product/11.1.0/crs

  mkdir -p /u01/app/oracle/product/11.1.0/db_1

  mkdir -p /u01/oradata

  mkdir -p /u01/shared_config

  chown -R oracle:oinstall /u01/app /u01/app/oracle /u01/oradata /u01/shared_config

  chmod -R 775 /u01/app /u01/app/oracle /u01/oradata /u01/shared_config

  将下面的语句添加到每个服务器的/etc/fstab文件中,挂载选项是基于Oracle metalink注记:359515.1的建议:

  nas1:/shared_config /u01/shared_config nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,noac,vers=3,timeo=600 0 0

  nas1:/shared_crs /u01/app/crs/product/11.1.0/crs nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 0 0

  nas1:/shared_home /u01/app/oracle/product/11.1.0/db_1 nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 0 0

  nas1:/shared_data /u01/oradata nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600 0 0

  以root用户登陆两台服务器运行下列命令挂载NFS共享:

  mount /u01/shared_config

  mount /u01/app/crs/product/11.1.0/crs

  mount /u01/app/oracle/product/11.1.0/db_1

  mount /u01/oradata

  建立共享CRS配置和表决磁盘文件:

  touch /u01/shared_config/ocr_configuration

  touch /u01/shared_config/voting_disk

  在每台服务器上以root登陆执行下列命令确保共享目录的权限设置正确:

  chown -R oracle:oinstall /u01/shared_config

  chown -R oracle:oinstall /u01/app/crs/product/11.1.0/crs

  chown -R oracle:oinstall /u01/app/oracle/product/11.1.0/db_1

  chown -R oracle:oinstall /u01/oradata

  开始安装clusterware之前,先在clusterware根目录使用runcluvfy.sh检查先决条件是否已经满足:

  /mountpoint/clusterware/runcluvfy.sh stage -pre crsinst -n rac1,rac2 –verbose

  如果你收到任何失败消息,请先纠正后再继续安装。

  安装clusterware软件

  解压clusterware和数据库软件:

  unzip linux_11gR1_clusterware.zip

  unzip linux_11gR1_database.zip

  以Oracle用户登陆到RAC1,然后执行安装程序:

  cd clusterware

  ./runInstaller

  在“欢迎”屏幕,点击“下一步”按钮。

  接受默认的inventory目录,点击“下一步”按钮。

  输入“/u01/app/crs/product/11.1.0/crs ”的ORACLE HOME,并点击“下一步”按钮。

  等待先决条件检查,遇到任何失败都应该纠正并重新测试,确保所有先决条件检查都通过,然后点击“下一步”按钮。

  “指定群集配置”屏幕显示只有RAC1节点。点击“添加”按钮继续。

  输入RAC2节点的详细资料,并点击“确定”按钮

  按“下一步”按钮继续。

  在“指定网络接口用法”屏幕定义每个网络接口的用途。选中“eth0”接口,点击“修改”按钮。

  设置“eht0”接口类型“public”,并点击“确定”按钮。

  保留“eth1”接口为私有,点击“下一步”按钮。

  点击“外部冗余”选项,输入“/u01/shared_config/ocr_configuration”作为OCR位置,点击“下一步”按钮。为了有更大的冗余,我们需要确定另一个共享磁盘的备用位置。

  点击“外部冗余”选项,输入“/u01/shared_config/voting_disk”的表决磁盘位置,并点击“下一步”按钮,为了有更大的冗余,我们需要确定另一个共享磁盘的替代的位置。

  在“摘要”屏幕上,单击“安装”按钮,继续。

  等待安装

  一旦安装完成,在两个节点上运行下列屏幕显示的orainstRoot.sh root.sh脚本。

  执行orainstRoot.sh文件的输出看起来应该像下面这样。

  # cd /u01/app/oraInventory

  # ./orainstRoot.sh

  Changing permissions of /u01/app/oraInventory to 770.

  Changing groupname of /u01/app/oraInventory to oinstall.

  The execution of the script is complete

  #

  执行root.sh的输出将取决于它运行的节点。下列文字是来自RAC1节点的输出。

  # cd /u01/app/crs/product/11.1.0/crs

  # ./root.sh

  WARNING: directory '/u01/app/crs/product/11.1.0' is not owned by root

  WARNING: directory '/u01/app/crs/product' is not owned by root

  WARNING: directory '/u01/app/crs' is not owned by root

  WARNING: directory '/u01/app' 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 Network socket directories

  Oracle Cluster Registry configuration upgraded successfully

  The directory '/u01/app/crs/product/11.1.0' is not owned by root. Changing owner to root

  The directory '/u01/app/crs/product' is not owned by root. Changing owner to root

  The directory '/u01/app/crs' is not owned by root. Changing owner to root

  The directory '/u01/app' is not owned by root. Changing owner to root

  Successfully accumulated necessary OCR keys.

  Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.

  node :

  node 1: rac1 rac1-priv rac1

  node 2: rac2 rac2-priv rac2

  Creating OCR keys for user 'root', privgrp 'root'..

  Operation successful.

  Now formatting voting device: /u01/shared_config/voting_disk

  Format of 1 voting devices complete.

  Startup will be queued to init within 30 seconds.

  Adding daemons to inittab

  Expecting the CRS daemons to be up within 600 seconds.

  Cluster Synchronization Services is active on these nodes.

  rac1

  Cluster Synchronization Services is inactive on these nodes.

  rac2

  Local node checking complete. Run root.sh on remaining nodes to start CRS daemons.

  #

  下面的输出来自RAC2节点。

  # /u01/app/crs/product/11.1.0/crs

  # ./root.sh

  WARNING: directory '/u01/app/crs/product/11.1.0' is not owned by root

  WARNING: directory '/u01/app/crs/product' is not owned by root

  WARNING: directory '/u01/app/crs' is not owned by root

  WARNING: directory '/u01/app' 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 Network socket directories

  Oracle Cluster Registry configuration upgraded successfully

  The directory '/u01/app/crs/product/11.1.0' is not owned by root. Changing owner to root

  The directory '/u01/app/crs/product' is not owned by root. Changing owner to root

  The directory '/u01/app/crs' is not owned by root. Changing owner to root

  The directory '/u01/app' is not owned by root. Changing owner to root

  clscfg: EXISTING configuration version 4 detected.

  clscfg: version 4 is 11 Release 1.

  Successfully accumulated necessary OCR keys.

  Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.

  node :

  node 1: rac1 rac1-priv rac1

  node 2: rac2 rac2-priv rac2

  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 30 seconds.

  Adding daemons to inittab

  Expecting the CRS daemons to be up within 600 seconds.

  Cluster Synchronization Services is active on these nodes.

  rac1

  rac2

  Cluster Synchronization Services is active on all the nodes.

  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.

  #

  在这里您可以看到,有些配置的步骤被省略了,因为他们在第一个节点做,此外,最后一部分脚本以安静模式运行虚拟IP配置助理(VIPCA)。

  您现在应该回到RAC1 的“执行配置脚本”屏幕上,并点击“确定”按钮。

  等待配置助手完成。

  当安装完成后,点击“退出”按钮离开安装程序。

  该集群安装现已完成。

  安装数据库软件

  以oracle用户登陆RAC1执行oracle安装程序:

  cd database

  ./runInstaller

  在“欢迎”屏幕,点击“下一步”按钮。

  选择“企业版”选项,并点击“下一步”按钮。

  输入ORACLE HOME名称和路径,并点击“下一步”按钮。

  选择“群集安装”选项,并确保这两个RAC节点都被选中,点击“下一步”按钮。

  等待检查先决条件。如果您有任何失败请先予以纠正,并重新测试,然后单击“下一步”按钮。

  选择“只安装软件”选项,然后点击“下一步”按钮。

  在“摘要”屏幕上,单击“安装”按钮继续。

  等待数据库软件安装。

  在两个节点上执行“执行配置脚本”的屏幕显示的“root.sh”脚本,然后按一下“确定”按钮。

  当安装完成后,点击“退出”按钮离开安装程序。

 

  使用DBCA创建数据库

  以oracle用户登陆RAC1,开始使用数据库创建助手创建数据库。

  dbca

  在“欢迎”屏幕中,选择“Oracle实时应用集群数据库”选项,并单击“下一步”按钮。

  选择“创建数据库”选项,并点击“下一步”按钮。

  选中两个节点,并点击“下一步”按钮。

  选择“一般用途或交易处理”选项,并点击“下一步”按钮。

  分别输入全球数据库名称“RAC.WORLD”和SID前缀“RAC”,然后点击“下一步”按钮。

  接受管理选项,点击“下一步”按钮。如果您正在试图安装的服务器内存有限,您可能不希望现在配置企业管理器。

  输入数据库密码然后点击“下一步”按钮。

  选择“集群文件系统”选项,然后点击“下一步”按钮。

  选择“使用Oracle管理文件”选项,并输入“/u01/oradata/”作为数据库存放位置,然后点击“下一步”按钮。

  选中“指定闪回恢复区”选项,并输入“/u01/oradata/”位置,然后点击“下一步”按钮。 注意,通常不要将闪回恢复区和数据文件放在同一地点,但是这仅仅是一个实验。

  接受该数据库的内容设置,点击“下一步”按钮。

  接受“典型”的内存管理选项,点击“下一步”按钮。

  接受11g增强安全设置,点击“下一步”按钮。

  接受自动维护任务,点击“下一步”按钮。

  接受该数据库存储的设置,点击“下一步”按钮。

  接受数据库建立选项,点击“完成”按钮。

  接受摘要信息,点击“确定”按钮。

  等待数据库建立。

  出现提示时,点击“是”按钮来设定监听器的默认设置。

  一旦数据库建立完成您将会看到下列屏幕。请注意屏幕上的信息,然后按一下“退出”按钮。

  RAC数据库的建立现在已经完成。

  TNS配置

  安装完成后,在共享的$ ORACLE_HOME 目录下“$ORACLE_HOME/network/admin/listener.ora”文件中将包含下列项目:

  # listener.ora Network Configuration File: /u01/app/oracle/product/11.1.0/db_1/network/admin/listener.ora

  # Generated by Oracle configuration tools.

  LISTENER_RAC2 =

  (DESCRIPTION_LIST =

  (DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521)(IP = FIRST))

  )

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.10.202)(PORT = 1521)(IP = FIRST))

  )

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

  )

  )

  )

  LISTENER_RAC1 =

  (DESCRIPTION_LIST =

  (DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)(IP = FIRST))

  )

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.10.201)(PORT = 1521)(IP = FIRST))

  )

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

  )

  )

  )

  共享的$ORACLE_HOME/network/admin/tnsnames.ora文件将包含下列内容:

  # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.1.0/db_1/network/admin/tnsnames.ora

  # Generated by Oracle configuration tools.

  RAC =

  (DESCRIPTION =

  (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))

  (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))

  (LOAD_BALANCE = yes)

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = RAC.WORLD)

  )

  )

  LISTENERS_RAC =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))

  (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))

  )

  RAC2 =

  (DESCRIPTION =

  (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = RAC.WORLD)

  (INSTANCE_NAME = RAC2)

  )

  )

  RAC1 =

  (DESCRIPTION =

  (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = RAC.WORLD)

  (INSTANCE_NAME = RAC1)

  )

  )

  这种配置可直接连接到具体的实例,或使用负载平衡连接到主服务。

  $ sqlplus / as sysdba

  SQL*Plus: Release 11.1.0.6.0 - Production on Tue Aug 19 16:54:45 2008

  Copyright (c) 1982, 2007, Oracle. All rights reserved.

  Connected to:

  Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

  With the Partitioning, Real Application Clusters, OLAP, Data Mining

  and Real Application Testing options

  SQL> CONN sys/password@rac1 AS SYSDBA

  Connected.

  SQL> SELECT instance_name, host_name FROM v$instance;

  INSTANCE_NAME HOST_NAME

  ---------------- ----------------------------------------------------

  RAC1 rac1.lynx.co.uk

  SQL> CONN sys/password@rac2 AS SYSDBA

  Connected.

  SQL> SELECT instance_name, host_name FROM v$instance;

  INSTANCE_NAME HOST_NAME

  ---------------- -----------------------------------------------------

  RAC2 rac2.lynx.co.uk

  SQL> CONN sys/password@rac AS SYSDBA

  Connected.

  SQL> SELECT instance_name, host_name FROM v$instance;

  INSTANCE_NAME HOST_NAME

  ---------------- --------------------------------------------

  RAC1 rac1.lynx.co.uk

  SQL>

  检查RAC的状态

  有几种方法来检查RAC的现况。srvctl实用程序显示当前的配置和RAC数据库的状态。

  $ srvctl config database -d RAC

  rac1 RAC1 /u01/app/oracle/product/11.1.0/db_1

  rac2 RAC2 /u01/app/oracle/product/11.1.0/db_1

  $

  $ srvctl status database -d RAC

  Instance RAC1 is running on node rac1

  Instance RAC2 is running on node rac2

  $

  在V$ACTIVE_INSTANCES视图也可以显示实例目前的状况。

  $ sqlplus / as sysdba

  SQL*Plus: Release 11.1.0.6.0 - Production on Tue Aug 19 16:55:31 2008

  Copyright (c) 1982, 2007, Oracle. All rights reserved.

  Connected to:

  Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

  With the Partitioning, Real Application Clusters, OLAP, Data Mining

  and Real Application Testing options

  SQL> SELECT * FROM v$active_instances;

  INST_NUMBER INST_NAME

  ----------- ------------------------------------------------------------

  1 rac1.lynx.co.uk:RAC1

  2 rac2.lynx.co.uk:RAC2

  SQL>

  最后,GV$视图让您可以显示整个RAC的信息。

  SQL> SELECT inst_id, username, sid, serial# FROM gv$session WHERE username IS NOT NULL;

  INST_ID USERNAME SID SERIAL#

  ---------- ------------------------------ ---------- ----------

  2 SYS 116 841

  2 SYSMAN 118 78

  2 SYS 119 1992

  2 SYSMAN 121 1

  2 SYSMAN 122 29

  2 SYS 123 2

  2 SYSMAN 124 50

  2 DBSNMP 129 1

  2 DBSNMP 130 6

  2 DBSNMP 134 1

  2 SYSMAN 145 53

  INST_ID USERNAME SID SERIAL#

  ---------- ------------------------------ ---------- ----------

  2 SYS 170 14

  1 SYSMAN 117 144

  1 SYSMAN 118 186

  1 SYSMAN 119 31

  1 SYS 121 3

  1 SYSMAN 122 162

  1 SYSMAN 123 99

  1 DBSNMP 124 3

  1 SYS 125 2

  1 SYS 126 19

  1 SYS 127 291

  INST_ID USERNAME SID SERIAL#

  ---------- ------------------------------ ---------- ----------

  1 DBSNMP 131 61

  1 SYS 170 17

  24 rows selected.

  SQL>

  如果您已配置了企业管理器,它可以用来查看配置和数据库的现状,使用类似 “https://rac1.localdomain:1158/em”的网址 。

  直接NFS客户端

  为了改善NFS的性能,oracle公司建议使用随oracle 11g发布的直接NFS客户。直接NFS客户在下列地点寻找NFS信息:

  (1)$ORACLE_HOME/dbs/oranfstab

  (2)/etc/oranfstab

  (3)/etc/mtab

  既然在“/etc/fstab”我们已经有了我们的挂载NFS点,因此“/etc/mtab”文件不需要配置任何额外信息。

  为了使客户端工作,我们需要切换libodm11.so库到libnfsodm11.so库,如下所示:

  srvctl stop database -d RAC

  cd $ORACLE_HOME/lib

  mv libodm11.so libodm11.so_stub

  ln -s libnfsodm11.so libodm11.so

  srvctl start database -d RAC

  配置完成后,你就可以通过以下视图看到直接NFS客户端:

   v$dnfs_servers

   v$dnfs_files

   v$dnfs_channels

   v$dnfs_stats

  例如:

  SQL> SELECT svrname, dirname FROM v$dnfs_servers;

  SVRNAME DIRNAME

  ------------- -----------------

  nas1 /shared_data

  SQL>

  默认情况下,直接NFS客户端支持直接I/O和异步I/O。

0
相关文章