首页 » 数据库 » Oracle » Oracle Rac主库部署方案

Oracle Rac主库部署方案

 
文章目录

主库安装部署信息

环境说明

操作系统版本及内核

#uname -a Linux educloud53 3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux #cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)

主机规划

Hostnamepublic IPPrivate IPVIPScanIP
educloud52Eth0/ 192.168.1.52Eth2/ 192.168.2.52192.168.1.201192.168.1.205
educloud53Eth0/ 192.168.1.53Eth2/ 192.168.2.53192.168.1.202
educloud54Eth0/ 192.168.1.54Eth2/ 192.168.2.54192.168.1.203
educloud55Eth0/ 192.168.1.55Eth2/ 192.168.2.55192.168.1.204

实例信息

educloud(4节点分别是educloud1-educloud4)
​
sys初始密码ora123

主机配置

vim /etc/hosts
#Node1
192.168.1.52 educloud52
192.168.2.52 educloud52-vip
192.168.1.201 educloud52-priv

#Node2
192.168.1.53 educloud53
192.168.2.53 educloud53-vip
192.168.1.202 educloud53-priv

#Node3
192.168.1.54 educloud54
192.168.2.54 educloud54-vip
192.168.1.203 educloud54-priv

#Node4
192.168.1.55 educloud55
192.168.2.55 educloud55-vip
192.168.1.204 educloud55-priv

#scanip
192.168.1.205 educloud-scan

存储规划

说明:数据库ASM采用Udev方式进行配置

和教育本期库为两节点Oracle rac,共享存储5T(分区)

  • ASM磁盘规划
ASM 磁盘ASM磁盘空间大小ASM方式Lun路径
+OCROCR12Gnormal/dev/vdc1
+OCROCR12Gnormal/dev/vdc2
+OCROCR22Gnormal/dev/vdc3
+DATAVOL11.5TEXTERN/dev/vdc5
+DATAVOL21.5TEXTERN/dev/vdc6
+DATAVOL31.5TEXTERN/dev/vdc7
  • 文件系统规划格式设备路径挂载点大小说明ext4/dev/vdc4/home/oracle/oracle_backup994G目前挂载在educloud52上

数据库安装

分区操作

分区规划(超过3T采用GPT分区)

parted /dev/vdc
(parted)mklabel gpt 
(parted) mkpart primary 1 2000 
(parted) mkpart primary 2001 4000 
(parted) mkpart primary 4001 6000 
(parted) mkpart primary 6001 1000000 
(parted) mkpart primary 1000001 2500000 
(parted) mkpart primary 2500001 4000000 
(parted) mkpart primary 4000001 -1
(parted) p
Number Start End Size File system Name Flags 
1 1049kB 2000MB 1999MB primary 
2 2001MB 4000MB 2000MB primary 
3 4001MB 6000MB 1999MB primary 
4 6001MB 1000GB 994GB primary 
5 1000GB 2500GB 1500GB primary 
6 2500GB 4000GB 1500GB primary 
7 4000GB 5498GB 1498GB primary
Start End Size Type Name
1 2048 3905535 1.9G Microsoft basic primary 
2 3907584 7813119 1.9G Microsoft basic primary 
3 7815168 11718655 1.9G Microsoft basic primary 
4 11720704 1953124351 925.8G Microsoft basic primary 
5 1953126400 4882812927 1.4T Microsoft basic primary 
6 4882814976 7812499455 1.4T Microsoft basic primary 
7 7812501504 10737416191 1.4T Microsoft basic primary

内核参数设置

配置内核参数
vi /etc/sysctl.conf
for oracle
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 8388608
kernel.shmmax = 171798691840
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
或
echo "#for oracle" >> /etc/sysctl.conf
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.shmall = 2097152" >> /etc/sysctl.conf
echo "kernel.shmmax = 171798691840" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.wmem_max = 1048586" >> /etc/sysctl.conf
/sbin/sysctl -p

vim /etc/security/limits.conf
For Oracle
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

echo "session required pam_limits.so" >>/etc/pam.d/login

vim /etc/profile 文件,并添加或编辑以下数据:
#For Oracle
if [ $USER = "oracle" ]||[ $USER = "grid" ]; then 
   if [ $SHELL = "/bin/ksh" ]; then               
          ulimit -p 16384               
          ulimit -n 65536         
        else 
          ulimit -u 16384 -n 65536         
        fi 
   umask 022
fi

环境变量配置

vi .bash_profile
#for grid 
ORACLE_BASE=/home/oracle/app/oracle; export ORACLE_BASE 
ORACLE_HOME=/home/oracle/app/11.2.0/grid; export ORACLE_HOME 
ORACLE_SID=+ASM6; export ORACLE_SID 
ORACLE_TERM=xterm; export ORACLE_TERM 
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH 
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH 
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH


#for oracle 
ORACLE_HOSTNAME=ahhjydb3; export ORACLE_HOSTNAME 
ORACLE_UNQNAME=hjyracdb; export ORACLE_UNQNAME 
ORACLE_BASE=/home/oracle/app/oracle; export ORACLE_BASE 
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME 
ORACLE_SID=hjyracdb3; export ORACLE_SID 
ORACLE_TERM=xterm; export ORACLE_TERM 
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH 
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH 
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

安装补丁包

yum install -y compat-libcap1
yum install -y compat-libstdc++
yum install -y gcc
yum install -y libstdc++-devel
yum install -y libstdc++-devel*.i686
yum install -y libaio-0*.i686
yum install -y libaio-devel*
yum install -y libaio-devel*.i686
yum install -y elfutils-libelf-devel
yum install -y gcc-c++*
yum install -y compat-libstdc++-33-3.2.3
yum install -y smartmontools

安装配置asm

安装cvuqdisk
在每个节点执行
cvuqdisk包在grid的安装包里面自带,进入grid软件包目录下的rpm目录即可找到,安装即可.
[root@racdb1 rpm]# rpm -ivh cvuqdisk-1.0.9-1.rpm 
Preparing...                ########################################### [100%]
Using default group oinstall to install package
   1:cvuqdisk               ########################################### [100%]

   
yum -y install oracleasm
rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm 
rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm

# oracleasm configure -i
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 []: asmadmin
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

#分别在每个节点执行
#  /usr/sbin/oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Mounting ASMlib driver filesystem: /dev/oracleasm

创建ASM磁盘

/usr/sbin/oracleasm createdisk OCR_VOTE01 /dev/sdn1
/usr/sbin/oracleasm createdisk OCR_VOTE02 /dev/sdn2
/usr/sbin/oracleasm createdisk OCR_VOTE03 /dev/sdn3
/usr/sbin/oracleasm createdisk VOL1 /dev/sdn4
/usr/sbin/oracleasm createdisk VOL2 /dev/sdn5
/usr/sbin/oracleasm createdisk VOL3 /dev/sdn7
/usr/sbin/oracleasm createdisk VOL4 /dev/sdn6

[root@db1 grid]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@db1 ~]# oracleasm listdisks
OCR_VOTE01
OCR_VOTE02
OCR_VOTE03
VOL1
VOL2
VOL3
VOL4

ssh 信任配置

在db1上执行
su - grid
/home/grid/grid/sshsetup
./sshUserSetup.sh -user grid -hosts "ahhjydb1 ahhjydb2 ahhjydb3 ahhjydb4 ahhjydb5 ahhjydb6 " -advanced -noPromptPassphrase

su - oracle
/home/oracle/database/sshsetup
./sshUserSetup.sh -user oracle -hosts "ahhjydb1 ahhjydb2 ahhjydb3 ahhjydb4 ahhjydb5 ahhjydb6" -advanced -noPromptPassphrase

crs安装

./runcluvfy.sh stage -pre crsinst -n ahhjydb1,ahhjydb2,ahhjydb3,ahhjydb4,ahhjydb5,ahhjydb6  -verbose
#su - grid
[grid@racdb1 grid]$ export LANG=en_US
[grid@racdb1 grid]$ ./runInstaller

root用户执行sh脚本

脚本逐台执行

crs 安装完成并检查

[grid@DB1 ~]$ crs_stat -t -v
Name           Type           R/RA   F/FT   Target    State     Host        
----------------------------------------------------------------------
ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    db1         
ora....VOTE.dg ora....up.type 0/5    0/     ONLINE    ONLINE    db1         
ora.asm        ora.asm.type   0/5    0/     ONLINE    ONLINE    db1         
ora.cvu        ora.cvu.type   0/5    0/0    ONLINE    ONLINE    db1         
ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    db1         
ora.db1.gsd    application    0/5    0/0    OFFLINE   OFFLINE               
ora.db1.ons    application    0/3    0/0    ONLINE    ONLINE    db1         
ora.db1.vip    ora....t1.type 0/0    0/0    ONLINE    ONLINE    db1         
ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    db2         
ora.db2.gsd    application    0/5    0/0    OFFLINE   OFFLINE               
ora.db2.ons    application    0/3    0/0    ONLINE    ONLINE    db2         
ora.db2.vip    ora....t1.type 0/0    0/0    ONLINE    ONLINE    db2         
ora.gsd        ora.gsd.type   0/5    0/     OFFLINE   OFFLINE               
ora....network ora....rk.type 0/5    0/     ONLINE    ONLINE    db1         
ora.oc4j       ora.oc4j.type  0/1    0/2    ONLINE    ONLINE    db1         
ora.ons        ora.ons.type   0/3    0/     ONLINE    ONLINE    db1         
ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    db1 


[grid@ahhjydb6 ~]$ crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[grid@ahhjydb6 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
	 Version                  :          3
	 Total space (kbytes)     :     262120
	 Used space (kbytes)      :       3132
	 Available space (kbytes) :     258988
	 ID                       : 1823541622
	 Device/File Name         :  +OCR_VOTE
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

	 Cluster registry integrity check succeeded

	 Logical corruption check bypassed due to non-privileged user
	 
	 
[grid@ahhjydb6 ~]$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   9042b8734dc84f92bfcb039bb6bdc3eb (ORCL:OCR_VOTE01) [OCR_VOTE]
 2. ONLINE   564d2e0515ca4f5bbf1b2fbac9bcfa3d (ORCL:OCR_VOTE02) [OCR_VOTE]
 3. ONLINE   a91db00750fb4fd0bf1cb551e127824c (ORCL:OCR_VOTE03) [OCR_VOTE]
Located 3 voting disk(s)

创建asm 磁盘组(ORADATA)

在grid用户下执行asmca

安装database

#su - orace
[grid@racdb1 oracle]$ export LANG=en_US
[grid@racdb1 oracle]$ ./runInstaller
安装过程略

创建实例

#su - oracle
$dbca
创建过程略

过程中的问和解决

dbca 报 ora-27102 out of memory 错误
按照下面标准调整内核参数即可
kernel.shmall = 2097152 #4k页面,默认只支撑8G内存。若内存大于8G,则建议值=物理内存/4k 98566144

安装过程中报错
Exception Name: MakefileException
Exception String: Error in invoking target 'agent nmhs' of makefile '/home/oracle/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/home/oracle/app/oraInventory/logs/installActions2020-01-09_06-09-59PM.log' for details.
解决方案
在makefile中添加链接libnnz11库的参数
修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11
建议修改前备份原始文件
[oracle@ysserver ~]$ cd $ORACLE_HOME/sysman/lib
[oracle@ysserver lib]$ cp ins_emagent.mk ins_emagent.mk.bak
[oracle@ysserver lib]$ vi ins_emagent.mk
进入vi编辑器后 命令模式输入/NMECTL 进行查找,快速定位要修改的行
在后面追加参数-lnnz11 第一个是字母l 后面两个是数字1

原文链接:Oracle Rac主库部署方案,转载请注明来源!

0