RAC是real application clusters的缩写,译为“实时应用集群”, 是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。可以在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。
多节点负载均衡;
提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;
通过并行执行技术提高事务响应时间----通常用于数据分析系统;
通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;
节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;
可扩展性好,可以方便添加删除节点,扩展硬件资源。
vbox、centos7、Oracle11g、crt
1. 关闭防火墙
systemctl stop firewalld ---关闭防火墙
systemctl disable firewalld ---禁止开机自启
▼▼▼
[root@ordb ~]#systemctl status firewalld●firewalld.service - firewalld - dynamic firewall daemon Loaded:loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendorpreset: enabled) Active:inactive (dead) Docs:man:firewalld(1)[root@ordb ~]#
复制
2. 修改主机名
hostname set-hostname c4ozw1a
hostname set-hostname c4ozw1b
3. 配置ip
修改:
BOOTPROTO=static ---静态
添加:
▼▼▼
IPADDR=192.168.56.104NEIMASK=255.255.255.0vi /etc/sysconfig/network-scripts/ ifcfg-enp0s8
复制
修改:
BOOTPROTO=static ---静态
添加:
IPADDR=192.168.26.104
NEIMASK=255.255.255.0
注:节点2同理
4. 修改hosts文件
添加:
▼▼▼
#public 192.168.56.104 c4ozw1a 192.168.56.105 c4ozw1b #virtual 192.168.56.114 c4ozw1a-vip rac01-vip 192.168.56.115 c4ozw1b-vip rac02-vip #private 192.168.26.104 c4ozw1a-priv rac01-priv 192.168.26.105 c4ozw1b-priv rac02-priv #scan 192.168.56.107 rac-scan 192.168.56.108 rac-scan
复制
1. 配置互信
命令:ssh-keygen -t rsa
一路默认回车,系统在/root/.ssh下生成id_rsa、id_rsa.pub
2)查看系统生成的公钥私钥对
命令:ls root/.ssh
3)将生成的公钥私钥对id_rsa.pub发送到其他的服务器上。
命令:ssh-copy-id -i root/.ssh/id_rsa.pub 192.168.137.129
注:命令可简单记忆为 ssh-copy-id -i 公钥文件传送到对端服务器.ssh/authorized_keys
注:节点2同理
2. 创建目录及用户
▼▼▼
/usr/sbin/groupadd -g1000 oinstall /usr/sbin/groupadd -g1020 asmadmin /usr/sbin/groupadd -g1021 asmdba /usr/sbin/groupadd -g1022 asmoper /usr/sbin/groupadd -g1031 dba /usr/sbin/groupadd -g1032 oper useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid useradd -u 1101 -g oinstall -G dba,asmdba,oper oracle mkdir -p /u01/app/11.2.0/grid mkdir -p /u01/app/grid mkdir /u01/app/oracle chown -R grid:oinstall u01 chown oracle:oinstall u01/app/oracle chmod -R775 /u01/ echo "grid"|passwd --stdin gridecho "oracle"|passwd --stdin oracle
复制
1. 修改环境变量
▼▼▼
##oracle环境变量 export ORACLE_BASH=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASH/product/11.2.0.4/dbhome_1 export ORA_NLS10=/$ORACLE_HOME/nls/data export LIBPATH=$ORACLE_HOME/lib export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/ptfs/monitor/bin:/usr/vacpp/bin:./ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" export ORACLE_SID=ozw1a #some userfull command alias for oracle dba umask 022 alias ss="sqlplus as sysdba" ##grid环境变量 export TMP=/tmp export TMPDIR=$TMP export ORACLE_SID=+ASM1# 如果是节点2,则:export ORACLE_SID=+asm2 export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/app/11.2.0/grid export PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibumask 022
复制
注:节点2同理
2. 修改内核参数
▼▼▼
vi /etc/sysctl.conf 添加: kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 2002012160 kernel.shmmni = 4096 kernel.sem = 250 32000 100 129 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 net.ipv4.tcp_wmem = 262144 262144 262144 net.ipv4.tcp_rmem = 4194304 4194304 4194304sysctl -p ------刷新内核参数
复制
3. 解除用户限制
▼▼▼
vi /etc/security/limits.conf 添加: grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
复制
1. 规划:
1000Mb votingdisk2
1000Mb votingdisk3
10000Mb datadisk1 ---数据盘
10000Mb datadisk2
10000Mb datadisk3
10000Mb archdisk1 ---归档盘
2. 配置udev
添加:
▼▼▼
for i in b c d e f g h do n1=`expr $n1 + 1` echo "KERNEL==\"sd?\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asmdisk/asmdisk${n1}\",OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\"" done >/etc/udev/rules.d/99-oracle-asmdevices.rules
复制
重新加载:
▼▼▼
/sbin/udevadm control --reload-rules
复制
验证:
▼▼▼
ls -ld /dev/asm* drwxr-xr-x 2 root root 120 Aug 19 17:51 /dev/asmdisk ls -l /dev/asm* total 0 lrwxrwxrwx 1 root root 6 Aug 19 17:51 asmdisk001 -> ../sdb ls -l /dev/sd* brw-rw---- 1 root disk 8, 0 Aug 19 17:37 /dev/sdabrw-rw---- 1 grid asmadmin 8, 16 Aug 19 17:51 /dev/sdb
复制
/sbin/udevadm test sys/block/sdc
▼▼▼
yum install -y binutils-* yum install -y compat-libstdc++-* yum install -y elfutils-libelf-* yum install -y elfutils-libelf-* yum install -y elfutils-libelf-devel-static-* yum install -y gcc-* yum install -y gcc-c++-* yum install -y glibc-* yum install -y glibc-common-* yum install -y glibc-devel-* yum install -y glibc-headers-* yum install -y kernel-headers-* yum install -y pdksh-* yum install -y libaio-* yum install -y libaio-devel-* yum install -y libgcc-* yum install -y libgomp-* yum install -y libstdc++-* yum install -y libstdc++-devel-* yum install -y make-* yum install -y sysstat-* cd database/grid/rpm/ ----此包在安装文件解压后的目录内rpm -ivh
复制
1. 安装grid
##检查环境:
./runcluvfy.sh stage -pre crsinst -n c4ozw1a,c4ozw1b -fixup -verbose
注:根据环境检查所提示的信息失败项重新调整,以满足配置需求。
2. 安装Oracle
su - oracle
1. grid安装后的root脚本执行报错:
第二个脚本因centos7的ohasd不能自动拉起,所以在执行过程中需手动拉起:
/bin/sh /etc/init.d/init.ohasd run &
注:创建ohasd开机自启动服务:
▼▼▼
vi /usr/lib/systemd/system/ohas.service 添加: [Unit] Description=Oracle High Availability Services After=syslog.target [Service] ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple Restart=always [Install] WantedBy=multi-user.target 设置自动启动: chmod 777 /usr/lib/systemd/system/ohas.service systemctl daemon-reload systemctl enable ohas.service systemctl start ohas.service
复制
2. ntp服务导致的报错:
注:以上报错是没有dns及ntp导致检测失败,测试所有主机能ping通scan ip可以跳过。
3. Oracle软件安装时大量软件包未安装警告(超过5个):
在依赖库检查时,多个依赖库检查失败,提示未安装,如libaio,unixODBC等。经检查确认这些库都已安装,版本高于或等于所需版本。
翻阅Oracle 文档,对于64位Oracle 11.2.0.2之间的版本,部分依赖库需要同时安装32位版和64位版。而报依赖性错误的库就是这些库的32位版。那么可以确定是oracle的依赖校验机制存在缺陷。
在Oracle安装包中, 在目录stage/cvu下,存在一个文件cvu_prereq.xml,其中包含了有关认证的操作系统的库依赖关系。在这些依赖库的32位版本,文件中对于ARCHITECTURE的标注是"i386",64位版本则是x86_64。
打开CentOS的光盘查看相关的rpm,其构架标注均为i686,由于CentOS不在认证系统之列,因此不知道oracle安装程序究竟用了那个系统作为校验,便将cvu_prereq.xml文件中所有ARCHITECTURE="i386"的条目,全部改成"i686"后保存。
重新执行./runInstaller,包依赖检查顺利通过:
注:常见于11.2.0.2版本之前的Oracle中。
4. ins_ctx.mk文件报错:
CENTOS 7装ORACLE 11g时报错ins_ctx.mk:
▼▼▼
vim /u01/app/oracle/11g/product/ctx/lib/ins_ctx.mkctxhx: $(CTXHXOBJ) -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)/usr/lib64/stdc.a
复制
注:修改后点击reply重试,不在报错。
(常见于11.2.0.2版本之前的Oracle中)
5. ins_emagent.mk文件报错:
上图中报错:
在makefile中添加链接libnnz11库的参数,修改/u01/app/oracle/11G/product/sysman/lib/ins_emagent.mk,将 $(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11点击Retry继续安装。
注:常见于11.2.0.2版本之前的Oracle中。
▼▼▼
[grid@c4ozw1b ~]$ crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora....ER.lsnr ora....er.type ONLINE ONLINE c4ozw1a ora....N1.lsnr ora....er.type ONLINE ONLINE c4ozw1b ora....N2.lsnr ora....er.type ONLINE ONLINE c4ozw1a ora.OCR.dg ora....up.type ONLINE ONLINE c4ozw1a ora.asm ora.asm.type ONLINE ONLINE c4ozw1a ora....SM1.asm application ONLINE ONLINE c4ozw1a ora....1A.lsnr application ONLINE ONLINE c4ozw1a ora....w1a.gsd application OFFLINE OFFLINE ora....w1a.ons application ONLINE ONLINE c4ozw1a ora....w1a.vip ora....t1.type ONLINE ONLINE c4ozw1a ora....SM2.asm application ONLINE ONLINE c4ozw1b ora....1B.lsnr application ONLINE ONLINE c4ozw1b ora....w1b.gsd application OFFLINE OFFLINE ora....w1b.ons application ONLINE ONLINE c4ozw1b ora....w1b.vip ora....t1.type ONLINE ONLINE c4ozw1b ora.cvu ora.cvu.type ONLINE ONLINE c4ozw1a ora.gsd ora.gsd.type OFFLINE OFFLINE ora....network ora....rk.type ONLINE ONLINE c4ozw1a ora.oc4j ora.oc4j.type ONLINE ONLINE c4ozw1a ora.ons ora.ons.type ONLINE ONLINE c4ozw1a ora.scan1.vip ora....ip.type ONLINE ONLINE c4ozw1b ora.scan2.vip ora....ip.type ONLINE ONLINE c4ozw1a
复制

更多精彩干货分享
点击下方名片关注
IT那活儿
