在这里我们将介绍Oracle RAC在Linux下的安装,Oracle Real Application Server,真正应用集群,简称Oracle RAC ,是Oracle的并行集群,位于不同服务器系统的Oracle实例同时访问同一个Oracle数据库,节点之间通过私有网络进行通信,所有的控制文件、联机日志和数据文件存放在共享的设备上,能够被集群中的所有节点同时读写。
系统配置
1、创建用户和组 oinstall dba 组用户
- oracle -g oinstall -G dba
匿名用户:确认匿名用户 nobody 存在与系统中,在安装完成后nobody 用户必须执行一些扩展任务(extjob)确认nobody用户是否存在:
- #id nobody
如果用户不存在则需要添加该用户。
注意给oracle用户设置密码
2、配置网络
ip地址的规划,通过修改 /etc/sysconf/network-script/ifcfg-ethx
配置网卡的静态ip地址主机名的***修改: /etc/network
本地DNS的配置: /etc/hosts
配置/etc/host.conf 该文件用来指定域名解析方法的顺序:
- order hosts,bind
它说明,首先通过/etc/hosts文件解析,如果在该文件中没有相应的主机名与IP 地址的对应关系,再通过域名服务器bind进行解析
3、配置安全SSH 通道,针对ORACLE用户,在每个节点创建 rsa 和dsa 的密钥
- rac1#su - oracle
- rac1#mkdir .ssh
- rac1#chmod 700 .ssh
- rac1#cd .ssh
rac1#ssh-keygen -t rsa 创建密钥对,其他默认
同样在另一台主机上执行相应的操作。
- rac2#su - oracle
- rac2#mkdir .ssh
- rac2#chmod 700 .ssh
- rac2#cd .ssh
- rac2#ssh-keygen -t rsa 创建密钥对,其他默认
rac1#ssh rac1 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys 把节点1 的共钥 从定向到一个文件因为现在还没有密钥对,所以会提示输入密码。直接输入密码就行了
- rac1#ssh rac2 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys 把节点2 的共钥 从定向到一个文件
- rac1#cat authorized_keys 查看节点1和节点2的共钥的内容,同样拷贝到 节点2上面。
- rac1#scp authorized_keys rac2:/home/oracle/.ssh/ 要输入节点2的密码
改一下权限
- rac1#chmod 600 authorized-keys
DSA密钥的设置同理
- rac1#ssh rac1 date 测试共钥连接情况 远程执行 date 命令,此时不用输入密码
- rac1#ssh rac2 date 测试共钥连接情况 远程执行 date 命令,此时不用输入密码
此时可证实安全需要通道配置成功
4、检查所需的软件
#rpm -qa |grep 需要的软件包
5、配置内核参数
- vi /etc/sysctl.conf
- kernel.sem=250 32000 100 128
- kernel.shmmni=4096
- kernel.shmall=2097152
- kernel.shmmax=2147483648
- net.ipv4.ip_local_port_range=1024 65000
- 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,添加内容:
- oracle soft nproc 2047
- oracle hard nproc 16384
- oracle soft nofile 1024
- oracle hard nofilw 65536
编辑/etc/pam.d/login,添加如下内容: session required /lib/security/pam_limits.so
编辑/etc/profile,添加内容如下:
- if[$USER="ORACLE"]; THEN
- if[$SHELL="/bin/ksh"];then
- ulimit -p 16384
- ulimit -n 65536
- else
- ulimit -u 16384 -n 65536
- 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 创建分区
- #export DISPLAY=本地机器IP
- #ocfs2console 打开ocfs2的控制台进行ocfs2的配置
菜单Task 下的format开始格式化分区
Oracle的安装前的准备
- #mkdir -p /orac/orachome
- #mkdir -p /orac/oradata
- #mount -t ocfs2 /dev/sdb1 /orac/orahome
- #df -h 查看挂接情况
- #mount -t ocfs2 -o datavolume,nointr /dev/sdb2 orac/oradata
- #df -h
- #mounted.ocfs2 -f 查看ocfs2文件系统的加载情况
另一个节点rac2
- #/etc/init.d/o2cd load 加载这个模块
- #/etc/init.d/o2cd status 查看加载这个模块的状态
查看到节点2 ocfs2 状态是 offline
- #/etc/init.d/o2cd online 使其online
- #/etc/init.d/o2cd status 查看加载这个模块的状态
- #mount -t ocfs2 /dev/sdb1 /orac/orahome
- #df -h
- #mounted.ocfs2 -f
- #mount -t ocfs2 -o datavolume,nointr /dev/sdb2 /orac/oradata
- #mounted.ocfs2 -f
系统启动时自动加载ocfs2文件系统和启动相应的模块----两个节点都要配置
- #/etc/init.d/o2cd configure 启动时自动加载ocfs2 的相关模块
- #vi /etc/fstab 启动是自动挂接文件系统
- /dev/sdb1 /orac/orahome ocfs2 _netdev 0 0
- /dev/sdb2 /orac/oradata ocfs2 _netdev,datavolume,nointr 0 0
安装集群 clusterware 文件夹 crs 安装clusterware oradata 建库时使用 orahome 安装oracle数据库软件
要对这些文件夹的主用户进行修改
- #cd /orac
- #chown root.oinstall crs
- #chown oracle.oinstall orahome
- #chown oracle.oinstall oradata
- #chmod -R 775 ors
- #chmod -R 775 orahome
- #chmod -R 775 oradata
- #ls -l
在另外一个节点上也要进行相应的修改
把集群clusterware安装软件拷贝进来
- #su - oracle
- #export DISPLAY=本地ip:0.0
- #./runInstaller
安装数据库软件 选择安装类型 企业版
创建数据库: #dbca
测试数据库的情况:客户端的连接文件的修改:在客户端安装路径下: NETWORK/ADMIN/tnsnames.ora
- ORATEST tns服务名=
- (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>conn sys/123456@tnsname as sysdba
- SQL>select * from V$instance; 查看当前的实例
- SQL>set wrap off; 设置一下显示的方式
- SQL>set linesize 200;
- SQL>select * from V$instance; 查看当前的实例
- SQL>select * from gv$instance; 查看全局实例视图
原文链接:http://blog.chinaunix.net/u3/105031/showart_2087248.html
【编辑推荐】