RAC配置、安装
RAC 配置及安装
2012年12月30日 星期日
21:49
*******************************************************************************
一、RAC (real application cluster 真正的可应用的集群工具) 安装规划
1)前期规划
确认集群节点数量,每个节点的主机名;
区分Public、Private NIC;确认第个主机的3个IP地址;
数据库存储技术选型(ASM/OCFS/RAW/Other);redo 1+0 data raid5
存储空间规划,包括软件安装位置、数据库文件位置规划;
2)配置节点主机
配置主机名和3个IP地址;
RPM包检查;
磁盘分区:配置裸设备;
系统需求(OS Kernel参数、空间需求);
创建Oracle用户,要求每个节点UID、GID相同;
定义Oracle用户的环境变量,包括$ORACLE_HOME、$CRS_HOME、资源数量限制。
用户等价;节点时间同步;
Hangcheck-timer模块配置
3)安装部署
安装Oracle Clusterware,安装后进行检查;
安装Oracle Database;创建ASM磁盘;
配置Listener;创建ASM;创建RAC数据库;
安装后测试,Failover和Loadbalance
4)实施阶段
主机配置
安装Clusterware
安装Oracle Database
配置Listener
创建ASM
创建Database
*******************************************************************************
二、实施安装
1)操作系统安装
*****************************************
添加共享磁盘
1.1)RAC1 添加磁盘
添加虚拟磁盘 20G 。
1.2)修改磁盘为共享模式
-> 虚拟介质设置 -> modify -> 选择 shareable
1.3) RAC2 添加磁盘
选择 existing .
*****************************************
配置hosts(所有节点)
# vi /etc/hosts
192.168.8.3 rac1 公有地址 eth0
192.168.8.4 rac1-vip vip地址
10.10.10.3 rac1-priv 私有地址 eth1
192.168.8.5 rac2 公有地址 eth0
192.168.8.6 rac2-vip vip地址
10.10.10.5 rac2-priv 私有地址 eth1
关闭邮件服务开机自动启动
#chkconfig sendmail off
*****************************************
启动RAC1 RAC2 修改主机名和IP (删除网关)
#vi /etc/sysconfig/network 修改主机名
NETWORKING=yes
HOSTNAME=XXXXX
#vi /etc/sysconfig/network-scripts/ifcfg-eth0 公有地址
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.8.3
GATEWAY=192.168.8.1
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
#vi /etc/sysconfig/network-scripts/ifcfg-eth1 (从eth0复制而来 不需要网关)
DEVICE=eth1
BOOTPROTO=static
IPADDR=10.10.10.3
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
重启网络服务
service network restart
*****************************************
主机配置 (RAC1 RAC2)
创建用户和组(所有节点,oracle用户和组具有相同uid和gid)
# groupadd -g 500 oinstall
# groupadd -g 501 dba
# useradd -u 500 -g oinstall -G dba oracle
# passwd oracle
*****************************************
创建目录
# mkdir -p /u01/app/oracle ORACLE主目录
# mkdir -p /u01/crs_1 CRS主目录
# chown -R oracle:oinstall /u01
# chmod -R 775 /u01
*****************************************
修改用户oracle的 .bash_profile(rac1,rac2)
注意 RAC1 prod1 RAC2 prod2
#su - oracle
#vi .profile
export EDITOR=vi
export ORACLE_SID=prod1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=/u01/crs_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATH
umask 022
*****************************************
配置主机间的信任关系(ssh)
RAC1:
# su - oracle
$ mkdir ~/.ssh
$ ssh-keygen -t rsa
$ ssh-keygen -t dsa
RAC2:
# su - oracle
$ mkdir ~/.ssh
$ ssh-keygen -t rsa
$ ssh-keygen -t dsa
RAC1:
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
$ cat .ssh/id_dsa.pub >> .ssh/authorized_keys
$ ssh rac2 cat .ssh/id_rsa.pub >> .ssh/authorized_keys
$ ssh rac2 cat .ssh/id_dsa.pub >>.ssh/authorized_keys
$ scp .ssh/authorized_keys rac2:~/.ssh
测试信任关系(在所有节点上)
$ ssh rac1 date 连接RAC1 测试时间准确性
$ ssh rac1-priv date
$ ssh rac2 date
$ ssh rac2-priv date
*****************************************
配置内核参数
# vi /etc/sysctl.conf
kernel.shmall = 2097171
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 = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
#sysctl -p
*****************************************
为 oracle 用户设置 Shell 限制 限制每个用户访问内存时,打开内存的页面数,一个软限制一个硬限制
# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
*****************************************
#vi /etc/pam.d/login
session required /lib/security/pam_limits.so
# vi /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
*****************************************
配置 Hangcheck 计时器
hangcheck_tick=30 为每隔30秒检测一次心跳 hangcheck_margin=180 为180秒没有回应就确认对方挂了
# vi /etc/rc.local 心跳测试
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
配置ntp时间同步服务(rac1 server,rac2 client)
RAC1:
[root@rac1 ~]# chkconfig --list | grep time
# chkconfig time-udp on
# chkconfig time on
# chkconfig ntpd on
# chkconfig xinetd on
# service ntpd start
Starting ntpd: [ OK ]
# service xinetd start
Starting xinetd:
RAC2:
# crontab -e 创建文件
0-59/1 * * * * /usr/bin/rdate -s 192.168.8.3 >/dev/null 2>&1 服务器IP
0-59/1 * * * * /usr/sbin/ntpdate 192.168.8.3 >/dev/null 2>&1 服务器IP
# rpm -q make gcc compat-db
*****************************************
配置共享磁盘
# fdisk -l
Disk /dev/hdc: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 * 1 1305 10482381 83 Linux
/dev/hdc2 1306 1573 2152710 82 Linux swap
/dev/hdc3 1574 2610 8329702+ 83 Linux
Disk /dev/hdb: 42.9 GB, 42949672960 bytes 新加盘为hdb
16 heads, 63 sectors/track, 83220 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Disk /dev/hdb doesn't contain a valid partition table
# fdisk /dev/hdb
Command (m for help): m 查看帮助信息
Command (m for help): p 输出当前信息
Disk /dev/hdd: 42.9 GB, 42949672960 bytes
16 heads, 63 sectors/track, 83220 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
Command (m for help): n 添加新的分区
Command action
e extended
p primary partition (1-4)
p 主分区
Partition number (1-4): 1
First cylinder (1-83220, default 1): 默认
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-83220, default 83220): 默认
Using default value 83220
Command (m for help): p 输出当前信息
Command (m for help): t change a partition's system id
Selected partition 1
Hex code (type L to list codes): L
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): p 输出当前信息
Command (m for help): w 保存修改
[root@rac1 ~]# fdisk -l
*****************************************
建立pv (物理卷)
# pv 两次 TAB TAB 可以查看所有子菜单
# pvcreate /dev/hdb1
# pvdisplay
建立vg(卷组) RAC1
# vgcreate racvg /dev/hdb1 vgcreate 卷组名 设备
# vgdisplay
建立lv (逻辑卷)
# lvcreate -L 200m -n ocr1 racvg -L 大小 -n 节点 卷组名
依次建立 裸设备
# ls -l /dev/mapper
total 0
crw------- 1 root root 10, 63 Sep 8 02:29 control
brw-rw---- 1 root disk 253, 7 Sep 8 05:55 racvg-archive
# reboot
# pvscan
# vgchange -a y racvg 强制同步数据
*****************************************
建立raw 设备(裸设备,在所有节点) (RAC1 RAC2 )
# vi /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/mapper/racvg-data
重启裸设备(所有节点)
# service rawdevices restart
# ls -l /dev/raw
改变裸设备的所有者(所有节点) (RAC1 RAC2)
# vi /etc/udev/permissions.d/50-udev.permissions
修改裸设备raw 所属用户
# service rawdevices restart(所有节点)
# ls -l /dev/raw
*****************************************
安装配置asm ( rac1 rac2 )
查看系统内核
[root@rac1 ~]# uname -a
启动smb服务
[root@rac1 ~]# service smb start
[root@rac1 ~]# smbpasswd -a oracle
安装和配置asm (注意要和内核匹配,在所有节点)(rac1 rac2 )
[root@rac1 ASM]# ls -l
oracleasm-2.6.9-67.ELsmp-2.0.3-1.i686.rpm
2012 oracleasmlib-2.0.4-1.el4.i386.rpm
2012 oracleasm-support-2.1.4-1.el4.i386.rpm
[root@rac1 ASM]# uname -a
Linux rac1 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux
[root@rac1 ASM]# rpm -ivh *
[root@rac1 ASM]# service oracleasm configure ( rac1 rac2 )
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 []: oracle
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]:
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
*****************************************
安装Clusterware
直接 next
specify inventory directory and credentials 指定清单目录 详细目录 默认
specify home details 修改主目录
修改路径 /u01/crs_1
specify cluster configuration 修改集群信息
添加 RAC2 配置同RAC1
specify network interface usage 修改网络信息
修改etho 地址 public
specify Oracle cluster registry location
external redundancy 选择 external 只需 1 块盘
OCR location : /dev/raw/raw3 ocr地址
voting disk location: /dev/raw/raw6 vot地址
开始安装咯
安装进度
执行配置脚本
RAC1 RAC2 (ROOT用户运行脚本 注意顺序不可颠倒)
/u01/app/oracle/orainventory/orainstRoot.sh
/u01/crs_1/root.sh
最后报错: eth0 is not public .
解决方法:RAC2 root身份执行脚本 /u01/crs_1/bin/下的 vipca 图形化界面:选择 eth0
[root@rac2 ~]$ ./u01/crs_1/bin/vipca
选择 eth0
在IP Alias Name 里面输入 rac1 rac2后面的地址自动显示出来
rac1 rac1_vip 192.168.8.3 ...
rac2 rac2_vip 192.168.8.5 …
vipca 安装进度 就等安装完成咯
最后返回刚才位置点击 ok
这里最后的检测不能出问题
到此CRS就安装完了。
*****************************************
安装完成之后 crs_stat -t 查看 crs 状态
[oracle@rac1 ~]$ vi /etc/profile 添加path 方便root用户使用crs (RAC1 RAC2 )
export PATH=$PATH:/u01/crs_1/bin
[oracle@rac1 ~]$ source /etc/profile 刷新
*****************************************
4)安装Oracle Database
直接 next
选择企业版
specify home details 修改主目录
修改路径 /u01/app/oracle/product/10.2.0/db_1
这里默认选择了一项,因为可以做为单机的,也可以做为集群的,这里做集群,所以
选择 rac1 rac2
检测应该没问题
仅仅安装软件
这里就可以开始安装咯
rac1 rac2 root 用户执行脚本
/u01/app/oracle/product/10.2.0/db_1/root.sh
数据库也 ok了
5)配置Listener
[oracle@rac1 ~]$ netca 配置 监听
选择 cluster configuration 集群环境下
全选 两个节点
一路 next 下来
6)创建Database
node selection : 全选 rac1 rac2
general purpose 一般用途
设置数据库名 sid
management option 默认即可
设置密码
这里选择ASM
创建asm 实例
11设置密码
12 create initalization praameter file 下面选择PFILE(这个PFILE文件是ASM实例的PFILE)
ASM实例用来管理磁盘,要启动数据库的实例首先启动ASM的实例
asm 实例 创建中
asm disk groups(磁盘组)
create new :
DG1 normal 至少选择两块磁盘 (用作镜像)
RECOVER normal 至少选择两块磁盘 (用作镜像)
建立第一个磁盘组,名为DG1,用来存放数据库的数据
Redundancy 冗余有三种冗余方式
High 需要三块磁盘;
Normal需要两块磁盘;
External需要一块磁盘;
这里选择Normal,两块磁盘做镜像
这里指定数据文件存放在哪个磁盘组,这里默认为DG1
这里指定Flash Recovery的存放位置,这里指定 +RECOVERY
这面也可以启动归档,这里不启动
选择系统模板
解除SCOTT用户的锁,密码输入tiger
到此RAC安装结束!!!!!
********************************************************************************************
RAC配置、安装的更多相关文章
- bay——vSphere Oracle12cR2的RAC搭建安装之配置共享存储 - 副本
vSphere Oracle12cR2的RAC搭建安装之配置共享存储 https://blog.csdn.net/yuzifen/article/details/82496503 一.第一台机器添加两 ...
- ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档
ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报 分类: Oracle RA ...
- Oracle 12c RAC 静默安装文档
参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...
- 转载:【Oracle 集群】RAC知识图文详细教程(八)--Oracle 11G RAC数据库安装
文章导航 集群概念介绍(一) ORACLE集群概念和原理(二) RAC 工作原理和相关组件(三) 缓存融合技术(四) RAC 特殊问题和实战经验(五) ORACLE 11 G版本2 RAC在LINUX ...
- Oracle11gR2(ASM,UDEV)的RAC搭建安装
基本信息: 1) 安装包: 操作系统:rhel-server-6.7-x86_64-dvd.iso rac安装包: Oracle11gR2:linux.x64_11gR2_database_1of2. ...
- Winserver2012下mysql 5.7解压版(zip)配置安装
一.安装 下载mysqlzip版本mysql不需要运行可执行文件,解压即可,下载zip版本mysqlmsi版本mysql双击文件即可安装,相对简单,本文不介绍此版本安装 配置环境变量打开环境变量配置页 ...
- 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署
少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...
- 配置安装CocoPods后进行 项目基本配置
配置安装CocoPods后进行 项目基本配置总结 1)终端在文件根目录下输入 $ touch Podfile 创建一个空白的Podfile文件 2)然后在使用编辑器打开Podfile文件进行需要配置的 ...
- 【转】Ubuntu 14.04配置安装java环境和android开发环境(包括真机调试环境)
原文网址:http://my.oschina.net/HalZf/blog/347351 总要记录下过程,不然老是会忘记掉-真老了.-_-! 一.配置安装ubuntu 64位java环境: 1.下载l ...
随机推荐
- TCP/IP小纪
链 路 层 主 要 有 三 个 目 的 :( 1 )为 I P 模 块 发 送 和 接收 I P 数 据 报 ; ( 2 )为 A R P 模块发送 A R P 请 求 和 接 收 A R P 应 答 ...
- VMware Workstation 不可恢复错误: (vcpu-0)
- JVM参数配置大全
前阵子遇到几个面试题都是关于对Java内存控制的,因此从网上找到这篇文章,希望自己对Java的内存分配有重新的认识 /usr/local/jdk/bin/java -Dresin.home=/usr/ ...
- bzoj1560
首先这种题目肯定是要先排序,以x为第一关键字,y为第二关键字不难想到O(n2)的dp,下面显然要优化不难发现,由于两点的耗费是坐标差的平方的和,不带根号,因此,不难发现一个很有用的性质,如果从A点能到 ...
- 【转】模拟器上安装googleplay apk
原文网址:http://blog.sina.com.cn/s/blog_9fc2ff230101gv57.html 1.进入到sdk\android-sdk-windows\tools>目录下: ...
- LINUX系统中动态链接库的创建与使用{补充}
大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library).这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部 ...
- Reachability几个常用方法
http://oncerios.diandian.com/post/2013-06-28/40050041969
- 并查集hdu1232
Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道 ...
- 【LeetCode】Best Time to Buy and Sell Stock
Say you have an array for which the ith element is the price of a given stock on day i. If you were ...
- Android中关于在onDrow或者onMeasure中创建对象提示Avoid object allocations during draw/layout operations (preallocate and reuse instead) 问题
在实际开发中Android中自带的控件有时无法满足我们的需求,这时就需要我们重写控件来实现我们想要的功能. 还有个关于UI体验的问题,就是在onDraw()函数中最好不要去创建对象,否则就提示下面的警 ...