主库安装部署信息
环境说明
操作系统版本及内核
#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)
主机规划
Hostname | public IP | Private IP | VIP | ScanIP |
---|---|---|---|---|
educloud52 | Eth0/ 192.168.1.52 | Eth2/ 192.168.2.52 | 192.168.1.201 | 192.168.1.205 |
educloud53 | Eth0/ 192.168.1.53 | Eth2/ 192.168.2.53 | 192.168.1.202 | |
educloud54 | Eth0/ 192.168.1.54 | Eth2/ 192.168.2.54 | 192.168.1.203 | |
educloud55 | Eth0/ 192.168.1.55 | Eth2/ 192.168.2.55 | 192.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路径 |
---|---|---|---|---|
+OCR | OCR1 | 2G | normal | /dev/vdc1 |
+OCR | OCR1 | 2G | normal | /dev/vdc2 |
+OCR | OCR2 | 2G | normal | /dev/vdc3 |
+DATA | VOL1 | 1.5T | EXTERN | /dev/vdc5 |
+DATA | VOL2 | 1.5T | EXTERN | /dev/vdc6 |
+DATA | VOL3 | 1.5T | EXTERN | /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主库部署方案,转载请注明来源!