作者 阿九【转载时请务必以超链接形式标明文章原始出处和作者信息】
一、硬件环境
3台 DELL T410塔式服务器
共享存储
其中一台安装openfiler系统,作为共享存储使用。
二、软件环境
操作系统:
RedHat 5.5
数据库:
Oracle11gR2
存储环境:
openfiler2.9
三、安装目录规划
grid用户:
ORACLE_BASE=/u01/app/base
ORACLE_HOME=/u01/app/grid
oracle用户
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/db11g
ASM实例SID:+ASM1 \ +ASM2
集群数据库:rac1 \ rac2
集群UNIQUE_NAME:rac
四、IP地址规划
公网IP: | IP地址 |
节点1: | 192.168.4.210 |
节点2: | 192.168.4.220 |
私有网络: |
|
节点1: | 172.10.10.10 |
节点2: | 172.10.10.20 |
VIP: |
|
节点1: | 192.168.4.101 |
节点2: | 192.168.4.102 |
SCAN: | 192.168.4.103 |
共享存储: | 192.168.4.230 |
五、配置openfiler共享存储
openfiler安装及磁盘配置,请参照文档《51CTO下载-Openfiler2.3.pdf》
六、在linux上配置共享存储
6.1、安装iscsi包
[root@rac1 ~]# rpm -Uvh iscsi-initiator-utils-6.2.0.871-0.10.el5.x86_64.rpm warning: iscsi-initiator-utils-6.2.0.871-0.10.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897 Preparing... ########################################### [100%] 1:iscsi-initiator-utils ########################################### [100%] |
6.2、配置iscsi服务启动
[root@rac1 ~]# service iscsid start [ OK ]off network shutdown. Starting iSCSI daemon: [ OK ] [ OK ] [root@centos ~]# chkconfig iscsid on [root@centos ~]# chkconfig iscsi on |
6.3、查找网络上可用的iscsi磁盘
[root@rac01 vsftpd]# iscsiadm -m discovery -t sendtargets -p 192.168.4.230 192.168.4.230:3260,1 iqn.2006-01.com.openfiler:tsn.bd8633ac148e [root@rac01 vsftpd]# |
6.4、手动添加设备到本地
[root@rac02 by-path]# fdisk -l
Disk /dev/sda: 499.5 GB, 499558383616 bytes 255 heads, 63 sectors/track, 60734 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 26121 209712510 83 Linux /dev/sda3 26122 26643 4192965 82 Linux swap / Solaris
[root@rac02 by-path]#
[root@centos ~]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.bd8633ac148e -p 192.168.4.230 -l Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.bd8633ac148e, portal: 192.168.4.230,3260] Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.bd8633ac148e, portal: 192.168.4.230,3260] successful.
[root@rac02 by-path]# fdisk -l
Disk /dev/sda: 499.5 GB, 499558383616 bytes 255 heads, 63 sectors/track, 60734 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 26121 209712510 83 Linux /dev/sda3 26122 26643 4192965 82 Linux swap / Solaris
Disk /dev/sdb: 204.9 GB, 204950470656 bytes 255 heads, 63 sectors/track, 24917 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table [root@rac02 by-path]# |
至此、openfiler共享存储配置完毕。
七、Oracle安装前配置
7.1、检查所需软件包
以root用户登录,在两节点上执行如下操作
在RedHat5.5上安装Oracle11gR2需要如下软件包
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
numactl-devel-0.9.8.i386
sysstat-7.0.2
unixODBC-2.2.11-7.1.i386.rpm
unixODBC-devel-2.2.11-7.1.i386.rpm
执行命令rpm –qa 来查看软件包是否安装
[root@rac01 ~]# rpm -qa binutils* compat-libstdc* 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* elfutils-libelf-0.137-3.el5 numactl-devel-0.9.8-11.el5 glibc-2.5-49 compat-libstdc++-33-3.2.3-61 glibc-devel-2.5-49 elfutils-libelf-devel-static-0.137-3.el5 gcc44-4.4.0-6.el5 libgcc-4.1.2-48.el5 compat-libstdc++-296-2.96-138 glibc-headers-2.5-49 gcc-c++-4.1.2-48.el5 elfutils-libelf-devel-0.137-3.el5 gcc-gnat-4.1.2-48.el5 glibc-common-2.5-49 binutils-2.17.50.0.6-14.el5 libstdc++-devel-4.1.2-48.el5 libstdc++44-devel-4.4.0-6.el5 gcc44-gfortran-4.4.0-6.el5 sysstat-7.0.2-3.el5 kernel-headers-2.6.18-194.el5 make-3.81-3.el5 libaio-0.3.106-5 ksh-20100202-1.el5 libgomp-4.4.0-6.el5 gcc-4.1.2-48.el5 gcc44-c++-4.4.0-6.el5 libstdc++-4.1.2-48.el5 gcc-gfortran-4.1.2-48.el5 gcc-java-4.1.2-48.el5 gcc-objc-4.1.2-48.el5 libaio-devel-0.3.106-5 [root@rac01 ~]# |
如果没有软件包,则在安装CD中找到安装
挂载光驱的命令为:mount -o ro /dev/cdrom /mnt/cdrom
[root@rac01 by-path]# mount -o ro /dev/cdrom /mnt/cdrom [root@rac01 by-path]# |
安装rpm软件包
[root@rac01 Server]# rpm -Uvh sysstat-7.0.2-3.el5.i386.rpm warning: sysstat-7.0.2-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... ########################################### [100%] 1:sysstat ########################################### [100%] [root@rac01 Server]# |
7.2、更改网络UDP和TCP的临时端口的其实范围(非必须)
以root用户登录,在两节点上执行
[root@rac02 by-path]# cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000 [root@rac02 by-path]# echo 9000 65500 > /proc/sys/net/ipv4/ip_local_port_range [root@rac02 by-path]# cat /proc/sys/net/ipv4/ip_local_port_range 9000 65500 [root@rac02 by-path]# |
7.3、创建操作系统用户组及用户
以root用户登录,在两节点上执行
创建用户组
[root@rac01 Server]# groupadd -g 501 oinstall [root@rac01 Server]# groupadd -g 502 dba |
创建grid用户
[root@rac01 Server]# useradd -u 8001 -g oinstall -G dba grid [root@rac01 Server]# passwd grid Changing password for user grid. New UNIX password: BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@rac01 ~]# |
创建oracle用户
[root@rac01 Server]# useradd -u 501 -g oinstall -G dba oracle [root@rac02 Server]# passwd oracle Changing password for user oracle. New UNIX password: BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@rac02 Server]# |
7.4、提高grid及oracle用户的shell权限
以root用户登录,在两节点上的 /etc/security/limits.conf、/etc/pam.d/login和 /etc/profile文件中添加如下内容:
/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
/etc/pam.d/login
session required /lib/security/pam_limits.so
/etc/profile
if [ $USER = "oracle" ] || [ $USER = "grid" ] ; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
7.5、配置host文件
以root用户登录,在两节点上执行
[root@rac01 ~]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 rac01 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 [root@rac01 ~]# |
修改host文件添加入下内容
######### public ######## 192.168.4.210 rac01 192.168.4.220 rac02
######### private ######## 172.10.10.10 rac01-priv 172.10.10.20 rac02-priv
######### public ######## 192.168.4.101 rac01-vip 192.168.4.102 rac02-vip
######### scan ######## 192.168.4.103 rac-scan |
修改后的文件为:
[root@rac01 ~]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 rac01 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6
######### public ######## 192.168.4.210 rac01 192.168.4.220 rac02
######### private ######## 172.10.10.10 rac01-priv 172.10.10.20 rac02-priv
######### public ######## 192.168.4.101 rac01-vip 192.168.4.102 rac02-vip
######### scan ######## 192.168.4.103 rac-scan [root@rac01 ~]# |
7.6、修改内核参数
以root用户登录,在两节点上执行
在/etc/sysctl.conf
文件中添加如下内容
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 |
执行命令/sbin/sysctl -p使修改立即生效
7.7、配置用户等效性
grid
在两节点上执行如下命令:
[grid@rac01 ~]$ mkdir ~/.ssh [grid@rac01 ~]$ chmod 700 ~/.ssh [grid@rac01 ~]$ ssh-keygen -t rsa ssh-keygen -t dsaGenerating public/private rsa key pair. Enter file in which to save the key (/home/grid/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in ssh-keygen -t dsa. Your public key has been saved in ssh-keygen -t dsa.pub. The key fingerprint is: 11:d2:c0:13:d6:e0:50:40:0e:98:41:1c:be:3c:8e:61 grid@rac01 [grid@rac01 ~]$ [grid@rac01 ~]$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/grid/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/grid/.ssh/id_dsa. Your public key has been saved in /home/grid/.ssh/id_dsa.pub. The key fingerprint is: 76:1d:67:f8:20:41:21:16:43:a8:ca:5a:ac:55:a2:c2 grid@rac01 [grid@rac01 ~]$ [grid@rac01 ~]$ |
在节点一上执行
[grid@rac01 .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys [grid@rac01 .ssh]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys [grid@rac01 .ssh]$ ssh rac02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys The authenticity of host 'rac02 (192.168.4.220)' can't be established. RSA key fingerprint is f4:4c:d3:34:d8:3e:42:21:95:99:14:73:36:4a:75:a5. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac02,192.168.4.220' (RSA) to the list of known hosts. grid@rac02's password: [grid@rac01 .ssh]$ ssh rac02 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys grid@rac02's password: [grid@rac01 .ssh]$ scp ~/.ssh/authorized_keys rac02:~/.ssh/authorized_keys grid@rac02's password: authorized_keys 100% 1984 1.9KB/s 00:00 [grid@rac01 .ssh]$ |
在节点二上执行
[root@rac02 Server]# passwd oracle Changing password for user oracle. New UNIX password: BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@rac02 Server]# su - grid [grid@rac02 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys [grid@rac02 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys [grid@rac02 ~]$ ssh rac01 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys The authenticity of host 'rac01 (192.168.4.210)' can't be established. RSA key fingerprint is d9:bc:92:0b:c2:3f:15:8e:10:fb:0e:a0:40:11:53:5a. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac01,192.168.4.210' (RSA) to the list of known hosts. [grid@rac02 ~]$ ssh rac01 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys [grid@rac02 ~]$ |
在两节点上执行如下命令
ssh rac01 date
ssh rac01-priv date
ssh rac02 date
ssh rac02-priv date
如果不要求输入密码则配置成功。
oracle
以oracle用户登录,重复以上操作
7.8、配置安装用户的环境变量
grid
以grid用户登录,在两节点上编辑 /home/grid/.bash_profile文件
节点一:
export ORACLE_SID=+ASM1 export ORACLE_BASE=/u01/app/base export ORACLE_HOME=/u01/app/grid export LD_LIBRARY_PATH=$ORACLE_HOME/lib export NLS_LANG='Simplified Chinese_China'.ZHS16GBK export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin |
节点二:
export ORACLE_SID=+ASM2 export ORACLE_BASE=/u01/app/base export ORACLE_HOME=/u01/app/grid export LD_LIBRARY_PATH=$ORACLE_HOME/lib export NLS_LANG='Simplified Chinese_China'.ZHS16GBK export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin |
oracle
以oracle用户登录,在两节点上编辑 /home/oracle/.bash_profile文件
节点一:
export ORACLE_SID=rac1 export ORACLE_UNQNAME=rac export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/db11g export ORA_CRS_HOME=/u01/app/grid export LD_LIBRARY_PATH=$ORACLE_HOME/lib export NLS_LANG='Simplified Chinese_China'.ZHS16GBK export PATH=$ORA_CRS_HOME/bin:$ORACLE_HOME/bin:$PATH:$HOME/bin
umask 022 |
节点二:
export ORACLE_SID=rac2 export ORACLE_UNQNAME=rac export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/db11g export ORA_CRS_HOME=/u01/app/grid export LD_LIBRARY_PATH=$ORACLE_HOME/lib export NLS_LANG='Simplified Chinese_China'.ZHS16GBK export PATH=$ORA_CRS_HOME/bin:$ORACLE_HOME/bin:$PATH:$HOME/bin
umask 022 |
7.9、创建安装目录
以root用户登录,在两节点上执行如下命令
[root@rac02 Server]# mkdir -p /u01/app/grid [root@rac02 Server]# mkdir -p /u01/app/oracle [root@rac02 Server]# chown –R oracle:oinstall /u01 [root@rac02 Server]# chmod –R 775 /u01 [root@rac02 Server]# chown grid:oinstall /u01/app/grid |
7.10、配置ASM使用的磁盘
以root用户登录任一节点。
查看现有磁盘分区
[root@rac01 app]# fdisk -l
Disk /dev/sda: 499.5 GB, 499558383616 bytes 255 heads, 63 sectors/track, 60734 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 26121 209712510 83 Linux /dev/sda3 26122 26643 4192965 82 Linux swap / Solaris
Disk /dev/sdb: 204.9 GB, 204950470656 bytes 255 heads, 63 sectors/track, 24917 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table [root@rac01 app]# |
对磁盘分区
[root@rac01 app]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable.
The number of cylinders for this disk is set to 24917. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-24917, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-24917, default 24917): Using default value 24917
Command (m for help): w The partition table has been altered!
Calling ioctl() to re-read partition table. Syncing disks. [root@rac01 app]# |
查看分区后的磁盘情况
[root@rac01 app]# fdisk -l
Disk /dev/sda: 499.5 GB, 499558383616 bytes 255 heads, 63 sectors/track, 60734 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 26121 209712510 83 Linux /dev/sda3 26122 26643 4192965 82 Linux swap / Solaris
Disk /dev/sdb: 204.9 GB, 204950470656 bytes 255 heads, 63 sectors/track, 24917 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 24917 200145771 83 Linux [root@rac01 app]# |
在另一节点查看磁盘分区情况
[root@rac02 app]# fdisk -l
Disk /dev/sda: 499.5 GB, 499558383616 bytes 255 heads, 63 sectors/track, 60734 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 26121 209712510 83 Linux /dev/sda3 26122 26643 4192965 82 Linux swap / Solaris
Disk /dev/sdb: 204.9 GB, 204950470656 bytes 255 heads, 63 sectors/track, 24917 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 24917 200145771 83 Linux [root@rac02 app]# |
7.11、ASM磁盘配置
在 http://www.oracle.com/technetwork/server-storage/linux/downloads/rhel5-084877.html下载对应的ASM RPM包
安装RPM 包
以root用户登录,在两节点上执行
[root@rac01 soft]# rpm -Uvh oracleasm-support-2.1.7-1.el5.i386.rpm warning: oracleasm-support-2.1.7-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing... ########################################### [100%] 1:oracleasm-support ########################################### [100%] [root@rac01 soft]# |
配置ASM磁盘
以root用户登录,在两节点上执行
[root@rac01 soft]#service oracleasm configure Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting <ENTER> without typing an answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: grid Default group to own the driver interface []: dba Start Oracle ASM library driver on boot (y/n) [n]: y Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver: [ OK ] Scanning the system for Oracle ASMLib disks: [ OK ] [root@rac01 soft]# |
查看oracleasm状态
以root用户登录,在两节点上执行
[root@rac01 soft]# service oracleasm status Checking if ASM is loaded: yes Checking if /dev/oracleasm is mounted: yes [root@rac01 soft]# |
创建ASM磁盘
以root用户登录,在任一一节点创建即可
[root@rac01 soft]# service oracleasm createdisk disk1 /dev/sdb1 Marking disk "disk1" as an ASM disk: [ OK ] [root@rac01 soft]# |
查看已有创建的磁盘
以root用户登录,在两节点上执行
[root@rac01 soft]# oracleasm listdisks DISK1 [root@rac01 soft]# |
如何磁盘在另一节点以创建,但在该节点未能发现,使用如下命令
[root@rac02 app]# oracleasm listdisks [root@rac02 app]# oracleasm scandisks Reloading disk partitions: done Cleaning any stale ASM disks... Scanning system for ASM disks... Instantiating disk "DISK1" [root@rac02 app]# oracleasm listdisks DISK1 [root@rac02 app]# |
7.12、ntp配置
以root用户登录,在两节点上标记 /etc/sysconfig/ntpd文件
将文件中的
OPTIONS=" -u ntp:ntp -p /var/run/ntpd.pid" 内容改为
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
启动ntp服务
[root@rac02 u01]# service ntpd start 启动 ntpd:[确定] [root@rac02 u01]# |
八、安装Oracle Grid Infrastructure
8.1、解压文件
以root或grid用户登录均可,视文件权限而定。
[root@rac01 soft]# unzip linux_11gR2_grid.zip |
8.2、启动安装界面
以 grid用户登录。
[grid@rac01 soft]# cd grid [grid @rac01 grid]# ls -l 总计 80 drwxr-xr-x 9 root root 4096 2009-08-17 doc drwxr-xr-x 4 root root 4096 2009-08-14 install drwxrwxr-x 2 root root 4096 2009-08-14 response drwxrwxr-x 2 root root 4096 2009-08-14 rpm -rwxrwxr-x 1 root root 3795 2009-01-29 runcluvfy.sh -rwxr-xr-x 1 root root 4353 2009-08-14 runInstaller drwxrwxr-x 2 root root 4096 2009-08-14 sshsetup drwxr-xr-x 14 root root 4096 2009-08-14 stage -rw-r--r-- 1 root root 4279 2009-08-18 welcome.html [grid @rac01 grid]# [grid@rac01 grid]$ ./runInstaller 正在启动 Oracle Universal Installer...
检查临时空间: 必须大于 80 MB。 实际为 177858 MB 通过 检查交换空间: 必须大于 150 MB。 实际为 4094 MB 通过 检查监视器: 监视器配置至少必须显示 256种颜色。 实际为 16777216 通过 准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2012-02-10_07-53-28PM.请稍候...[grid@rac01 grid]$ |
选择第一项,安装和配置集群的网格基础结构,单击下一步
选择第一项,高级安装,单击下一步
单击下一步
修改集群名称及SCAN名称为 /etc/hosts文件配置的名称、单击下一步
单击添加,输入另一节点的信息,单击下一步
其中SSH连接按钮可以测试用户等效性是否畅通。
单击下一步,如果网卡分配错误,可以修改正确后单击下一步
选择自动存储管理选项,单击下一步
冗余:选择外部,勾选磁盘,单击下一步
选择“对这些账户使用同一口令”,忽略oracle口令效验警告
选择不使用IPMI平台
修改所有用户组为 DBA
忽略警告
修改 oracle 基目录为 oracle的ORACLE_BASE
修改软件位置为grid的ORACLE_BASE
执行脚本
以root用户登录,在两节点顺序执行
/u01/app/oraInventory/orainstRoot.sh
[root@rac02 ~]# /u01/app/oraInventory/orainstRoot.sh 更改权限/u01/app/oraInventory. 添加组的读取和写入权限。 删除全局的读取, 写入和执行权限。
更改组名/u01/app/oraInventory到 oinstall. 脚本的执行已完成。 [root@rac02 ~]# |
/u01/app/grid/root.sh
[root@rac1 ~]# /u01/app/grid/root.sh Running Oracle 11g root.sh script...
The following environment variables are set as: ORACLE_OWNER= grid ORACLE_HOME= /u01/app/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root.sh script. Now product-specific root actions will be performed. 2012-02-11 20:59:47: Parsing the host name 2012-02-11 20:59:47: Checking for super user privileges 2012-02-11 20:59:47: User has super user privileges Using configuration parameter file: /u01/app/grid/crs/install/crsconfig_params Creating trace directory LOCAL ADD MODE Creating OCR keys for user 'root', privgrp 'root'.. Operation successful. root wallet root wallet cert root cert export peer wallet profile reader wallet pa wallet peer wallet keys pa wallet keys peer cert request pa cert request peer cert pa cert peer root cert TP profile reader root cert TP pa root cert TP peer pa cert TP pa peer cert TP profile reader pa cert TP profile reader peer cert TP peer user cert pa user cert Adding daemon to inittab CRS-4123: Oracle High Availability Services has been started. ohasd is starting CRS-2672: 尝试启动 'ora.gipcd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.mdnsd' (在 'rac1'上) CRS-2676: 成功启动 'ora.mdnsd' (在 'rac1'上) CRS-2676: 成功启动 'ora.gipcd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.gpnpd' (在 'rac1'上) CRS-2676: 成功启动 'ora.gpnpd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.cssdmonitor' (在 'rac1'上) CRS-2676: 成功启动 'ora.cssdmonitor' (在 'rac1'上) CRS-2672: 尝试启动 'ora.cssd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.diskmon' (在 'rac1'上) CRS-2676: 成功启动 'ora.diskmon' (在 'rac1'上) CRS-2676: 成功启动 'ora.cssd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.ctssd' (在 'rac1'上) CRS-2676: 成功启动 'ora.ctssd' (在 'rac1'上)
已成功创建并启动 ASM。
已成功创建磁盘组 DATA。
clscfg: -install mode specified Successfully accumulated necessary OCR keys. Creating OCR keys for user 'root', privgrp 'root'.. Operation successful. CRS-2672: 尝试启动 'ora.crsd' (在 'rac1'上) CRS-2676: 成功启动 'ora.crsd' (在 'rac1'上) CRS-4256: Updating the profile Successful addition of voting disk 6a7056e6c1b14fcabfe0f4e742ab5fe6. Successfully replaced voting disk group with +DATA. CRS-4256: Updating the profile CRS-4266: Voting file(s) successfully replaced ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 6a7056e6c1b14fcabfe0f4e742ab5fe6 (ORCL:SHAREDISK1) [DATA] Located 1 voting disk(s). CRS-2673: 尝试停止 'ora.crsd' (在 'rac1'上) CRS-2677: 成功停止 'ora.crsd' (在 'rac1'上) CRS-2673: 尝试停止 'ora.asm' (在 'rac1'上) CRS-2677: 成功停止 'ora.asm' (在 'rac1'上) CRS-2673: 尝试停止 'ora.ctssd' (在 'rac1'上) CRS-2677: 成功停止 'ora.ctssd' (在 'rac1'上) CRS-2673: 尝试停止 'ora.cssdmonitor' (在 'rac1'上) CRS-2677: 成功停止 'ora.cssdmonitor' (在 'rac1'上) CRS-2673: 尝试停止 'ora.cssd' (在 'rac1'上) CRS-2677: 成功停止 'ora.cssd' (在 'rac1'上) CRS-2673: 尝试停止 'ora.gpnpd' (在 'rac1'上) CRS-2677: 成功停止 'ora.gpnpd' (在 'rac1'上) CRS-2673: 尝试停止 'ora.gipcd' (在 'rac1'上) CRS-2677: 成功停止 'ora.gipcd' (在 'rac1'上) CRS-2673: 尝试停止 'ora.mdnsd' (在 'rac1'上) CRS-2677: 成功停止 'ora.mdnsd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.mdnsd' (在 'rac1'上) CRS-2676: 成功启动 'ora.mdnsd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.gipcd' (在 'rac1'上) CRS-2676: 成功启动 'ora.gipcd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.gpnpd' (在 'rac1'上) CRS-2676: 成功启动 'ora.gpnpd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.cssdmonitor' (在 'rac1'上) CRS-2676: 成功启动 'ora.cssdmonitor' (在 'rac1'上) CRS-2672: 尝试启动 'ora.cssd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.diskmon' (在 'rac1'上) CRS-2676: 成功启动 'ora.diskmon' (在 'rac1'上) CRS-2676: 成功启动 'ora.cssd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.ctssd' (在 'rac1'上) CRS-2676: 成功启动 'ora.ctssd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.asm' (在 'rac1'上) CRS-2676: 成功启动 'ora.asm' (在 'rac1'上) CRS-2672: 尝试启动 'ora.crsd' (在 'rac1'上) CRS-2676: 成功启动 'ora.crsd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.evmd' (在 'rac1'上) CRS-2676: 成功启动 'ora.evmd' (在 'rac1'上) CRS-2672: 尝试启动 'ora.asm' (在 'rac1'上) CRS-2676: 成功启动 'ora.asm' (在 'rac1'上) CRS-2672: 尝试启动 'ora.DATA.dg' (在 'rac1'上) CRS-2676: 成功启动 'ora.DATA.dg' (在 'rac1'上) CRS-2672: 尝试启动 'ora.registry.acfs' (在 'rac1'上) CRS-2676: 成功启动 'ora.registry.acfs' (在 'rac1'上)
rac1 2012/02/11 21:04:49 /u01/app/grid/cdata/rac1/backup_20120211_210449.olr Preparing packages for installation... cvuqdisk-1.0.7-1 Configure Oracle Grid Infrastructure for a Cluster ... succeeded Updating inventory properties for clusterware 正在启动 Oracle Universal Installer...
检查交换空间: 必须大于 500 MB。 实际为 4094 MB 通过 The inventory pointer is located at /etc/oraInst.loc The inventory is located at /u01/app/oraInventory 'UpdateNodeList' 成功。 |
安装完成后状态
[grid@rac1 ~]$ crs_stat -t 名称 类型 目标 状态 主机 ------------------------------------------------------------ ora.DATA.dg ora....up.type ONLINE ONLINE rac1 ora....ER.lsnr ora....er.type ONLINE ONLINE rac1 ora....N1.lsnr ora....er.type ONLINE ONLINE rac1 ora.asm ora.asm.type ONLINE ONLINE rac1 ora.eons ora.eons.type ONLINE ONLINE rac1 ora.gsd ora.gsd.type OFFLINE OFFLINE ora....network ora....rk.type ONLINE ONLINE rac1 ora.oc4j ora.oc4j.type OFFLINE OFFLINE ora.ons ora.ons.type ONLINE ONLINE rac1 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application ONLINE ONLINE rac1 ora.rac1.gsd application OFFLINE OFFLINE ora.rac1.ons application ONLINE ONLINE rac1 ora.rac1.vip ora....t1.type ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora.rac2.gsd application OFFLINE OFFLINE ora.rac2.ons application ONLINE ONLINE rac2 ora.rac2.vip ora....t1.type ONLINE ONLINE rac2 ora....ry.acfs ora....fs.type ONLINE ONLINE rac1 ora.scan1.vip ora....ip.type ONLINE ONLINE rac1 [grid@rac1 ~]$ |
九、安装Oracle 数据库软件
9.1、解压文件
[root@rac1 soft]# unzip linux.x64_11gR2_database_2of2.zip |
9.2、启动安装界面
[oracle@rac1 database]$ ./runInstaller 正在启动 Oracle Universal Installer...
检查临时空间: 必须大于 120 MB。 实际为 173634 MB 通过 检查交换空间: 必须大于 150 MB。 实际为 3952 MB 通过 检查监视器: 监视器配置至少必须显示 256种颜色。 实际为 16777216 通过 准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2012-11-10_11-36-07AM.请稍候... |
为保证安装顺利,这里测试SSH连接
执行root脚本,在两个节点顺序执行
[root@rac1 oracle]# /u01/app/oracle/db11g/root.sh Running Oracle 11g root.sh script...
The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/db11g
Enter the full pathname of the local bin directory: [/usr/local/bin]: The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]:
Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root.sh script. Now product-specific root actions will be performed. Finished product-specific root actions. [root@rac1 oracle]# |
十、安装Oracle 数据库
10.1、启动配置程序
以oracle用户启动数据库配置程序
[oracle@rac1 ~]$ dbca
|
这报错是因为没有设置ORACLE_UNQNAME环境变量
export ORACLE_UNQNAME=rac
10.2、安装完成后服务状态查看
[root@rac1 app]# /u01/app/grid/bin/crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.DATA.dg ora....up.type ONLINE ONLINE rac1 ora....ER.lsnr ora....er.type ONLINE ONLINE rac1 ora....N1.lsnr ora....er.type ONLINE ONLINE rac1 ora.asm ora.asm.type ONLINE ONLINE rac1 ora.eons ora.eons.type ONLINE ONLINE rac1 ora.gsd ora.gsd.type OFFLINE OFFLINE ora....network ora....rk.type ONLINE ONLINE rac1 ora.oc4j ora.oc4j.type OFFLINE OFFLINE ora.ons ora.ons.type ONLINE ONLINE rac1 ora.rac.db ora....se.type ONLINE ONLINE rac1 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application ONLINE ONLINE rac1 ora.rac1.gsd application OFFLINE OFFLINE ora.rac1.ons application ONLINE ONLINE rac1 ora.rac1.vip ora....t1.type ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora.rac2.gsd application OFFLINE OFFLINE ora.rac2.ons application ONLINE ONLINE rac2 ora.rac2.vip ora....t1.type ONLINE ONLINE rac2 ora....ry.acfs ora....fs.type ONLINE ONLINE rac1 ora.scan1.vip ora....ip.type ONLINE ONLINE rac1 [root@rac1 app]# |
这里我们看到,每个节点上的gsd服务都是offiline这是因为在11gR2 RAC环境下,gsd服务默认是禁用,当然这并不影响数据库的使用。gsd服务是向后兼容而保留的。
要启动gsd服务,可以通过如下步骤来启动:
以grid用户登录执行
srvctl enable nodeapps -g
srvctl start nodeapps -g
另外oc4j服务也是offline,同样是因为oc4j服务默认是禁用的,要启动用oc4j服务,可以通过如下步骤来启动:
以grid用户登录执行:
srvctl enable oc4j
srvctl start oc4j -v
[grid@rac1 ~]$ srvctl enable oc4j [grid@rac1 ~]$ srvctl start oc4j -v OC4J 已启动 [grid@rac1 ~]$ |
也可以在集群件中取消gsd服务的注册,在11g中命令crs_unregister已经废弃,使用crsctl delete resource命令替代
[grid@rac1 bin]$ crs_unregister -h 此命令已废弃并替换为 'crsctl delete resource' 保留此命令只是为了向后兼容
Usage: crs_unregister resource_name [...] [-q] [grid@rac1 bin]$ crsctl -h 用法: crsctl add -添加资源,类型或其他实体 crsctl check - 检查服务, 资源或其他实体 crsctl config - 输出自动启动配置 crsctl debug - 获取或修改调试状态 crsctl delete - 删除资源, 类型或其他实体 crsctl disable - 禁用自动启动 crsctl enable - 启用自动启动 crsctl get - 获取实体值 crsctl getperm - 获取实体权限 crsctl lsmodules - 列出调试模块 crsctl modify - 修改资源, 类型或其他实体 crsctl query - 查询服务状态 crsctl pin - 在节点列表中固定节点 crsctl relocate - 重新定位资源, 服务器或其他实体 crsctl replace - 替换表决文件的位置 crsctl setperm - 设置实体权限 crsctl set - 设置实体值 crsctl start - 启动资源, 服务器或其他实体 crsctl status - 获取资源或其他实体的状态 crsctl stop - 停止资源, 服务器或其他实体 crsctl unpin - 在节点列表中取消固定节点 crsctl unset - 取消设置实体值, 还原其默认值 [grid@rac1 bin]$ |
执行gsd服务删除
[grid@rac1 bin]$ crsctl delete resource ora.gsd [grid@rac1 bin]$ crs_stat -t 名称 类型 目标 状态 主机 ------------------------------------------------------------ ora.DATA.dg ora....up.type ONLINE ONLINE rac1 ora....ER.lsnr ora....er.type ONLINE ONLINE rac1 ora....N1.lsnr ora....er.type ONLINE ONLINE rac1 ora.asm ora.asm.type ONLINE ONLINE rac1 ora.eons ora.eons.type ONLINE ONLINE rac1 ora....network ora....rk.type ONLINE ONLINE rac1 ora.oc4j ora.oc4j.type ONLINE ONLINE rac2 ora.ons ora.ons.type ONLINE ONLINE rac1 ora.rac.db ora....se.type ONLINE ONLINE rac1 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application ONLINE ONLINE rac1 ora.rac1.ons application ONLINE ONLINE rac1 ora.rac1.vip ora....t1.type ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora.rac2.ons application ONLINE ONLINE rac2 ora.rac2.vip ora....t1.type ONLINE ONLINE rac2 ora....ry.acfs ora....fs.type ONLINE ONLINE rac1 ora.scan1.vip ora....ip.type ONLINE ONLINE rac1 [grid@rac1 bin]$ |
十一、数据库更改归档模式
11.1、创建归档目录
节点一:/u01/app/oracle/archive1
节点二:/u01/app/oracle/archive2
11.2、设置归档目录地址参数
先登录到任一节点,设置归档地址目录参数
SQL> alter system set log_archive_dest='/u01/app/oracle/archive1' scope=spfile sid='rac1';
系统已更改。
SQL> alter system set log_archive_dest='/u01/app/oracle/archive2' scope=spfile sid='rac2';
系统已更改。
SQL> |
11.3、更改归档模式
先关闭所有节点,然后启动一个节点
SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> |
更改数据库归档模式
SQL> archive log list 数据库日志模式 非存档模式 自动存档 禁用 存档终点 /u01/app/oracle/archive1 最早的联机日志序列 1 当前日志序列 2 SQL> SQL> SQL> alter database archivelog ;
数据库已更改。
SQL> archive log list 数据库日志模式 存档模式 自动存档 启用 存档终点 /u01/app/oracle/archive1 最早的联机日志序列 1 下一个存档日志序列 2 当前日志序列 2 SQL> |
打开数据库
SQL> alter database open;
数据库已更改。
SQL> |
最后,连接到另一节点启动数据库
SQL> startup mount; ORACLE 例程已经启动。
Total System Global Area 1636814848 bytes Fixed Size 2213856 bytes Variable Size 1056966688 bytes Database Buffers 570425344 bytes Redo Buffers 7208960 bytes 数据库装载完毕。 SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 /u01/app/oracle/archive2 最早的联机日志序列 1 下一个存档日志序列 1 当前日志序列 1 SQL> SQL> SQL> alter database open;
数据库已更改。
SQL> |