大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。
前言
本章目标:掌握本章核心知识点
前置要求:完成前序章节学习
预计时长:60 分钟
Oracle RAC是什么?
- Oracle Real Application Clusters (RAC) 允许客户跨多台服务器运行单个 Oracle 数据库,以最大限度地提高可用性并实现水平可扩展性,同时访问共享存储。
- 连接到 Oracle RAC 实例的用户会话可以在中断期间进行故障转移并安全地重放更改,而无需对最终用户应用程序进行任何更改,从而对最终用户隐藏了中断的影响。

- Oracle RAC 运行于集群之上,为 Oracle 数据库提供了最高级别的可用性、可伸缩性和低成本计算能力。
- 如果集群内的一个节点发生故障,Oracle 将可以继续在其余的节点上运行。
- Oracle 的主要创新是一项称为高速缓存合并的技术。
- 高速缓存合并使得集群中的节点可以通过高速集群互联高效地同步其内存高速缓存,从而最大限度地低降低磁盘 I/O。
- 高速缓存最重要的优势在于它能够使集群中所有节点的磁盘共享对所有数据的访问,数据无需在节点间进行分区。
特点:
- 多台互连计算机组成,使用共享存储。
- 用户无感知,对于最终用户和应用程序而言,它们似乎是一台服务器。
- 高可用,只要有一个节点存活,就能正常对外提供服务,避免单点故障。
- 高性能,多节点负载均衡。
- 易伸缩,可以容易地添加、删除节点,以满足系统自身的调整。
那么,如何部署一套RAC数据库环境呢?
大致步骤如下:
- 安装两台redhat7.3版本Linux系统(物理内存至少2G)
- 网络配置(双网卡,准备IP:Public IP,Virtual IP,Private IP,Scan IP)
- 存储配置(6块5G共享盘做ASM盘,根目录留50G用于安装grid和oracle)
- 预安装准备(系统参数/etc/sysctl.conf修改,防火墙selinux关闭,ntpd时钟定时同步,yum源配置安装
用户组及用户、目录新建,环境变量配置,用户资源限制/etc/security/limits.conf配置,/etc/pam.d/login修改pam_limits.so等等)
- 安装Grid软件
- 安装Oracle软件并建库
- 修改数据库内存配置,密码不过期,开启归档,布置归档定时删除脚本,布置rman备份机制)
⭐️ 如果想要使用脚本安装,可以使用博主编写的 Oracle 一键安装脚本,同时支持单机和 RAC 集群模式!
更多更详细的脚本使用方式可以订阅专栏:Oracle 一键安装脚本实操合集,持续更新中!!!。
一、安装前配置
本文主机配置为 Redhat 7.3 x86_64,内存2G,硬盘100G ,双网卡 ,iscsi共享存储盘5G*6!
| 节点 | 主机版本 | 主机名 | 实例名 | Oracle版本 | Public IP | Private IP | Virtual IP | Scan IP |
|---|
| 节点一 | redhat 7.3 | rac01 | orcl1 | 11.2.0.4 | 192.168.56.10 | 172.0.0.1 | 192.168.56.20 | 192.168.56.110 |
| 节点二 | redhat 7.3 | rac02 | orcl2 | 11.2.0.4 | 192.168.56.11 | 172.0.0.2 | 192.168.56.21 | 192.168.56.110 |
注意: 以下标题中(rac01&rac02)代表节点一和节点二都需要执行,(rac01)代表只需要节点一执行。
1、Linux主机安装(rac01&rac02)
安装 Linux 服务器可选择:Centos,Redhat,Oracle Linux。
📢 注意: 上述 Linux 安装包 和 Oracle 安装包 可点击链接跳转获取:
📢 注意: Linux 系统的安装本文不做详细演示!
2、配置yum源并安装依赖包(rac01&rac02)
Linux远程连接工具:
- 本文将使用 XShell 和 Xftp 工具,安装包可以在官网下载。
- 其他工具也可以,比如:putty,SecureCRT 等等工具。
Parallels Desktop挂载Linux主机镜像:

VMware Workstation挂载Linux镜像:

注意: 需要提前挂载系统镜像,可参考:Linux 配置本地 yum 源(6/7/8)!
挂载镜像源:
1mount /dev/cdrom /mnt
2##配置yum源
3cat <<EOF>>/etc/yum.repos.d/local.repo
4[local]
5name=local
6baseurl=file:///mnt
7gpgcheck=0
8enabled=1
9EOF
安装依赖包:
1yum groupinstall -y "Server with GUI"
2yum install -y bc \
3binutils \
4compat-libcap1 \
5compat-libstdc++-33 \
6gcc \
7gcc-c++ \
8elfutils-libelf \
9elfutils-libelf-devel \
10glibc \
11glibc-devel \
12ksh \
13libaio \
14libaio-devel \
15libgcc \
16libstdc++ \
17libstdc++-devel \
18libxcb \
19libX11 \
20libXau \
21libXi \
22libXtst \
23libXrender \
24libXrender-devel \
25make \
26net-tools \
27nfs-utils \
28smartmontools \
29sysstat \
30e2fsprogs \
31e2fsprogs-libs \
32fontconfig-devel \
33expect \
34unzip \
35openssh-clients \
36readline* \
37tigervnc* \
38psmisc --skip-broken
手动上传并安装依赖包:
1rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
2rpm -e ksh-20120801-142.el7.x86_64
3rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm
检查依赖包安装情况:
1rpm -q bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline | grep "not installed"
确保依赖包均已成功安装!
3、网络配置
Linux 7 版本可以使用 nmcli 命令来配置网络,以下命令中的 IP地址、子网掩码、网关 和 网卡名称 请根据实际情况进行修改!
rac01:
1##配置Public IP
2nmcli connection modify eth0 ipv4.addresses 192.168.56.10/24 ipv4.gateway 192.168.56.1 ipv4.method manual autoconnect yes
3##配置Private IP
4nmcli connection modify eth1 ipv4.addresses 172.0.0.1/24 ipv4.method manual autoconnect yes
5##生效
6nmcli connection up eth0
7nmcli connection up eth1
rac02:
1##配置Public IP
2nmcli connection modify eth0 ipv4.addresses 192.168.56.11/24 ipv4.gateway 192.168.56.1 ipv4.method manual autoconnect yes
3##配置Private IP
4nmcli connection modify eth1 ipv4.addresses 172.0.0.2/24 ipv4.method manual autoconnect yes
5##生效
6nmcli connection up eth0
7nmcli connection up eth1
最后,配置好网络后,输入命令 ip a 查看网络是否配置成功,尝试 ping 测试网络。
4、存储配置(rac01&rac02)
Windows 下配置 ISCSI 共享存储可参考:
配置好共享存储后,在 Linux 主机连接共享存储:
1##iscsi识别共享存储
2yum install -y iscsi-initiator-utils*
3##输出targetname,10.211.55.18为iscsi共享存储设备IP地址
4iscsiadm -m discovery -t st -p 10.211.55.18
5##连接共享存储
6iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.18-lucifer -p 10.211.55.18 -l
7lsblk
安装 multipath 绑定多路径:
1yum install -y device-mapper*
2mpathconf --enable --with_multipathd y
3##查看共享盘的scsi_id
4/usr/lib/udev/scsi_id -g -u /dev/sdb
5/usr/lib/udev/scsi_id -g -u /dev/sdc
6/usr/lib/udev/scsi_id -g -u /dev/sdd
7/usr/lib/udev/scsi_id -g -u /dev/sde
8/usr/lib/udev/scsi_id -g -u /dev/sdf
9/usr/lib/udev/scsi_id -g -u /dev/sdg
配置 multipath 文件:
1cat <<EOF>/etc/multipath.conf
2defaults {
3 user_friendly_names yes
4}
5
6blacklist {
7 devnode "^sda"
8}
9
10multipaths {
11 multipath {
12 wwid "27e2b3ddbd14752bb"
13 alias ocr_1
14 }
15 multipath {
16 wwid "27e2b3ddb87ff88ee"
17 alias ocr_2
18 }
19 multipath {
20 wwid "27e2b3ddb39fd2463"
21 alias ocr_3
22 }
23 multipath {
24 wwid "2852b96c1283206bf6"
25 alias data_1
26 }
27 multipath {
28 wwid "2852b96c12e8449cb9"
29 alias data_2
30 }
31 multipath {
32 wwid "2852b96c12fc938e95"
33 alias data_3
34 }
35}
36EOF
📢 注意: wwid的值为上面获取的scsi_id,alias可自定义,这里配置3块OCR盘,3块DATA盘!
激活multipath多路径:
1multipath -F
2multipath -v2
3multipath -ll
配置UDEV绑盘:
1for i in ocr_* data_*; do
2 printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>/dev/mapper/udev_info
3done
4while read -r line; do
5 dm_uuid=$(echo "$line" | awk -F'=' '{print $2}')
6 disk_name=$(echo "$line" | awk '{print $1}')
7 echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${dm_uuid}\",SYMLINK+=\"asm_${disk_name}\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdevices.rules
8done </dev/mapper/udev_info
9##重载udev
10udevadm control --reload-rules
11udevadm trigger --type=devices
确认配置完成后,分别在两个节点输入命令 ls /dev/asm* 查看是否已经成功绑定!
5、hosts 文件配置(rac01&rac02)
1cat <<EOF>>/etc/hosts
2#Public IP
3192.168.56.10 rac01
4192.168.56.11 rac02
5
6#Private IP
7172.0.0.1 rac01-priv
8172.0.0.2 rac02-priv
9
10#Vip IP
11192.168.56.20 rac01-vip
12192.168.56.21 rac02-vip
13
14#Scan IP
15192.168.56.110 rac-scan
16EOF
6、防火墙配置(rac01&rac02)
1systemctl stop firewalld.service
2systemctl disable firewalld.service
3systemctl status firewalld.service

7、selinux 配置(rac01&rac02)
配置 selinux 临时生效:
1##重启后生效
2sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
3setenforce 0
4##重启后检查
5getenforce
📢 注意: selinux 配置需要重启生效!
8、时间同步配置(rac01&rac02)
首先需要禁用 chronyd 和 ntpd 服务:
1##禁用chronyd
2yum install -y chrony
3timedatectl set-timezone Asia/Shanghai
4systemctl stop chronyd.service
5systemctl disable chronyd.service
6##禁用ntpd
7yum install -y ntpdate
配置计划任务,定时刷新系统时间:
1##10.211.55.200为时间服务器IP,每天12点同步系统时间
2cat <<EOF>>/var/spool/cron/root
300 12 * * * /usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w
4EOF
5##查看计划任务
6crontab -l
7##手动执行
8/usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w

9、关闭透明大页和 NUMA(rac01&rac02)
Linux 7 配置内核文件,关闭透明大页和numa:
1sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
2grub2-mkconfig -o /boot/grub2/grub.cfg
3##重启后检查是否生效
4cat /sys/kernel/mm/transparent_hugepage/enabled
5cat /proc/cmdline
📢 注意: 关闭 透明大页 和 numa 的配置,需要重启主机生效!
10、avahi-daemon 配置(rac01&rac02)
有些主机安装选择最小化安装,没有安装 avahi-daemon 功能,建议安装之后禁用,防止以后误操作导致出问题:
1yum install -y avahi*
2systemctl stop avahi-daemon.socket
3systemctl stop avahi-daemon.service
4pgrep -f avahi-daemon | awk '{print "kill -9 "$2}'
配置 NOZEROCONF:
1cat <<EOF>>/etc/sysconfig/network
2NOZEROCONF=yes
3EOF

11、系统参数配置(rac01&rac02)
安装 Oracle 数据库需要配置系统参数,以下使用脚本命令一键式配置:
1##配置参数文件
2memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
3totalMemory=$((memTotal / 2048))
4shmall=$((memTotal / 4))
5if [ $shmall -lt 2097152 ]; then
6 shmall=2097152
7fi
8shmmax=$((memTotal * 1024 - 1))
9if [ "$shmmax" -lt 4294967295 ]; then
10 shmmax=4294967295
11fi
12cat <<EOF>>/etc/sysctl.conf
13fs.aio-max-nr = 1048576
14fs.file-max = 6815744
15kernel.shmall = $shmall
16kernel.shmmax = $shmmax
17kernel.shmmni = 4096
18kernel.sem = 250 32000 100 128
19net.ipv4.ip_local_port_range = 9000 65500
20net.core.rmem_default = 262144
21net.core.rmem_max = 4194304
22net.core.wmem_default = 262144
23net.core.wmem_max = 1048576
24net.ipv4.conf.eth0.rp_filter = 1
25net.ipv4.conf.eth1.rp_filter = 2
26EOF
27##生效
28sysctl -p

12、系统资源限制配置(rac01&rac02)
1##配置limits.conf
2cat <<EOF>>/etc/security/limits.conf
3oracle soft nofile 1024
4oracle hard nofile 65536
5oracle soft stack 10240
6oracle hard stack 32768
7oracle soft nproc 2047
8oracle hard nproc 16384
9oracle hard memlock 134217728
10oracle soft memlock 134217728
11
12grid soft nofile 1024
13grid hard nofile 65536
14grid soft stack 10240
15grid hard stack 32768
16grid soft nproc 2047
17grid hard nproc 16384
18EOF
19##配置pam.d/login
20cat <<EOF>>/etc/pam.d/login
21session required pam_limits.so
22session required /lib64/security/pam_limits.so
23EOF

13、用户及组、目录创建(rac01&rac02)
创建安装 Oracle 数据库所需的用户、组以及安装目录:
1##组创建
2/usr/sbin/groupadd -g 54321 oinstall
3/usr/sbin/groupadd -g 54322 dba
4/usr/sbin/groupadd -g 54323 oper
5/usr/sbin/groupadd -g 54324 backupdba
6/usr/sbin/groupadd -g 54325 dgdba
7/usr/sbin/groupadd -g 54326 kmdba
8/usr/sbin/groupadd -g 54327 asmdba
9/usr/sbin/groupadd -g 54328 asmoper
10/usr/sbin/groupadd -g 54329 asmadmin
11/usr/sbin/groupadd -g 54330 racdba
12##用户创建
13/usr/sbin/useradd -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba,oper grid
14/usr/sbin/useradd -u 54321 -g oinstall -G asmdba,dba,backupdba,dgdba,kmdba,racdba,oper oracle
15##修改用户密码为oracle
16echo "oracle" |passwd oracle --stdin
17echo "oracle" |passwd grid --stdin
18##创建软件目录
19mkdir -p /u01/app/11.2.0/grid
20mkdir -p /u01/app/grid
21mkdir -p /u01/app/oracle/product/11.2.0/db
22mkdir -p /u01/app/oraInventory
23mkdir -p /backup
24mkdir -p /home/oracle/scripts
25chown -R oracle:oinstall /backup
26chown -R oracle:oinstall /home/oracle/scripts
27chown -R grid:oinstall /u01
28chown -R grid:oinstall /u01/app/grid
29chown -R grid:oinstall /u01/app/11.2.0/grid
30chown -R grid:oinstall /u01/app/oraInventory
31chown -R oracle:oinstall /u01/app/oracle
32chmod -R 775 /u01

14、环境变量配置(rac01&rac02)
提前配置 profile 文件:
grid 用户:
1cat <<EOF>>/home/grid/.bash_profile
2################OracleBegin#########################
3umask 022
4export TMP=/tmp
5export TMPDIR=\$TMP
6export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
7export ORACLE_BASE=/u01/app/grid
8export ORACLE_HOME=/u01/app/11.2.0/grid
9export ORACLE_TERM=xterm
10export TNS_ADMIN=\$ORACLE_HOME/network/admin
11export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
12export ORACLE_SID=+ASM1
13export PATH=/usr/sbin:\$PATH
14export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
15alias sas='sqlplus / as sysasm'
16export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
17EOF
📢 注意: 每个节点的 ORACLE_SID 不一样(+ASM1/+ASM2),需要自行修改!
oracle 用户:
1cat <<EOF>>/home/oracle/.bash_profile
2################OracleBegin#########################
3umask 022
4export TMP=/tmp
5export TMPDIR=\$TMP
6export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
7export ORACLE_BASE=/u01/app/oracle
8export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db
9export ORACLE_HOSTNAME=rac01
10export ORACLE_TERM=xterm
11export TNS_ADMIN=\$ORACLE_HOME/network/admin
12export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
13export ORACLE_SID=orcl1
14export PATH=/usr/sbin:\$PATH
15export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
16alias sas='sqlplus / as sysdba'
17export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
18################OracleEnd#########################
19EOF
📢 注意: 每个节点的 ORACLE_HOSTNAME(rac01/rac02)和 ORACLE_SID(orcl1/orcl2)不一样,需要自行修改!
15、安装介质上传解压(rac01)
安装包使用 XFTP 工具进行上传,只需要上传至一节点 /soft 目录下:
1##创建安装介质存放目录
2mkdir /soft
3##上传安装介质到/soft目录
4p13390677_112040_Linux-x86-64_1of7.zip
5p13390677_112040_Linux-x86-64_2of7.zip
6p13390677_112040_Linux-x86-64_3of7.zip
7##解压安装介质
8cd /soft
9unzip -q p13390677_112040_Linux-x86-64_1of7.zip
10unzip -q p13390677_112040_Linux-x86-64_2of7.zip
11unzip -q p13390677_112040_Linux-x86-64_3of7.zip
12##授权目录
13chown -R oracle:oinstall /soft/database
14chown -R grid:oinstall /soft/grid
15##root用户下,cvuqdisk安装(rac01&rac02)
16cd /soft/grid/rpm
17rpm -ivh cvuqdisk-1.0.9-1.rpm
18##传输到节点二安装
19scp cvuqdisk-1.0.9-1.rpm rac2:/tmp
20rpm -ivh /tmp/cvuqdisk-1.0.9-1.rpm
📢 注意: 安装包只需要在节点一上传解压即可!
至此,准备工作已经完成。
二、安装 Grid 软件(rac01)
关于 VNC 配置具体可参考文章:
配置 grid 用户 vnc 图形界面:
1##root用户下切换到grid用户
2su - grid
3##执行vncserver,按提示输入密码即可
4vncserver
5##在vnc客户端界面输入192.168.56.10:1,输入刚才输入的密码即可连接。
右键打开终端:
开始安装:
1##应用环境变量
2source ~/.bash_profile
3##进入安装目录
4cd /soft/grid
5##执行安装程序开始安装,加上jar包防止弹窗不显示问题
6./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
跳过版本更新:
选择集群模式安装:
自定义模式安装:
选择语言:
修改集群名称和 scan 名称:
修改cluster名称
📢 注意: scan 名称必须与 /etc/hosts 中配置的 scan 名称保持一致!
配置 grid 用户节点间互信:
📢 注意: 点击 Add 添加节点二,pubile hostname 为 rac02,virtual hostname 为 rac02-vip,输入密码:oracle,点击 setup 开始互信。
点击Test测试互信:
确认网络信息是否正确:
选择ASM模式安装:
填写 OCR 裁决盘信息:
📢 注意: OCR 裁决盘这里冗余模式 External,Normal,High 对应磁盘数量为 1,3,5。
填写 ASM 实例 SYS 用户密码为 oracle:
不使用 IPMI:
选择用户组,默认即可:
选择grid安装目录,默认即可:
安装前预检查:
开始执行安装:
执行 root 脚本:(rac01&rac02)
📢 注意: Linux7 安装 Oracle 11GR2 版本,执行 root.sh 时存在 BUG:
需要在执行 root.sh 之前安装补丁 18370031 来修复,补丁下载地址:
https://pan.baidu.com/s/1f1nCwZxfeqsdWGKN1DiI9Q
提取码: wbtw
18370031 补丁安装:(rac01&rac02)
1##上传补丁包
2p18370031_112040_Linux-x86-64.zip
3##解压补丁包
4cd /soft
5unzip -q p18370031_112040_Linux-x86-64.zip
6##授权补丁包
7chown -R grid:oinstall /soft/18370031
8##开始安装补丁,两个节点都需要执行
9opatch napply -oh $ORACLE_HOME -local /soft/18370031 -silent
📢 注意: 两个节点都需要安装补丁 18370031!
打好补丁后,开始执行 root.sh 脚本:(rac01&rac02)
1##root用户下执行
2/u01/app/oraInventory/orainstRoot.sh
3/u01/app/11.2.0/grid/root.sh
执行过程太长,不做记录!
由于我们没有配置 DNS 解析,因此下方的错误忽略即可:
DNS报错
至此,Grid集群软件安装成功!
注意: 如果需要安装 PSU 补丁,建议在建库之前安装,可以省去数据字典升级的步骤!
以 Grid PSU 补丁 31718723 为例,使用 root 用户执行补丁安装命令:(rac01&rac02)**
1##解压补丁包
2cd /soft
3unzip -q p31718723_112040_Linux-x86-64.zip
4##切换到root用户执行,需要拷贝到2节点也执行一次
5opatch auto /soft/31718723 -oh $GRID_ORACLE_HOME
📢 注意: 需要先替换 grid 和 oracle 软件的 OPatch 包为最新版本,否则无法成功安装补丁!
三、创建 ASM 数据盘 DATA
这里创建的 DATA 磁盘组主要用于存放数据文件、日志文件等数据库文件!
这里我们可以使用静默创建或者图形化方式创建:
1、静默创建
1asmca -silent -sysAsmPassword oracle -asmsnmpPassword oracle -oui_internal -configureASM -diskString '/dev/asm*' -diskGroupName DATA -diskList /dev/asm_data_1,/dev/asm_data_2,/dev/asm_data_3 -redundancy NORMAL -au_size 1
2、图形化创建
点击 create 创建 DATA:
点击 OK 创建 DATA:
建议重启两台主机,检查重启后Grid集群是否正常运行!
四、安装Oracle软件
配置 oracle 用户 vnc 图形界面:
1##root用户下切换到grid用户
2su - oracle
3##执行vncserver,按提示输入密码即可
4vncserver
5##在vnc客户端界面输入192.168.56.10:2,输入刚才输入的密码即可连接。
右键打开终端:
开始安装:
1##应用环境变量
2source ~/.bash_profile
3##进入安装目录
4cd /soft/database
5##执行安装程序开始安装,加上jar包防止弹窗不显示问题
6./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
不配置 Oracle 邮件发送:
跳过软件更新:
选择仅安装 oracle 软件:
配置 oracle 用户互信:
输入密码,点击 setup 开始,成功之后点击 Test 。
选择语言:
选择企业版安装:
检查用户组,默认即可:
安装前预检查:
开始安装 Oracle 软件:
报错解决:
📢 注意: Linux7 安装 Oracle 11GR2 版本,oracle 软件安装过程中报错:ins_emagent.mk,需要修改文件 /sysman/lib/ins_emagent.mk 来修复!
两个节点都执行以下命令,然后点击继续:(rac01&rac02)
1sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' "$ORACLE_HOME/sysman/lib/ins_emagent.mk
执行 root.sh 脚本:(rac01&rac02)
点击下一步,安装成功:
至此,Oracle 软件已成功安装。
注意: 如果需要安装 PSU 补丁,建议在建库之前安装,可以省去数据字典升级的步骤!
以 Grid PSU 补丁 31718723 为例,使用 root 用户执行补丁安装命令:(rac01&rac02)**
1##解压补丁包
2cd /soft
3unzip -q p31718723_112040_Linux-x86-64.zip
4##切换到root用户执行,需要拷贝到2节点也执行一次
5opatch auto /soft/31718723 -oh $ORACLE_ORACLE_HOME
📢 注意: 需要先替换 grid 和 oracle 软件的 OPatch 包为最新版本,否则无法成功安装补丁!
五、创建数据库实例
在确保 grid 和 oracle 软件和补丁都已安装成功后,即可开始创建数据库实例!
选择rac模式:
选择创建数据库:
选择自定义模板:
📢 注意: 这里我选择的是 Custom Database 选项,可以自定义安装组件!
填写数据库实例 ID:
关闭 EM,保留自动化系统 JOB:
填写 SYS 密码,需要记住:
选择存放数据的 ASM 盘:DATA
不开启闪回区,建库后可随时开启:
选择自定义组件,默认即可!
配置初始化参数:
📢 注意: 如果使用自动管理内存,建议使用 70%~90% 的物理内存,建议 /etc/shm 和物理内存一样大!
block 默认 8192(即数据文件默认最大 32G),进程数增加到 1500:
选择数据库字符集,默认字符集为 AL32UTF8,国家字符集为 AL16UTF16,需根据业务实际情况进行修改:
开始建库:
数据库创建成功:
至此,数据库实例创建完成!
六、数据库优化配置(rac01)
1、开启数据库归档模式
关于开启归档模式,具体可参考文章:
1##关闭数据库实例
2srvctl stop database -d orcl
3##开启单个节点到mount模式
4srvctl start instance -d orcl -i orcl1 -o mount
5##开启归档
6alter database archivelog;
7##设置归档路径
8ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+DATA';
9##重启数据库实例
10srvctl stop instance -d orcl -i orcl1
11srvctl start database -d orcl
12##检查归档
13archive log list
2、配置定期删除归档计划任务
关于归档日志删除,具体可参考文章:
1##进入oracle用户
2su - oracle
3##写入脚本
4{
5 echo '#!/bin/bash'
6 echo 'source ~/.bash_profile'
7 echo 'deltime=`date +"20%y%m%d%H%M%S"`'
8 echo "rman target / nocatalog msglog /home/oracle/scripts/del_arch_\${deltime}.log<<EOF"
9 echo 'crosscheck archivelog all;'
10 echo "delete noprompt archivelog until time 'sysdate-7';"
11 echo "delete noprompt force archivelog until time 'SYSDATE-10';"
12 echo 'EOF'
13} >>/home/oracle/scripts/del_arch.sh
14##写入计划任务
15cat <<EOF>>/var/spool/cron/oracle
1612 00 * * * /home/oracle/scripts/del_arch.sh
17EOF
18##手动执行测试
19/home/oracle/scripts/del_arch.sh
3、设置密码永不过期
1sqlplus / as sysdba
2ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Oracle 11GR2 版本需要手动设置密码永不过期,12CR2 版本之后已经默认设置为永不过期了!
往期精彩文章
感谢您的阅读,这里是 Lucifer三思而后行,欢迎点赞+关注,我会持续分享数据库知识、运维技巧。