在安装cluster 之前,推荐大家先进行下系统规划,列出下列信息 主机名
主机的IP地址分配 双机星跳互联所用的网口 网关地址 Oracle浮动地址
IP地址规划表 PBGDBS1 139.1.1.9 139.1.2.9 PBGDBS1 localhost 网卡: Ce0 PBGDBS12 PBGDBS1 网卡: ce4 PBGDBS2 139.1.1.9 139.1.2.9 PBGDBS2 localhost 网卡: Ce0 PBGDBS22 PBGDBS2 网卡: ce4 Oacle浮动地址 139.1.1.81 139.1.2.81 oraclefl1 oraclefl2 网关地址 星跳 139.1.1.91 139.1.2.91 网卡:Ce1 网卡:Ce5
操作系统的安装
安装操作系统和平时安装并没有什么不同,唯一一点区别是因为sun cluster需要一个/globaldevices分区用来保存全局设备,所以在安装操作系统的时候别忘记新建一个/globaldevices分区,(sun cluster中规定globaldevices分区不得小于512MB) 以水科院V490服务器,16G内存、146G硬盘为例 : 0 / 20000MB
1 swap 16000MB #交换分区 2 /metadb 100MB #用来做磁盘镜像 3 /globaldevices 1000MB 做双机必备(选票盘) 4 5
6 /home
10000MB
7 /opt 98256MB
在本例中,操作系统版本为SPARC Solaris 10。节点A的主机名为:PBGDBS1, 安装过程中启用第一个网卡为ce0,设置其ip地址为139.1.1.9。路由为139.1.1.91
节点B的主机名为:PBGDBS2, 安装过程中启用第一个网卡为ce0,设置其ip地址为139.1.1.10。 路由为139.1.1.91
在选择安装盘的时候,注意别选错了,把操作系统安装到磁盘阵列上就不好玩了。还有,安装前,用Format命令查看下2台机器认到的磁盘阵列编号是不是一样的例如PBGDBS1认到的盘阵编号为 c0t0d0 和c0t0d1 那么在PBGDBS2上认到的盘阵信息应该是一样的。 多路径:
因为采用SAN架构,所以必须使用多路径,solaris中使用多路径很简单,一条命令就可以了
Stmsboot –e
打开多路径后,使用format命令查看磁盘; Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c4t600A0B80005A4C5D00000395493F3ED0d0 Cluster软件安装前准备 1. 在安装sun cluster软件之前需要在根下建立一个.rhosts文件,内容为+,这是因为sun cluster软件通过rlogin 以及rsh协议进行通讯。 #2台机器均需修改 Vi .rhosts + 修改/etc/hosts文件,添加对方机器以及oracle浮动地址。注意字符之间用Tab切换,不要用空格。 #2台机器均需修改 PBGDBS1 Vi /etc/hosts # # Internet host table # ::1 localhost 127.0.0.1 localhost loghost 39.1.1.9 PBGDBS1 localhost 139.1.2.9 139.1.1.10 139.1.2.10 139.1.1.81 139.1.2.81 PBGDBS2 Vi /etc/hosts # # Internet host table # ::1 localhost 127.0.0.1 localhost loghost 139.1.1.9 139.1.2.9 139.1.1.10 PBGDBS2 localhost PBGDBS22 PBGDBS2 PBGDBS1 PBGDBS1 PBGDBS12 PBGDBS1 PBGDBS2 PBGDBS2 PBGDBS22 PBGDBS2 oraclefl1 oraclefl2 139.1.2.10 139.1.1.81 139.1.2.81 PBGDBS12 PBGDBS1 oraclefl1 oraclefl2 修改/etc/defaultroute文件,添加2网段的路由 #2台机器均需修改 Vi /etc/defaultroute 139.1.1.91 139.1.2.91 激活ce4网口并配置IP地址 #2台机器均需修改 Cp /etc/hostname.ce0 /etc/hostname.ce4 Vi /etc/hostname.ce4 PBGDBSX2 #X=1或者2 Ifconfig ce4 plumb Ifconfig ce4 139.1.2.X/up #X=9或者10 安装Sun cluster软件 将sun_cluster3.1.ISO软件通过FTP上传至/opt/soft目录 解压缩ISO文件命令。 Lofiadm –a /opt/soft/sun_cluster31.ISO Mount –F hsfs /dev/lofi/1 /mnt Cd /mnt/Solaris_spqce ./installer 安装过程没什么好说的,基本上是一路回车,注意在安装完后选择现在不配置Sun cluster sun cluster配置 进入sun cluster目录 Cd /usr/cluster/bin 运行./scinstall命令进行配置 *** 主菜单 *** 请选择以下某一带 (*) 的选项: * 1) 安装群集或群集节点 2) 将群集配置为从此安装服务器中快速启动 3) 在此群集节点中添加对新数据服务的支持 4) 升级此群集节点 5) 打印此群集节点的发行信息 * ?) 菜单选项中的帮助 * q) 退出 选项: 1 *** 安装菜单 *** 请选择以下任一选项: 1) 安装新群集的所有节点 2) 只将此机器安装为新群集的第一个节点 3) 将此机器添加为现有群集中的节点 ?) 菜单选项中的帮助 q) 返回主菜单 选项: 2 *** 只安装新群集的第一个节点 *** 此选项用于建立新的群集,该群集使用此机器作为其第一个节点。 安装群集框架软件之后,系统将要求您输入群集的名称。 然后,您可以运行 sccheck(1M) 来测试此机器是否满足 Sun Cluster 预配置的基本要求。 sccheck(1M) 通过后,系统将要求您输入最初将加入该群集的其他节点的名称 。除非此群集为单节点群集,否则系统还将要求您输入某些群集传输配置信息 。 可以随时按 Control-d 组合键返回 主菜单。 是否要继续 (yes/no) [yes]? >>> 安装类型 <<< 进行群集安装时可以选择两种安装类型。对于大多数群集,建议使用“典型” 安装。但是,如果不是所有的“典型”缺省值都适用于您的群集,可能需要选 择“定制”选项。 有关“典型”安装和“定制”安装这两种方法之间的差别的详细信息, 请从菜单中选择“帮助”选项。 请选择以下某一选项: 1) 典型 2) 定制 ?) 帮助 q) 返回主菜单 选项: [1] 2 >>> 软件修补程序安装 <<< 如果需要将 Solaris 或 Sun Cluster 修补程序添加为此 Sun Cluster 安装的一部分,则 scinstall 可以完成此操作。 需要添加的所有修补程序都必须首先下载到通用的修补程序目录中。 可以将修补程序下载到修补程序目录中作为单独的修补程序, 或将修补程序组合成一个或多个 tar、jar 或 zip 文件。 如果修补程序目录中提供了修补程序列表文件,则只安装该修补程序列表 文件中列出的这些修补程序。否则,将安装在该目录中找到的所有修补程 序。有关修补程序列表文件的详细信息,请参见 patchadd(1M) 手册页。 是否需要 scinstall 为您安装修补程序 (yes/no) [yes]? no >>> 群集名 <<< 每个群集都有指定的名称。 该名称可以由除空白以外的任何字符组成。 在企业的名称空间中,每个群集的名称应该是唯一的。 要建立的群集的名称是什么 [db-cluster]? >>> 检查 <<< 您可以在此步骤中运行 sccheck(1M),以检验是否已满足某些基本的 硬件和软件预配置要求。如果 sccheck(1M) 检测到将此机器配置为 群集节点时存在潜在的问题,则准备故障检查报告并将其显示在屏幕上。 收集数据和生成报告可能要花费几分钟时间,这取决于系统的配置。 是否要运行 sccheck (yes/no) [yes]? >>> 群集节点 <<< 此 Sun Cluster 发行版最多支持 16 个节点。 请列出为初始群集配置规划的其他节点的名称。 每行列出一个节点名。 完成后,请按 Control-D 组合键: 节点名(按 Control-D 组合键以完成): PBGDBS1 节点名(按 Control-D 组合键以完成): PBGDBS2 节点名(按 Control-D 组合键以完成): ^D 这是完整的节点列表: PBGDBS1 PBGDBS2 是否正确 (yes/no) [yes]? >>> 鉴别添加节点的请求 <<< 第一个节点自动建立为单个节点群集后, 试图自动添加到群集配置中的 其他节点必须能在您刚提供的节点列表中找到。 您可以在建立群集之后 使用 scconf(1M) 或其他工具修改此列表。 缺省情况下,节点试图自动添加到群集配置中时,不会安全地进行鉴别。 一般情况下,这是正常的,因为如果节点没有与专用群集互连进行物理连接, 将无法真正加入该群集。 但是,可以使用 DES 鉴别。 如果选择 DES 鉴别, 则必须配置所有必要的加密密钥,节点才能加入该群集(请参见 keyserv(1M),publickey(4))。 是否需要使用 DES 鉴别 (yes/no) [no]? >>> 群集传输的网络地址 <<< 专用群集传输使用缺省网络地址 172.16.0.0。但是,如果企业内别处已使用了 此网络地址,则可能需要从建议的专用地址范围中选择另一地址(详细信息请 参见 RFC 1918)。 如果选择其他网络地址,请牢记 Sun Cluster 软件要求最右边的两个 八位位组始终为零。 缺省网络掩码为 255.255.0.0。 您可以选择其他的网络掩码, 只要它能最小程度地屏蔽住网络地址中给定的所有位。 是否可以接受缺省的网络地址 (yes/no) [yes]? >>> 端到端电缆 <<< 双节点群集的两个节点可以使用直接连接的互连。 也就是说, 不配置群集传输结点。 但是,如果存在两个以上的节点,此交互形式的 scinstall 将假定确实只有两个群集传输结点。 此双节点群集是否使用传输结点 (yes/no) [yes]? no >>> 群集传输适配器和电缆 <<< 必须为群集中的每个节点至少配置两个群集传输适配器。 这是连接到专用群集互连的适配器。 第一个群集传输适配器的名称是什么? Ce1 >>> 群集传输适配器和电缆 <<< 必须为群集中的每个节点至少配置两个群集传输适配器。 这是连接到专用群集互连的适配器。 第一个群集传输适配器的名称是什么? Ce5 所有传输适配器均支持 \"dlpi\" 传输类型。以太网适配器和 Infiniband 适配 器仅支持 \"dlpi\" 传输;但是,其他适配器类型可以支持其他传输类型。有关 哪些适配器支持哪些传输的更多信息,请参阅手册页中的 scconf_transp_adap 系列(scconf_transp_adap_hme(1M) 等)。 \"ce1\" 是否为以太网适配器 (yes/no) [no]? \"ce1\" 是否为 Infiniband 适配器? [no] 此群集应该使用什么传输类型? Dlpi >>> 全局设备文件系统 <<< 群集中的每个节点都必须在 /global/.devices/node@ Svm磁盘阵列卷管理(单属主)单磁盘阵列可以省略 注意:1-3步,2台机器都需操作完成后,才能进行后面的步骤,4-7只需在主机操作即可。查看磁盘集的属主,可用metaset –s 磁盘集名称 查看 调整第二块硬盘分区表与第一块硬盘分区表一致: Bash#prtvtoc /dev/rdsk/c1t0d0s2|fmthard -s – /dev/rdsk/c1t1d0s2 fmthard:New volume table of contents now in place 2. 准备卷管理使用的metadb空间,此空间为卷管理数据库使用,里面保存卷管理信息。 Bash# umount /metadb Bash# rm –r /metadb Bash# vi /etc/vfstab 将下面这行注释掉或删除,如下: # /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /metadb ufs 1 yes – 注意:此处可能与现在机器的配置不同,注意在修改的时候,注销的为/metadb分区。 3. 制作卷管理使用的数据库。 Metadb –a –f –c 2 c4t5000CCA0047A6D10d0s3 c4t5000CCA0047CBF98d0s3 创建磁盘集并添加主机 Metaset –s oracledb –a –h PBGDBS1 oracledb 磁盘集的名称 Metaset –s oracledb –a –h PBGDBS2 PBGDBS1 PBGDBS2 主机的名字 向磁盘集中添加磁盘 Metaset –s oracledb –a c4t600A0B80005A80AD000005874935E458d0 Metaset –s oracledb –a c4t600A0B80005A4C5D0000026349348702d0 创建卷并作raid1 Metainit –s oracledb d11 1 1 c4t600A0B80005A80AD000005874935E458d0s0 Metainit –s oracledb d12 1 1 c4t600A0B80005A80AD000005874935E458d0s0 Metainit –s oracledb d10 –m d11 激活磁盘同步 注意,此操作会同步磁盘阵列数据,可以放置在安装结束后操作。 Metattch –s oracledb d10 d12 挂载卷的路径 Mount /dev/md/oracledb/dsk/d10 /XXX 注意在挂在之前先newfs下 因为用户需求双网段的应用,所以省略了IPMP的配置,如果是单网段,最好添加IPMP. 卷管理小结: 此案例将卷管理数据库分别放置再2台oracle前置机上,在以后安装中,不推荐此做法,最好在磁盘阵列中在单独划分一个100MB左右的卷来放置卷管理数据。 9. 查看cluster接管SVM的状态 Bash#Cd /usr/cluster/bin Bash#./scstat ------------------------------------------------------------------ -- Cluster Nodes -- Node name Status --------- ------ Cluster node: PBGDBS1 Online Cluster node: PBGDBS2 Online ------------------------------------------------------------------ -- Cluster Transport Paths -- Endpoint Endpoint Status -------- -------- ------ Transport path: PBGDBS1:ce5 PBGDBS2:ce5 Path online Transport path: PBGDBS1:ce1 PBGDBS2:ce1 Path online ------------------------------------------------------------------ -- Quorum Summary -- Quorum votes possible: 4 Quorum votes needed: 3 Quorum votes present: 4 -- Quorum Votes by Node -- Node Name Present Possible Status --------- ------- -------- ------ Node votes: PBGDBS1 1 1 Online Node votes: PBGDBS2 1 1 Online -- Quorum Votes by Device -- Device Name Present Possible Status ----------- ------- -------- ------ ------------------------------------------------------------------ -- Device Group Servers -- Device Group Primary Secondary ------------ ------- --------- Device group servers: oracledb PBGDBS2 PBGDBS1 -- Device Group Spares -- Device Group Spare Nodes ------------ ----------- Device group spares: oracledb - -- Device Group Inactives -- Device Group Inactive Nodes ------------ -------------- Device group inactives: oracledb - -- Device Group Transitions -- Device Group In Transition Nodes ------------ ------------------- Device group transitions: oracledb - -- Device Group Status -- Device Group Status ------------ ------ Device group status: oracledb Online -- Multi-owner Device Groups -- Device Group Online Status ------------ ------------- ------------------------------------------------------------------ -- Resource Groups and Resources -- Group Name Resources ---------- --------- -- Resource Groups -- Group Name Node Name State ---------- --------- ----- -- Resources -- Resource Name Node Name State Status Message ------------- --------- ----- -------------- ------------------------------------------------------------------ -- IPMP Groups -- Node Name Group Status Adapter Status --------- ----- ------ ------- ------ IPMP Group: PBGDBS1 sc_ipmp1 Online ce4 Online IPMP Group: PBGDBS1 sc_ipmp0 Online ce0 Online IPMP Group: PBGDBS2 sc_ipmp1 Online ce4 Online IPMP Group: PBGDBS2 sc_ipmp0 Online ce0 Online ------------------------------------------------------------------ Oracle安装前准备 1.创建oracle账户 # groupadd –g 120 dba 建立dba组,组的编号为120 #useradd –u 1201 –g 120 –m –d /opt/oracle –s /bin/bash oracle 建立oracle用户,并将用户添加到dba组中。 #passwd oracle 修改oracle密码 2.在root用户下修改/etc/system文件 在文件的最后添加如下内容 set shmsys:shminfo_shmmax=1073741824 set shmsys:shminfo_shmmin=1 set shmsys:shminfo_shmmni=100 set shmsys:shminfo_shmseg=10 set shmsys:shminfo_semmns=1000 set shmsys:shminfo_semmsl=100 set shmsys:shminfo_semmni=100 set shmsys:shminfo_semopm=100 set shmsys:shminfo_semvmx=32767 set noexec_user_stack=1 3. 在oracle用户下修改.profile文件 先使用DD命令将文件内容完全删除 然后输入以下内容 # Copyright (c) 2001 by Sun Microsystems, Inc. # All rights reserved. # # ident stty istrip PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/ccs/bin:/usr/openwin/bin:/usr/dt/bin:/usr/ucb:/etc:/opt/oracle/ora10g/product/10.2.0/bin:. export PATH umask 022 ORACLE_BASE=/opt/oracle/ora10g ORACLE_HOME=$ORACLE_BASE/product/10.2.0 LD_LIBRARY_PATH=$ORACLE_HOME/lib ORACLE_SID=ora10g ORACLE_TERM=sun ORACLE_OWNER=oracle ORACLE_DOC=$ORACLE_HOME/doc \"@(#)local.profile 1.10 01/06/23 SMI\" NLS_LANG=\"SIMPLIFIED CHINESE\"_CHINA.ZHS16CGB231280 ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export ORACLE_BASE ORACLE_HOME LD_LIBRARY_PATH ORACLE_SID ORACLE_TERM ORACLE_DOC NLS_LANG ORA_NLS33 注意:在修改.profile文件的时候最好吧框体拉大一些。 如果怕在修改第2台机器时出问题,可以在等第一台安装完oracle后,直接copy配置文件 Oracle的安装 通过XFTP工具,将 oracle安装文件上传至服务器1中 10gr2_db_sol.cpio的解压缩方法 (root下运行) # cpio -idmv<10gr2_db_sol.cpio 然后再oracle用户下执行./runinstaller命令就可以安装了 安装过程如图所示: 2. 3. 4. 5 . 安装HA for oracle 配置服务 启动服务 这些服务只需在一台机器启动即可 添加在文件最后 # scrgadm -a -t SUNW.oracle_server oracle数据服务 # scrgadm -a -t SUNW.oracle_listener oracle监听服务 # scrgadm -a -t SUNW.HAStoragePlus 磁盘阵列服务 修改vfstab表,添加磁盘阵列的挂载 注:2台机器均需修改 将/dev/md/oracledb/dsk/d10 /dev/md/oracledb/rdsk/d10 #device device #to mount # fd - to fd - no - mount fsck FS fsck mount point mount /database ufs 2 no - type pass at boot options /dev/fd /proc - # /proc proc - no - - swap - no - non-mpxio: /dev/dsk/c3t0d0s1 - - swap - /dev/md/dsk/d201 - # non-mpxio: no - ufs 1 no - /dev/dsk/c3t0d0s0 /dev/rdsk/c3t0d0s0 / ufs 1 no - /dev/md/dsk/d200 /dev/md/rdsk/d200 / # non-mpxio: /dev/dsk/c3t0d0s4 /dev/rdsk/c3t0d0s4 /globaldevices ufs 2 yes - #/dev/dsk/c4t5000CCA0047CBF98d0s4 /dev/rdsk/c4t5000CCA0047CBF98d0s4 # 2 yes - /dev/dsk/c3t0d0s6 /dev/rdsk/c3t0d0s6 /home ufs 2 yes - ufs 2 /globaldevices ufsnon-mpxio: yes - /dev/md/dsk/d206 /dev/md/rdsk/d206 /home # non-mpxio: /dev/dsk/c3t0d0s3 /dev/rdsk/c3t0d0s3 /metadb ufs 2 yes - /metadb ufs 2#/dev/dsk/c4t5000CCA0047CBF98d0s3 /dev/rdsk/c4t5000CCA0047CBF98d0s3 # yes - non-mpxio: /dev/dsk/c3t0d0s7 /dev/rdsk/c3t0d0s7 /opt ufs 2 yes - yes - /dev/md/dsk/d207 /dev/md/rdsk/d207 /opt ufs 2 /devices - ctfs - objfs - swap - /devices devfs- no - no - /system/contract ctfs - /system/object objfs - /tmp tmpfs - no - yes - /dev/did/dsk/d9s4 /dev/did/rdsk/d9s4 /global/.devices/node@2 ufs 2 no global /dev/md/oracledb/dsk/d10 /dev/md/oracledb/rdsk/d10 /database ufs 2 no - 注册资源 添加资源组 # scrgadm -a -g resource-group 实例:./scrgadm -a -g rg-oracle 添加oracle浮动地址 # scrgadm -a -L -g resoure-group-name -j logical-host-name -l logical-host-name –n ipmp-group@nodeA-hostname,ipmp-group@nodeB-hostname 实例: #./scrgadm -a -L -g rg-oracle -j oraclefl1 -l oraclefl1 -n sc_ipmp0@PBGDBS1,sc_ipmp0@PBGDBS2 #./scrgadm -a -L -g rg-oracle -j oraclefl2 -l oraclefl2 -n sc_ipmp1@PBGDBS1,sc_ipmp1@PBGDBS2 添加磁盘阵列 # scrgadm -a -g resource-group-name -j storage-resource-name -t SUNW.HAStoragePlus -x FilesystemMountPoints=MountPoints -x AffinityOn=TRUE 实例: #./scrgadm -a -g rg-oracle -j oracle-storage -t SUNW.HAStoragePlus -x FilesystemMountPoints=/database -x AffinityOn=TRUE 添加oracle监听 # scrgadm -a -g resoure-group-name -j oracle-server-resource-name -t SUNW.oracle_listener -x LISTENER_NAME=listener-name -x ORACLE_HOME=$ORACLE_HOME -y Resource_dependencies=storage-mountpoint-resource 实例: #./scrgadm -a -g rg-oracle -j listen-oracle -t SUNW.oracle_listener -x LISTENER_NAME=LISTENER -x ORACLE_HOME=/opt/oracle/ora10g/product/10.2.0 -y Resource_dependencies=oracle-storage #./scrgadm -a -g rg-oracle -j listen-oracle2 -t SUNW.oracle_listener -x LISTENER_NAME=LISTENER1 -x ORACLE_HOME=/opt/oracle/ora10g/product/10.2.0 -y Resource_dependencies=oracle-storage 添加oracle服务 # scrgadm -a -g resoure-group-name -j oracle-server-resource-name -t SUNW.oracle_server -x ORACLE_HOME=$ORACLE_HOME -x Alert_log_file=ORACLE.LOG -x ORACLE_SID=ORACLE_SID -x Connect_string=oracle-user/oracle-passwd -y Resource_dependencies=storage-mountpoint-resource 实例: #./scrgadm -a -g rg-oracle -j service-oracle -t SUNW.oracle_server -x -x ORACLE_HOME=/opt/oracle/ora10g/product/10.2.0 Alert_log_file=/opt/oracle/ora10g/admin/ora10g/bdump/alert_ora10g.log -x ORACLE_SID=ora10g -x Connect_string=system/oracle -y Resource_dependencies=oracle-storage 显示cluster状态 Code #scstat [-g |-D] 在cluster中切换资源至另一台机器 Code # scswitch -z -D resource_group -h node-name 启动cluster资源 Code # scswitch -e -j resource_name 停止cluster资源 Code # scswitch -n -j resource_name 删除cluster资源 Code # scswitch -r -j resource_name 因篇幅问题不能全部显示,请点此查看更多更全内容