在这里我们将介绍Oracle RAC在Linux下的安装,Oracle Real Application Server,真正应用集群,简称Oracle RAC ,是Oracle的并行集群,位于不同服务器系统的Oracle实例同时访问同一个Oracle数据库,节点之间通过私有网络进行通信,所有的控制文件、联机日志和数据文件存放在共享的设备上,能够被集群中的所有节点同时读写。
系统配置
1、创建用户和组 oinstall dba 组用户
oracle-goinstall-Gdba
匿名用户:确认匿名用户 nobody 存在与系统中,在安装完成后nobody 用户必须执行一些扩展任务(extjob)确认nobody用户是否存在:
#idnobody
如果用户不存在则需要添加该用户。
注意给oracle用户设置密码
2、配置网络
ip地址的规划,通过修改 /etc/sysconf/network-script/ifcfg-ethx
配置网卡的静态ip地址主机名的***修改: /etc/network
本地DNS的配置: /etc/hosts
配置/etc/host.conf 该文件用来指定域名解析方法的顺序:
orderhosts,bind
它说明,首先通过/etc/hosts文件解析,如果在该文件中没有相应的主机名与IP 地址的对应关系,再通过域名服务器bind进行解析
3、配置安全SSH 通道,针对ORACLE用户,在每个节点创建 rsa 和dsa 的密钥
rac1#su-oracle rac1#mkdir.ssh rac1#chmod700.ssh rac1#cd.ssh
rac1#ssh-keygen -t rsa 创建密钥对,其他默认
同样在另一台主机上执行相应的操作。
rac2#su-oracle rac2#mkdir.ssh rac2#chmod700.ssh rac2#cd.ssh rac2#ssh-keygen-trsa创建密钥对,其他默认
rac1#ssh rac1 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys 把节点1 的共钥 从定向到一个文件因为现在还没有密钥对,所以会提示输入密码。直接输入密码就行了
rac1#sshrac2cat/home/oracle/.ssh/id_rsa.pub>>authorized_keys把节点2的共钥从定向到一个文件 rac1#catauthorized_keys查看节点1和节点2的共钥的内容,同样拷贝到节点2上面。 rac1#scpauthorized_keysrac2:/home/oracle/.ssh/要输入节点2的密码
改一下权限
rac1#chmod600authorized-keys
DSA密钥的设置同理
rac1#sshrac1date测试共钥连接情况远程执行date命令,此时不用输入密码 rac1#sshrac2date测试共钥连接情况远程执行date命令,此时不用输入密码
此时可证实安全需要通道配置成功
4、检查所需的软件
#rpm -qa |grep 需要的软件包
5、配置内核参数
vi/etc/sysctl.conf kernel.sem=25032000100128 kernel.shmmni=4096 kernel.shmall=2097152 kernel.shmmax=2147483648 net.ipv4.ip_local_port_range=102465000 net.core.rmem_default=1048576 net.core.rmem_max=1048576 net.core.wmem_default=262144 net.core.wmem_max=262144
然后执行: #sysctl -p
6、设置shell对oracle用户的限制
vi /etc/security/limits.conf 在每个节点上执行相同的操作:编辑/etc/security/limits.conf,添加内容:
oraclesoftnproc2047 oraclehardnproc16384 oraclesoftnofile1024 oraclehardnofilw65536
编辑/etc/pam.d/login,添加如下内容: session required /lib/security/pam_limits.so
编辑/etc/profile,添加内容如下:
if[$USER="ORACLE"];THEN if[$SHELL="/bin/ksh"];then ulimit-p16384 ulimit-n65536 else ulimit-u16384-n65536 fi fi
磁盘配置
安装 CRS
安装真正的RAC
存储选项:
项目 | 存储系统 | 存储位置 |
clusterware | 本地(EXT3)或NFS | 本地或NFS |
voting disk | OCFS2 Raw device NFS | 共享磁盘 NFS |
OCR | OCFS2 Raw device NFS | 共享磁盘 NFS |
数据库软件 | OCFS2 本地 NFS | 本地或共享磁盘 NFS |
数据库 | OCFS2 ASM Raw device NFS | 共享磁盘 NFS |
恢复文件 | OCFS2 ASM NFS | 共享磁盘 NFS |
存储机制
clusterware | 数据库 | 恢复文件 | |
ASM | 否 | 是 | 是 |
OCFS2 | 是 | 是 | 是 |
Raw Device | 是 | 是 | 否 |
NFS | 是 | 是 | 是 |
OCFS2 安装这个软件 下载3个软件包 在两边都要安装 OCFS2-2.6.9-22.ELsmp-1.2.3-1.i686.rpm 这个文件要跟 uname -a 的系统版本对应起来 ocfs2console-1.2.1-1.i386.rpm ocfs2-tools-1.2.1-1.i386.rpm
安装顺序:tools —-内核模块 —– console
磁盘的处理
#fdisk-l查看磁盘分区 #fdisk/dev/sdb创建分区 #exportDISPLAY=本地机器IP #ocfs2console打开ocfs2的控制台进行ocfs2的配置
菜单Task 下的format开始格式化分区
Oracle的安装前的准备
#mkdir-p/orac/orachome #mkdir-p/orac/oradata #mount-tocfs2/dev/sdb1/orac/orahome #df-h查看挂接情况 #mount-tocfs2-odatavolume,nointr/dev/sdb2orac/oradata #df-h #mounted.ocfs2-f查看ocfs2文件系统的加载情况
另一个节点rac2
#/etc/init.d/o2cdload加载这个模块 #/etc/init.d/o2cdstatus查看加载这个模块的状态
查看到节点2 ocfs2 状态是 offline
#/etc/init.d/o2cdonline使其online #/etc/init.d/o2cdstatus查看加载这个模块的状态 #mount-tocfs2/dev/sdb1/orac/orahome #df-h #mounted.ocfs2-f #mount-tocfs2-odatavolume,nointr/dev/sdb2/orac/oradata #mounted.ocfs2-f
系统启动时自动加载ocfs2文件系统和启动相应的模块—-两个节点都要配置
#/etc/init.d/o2cdconfigure启动时自动加载ocfs2的相关模块 #vi/etc/fstab启动是自动挂接文件系统 /dev/sdb1/orac/orahomeocfs2_netdev00 /dev/sdb2/orac/oradataocfs2_netdev,datavolume,nointr00
安装集群 clusterware 文件夹 crs 安装clusterware oradata 建库时使用 orahome 安装oracle数据库软件
要对这些文件夹的主用户进行修改
#cd/orac #chownroot.oinstallcrs #chownoracle.oinstallorahome #chownoracle.oinstalloradata #chmod-R775ors #chmod-R775orahome #chmod-R775oradata #ls-l
在另外一个节点上也要进行相应的修改
把集群clusterware安装软件拷贝进来
#su-oracle #exportDISPLAY=本地ip:0.0 #./runInstaller
安装数据库软件 选择安装类型 企业版
创建数据库: #dbca
测试数据库的情况:客户端的连接文件的修改:在客户端安装路径下: NETWORK/ADMIN/tnsnames.ora
ORATESTtns服务名= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.116.121节点1IP)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.116.129节点2IP)(PORT=1521)) ) (CONNECT_DATA= (SERVICE_NAME=oratest.sinobest.com全局数据库名) ) ) EXTPROC_CONNECTION_DATA= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)) ) (CONNECT_DATA= (SID=PLSExtProc) (PRESENTATION=RO) ) )
SQLPLUS客户端的测试:在windows下打开命令行 或者直接打开 Oracle SQL*Plus
>sqlplus/nolog SQL>connsys/123456@tnsnameassysdba SQL>select*fromV$instance;查看当前的实例 SQL>setwrapoff;设置一下显示的方式 SQL>setlinesize200; SQL>select*fromV$instance;查看当前的实例 SQL>select*fromgv$instance;查看全局实例视图