安装操作手册
计划
本次数据库采用10G RAC集群,由于10G提供了Oracle 集群文件系统 (OCFS)、自动存储管理
器 (ASM)、原始设备这三种共享磁盘方式用于RAC的安装,因此我们准备计划先采用ASM安装RAC并进行建库。下面的计划主要是针对ASM方式的部署RAC
一、硬件环境描述
1、 节点1与节点2硬件 2、 集群拓扑 二、前期准备
1、 准备ORACLE的安装配置文件 .bash_profile /etc/sysctl.conf
2、 准备安装数据库+ASM所需要的ASMLIB oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686 oracleasmlib-2.0.2-1.i386
oracleasm-support-2.0.3-1.i386 三、RAC系统规划
1、节点1、节点2规划、注册文件规划(ocr)、表决磁盘规划(VOTING DISK)、 2、操作系统安装规划 四、根据规划安装操作系统 1、 在节点1安装操作系统 2、 在节点2安装操作系统 3、 配置时钟同步
五、ORACLE RAC安装环境检查与准备
1、 检查安装ORACLE所需要的操作系统RPM包 2、 创建ORACLE用户与DBA组 3、 修改系统内核参数./etc/sysctl.conf
4、 设置ORACLE用户环境变量(修改ORACLE的.bash_profile) 5、 配置/etc/hosts文件
6、 配置hangcheck_timer内核 7、 配置SSH
8、 根据规划共享存储系统 9、 调整配置错误
六、ASMlib安装与检查 1、 安装ASMlib 2、 配置ASM磁盘
七、安装Clusterware与ORACLE数据库系统 1、 安装CRS软件
2、 安装ORACLE数据库
八、DBCA以ASM创建数据库 九、测试RAC 十、数据库部署 十一、 参考文献
具体步骤
若无特别说明,“$”提示符均表示在oracle用户下执行,“#”提示符均表示在root用户下执行
一、 硬件环境描述
1、 硬件说明 服务器名 项目名称 硬件型号 CPU 频率 数量 物理内存 型号 磁盘阵列柜 每硬盘容量 阵列缓存 硬盘数量 RAID名称 2、 RAC体系 服务器1(工作机) DELL 6850 3.0 4 32G 300GB RAID 5 EMC CX 200 服务器2(备份机) DELL 6850 3.0 4 32G 2000G
二、 前期准备
1、 准备ORACLE的安装配置文件
.bash_profile /etc/sysctl.conf
2、 准备安装数据库+ASM所需要的ASMLIB,注意这个ASMLIB的版本要跟你操作系
统的内核相匹配
验证内核版本如下命令:
# uname -r
[oracle@dbserver1 ~]$ uname -r Linux dbserver1 2.6.9-42.ELsmp [oracle@dbserver1 ~]$ 我们这里内核是2.6.9-42.ELsmp、i386(32位) 因此下载以下ASMLIB:
oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686 oracleasmlib-2.0.2-1.i386
oracleasm-support-2.0.3-1.i386
提示:如果是单处理器系统需要下载EL的ASMLIB
http://www.oracle.com/technetwork/server-storage/linux/downloads/rhel5-084877.html
三、 RAC系统相关规划
1、操作系统安装规划 服务器名 项目名称 硬件型号 操作系统 服务器主机名 IP地址((eth0)) 语言环境 域名服务方式 时区 RAC节点1 Redhat as 4.0 u4 (32位) dbserver1 135.233.9.101 中文/英文 无 中国 RAC节点2 Redhat as 4.0 u4(32位) dbserver2 135.233.9.102 中文/英文 无 中国 安装方式 内置硬盘 容量 数量 物理路径 / Swap 系统分区 /home /tmp /usr /opt 系统用户 型号 每硬盘容量 总容量 RAID名称 安装全部安装包 146G 2(RAID1) 30G 35G 30G 5G 20G 30G Root Oracle 500G 2T RAID 5 安装全部安装包 146G 2(RAID1) 30G 35G 30G 5G 20G 30G Root Oracle OCR /dev/raw/raw1 /dev/sdb1 500M(主分区) (oracle集/dev/raw/raw2 /dev/sdb2 500M(主分区) 群注册表) 磁盘阵列柜 磁盘分区 表决磁盘 (voting disk) ASM 数据库备份 备份mount点 /dev/raw/raw5 /dev/sdb5 500M /dev/raw/raw6 /dev/sdb6 500M /dev/raw/raw7 /dev/sdb7 500M /dev/sdb8 950G /dev/sdb9 950G /dev/sdb10 (全部) 120G /oradata_backup /dev/sdb10 2、节点1、节点2上ORACLE安装规划、注册表规划(OCR)、表决磁盘规划(VOTING DISK)、 服务器名 项目名称 操作系统 服务器主机名 公共IP地址(eth0) 虚拟IP地址(eth0) 私有IP地址(eth1) ORACLE RAC SID 集群实例名称 OCR (oracle集群注册表) 服务器1(工作机) Redhat as 4.0 u14(32位 x86) dbserver1 135.233.9.101 135.233.9.201 10.10.10.1 oradb1 oradb /dev/raw/raw1 /dev/sdb1 500M /dev/raw/raw2 /dev/sdb2 500M 服务器2(备份机) Redhat as 4.0 u4(32位 x86) dbserver2 135.233.9.102 135.233.9.202 10.10.10.2 oradb2 表决磁盘 (voting disk) ASM 数据库备份 数据库版本 数据库BASE目录 /dev/raw/raw5 /dev/sdb5 500M /dev/raw/raw6 /dev/sdb6 500M /dev/raw/raw7 /dev/sdb7 500M /dev/sdb8 950G VOL1 /dev/sdb9 950G VOL2 /dev/sdb10 (全部mkfs.ext3 /dev/sdb10) 120G Oracle Database 10g Enterprise Edition Release 10.2.0.1.0(32位) /home/oracle /home/oracle/product/10.2.0/db 1521 simplifed Chinese.ZHS16GBK Sys/oracle System/oracle 4G ASM 8192byte 数据库HOME目录 数据库监听端口 数据库字符集 数据库系统帐号与初始密码 数据库恢复区大小 数据库实例建库方式 数据库块大小 数据库数据空间大小 四、 根据规划安装操作系统,并配置时钟同步
1、 在节点1安装操作系统 2、 在节点2安装操作系统
提示:选择全部安装包方式,这样就不用给系统打那烦人的补丁包了,不过所需要的磁盘空间7G左右
3、 配置时钟同步
在一台节点服务器上启动时钟服务器服务,在另外一台节点服务器上使用时钟同步命令如:rdate –s IP,然后在这台节点服务器,通过做调度,来定时同步两台服务器时钟。 提示:建议RAC可以连接到互联网上,以便互联网上的时钟服务器,如果没有接 入互联网的条件也可以让其余节点向某一个节点做时钟同步,因为RAC不能容 忍节点间时钟不同步,否则RAC会Down掉! 在这里我们如下操作:
A、在125.233.9.101节点上开启时钟服务,“applications(应用程序)”----->“system settings(系统设置)” ----->“server settings(服务设置)” ----->“services(服务)”,如图
B、在出来的”service configuration(服务配置)”中,选中“time、time-udp”,然后点击窗口工具栏中的“save(保存)”按钮,如图
C、在135.233.9.102节点上创建一个shell文件,包含如下内容rdate –s 135.233.9.101
# vi /rdate
在vi 编辑器中按” i”转换为插入模式,然后输入“rdate –s 135.233.9.101”,再按”esc”键,退出插入模式,最后”shift”+”:”后再输入”wq!”,存盘退出。 给于这个shell于执行权限
# chmod 755 rdate
D、在135.233.9.102节点上,把该shell加入到调度中,让系统每6小时向135.233.9.101节点同步时钟,这里可以使用命令”crontab”,也可以使用图形界面在“applications(应用程序)”----->“system tools(系统设置)” ----->“task scheduler(任务计划)”。命令如下
# crontab –e
同样在编辑器里输入如下(我这里是每两个小时同步一次)
0 1,4,8,13,17,20 * * * /rdate
五、 ORACLE RAC安装环境检查与准备
1、 在每个节点上创建ORACLE用户与DBA组 2、 groupadd –g 1001 dba 3、 groupadd –g 1002 oinstall
4、 useradd –u 1001 –g oinstall –G dba oracle 5、 passwd oracle
使用图形界面创建DBA组和ORACLE用户,并手工指定他们的ID,注意在这里,每个节点的oracle用户ID,DBA组ID必须一致,其他使用默认值,同时创建完毕后在每个节点执行如下命令
#chown –R oracle:dba /home/oracle
6、 修改每个节点系统内核参数./etc/sysctl.conf,
#vi /etc/sysctl.conf
然后加入如下内容
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 net.core.rmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_default = 262144 net.core.wmem_max = 262144
/sbin/sysctl -p
5.Limits for User Oracle (on both Nodes)
/etc/security/limits.conf
# Limits for User Oracle
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
/etc/pam.d/login
# For Oracle
session required /lib/security/pam_limits.so session required pam_limits.so
4、 设置每个节点ORACLE用户环境变量(修改ORACLE的.bash_profile),该文件见
附件
$vi .bash_profile 然后加入如下内容
umask=022
# User specific environment and startup programs export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
# Each RAC node must have a unique ORACLE_SID.(i.e. dbserver1, dbserver2,...) export ORACLE_SID=orcl1
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/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
注意:在节点dbserver2上,ORACLE_SID应该变为oradb2 5、 配置每个节点的/etc/hosts文件 #vi /etc/hosts
然后修改里面的内容为如下
# Do not remove the following line, or various programs # that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
135.233.9.101 dbserver1 135.233.9.201 db-vip1 135.233.9.102 dbserver2 135.233.9.202 db-vip2 10.10.10.1 db-priv1 10.10.10.2 db-priv2 注意:确保在每个节点上/etc/hosts文件的回送地址中不包含节点名(dbserver1 或 dbserver2)。如果机器名出现在回送地址条目中,如下所示: 127.0.0.1 JMRAC1 localhost.localdomain localhost 需要将其如下删除:
127.0.0.1 localhost.localdomain localhost
6、 配置每个节点的hangcheck_timer内核:
# find /lib/modules -name \"hangcheck-timer.ko\"
#vi /etc/modprobe.conf 加入如下内容
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
设置为自动启动hangcheck-timer /sbin/modprobe hangcheck_timer 检查是否成功启动
#grep hangcheck /var/log/messages |tail -2
7、 配置SSH
SSH方式
以oracle用户身份执行,在所有节点上做如下配置以生成SSH密钥。 $ mkdir ~/.ssh
$ chmod 755 ~/.ssh
$ /usr/bin/ssh-keygen -t rsa $ /usr/bin/ssh-keygen -t dsa
$ touch ~/.ssh/authorized_keys
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ cp ~/.ssh/authorized_keys ~/.ssh/jmrac1.authorized_keys 将dbserver1.authorized_keys复制到dbserver2上
在dbserver2上,将dbserver1.authorized_keys导入authorized_keys $ cat ~/.ssh/dbserver1.authorized_keys >> ~/.ssh/authorized_keys $ chmod 644 ~/.ssh/authorized_keys
将上述步骤在节点2上再执行一次,注意将dbserver 1和dbserver 2互换!
建立SSH信任关系(请注意,用户等效性仅为当前会话建立。 如果您切换到其他会话或注销并重新登录,则必须再次运行 ssh-agent 和 ssh-add 才能重新建立用户等效性) 在每个节点上执行
$ exec /usr/bin/ssh-agent $SHELL $ /usr/bin/ssh-add
在每个节点上执行如下命令以测试连通性,并建立SSH信任关系
在每个节点上执行如下命令,应该直接显示相应的时间,而不会提示输入密码
$ ssh dbserver 1 date $ ssh dbserver 2 date
8、 根据规划分区共享存储系统
先查看系统分区 #fdisk –l /dev/sdb
发现阵列柜,被加载在/dev/sdb上,在分区先要确保阵列柜上没有被分区,如有分 区,需要删除以前分区,然后在根据前面磁盘分区规划对磁盘阵列柜分区
#fdisk /dev/sdb
最后分区如下
[root@ dbserver 1 ~]# fdisk -l /dev/sdb Disk /dev/sdb: 2035.7 GB, 146727239680 bytes 255 heads, 63 sectors/track, 17838 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 25 200781 83 Linux /dev/sdb2 26 50 200812+ 83 Linux /dev/sdb3 51 17838 142882110 5 Extended /dev/sdb5 51 63 104391 83 Linux /dev/sdb6 64 76 104391 83 Linux /dev/sdb7 77 89 104391 83 Linux /dev/sdb8 90 5561 43953808+ 83 Linux /dev/sdb9 5562 11033 43953808+ 83 Linux /dev/sdb10 11034 17838 54661131 83 Linux [root@ dbserver 1 ~]#
该分区命令只在一个节点上执行,另外一个节点上执行分区同步命令 #partprobe
提示:关于分区命令fdisk的详细说明,参考其他linux命令手册
由于我们把oracle的OCR(oracle集群注册表)、 表决磁盘(voting disk)安装在裸设备上,对于裸设备要使用它,需要编辑/etc/sysconfig/rawdevices文件,将裸 设备添加到系统中,然后再为裸设备设定属组信息以及权限信息。 把下面的内容添加到/etc/sysconfig/rawdevices文件中
#OCR
/dev/raw/raw1 /dev/sdb1 /dev/raw/raw2 /dev/sdb2
#OCR
/dev/raw/raw5 /dev/sdb5 /dev/raw/raw6 /dev/sdb6 /dev/raw/raw7 /dev/sdb7
建RAW分区
# vi /etc/udev/rules.d/60-raw.rules
ACTION==\"add\ACTION==\"add\ACTION==\"add\ACTION==\"add\ACTION==\"add\
ACTION==\"add\OWNER=\"oracle\GROUP=\"oinstall\MODE=\"660\"
注意:在2.6内核的Red Hat Linux上,当系统重启后,裸设备的属组信息 将被还原为系统默认值(root:disk)。为了使得裸设备属组信息可以被保留,你 要在/etc/rc.d/rc.local中强制更新裸设备的属组信息,即在文件中加入下述内容:
chown root:dba /dev/raw/raw1 chown root:dba /dev/raw/raw2 chmod 660 /dev/raw/raw1 chmod 660 /dev/raw/raw2
chown oracle:dba /dev/raw/raw5 chown oracle:dba /dev/raw/raw6 chown oracle:dba /dev/raw/raw7 chmod 644 /dev/raw/raw5 chmod 644 /dev/raw/raw6 chmod 644 /dev/raw/raw7
配置完毕后,务必重新启动两台服务器
9、 调整配置错误 六、 ASMlib安装与检查
1、 在每个节点安装ASMlib # rpm -Uvh \\
>oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686 >oracleasmlib-2.0.2-1.i386
>oracleasm-support-2.0.3-1.i386 Preparing... ######################################## [100%] 1:oracleasm-support ######################################## [ 33%] 2:oracleasm-2.4.9-e-smp ##################################### [ 66%] Linking module oracleasm.o into the module path [ OK ] 3:oracleasmlib ###################################### [100%]
2、 在每个节点配置 ASMLib
使用 ASMLib 之前,必须运行配置脚本来准备驱动程序。 以 root 用户身份在每个集群主机上运行以下命令并回应提示,如下例所示。 # /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
这将配置 Oracle ASM 库驱动程序的启动时属性。以下问题将确定在启动时是否加载驱动程序以及它将拥有的权限。当前值将显示在方括号(“[]”)中。按 Writing Oracle ASM library driver configuration [ OK ] Creating /dev/oracleasm mount point [ OK ] Loading module \"oracleasm\" [ OK ] Mounting ASMlib driver filesystem [ OK ] Scanning system for ASM disks [ OK ] 现在,如下所示启用 ASMLib 驱动程序。 # /etc/init.d/oracleasm enable Writing Oracle ASM library driver configuration [ OK ] Scanning system for ASM disks [ OK ] 3、 为 ASM 配置磁盘 接下来告诉 ASMLib 驱动程序要使用哪些磁盘。请注意,这些磁盘是不包含任何内容的空磁盘。 通过以 root 用户身份运行以下命令来标记由 ASMLib 使用的磁盘。 仅从一个集群主机上执行此操作。 /etc/init.d/oracleasm createdisk DISK_NAME device_name 提示: 以大写字母输入 DISK_NAME。当前版本中有一个错误,即如果使用小写字母,ASM 实例将无法识别磁盘。 # /etc/init.d/oracleasm createdisk VOL1 /dev/sd8 Marking disk \"/dev/sdb8\" as an ASM disk [ OK ] # /etc/init.d/oracleasm createdisk VOL2 /dev/sd9 Marking disk \"/dev/sdb9\" as an ASM disk [ OK ] . 以下示例演示了如何列出标记为由 ASMLib 使用的所有磁盘。 # /etc/init.d/oracleasm listdisks VOL1 VOL2. . 注意在所有集群其他节点主机上,只需要以 root 用户身份运行以下命令,扫描所配置的 ASMLib 磁盘: #/etc/init.d/oracleasm scandisks rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static \\ gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel \\ libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel 七、 安装Clusterware与ORACLE数据库系统 把CRS与数据库软件拷贝到服务器上,再安装,注意,在安装前先建立用户等效性,如 下 #xhost + #su – oracle $export DISPLAY=:0.0 $ exec /usr/bin/ssh-agent $SHELL $ /usr/bin/ssh-add 在RedHat5安装前最好修改redhat-release文件 #vi /etc/redhat-release redhat-4 1、 安装CRS软件 $./runInstaller 单击“下一步” 修改安装组为“dba”,然后单击“下一步” 修改crs的安装路径与.bash_profile中crs设置的路径一致。然后单击“下一步” 单击“下一步” 提示:在这里如果环境设置的不正确,或者硬件配置达不到要求,检测不会通过, 但是对于硬件配置,我们可以选择通过验证 上图中只显示了一台服务器节点,验证该节点信息是否和/etc/hosts中的内容一致 同时把节点dbserver2添加到集群配置中,最后如下 然后单击“下一步” 单击“编辑”按钮,将eth0网卡的网段设为“公共”,然后点击“确定”(默认eth0是“公共”) 以上这步要确定好是哪张网卡提供公共对外服务,哪张网卡提供心跳检测私有服务,千万不能弄错,确定好后点击“下一步” 指定OCR的位置(前面已经设置好的)。然后单击“下一步” 提示:这里可以选择正常冗余或外部冗余,效果一样,正常冗余提供了一个OCR的镜像位置,而外部冗余没有提供OCR镜像,只需要OCR位置就可以,由于前期我们在规划的时候就规划了OCR镜像,因此我们这里选择正常冗余,下面表决磁盘的配置也是一样 指定表决磁盘的位置,单击“下一步” 单击安装 注意当安装到后面出现如下提示时,先不要点击“确定” 此时安装向导让你在所有节点上分别执行上述两个脚本,先在安装CRS的计算机上执行上述两个脚本,注意这两个脚本在X-WINDOS窗口下执行,以便能够启动VIPCA。 此时,安装向导将给出安装总结,点击退出 在其他节点都执行完毕后,此时,你需要回到节点1,在此界面上单击确定 通过上面的检查后,Oracle Clusterware安装结束! 、 安装ORACLE数据库 $./runInataller 单击“下一步” 选择安装企业版数据库,单击“下一步” 2 确定安装路径,这里安装路径要和.bash_profile中的ORACLE_HOME值一致,单击“下一步” 选中集群内所有节点,单击“下一步” 单击“下一步” 选择仅安装数据库软件,单击“下一步” 单击安装 此时安装途中向导将提示先以root用户的身份在每个节点上执行上述脚本,执行完毕后在点击“确定”。执行效果如下: 以上安装完毕后,下面进行ORACLE NET配置 3、配置Oracle Net 以oracle用户的身份执行netca,配置Oracle Net 选择集群配置,单击“下一步” 选择全部节点,单击“下一步” 选择监听程序配置,单击“下一步” 选择添加,单击“下一步” 使用默认的监听程序名——LISTENER,单击“下一步” 选择TCP协议,单击“下一步” 使用默认的监听端口——1521,单击“下一步” 选择否,单击“下一步” 单击“下一步” 选择命名方法配置,单击“下一步” 选择本地命名,单击“下一步” 单击“下一步” 单击完成,结束Oracle Net的配置 八、 DBCA以ASM创建数据库 以oracle用户的身份运行dbca,建立集群数据库 选择Oracle Real Application Cluster数据库,单击下一步 选择创建数据库,单击下一步 选中集群中的所有节点,单击下一步 选择一般用途的数据库模版,单击下一步 输入全局数据库名以及SID,在这里都输入“oradb”,单击下一步 使用默认选项,然后单击下一步 输入数据库用户口令,先输入统一口令“sys”,然后单击下一步 选择自动存储管理(ASM),单击“下一步” 输入ASM实例的SYS用户口令,指定初始化参数文件的类型,单击“下一步” 安装向导将提示开始建立并启动ASM实例,单击确定 正在创建ASM实例 出来磁盘组选择,由于是新安装,没有可用磁盘组,因此这里选择新建,创建ASM磁盘组 这里系统自动将我们前面准备的ASM磁盘显示出来,将冗余模式设为常规,选择前面创建的VOL1和VOL2磁盘,磁盘组命名为dskgrp1,然后单击确定 注意:如果冗余模式选择“高”,则要求三个裸设备构成一个磁盘组,由于我们这里是外接磁盘阵列柜,冗余模式可以选择为外部,那么可以只需要1个ASM磁盘组成一磁盘组 系统开始创建ASM磁盘组 已经创建好的磁盘组,就会显示在可用磁盘组里,选中,然后单击下一步 使用默认值,然后单击下一步 如果不需要配置Flashback,单击下一步,否则需要指定快速恢复区, 这里设定4G的快速恢复区后单击下一步 选择安装示例方案,单击下一步 单击添加按钮,增加服务 输入服务名oradb,单击确定 将两个实例均设为首选,TAF策略设为基本,单击下一步 调整内存大小到合适比例,字符集选择simplifed Chinese.ZHS16GBK,单击下一步 调整重做日志大小均为100M,然后单击下一步 把“生成数据库创建脚本”选中,然后单击完成 此时,安装向导将向你确认数据库的配置信息,单击确定开始建立数据库 正在创建数据库 出现该界面表示数据库创建完毕,单击退出,结束数据库创建 九、 配置客户端 要在客户端的hosts文件中写入相应的RAC(内容与前面etc/hosts一致)地址,对于Windows系统,路径为 %system32%\\drivers\\etc\\hosts。编辑hosts文件,内容与前面etc/hosts一致 客户端配置tnsnames.ora文件,内容如下: oradb = (DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE=ON) (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.2)(PORT = 1521)) ) (CONNECT_DATA = # 下面的部分应该根据你安装RAC是配置进行相应的改动 (SERVICE_NAME = oradb) (FAILOVER_MODE = (TYPE=SELECT) (MODE=BASIC) (RETRY=3) // 重试3次 (DEALY=5) // 重试间隔5秒 ) ) ) 说明:http:// node1:1158/em即可登陆到Database Control,启动Database Control用如下命令 $emctl start dbconsole 十、 测试RAC 以下 SQL 查询可以用来查看一个会话的故障切换类型、故障切换方法和是否发生了故障切换。在这个例子中自始至终使用这个查询。 Sql>COLUMN instance_name FORMAT a13 Sql>COLUMN host_name FORMAT a9 Sql>COLUMN failover_method FORMAT a15 Sql>COLUMN failed_over FORMAT a11 Sql>SELECT instance_name,host_name, NULL AS failover_type,NULL AS failover_method, NULL AS failed_over FROM v$instance UNION SELECT NULL,NULL,failover_type,failover_method,failed_over FROM v$session WHERE username = 'SYSTEM'; 从 客户端计算机中,以SYSTEM用户登录集群化数据库: C:\\> sqlplus system/sys@oradb Sql>COLUMN instance_name FORMAT a13 Sql>COLUMN host_name FORMAT a9 Sql>COLUMN failover_method FORMAT a15 Sql>COLUMN failed_over FORMAT a11 Sql>SELECT instance_name,host_name, NULL AS failover_type,NULL AS failover_method, NULL AS failed_over FROM v$instance UNION SELECT NULL,NULL,failover_type,failover_method,failed_over FROM v$session WHERE username = 'SYSTEM'; INSTANCE_NAME HOST_NAME FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER ------------- --------- ------------- --------------- ----------- oradb1 oradb1 SELECT BASIC NO 不注销上面的 SQL*Plus 会话! 我们已经运行了上面的查询,现在到节点jmrac1上使用 abort 选项来关闭该节点上的oradb1 实例。要执行这一操作,我们可以使用 srvctl 命令行实用程序,如下所示: # su - oracle $ srvctl status database -d jmdb Instance oradb1 is running on node oradb1 Instance oradb2 is running on node oradb2 $ srvctl stop instance -d oradb -i oradb1 -o abort $ srvctl status database -d oradb Instance oradb1 is not running on node oradb1 Instance oradb2 is running on node oradb2 现在让我们返回到我们的 SQL 会话,然后重新运行缓冲中的 SQL 语句: Sql>SELECT instance_name,host_name, NULL AS failover_type,NULL AS failover_method, UNION NULL AS failed_over FROM v$instance SELECT NULL,NULL,failover_type,failover_method,failed_over FROM v$session WHERE username = 'SYSTEM'; INSTANCE_NAME HOST_NAME FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER ------------- --------- ------------- --------------- ----------- oradb2 oradb2 SELECT BASIC YES SQL> exit 从上面的演示中,可以看到上述会话现在已经被通明切换到了oradb2的实例 oradb2上 十一、 集群基本命令 停止 Oracle RAC 10g 环境 第一步是停止 Oracle 实例。当此实例(和相关服务)关闭后,关闭 ASM 实例。最后,关闭节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。 $ export ORACLE_SID=oradb1 $ emctl stop dbconsole $ srvctl stop instance -d oradb -i oradb1 $ srvctl stop asm -n oradb1 $ srvctl stop nodeapps -n oradb1 启动 Oracle RAC 10g 环境 第一步是启动节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。当成功启动节点应用程序后,启动 ASM 实例。最后,启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台。 $ export ORACLE_SID=oradb2 $ srvctl start nodeapps -n oradb1 $ srvctl start asm -n oradb1 $ srvctl start instance -d oradb -i oradb1 $ emctl start dbconsole 使用 SRVCTL 启动/停止所有实例 $ srvctl start database -d oradb1 $ srvctl stop database -d oradb1 所有实例和服务的状态 $ srvctl status database -d oradb 单个实例的状态 $ srvctl status instance -d oradb -i oradb2 在数据库全局命名服务的状态 $ srvctl status service -d oradb -s oradb 特定节点上节点应用程序的状态 $ srvctl status nodeapps -n oradb1 ASM 实例的状态 $ srvctl status asm -n oradb1 列出配置的所有数据库 $ srvctl config database 显示 RAC 数据库的配置 $ srvctl config database -d oradb 显示指定集群数据库的所有服务 $ srvctl config service -d oradb 显示节点应用程序的配置 -(VIP、GSD、ONS、监听器) $ srvctl config nodeapps -n oradb 1 -a -g -s -l VIP exists.:/vip- oradb 1/192.168.1.200/255.255.255.0/eth0:eth1 GSD exists. ONS daemon exists. Listener exists. 显示 ASM 实例的配置 $ srvctl config asm -n oradb1 +ASM1 /home/oracle/product/10.2.0/db_1 因篇幅问题不能全部显示,请点此查看更多更全内容