1、系统准备
备注:1.2双节点执行
1.1、系统版本
[root@hisdb1 ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
#准备两台虚拟机
1.2、移除虚拟嵌套
[root@hisdb1 ~]# yum remove libvirt-libs
#移除两节点虚拟嵌套功能
2、网络配置
备注:2.1-2.2 双节点执行
2.1、添加网卡
分别给两台主机添加1块网卡
启动系统
[root@hisdb1 ~]# nmcli con show
NAME UUID TYPE DEVICE
ens33 96baac06-d46a-4699-9db6-073fcd8bae3f ethernet ens33
Wired connection 1 e4b49ea7-f8f2-3f4c-a4a3-3414d182385c ethernet ens37
NAME UUID TYPE DEVICE
ens33 4ad32b07-a230-46d3-a172-97cd1955352e ethernet ens33
Wired connection 1 d0b249b5-1263-3de5-af4d-9b6b6945fbbb ethernet ens37
ens37缺少配置文件,拷贝ens33的
然后按如下修改:
[root@hisdb1 network-scripts]# cat ifcfg-ens37
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
UUID=e4b49ea7-f8f2-3f4c-a4a3-3414d182385c
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.11.125
HWADDR=00:0c:29:3d:aa:8a
PREFIX=24
#GATEWAY=192.168.133.2
#DNS1=192.168.133.2
IPV6_PRIVACY=no
# service network restart
注意:ens33与ens37中BOOTPROTO=none均需修改为static
# cat <<EOF>>/etc/hosts
#Public IP (ens33)
192.168.133.160 hisdb1
192.168.133.161 hisdb2
#Private IP (ens37)
192.168.11.125 hisdb1-priv
192.168.11.126 hisdb2-priv
#Virtual IP
192.168.133.162 hisdb1-vip
192.168.133.163 hisdb2-vip
#Scan IP
192.168.133.164 hisdb-scan
EOF
#此处公网和私网能ping通,其它三个不能ping通才正常
3、安装准备
备注:3.1-3.13两个节点执行
3.1、配置Yum源
[root@hisdb1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 21M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 90G 4.6G 86G 6% /
/dev/sda1 2.0G 185M 1.9G 10% /boot
tmpfs 781M 0 781M 0% /run/user/0
tmpfs 781M 48K 781M 1% /run/user/1000
/dev/sr0 4.4G 4.4G 0 100% /run/media/liujun/CentOS 7 x86_64
[root@hisdb1 ~]# mount /dev/sr0 /mnt
[root@hisdb1 yum.repos.d]# cat <<EOF>>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF
[root@hisdb1 yum.repos.d]# yum makecache
3.2、安装依赖包
[root@hisdb1 yum.repos.d]# yum groupinstall -y "Server with GUI"
yum install -y 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* \
tigervnc* \
psmisc --skip-broken
#手动上传并安装依赖包:pdksh-5.2.14-37.el5.x86_64.rpm和compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
[root@hisdb1 yum.repos.d]# rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
[root@hisdb1 yum.repos.d]# rpm -e ksh-20120801-143.el7_9.x86_64
[root@hisdb1 yum.repos.d]# rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm
检查依赖包安装情况
# rpm -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"
注意:package ksh is not installed
说明:安装gi/db时不会因缺少此包报警
3.3、关闭防火墙
# systemctl status firewalld.service
# systemctl stop firewalld.service
# systemctl disable firewalld.service
3.4、禁用selinux
将SELINUX修改为disabled
[root@hisdb1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config [root@hisdb1 ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted |
注意:需重启主机,才能生效
3.5、关闭ntp和chrony服务
从oracle 11gR2 rac开始使用Cluster Time Synchronization Service(CTSS)同步各节点的时间.
此处关闭NTP、chrony服务,Oracle会自动启用ctssd进程.
systemctl stop ntpd
systemctl disable ntpd.service
mv /etc/ntp.conf /etc/ntp.conf.bak
systemctl disable chronyd
systemctl stop chronyd
mv /etc/chrony.conf /etc/chrony.conf_bak
3.6、关闭透明大页和numa
备注:关闭透明大页和numa,重启生效
[root@hisdb1 ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
[root@hisdb1 ~]# sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
[root@hisdb1 ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never numa=off"
GRUB_DISABLE_RECOVERY="true"
[root@hisdb1 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-954f0e9a62d9487e8bcb8e8598b71fab
Found initrd image: /boot/initramfs-0-rescue-954f0e9a62d9487e8bcb8e8598b71fab.img
done
重启前参数
[root@hisdb1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[root@hisdb1 ~]# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
[root@hisdb1 ~]#
重启后结果
[root@hisdb1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@hisdb1 ~]# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never numa=off
3.7、avahi-daemon配置
[root@hisdb1 ~]# yum install -y avahi*
[root@hisdb1 ~]# systemctl stop avahi-daemon.socket
[root@hisdb1 ~]# systemctl stop avahi-daemon.service
[root@hisdb1 ~]# pgrep -f avahi-daemon | awk '{print "kill -9 "$2}'
配置NOZEROCONF=yes
[root@hisdb1 ~]# cat <<EOF>>/etc/sysconfig/network
NOZEROCONF=yes
EOF
查看状态
[root@hisdb1 ~]# systemctl status avahi-daemon.socket
[root@hisdb1 ~]# systemctl status avahi-daemon.service
3.8、修改/etc/sysctl.conf文件
# cat <<EOF>>/etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8181829631
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 = 1048576
net.ipv4.conf.ens33.rp_filter = 1
net.ipv4.conf.ens37.rp_filter = 2
EOF
# /sbin/sysctl -p
3.9、修改用户限制
[root@hisdb1 ~]# cat <<EOF>>/etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
EOF
3.10、修改/etc/pam.d/login文件
[root@hisdb1 ~]# cat <<EOF>>/etc/pam.d/login
session required pam_limits.so
session required /lib64/security/pam_limits.so
EOF
3.11、创建用户、用户组、目录
创建组
/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/groupadd -g 54323 oper
/usr/sbin/groupadd -g 54324 backupdba
/usr/sbin/groupadd -g 54325 dgdba
/usr/sbin/groupadd -g 54326 kmdba
/usr/sbin/groupadd -g 54327 asmdba
/usr/sbin/groupadd -g 54328 asmoper
/usr/sbin/groupadd -g 54329 asmadmin
/usr/sbin/groupadd -g 54330 racdba
创建用户
/usr/sbin/useradd -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba,oper grid
/usr/sbin/useradd -u 54321 -g oinstall -G asmdba,dba,backupdba,dgdba,kmdba,racdba,oper oracle
修改密码
echo "oracle_4U" |passwd oracle --stdin
echo "grid_4U" |passwd grid --stdin
创建目录
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/11.2.0/db
mkdir -p /u01/app/oraInventory
mkdir -p /backup
mkdir -p /home/oracle/scripts
chown -R oracle:oinstall /backup
chown -R oracle:oinstall /home/oracle/scripts
chown -R grid:oinstall /u01
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/11.2.0/grid
chown -R grid:oinstall /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
3.12、用户环境变量
grid用户:
$ cat <<EOF>>/home/grid/.bash_profile
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=+ASM1
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysasm'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
EOF
$ source .bash_profile
注意:节点2为+ASM2
oracle用户:
$ cat <<EOF>>/home/oracle/.bash_profile
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcl1
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysdba'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
EOF
$ source .bash_profile
注意:节点2 为orcl2
3.13、修改/etc/profile文件
# vim /etc/profile
末尾添加:
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
# source /etc/profile
备注:此为设置系统限制
4、共享存储
说明:4.1-4.4有说明在具体某个节点执行.
4.1、磁盘规划:
5块OCR HIGH 2g;5块DATA EXTERN 20g;3块FRA EXTERN 20g
4.2、节点1添加共享磁盘
按如上依次添加规划好的磁盘
4.3、节点2添加共享磁盘
按如上依次在节点2添加共享磁盘.
修改两台主机的.vmx文件后再开启主机.
.vmx文件添加如下内容:
disk.locking = "FALSE"
disk.EnableUUID = "TRUE"
4.4、分区
在节点1将新加磁盘进行分区.
[root@hisdb1 ~]# lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/sda 8:0 0 100G 0 disk
├─/dev/sda1 8:1 0 1G 0 part /boot
└─/dev/sda2 8:2 0 99G 0 part
├─/dev/mapper/centos-root 253:0 0 91G 0 lvm /
└─/dev/mapper/centos-swap 253:1 0 8G 0 lvm [SWAP]
/dev/sdb 8:16 0 2G 0 disk
/dev/sdc 8:32 0 2G 0 disk
/dev/sdd 8:48 0 2G 0 disk
/dev/sde 8:64 0 2G 0 disk
/dev/sdf 8:80 0 2G 0 disk
/dev/sdg 8:96 0 20G 0 disk
/dev/sdh 8:112 0 20G 0 disk
/dev/sdi 8:128 0 20G 0 disk
/dev/sdj 8:144 0 20G 0 disk
/dev/sdk 8:160 0 20G 0 disk
/dev/sdl 8:176 0 20G 0 disk
/dev/sdm 8:192 0 20G 0 disk
/dev/sdn 8:208 0 20G 0 disk
/dev/sr0 11:0 1 4.4G 0 rom
如上所示,sdb至sdn为新添加磁盘
[root@hisdb1 ~]# fdisk /dev/sdb
….
备注:在节点1对其依次进行分区.
[root@hisdb1 ~]# partprobe
[root@hisdb2 ~]# partprobe
查看分区结果:
[root@hisdb1 ~]# lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/sda 8:0 0 100G 0 disk
├─/dev/sda1 8:1 0 1G 0 part /boot
└─/dev/sda2 8:2 0 99G 0 part
├─/dev/mapper/centos-root 253:0 0 91G 0 lvm /
└─/dev/mapper/centos-swap 253:1 0 8G 0 lvm [SWAP]
/dev/sdb 8:16 0 2G 0 disk
└─/dev/sdb1 8:17 0 2G 0 part
/dev/sdc 8:32 0 2G 0 disk
└─/dev/sdc1 8:33 0 2G 0 part
/dev/sdd 8:48 0 2G 0 disk
└─/dev/sdd1 8:49 0 2G 0 part
/dev/sde 8:64 0 2G 0 disk
└─/dev/sde1 8:65 0 2G 0 part
/dev/sdf 8:80 0 2G 0 disk
└─/dev/sdf1 8:81 0 2G 0 part
/dev/sdg 8:96 0 20G 0 disk
└─/dev/sdg1 8:97 0 20G 0 part
/dev/sdh 8:112 0 20G 0 disk
└─/dev/sdh1 8:113 0 20G 0 part
/dev/sdi 8:128 0 20G 0 disk
└─/dev/sdi1 8:129 0 20G 0 part
/dev/sdj 8:144 0 20G 0 disk
└─/dev/sdj1 8:145 0 20G 0 part
/dev/sdk 8:160 0 20G 0 disk
└─/dev/sdk1 8:161 0 20G 0 part
/dev/sdl 8:176 0 20G 0 disk
└─/dev/sdl1 8:177 0 20G 0 part
/dev/sdm 8:192 0 20G 0 disk
└─/dev/sdm1 8:193 0 20G 0 part
/dev/sdn 8:208 0 20G 0 disk
└─/dev/sdn1 8:209 0 20G 0 part
/dev/sr0 11:0 1 4.4G 0 rom
5、multipath
备注:5.1-5.5两个节点执行
5.1、安装multipath
[root@hisdb1 ~]# yum -y install device-mapper*
[root@hisdb1 ~]# mpathconf --enable --with_multipathd y
5.2、查看共享盘的scsi_id
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb
36000c297e45a74ea0f0f58a9bf98eafb
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc
36000c29b67c9e82b79efdeffb976d1aa
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdd
36000c2909afffec66ade2cb7b421d361
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sde
36000c29015fb39901bd7c7d53323958a
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdf
36000c29274ba7e27f8b02e0efc71871f
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdg
36000c29c341e450a39465523f1989529
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdh
36000c2973f202d5a1fb9f2983ef7a167
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdi
36000c299b266dc61e7775b7d2190cbd1
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdj
36000c29a1ec6c3f7cf920096c4ddc321
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdk
36000c298fb2c6148db7a3a76e8d2b0fa
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdl
36000c294b4df2d4f991ee961c5ba943c
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdm
36000c295266c6da08606eff3d7590893
[root@hisdb1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdn
36000c29398bd25d7bda9b1672ea3d2b4
5.3、配置multipath
wwid值为上面获取的scsi_id,alias可自定义.
[root@hisdb1 ~]# cat <<EOF>/etc/multipath.conf
defaults {
user_friendly_names yes
}
blacklist {
devnode "^sda"
}
multipaths {
multipath {
wwid "36000c297e45a74ea0f0f58a9bf98eafb"
alias ocr01
}
multipath {
wwid "36000c29b67c9e82b79efdeffb976d1aa"
alias ocr02
}
multipath {
wwid "36000c2909afffec66ade2cb7b421d361"
alias ocr03
}
multipath {
wwid "36000c29015fb39901bd7c7d53323958a"
alias ocr04
}
multipath {
wwid "36000c29274ba7e27f8b02e0efc71871f"
alias ocr05
}
multipath {
wwid "36000c29c341e450a39465523f1989529"
alias data01
}
multipath {
wwid "36000c2973f202d5a1fb9f2983ef7a167"
alias data02
}
multipath {
wwid "36000c299b266dc61e7775b7d2190cbd1"
alias data03
}
multipath {
wwid "36000c29a1ec6c3f7cf920096c4ddc321"
alias data04
}
multipath {
wwid "36000c298fb2c6148db7a3a76e8d2b0fa"
alias data05
}
multipath {
wwid "36000c294b4df2d4f991ee961c5ba943c"
alias fra01
}
multipath {
wwid "36000c295266c6da08606eff3d7590893"
alias fra02
}
multipath {
wwid "36000c29398bd25d7bda9b1672ea3d2b4"
alias fra03
}
}
EOF
5.4、激活multipath多路径
[root@hisdb1 ~]# multipath -F
[root@hisdb1 ~]# multipath -v2
[root@hisdb1 ~]# multipath -ll
data01 (36000c29c341e450a39465523f1989529) dm-23 VMware, ,VMware Virtual S
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:6:0 sdg 8:96 active ready running
ocr02 (36000c29b67c9e82b79efdeffb976d1aa) dm-15 VMware, ,VMware Virtual S
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:2:0 sdc 8:32 active ready running
fra03 (36000c29398bd25d7bda9b1672ea3d2b4) dm-12 VMware, ,VMware Virtual S
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:14:0 sdn 8:208 active ready running
ocr01 (36000c297e45a74ea0f0f58a9bf98eafb) dm-2 VMware, ,VMware Virtual S
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:1:0 sdb 8:16 active ready running
fra02 (36000c295266c6da08606eff3d7590893) dm-10 VMware, ,VMware Virtual S
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:13:0 sdm 8:192 active ready running
fra01 (36000c294b4df2d4f991ee961c5ba943c) dm-8 VMware, ,VMware Virtual S
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:12:0 sdl 8:176 active ready running
mpatha (36000c29070ff67056a025a83380ed941) dm-14 VMware, ,VMware Virtual S
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:15:0 sdo 8:224 active ready running
data05 (36000c298fb2c6148db7a3a76e8d2b0fa) dm-6 VMware, ,VMware Virtual S
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:11:0 sdk 8:160 active ready running
data04 (36000c29a1ec6c3f7cf920096c4ddc321) dm-4 VMware, ,VMware Virtual S
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:10:0 sdj 8:144 active ready running
ocr05 (36000c29274ba7e27f8b02e0efc71871f) dm-21 VMware, ,VMware Virtual S
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:5:0 sdf 8:80 active ready running
data03 (36000c299b266dc61e7775b7d2190cbd1) dm-27 VMware, ,VMware Virtual S
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:9:0 sdi 8:128 active ready running
ocr04 (36000c29015fb39901bd7c7d53323958a) dm-19 VMware, ,VMware Virtual S
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:4:0 sde 8:64 active ready running
data02 (36000c2973f202d5a1fb9f2983ef7a167) dm-25 VMware, ,VMware Virtual S
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:8:0 sdh 8:112 active ready running
ocr03 (36000c2909afffec66ade2cb7b421d361) dm-17 VMware, ,VMware Virtual S
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 0:0:3:0 sdd 8:48 active ready running
[root@hisdb1 ~]# lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/sda 8:0 0 100G 0 disk
├─/dev/sda1 8:1 0 1G 0 part /boot
└─/dev/sda2 8:2 0 99G 0 part
├─/dev/mapper/centos-root 253:0 0 91G 0 lvm /
└─/dev/mapper/centos-swap 253:1 0 8G 0 lvm [SWAP]
/dev/sdb 8:16 0 2G 0 disk
└─/dev/mapper/ocr01 253:2 0 2G 0 mpath
└─/dev/mapper/ocr01p1 253:3 0 2G 0 part
/dev/sdc 8:32 0 2G 0 disk
└─/dev/mapper/ocr02 253:15 0 2G 0 mpath
└─/dev/mapper/ocr02p1 253:16 0 2G 0 part
/dev/sdd 8:48 0 2G 0 disk
└─/dev/mapper/ocr03 253:17 0 2G 0 mpath
└─/dev/mapper/ocr03p1 253:18 0 2G 0 part
/dev/sde 8:64 0 2G 0 disk
└─/dev/mapper/ocr04 253:19 0 2G 0 mpath
└─/dev/mapper/ocr04p1 253:20 0 2G 0 part
/dev/sdf 8:80 0 2G 0 disk
└─/dev/mapper/ocr05 253:21 0 2G 0 mpath
└─/dev/mapper/ocr05p1 253:22 0 2G 0 part
/dev/sdg 8:96 0 20G 0 disk
└─/dev/mapper/data01 253:23 0 20G 0 mpath
└─/dev/mapper/data01p1 253:24 0 20G 0 part
/dev/sdh 8:112 0 20G 0 disk
└─/dev/mapper/data02 253:25 0 20G 0 mpath
└─/dev/mapper/data02p1 253:26 0 20G 0 part
/dev/sdi 8:128 0 20G 0 disk
└─/dev/mapper/data03 253:27 0 20G 0 mpath
└─/dev/mapper/data03p1 253:28 0 20G 0 part
/dev/sdj 8:144 0 20G 0 disk
└─/dev/mapper/data04 253:4 0 20G 0 mpath
└─/dev/mapper/data04p1 253:5 0 20G 0 part
/dev/sdk 8:160 0 20G 0 disk
└─/dev/mapper/data05 253:6 0 20G 0 mpath
└─/dev/mapper/data05p1 253:7 0 20G 0 part
/dev/sdl 8:176 0 20G 0 disk
└─/dev/mapper/fra01 253:8 0 20G 0 mpath
└─/dev/mapper/fra01p1 253:9 0 20G 0 part
/dev/sdm 8:192 0 20G 0 disk
└─/dev/mapper/fra02 253:10 0 20G 0 mpath
└─/dev/mapper/fra02p1 253:11 0 20G 0 part
/dev/sdn 8:208 0 20G 0 disk
└─/dev/mapper/fra03 253:12 0 20G 0 mpath
└─/dev/mapper/fra03p1 253:13 0 20G 0 part
/dev/sdo 8:224 0 20G 0 disk
└─/dev/mapper/mpatha 253:14 0 20G 0 mpath
/dev/sr0 11:0 1 4.4G 0 rom
6、asmlib
说明:6.1-6.5 中除6.4均在双节点执行.
6.1、文件上传
sftp> cd /root
sftp> lcd F:\package\asmlib\el7
sftp> lls
kmod-oracleasm-2.0.8-21.0.1.el7.x86_64.rpm oracleasm-support-2.1.11-2.el7.x86_64.rpm
oracleasmlib-2.0.12-1.el7.x86_64.rpm
sftp> put *.rpm
6.2、安装asmlib
[root@hisdb1 ~]# rpm -ivh oracleasm-support-2.1.11-2.el7.x86_64.rpm
[root@hisdb1 ~]# rpm -ivh kmod-oracleasm-2.0.8-21.0.1.el7.x86_64.rpm
[root@hisdb1 ~]# rpm -ivh oracleasmlib-2.0.12-1.el7.x86_64.rpm
6.3、配置asmlib
[root@dbserver ~]# /usr/sbin/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
Load the new Oracle ASMLib specific to OL7
[root@dbserver ~]# /usr/sbin/oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm
6.4、创建asm磁盘
说明:此步仅在节点1执行
[root@hisdb1 ~]# oracleasm createdisk data01 /dev/mapper/data01p1
[root@hisdb1 ~]# oracleasm createdisk data02 /dev/mapper/data02p1
[root@hisdb1 ~]# oracleasm createdisk data03 /dev/mapper/data03p1
[root@hisdb1 ~]# oracleasm createdisk data04 /dev/mapper/data04p1
[root@hisdb1 ~]# oracleasm createdisk data05 /dev/mapper/data05p1
[root@hisdb1 ~]# oracleasm createdisk fra01 /dev/mapper/fra01p1
[root@hisdb1 ~]# oracleasm createdisk fra02 /dev/mapper/fra02p1
[root@hisdb1 ~]# oracleasm createdisk fra03 /dev/mapper/fra03p1
[root@hisdb1 ~]# oracleasm createdisk ocr01 /dev/mapper/ocr01p1
[root@hisdb1 ~]# oracleasm createdisk ocr02 /dev/mapper/ocr02p1
[root@hisdb1 ~]# oracleasm createdisk ocr03 /dev/mapper/ocr03p1
[root@hisdb1 ~]# oracleasm createdisk ocr04 /dev/mapper/ocr04p1
[root@hisdb1 ~]# oracleasm createdisk ocr05 /dev/mapper/ocr05p1
6.5、验证磁盘
[root@hisdb1 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@hisdb1 ~]# oracleasm listdisks
DATA01
DATA02
DATA03
DATA04
DATA05
FRA01
FRA02
FRA03
OCR01
OCR02
OCR03
OCR04
OCR05
[root@hisdb1 ~]# oracleasm querydisk DATA01
Disk "DATA01" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk DATA02
Disk "DATA02" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk DATA03
Disk "DATA03" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk DATA04
Disk "DATA04" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk DATA05
Disk "DATA05" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk FRA01
Disk "FRA01" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk FRA02
Disk "FRA02" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk FRA03
Disk "FRA03" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk OCR01
Disk "OCR01" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk OCR02
Disk "OCR02" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk OCR03
Disk "OCR03" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk OCR04
Disk "OCR04" is a valid ASM disk
[root@hisdb1 ~]# oracleasm querydisk OCR05
Disk "OCR05" is a valid ASM disk
[root@hisdb1 ~]# ls -ltr /dev/oracleasm/disks
total 0
brw-rw---- 1 grid asmadmin 253, 24 May 1 20:37 DATA01
brw-rw---- 1 grid asmadmin 253, 26 May 1 20:37 DATA02
brw-rw---- 1 grid asmadmin 253, 28 May 1 20:37 DATA03
brw-rw---- 1 grid asmadmin 253, 5 May 1 20:37 DATA04
brw-rw---- 1 grid asmadmin 253, 7 May 1 20:38 DATA05
brw-rw---- 1 grid asmadmin 253, 9 May 1 20:38 FRA01
brw-rw---- 1 grid asmadmin 253, 11 May 1 20:38 FRA02
brw-rw---- 1 grid asmadmin 253, 13 May 1 20:38 FRA03
brw-rw---- 1 grid asmadmin 253, 3 May 1 20:38 OCR01
brw-rw---- 1 grid asmadmin 253, 16 May 1 20:38 OCR02
brw-rw---- 1 grid asmadmin 253, 18 May 1 20:38 OCR03
brw-rw---- 1 grid asmadmin 253, 20 May 1 20:38 OCR04
brw-rw---- 1 grid asmadmin 253, 22 May 1 20:38 OCR05
[root@hisdb2 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "OCR01"
Instantiating disk "OCR02"
Instantiating disk "OCR04"
Instantiating disk "OCR05"
Instantiating disk "OCR03"
Instantiating disk "DATA01"
Instantiating disk "DATA03"
Instantiating disk "DATA04"
Instantiating disk "FRA01"
Instantiating disk "DATA05"
Instantiating disk "FRA02"
Instantiating disk "FRA03"
Instantiating disk "DATA02"
[root@hisdb2 ~]# oracleasm listdisks
DATA01
DATA02
DATA03
DATA04
DATA05
FRA01
FRA02
FRA03
OCR01
OCR02
OCR03
OCR04
OCR05
7、软件安装包
节点1执行
# mkdir /soft
上传安装介质到/soft目录
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
p13390677_112040_Linux-x86-64_3of7.zip
解压安装介质
cd /soft
unzip -q p13390677_112040_Linux-x86-64_1of7.zip
unzip -q p13390677_112040_Linux-x86-64_2of7.zip
unzip -q p13390677_112040_Linux-x86-64_3of7.zip
授权目录
# chown -R oracle:oinstall /soft/database
# chown -R grid:oinstall /soft/grid
双节点执行
root用户下,cvuqdisk安装
cd /soft/grid/rpm
rpm -ivh cvuqdisk-1.0.9-1.rpm
传输到节点二安装
scp cvuqdisk-1.0.9-1.rpm hisdb2:/tmp
rpm -ivh /tmp/cvuqdisk-1.0.9-1.rpm
8、互信
# cd /soft/grid/sshsetup --sshUserSetup.sh用来建立互信
节点1执行
#./sshUserSetup.sh -user grid -hosts "hisdb1 hisdb2" -advanced exverify –confirm
#./sshUserSetup.sh -user oracle -hosts "hisdb1 hisdb2" -advanced exverify –confirm
测试互信
双节点执行
grid用户:
[grid@hisdb1 ~]$ ssh hisdb1 date
Sun May 1 22:19:53 CST 2022
[grid@hisdb1 ~]$ ssh hisdb2 date
Sun May 1 22:20:00 CST 2022
[grid@hisdb1 ~]$ ssh hisdb1-priv date
The authenticity of host 'hisdb1-priv (192.168.11.125)' can't be established.
ECDSA key fingerprint is SHA256:Y+ZiUQ4WyQ0jaZXki4By/P3WgPp7TRhWWcZK7dRPB5g.
ECDSA key fingerprint is MD5:55:a1:46:4c:43:d0:5b:1b:f6:94:99:5e:eb:8c:aa:b8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hisdb1-priv,192.168.11.125' (ECDSA) to the list of known hosts.
Sun May 1 22:20:14 CST 2022
[grid@hisdb1 ~]$ ssh hisdb1-priv date
Sun May 1 22:20:20 CST 2022
[grid@hisdb1 ~]$ ssh hisdb2-priv date
The authenticity of host 'hisdb2-priv (192.168.11.126)' can't be established.
ECDSA key fingerprint is SHA256:sKKvdjx/AxZXJXUxa0k/+QZn+727MII/X/asMEIuAYs.
ECDSA key fingerprint is MD5:1a:f0:44:b1:e9:88:d2:1c:3c:9d:26:45:da:6e:8b:be.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hisdb2-priv,192.168.11.126' (ECDSA) to the list of known hosts.
Sun May 1 22:20:29 CST 2022
[grid@hisdb1 ~]$ ssh hisdb2-priv date
Sun May 1 22:20:40 CST 2022
oracle用户
[oracle@hisdb1 ~]$ ssh hisdb1 date
Sun May 1 22:21:41 CST 2022
[oracle@hisdb1 ~]$ ssh hisdb2 date
Sun May 1 22:21:46 CST 2022
[oracle@hisdb1 ~]$ ssh hisdb1-priv date
The authenticity of host 'hisdb1-priv (192.168.11.125)' can't be established.
ECDSA key fingerprint is SHA256:Y+ZiUQ4WyQ0jaZXki4By/P3WgPp7TRhWWcZK7dRPB5g.
ECDSA key fingerprint is MD5:55:a1:46:4c:43:d0:5b:1b:f6:94:99:5e:eb:8c:aa:b8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hisdb1-priv,192.168.11.125' (ECDSA) to the list of known hosts.
Sun May 1 22:21:58 CST 2022
[oracle@hisdb1 ~]$ ssh hisdb1-priv date
Sun May 1 22:22:07 CST 2022
[oracle@hisdb1 ~]$ ssh hisdb2-priv date
The authenticity of host 'hisdb2-priv (192.168.11.126)' can't be established.
ECDSA key fingerprint is SHA256:sKKvdjx/AxZXJXUxa0k/+QZn+727MII/X/asMEIuAYs.
ECDSA key fingerprint is MD5:1a:f0:44:b1:e9:88:d2:1c:3c:9d:26:45:da:6e:8b:be.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hisdb2-priv,192.168.11.126' (ECDSA) to the list of known hosts.
Sun May 1 22:22:16 CST 2022
[oracle@hisdb1 ~]$ ssh hisdb2-priv date
Sun May 1 22:22:23 CST 2022
#需要达到不输入yes
9、安装Grid
备注:节点1执行,安装前重启系统.
[grid@hisdb1 ~]$ export DISPLAY=192.168.133.1:0.0
[grid@hisdb1 ~]$ cd /soft/grid
执行安装程序开始安装,加上jar包防止弹窗不显示问题
[grid@hisdb1 ~]$ ./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
跳过版本更新
修改集群名称和scan名称
注意:scan名称必须与/etc/hosts中配置的scan名称保持一致.
配置grid用户节点间互信
注意:点击Add添加节点二,pubile hostname为hisdb2, virtual hostname为hisdb2-vip
输入密码后点击setup开始互信.
点击Test测试互信:
注意:OCR裁决盘这里冗余模式External,Normal,High对应磁盘数量为1,3,5.
此处若直接运行脚本,在执行第二个时会出现如下报错:
Adding Clusterware entries to inittab
ohasd failed to start
Failed to start the Clusterware. Last 20 lines of the alert log follow:
2022-01-07 00:14:00.117:
[client(39969)]CRS-2101:The OLR was formatted using version 3.
原因:RHEL7使用systemd而不是initd运行进程和重启进程,而root.sh是通过传统的initd运行ohasd进程,此为Linux7安装11204版本,执行root.sh时存在的BUG,需要在执行root.sh前安装补丁18370031修复
18370031补丁安装(双节点执行)
上传补丁包
p18370031_112040_Linux-x86-64.zip
解压补丁包
cd /soft
unzip -q p18370031_112040_Linux-x86-64.zip
授权补丁包
chown -R grid:oinstall /soft/18370031
在grid用户下安装补丁
opatch napply -oh $ORACLE_HOME -local /soft/18370031 -silent 说明:执行过程中不用输入y
开始执行root脚本(双节点执行)
[root@hisdb1 soft]# /u01/app/oraInventory/orainstRoot.sh
[root@hisdb1 soft]# /u01/app/11.2.0/grid/root.sh
未配置DNS,忽略.
以上两个failed忽略,为软件bug.
gi安装完毕.
[grid@hisdb1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
ora.OCR.dg
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
ora.asm
ONLINE ONLINE hisdb1 Started
ONLINE ONLINE hisdb2 Started
ora.gsd
OFFLINE OFFLINE hisdb1
OFFLINE OFFLINE hisdb2
ora.net1.network
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
ora.ons
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE hisdb1
ora.cvu
1 ONLINE ONLINE hisdb1
ora.hisdb1.vip
1 ONLINE ONLINE hisdb1
ora.hisdb2.vip
1 ONLINE ONLINE hisdb2
ora.oc4j
1 ONLINE ONLINE hisdb1
ora.scan1.vip
1 ONLINE ONLINE hisdb1
10、配置asm磁盘
备注:节点1执行,创建DATA、FRA磁盘组.
[grid@hisdb1:/home/grid]$ export DISPLAY=192.168.133.1:0.0
[grid@hisdb1:/home/grid]$ asmca
点击OK创建DATA
按如上方法创建FRA,然后点击exit.
ASMCMD> lsdg
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 4096 1048576 102395 102292 0 102292 0 N DATA/
MOUNTED EXTERN N 512 4096 1048576 61437 61338 0 61338 0 N FRA/
MOUNTED HIGH N 512 4096 1048576 10235 8979 4094 1628 0 Y OCR/
11、安装DB
备注:节点1执行
[oracle@hisdb1 database]$ export DISPLAY=192.168.133.1:0.0
执行安装程序开始安装,加上jar包防止弹窗不显示问题
[oracle@hisdb1 database]$ ./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
不接受oracle更新邮件
输入密码后点击setup开始,成功之后点击test.
说明:如果打算使用hosts文件进行SCAN名称解析,并且ping命令返回正确的SCAN VIP,则可以忽略该错误并继续前进.
[root@hisdb1 ~]# ping hisdb-scan
PING hisdb-scan (192.168.133.164) 56(84) bytes of data.
64 bytes from hisdb-scan (192.168.133.164): icmp_seq=1 ttl=64 time=0.030 ms
Linux7安装11204版本,oracle软件安装过程中报错:ins_emagent.mk,需要修改文件/sysman/lib/ins_emagent.mk来修复
节点1执行以下命令,然后点击继续:
$ vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
将$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL-lnnz11)
[root@hisdb1 ~]# /u01/app/oracle/product/11.2.0/db/root.sh 双节点执行root.sh脚本.
至此,DB软件成功安装
12、创建数据库实例
[oracle@hisdb1:/home/oracle]$ export DISPLAY=192.168.133.1:0.0
[oracle@hisdb1:/home/oracle]$ dbca
选择rac模式
开启闪回区,建库后可随时关闭,
此处注意开启归档,因为后面要建dg,生产环境一般都要开归档.
注意:如果使用自动管理内存,建议使用70%物理内存,前提是/etc/shm要和物理内存一样大.block默认8K,进程数增加到1500.进程数不够会出现连接数据库异常的现象.进程数的设置与pga有关系,此处不做过多说明.
DB实例创建完成,持续时间23:40- 0:30.
13、201020补丁
现对rac两节点打201020补丁 指导网址:https://cdn.modb.pro/db/210288
指导网址适用环境:11.2.0.4 rac+11.2.0.4 dataguard(无asm),rac采用标准安装,数据文件、参数文件、控制文件、归档、redo、undo都保存在asm中,grid和oracle软件安装在每个节点的本地磁盘.
13.1、节点1补丁
备注:打补丁rac无需停服务,只需停对应节点数据库.
13.1.1、停服务
$ srvctl stop instance -d orcl -n hisdb1
$ lsnrctl stop
检查残留进程:ps -ef|grep oracle,停ogg.
13.1.2、安装目录备份
[root@hisdb1 ~]# tar -zcvPf oraclebase.tar.gz /u01/app/oracle >/dev/null
[root@hisdb1 ~]# tar -zcvPf oraInventory.tar.gz /u01/app/oraInventory >/dev/null
[root@hisdb1 ~]# tar -zcvPf gridbase.tar.gz /u01/app/grid >/dev/null
[root@hisdb1 ~]# tar -zcvPf gridhome.tar.gz /u01/app/11.2.0/grid >/dev/null
13.1.3、Opatch处理
sftp> cd /tmp
sftp> lcd F:\installmedium\11g
sftp> put p6880880_112000_Linux-x86-64.zip
[grid@hisdb1 tmp]$ unzip -q -o p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
[oracle@hisdb1 tmp]$ unzip -q -o p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
OPatch版本:
[grid@hisdb1 recover]$ opatch version
OPatch Version: 11.2.0.3.28
OPatch succeeded.
[oracle@hisdb1 ~]$ opatch version
OPatch Version: 11.2.0.3.28
OPatch succeeded.
说明:OPatch版本至少需要11.2.0.3.23,但不能跨大版本,即11g不能使用12c的OPatch
13.1.4、PSU处理
[root@hisdb1 ~]# mkdir /recover
[root@hisdb1 /]# chown -R grid:oinstall /recover
sftp> cd /home/grid
sftp> lcd F:\installmedium\11g
sftp> put p31718723_112040_Linux-x86-64.zip
[grid@hisdb1 ~]$ unzip -q p31718723_112040_Linux-x86-64.zip -d /recover
13.1.5、环境检查
分别切换到grid和oracle用户执行以下命令来检查opatch是否支持对当前数据库打补丁
[oracle@hisdb1 ~]$ $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
[grid@hisdb1 ~]$ $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
13.1.6、检查psu补丁
检查psu补丁是否有冲突
注:必须在psu解压后的目录中执行此命令
[grid@hisdb1 31718723]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
[grid@hisdb1 31718723]$ $ORACLE_HOME/OPatch/opatch prereq CheckActiveFilesAndExecutables -ph ./
注意:标黄命令报错暂不管,很多文档并未执行,不影响补丁的升级.
Oracle Interim Patch Installer version 11.2.0.3.28
Copyright (c) 2022, Oracle Corporation. All rights reserved.
PREREQ session
Oracle Home : /u01/app/11.2.0/grid
Central Inventory : /u01/app/oraInventory
from : /u01/app/11.2.0/grid/oraInst.loc
OPatch version : 11.2.0.3.28
OUI version : 11.2.0.4.0
Log file location : /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2022-05-03_13-10-14PM_1.log
Invoking prereq "checkactivefilesandexecutables"
Prereq "checkActiveFilesAndExecutables" is not executed.
The details are:
No patch location specified.
OPatch failed with error code 2
说明:如果有安装EM,oracle用户需停止dbconsole服务
$ <ORACLE_HOME>/bin/emctl stop dbconsole
13.1.7、补丁升级
说明:rac环境需使用root用户来打补丁
可以先做预演,提早发现异常:
[root@hisdb1 ~]# /u01/app/11.2.0/grid/OPatch/opatch auto /recover/31718723/ -oh /u01/app/11.2.0/grid,/u01/app/oracle/product/11.2.0/db -report
无异常,打gi补丁 (15:55-16:05):
[root@hisdb1 ~]# /u01/app/11.2.0/grid/OPatch/opatch auto /recover/31718723/ -oh /u01/app/11.2.0/grid
有时打完gi补丁后,has服务未自动启动成功,此时需手动启动
[grid@hisdb1 ~]$ crsctl check crs
[grid@hisdb1 ~]$ crsctl check has --如果has服务未启动,则将其启动,然后继续打oracle补丁
[grid@hisdb1 ~]$ crsctl start has
打db补丁(16:09-16:33)
[root@hisdb1 ~]# /u01/app/oracle/product/11.2.0/db/OPatch/opatch auto /recover/31718723/ -oh /u01/app/oracle/product/11.2.0/db
13.1.8、验证
[grid@hisdb1 ~]$ opatch lspatches
29509309;ACFS Patch Set Update : 11.2.0.4.190716 (29509309)
31537677;Database Patch Set Update : 11.2.0.4.201020 (31537677)
29938455;OCW Patch Set Update : 11.2.0.4.191015 (29938455)
OPatch succeeded.
[oracle@hisdb1 ~]$ opatch lspatches
31537677;Database Patch Set Update : 11.2.0.4.201020 (31537677)
29938455;OCW Patch Set Update : 11.2.0.4.191015 (29938455)
OPatch succeeded.
13.1.9、db启动
在升级第二个节点补丁前,可以将第一个节点数据库启动
[oracle@hisdb1 ~]$ srvctl start instance -d orcl -n hisdb1
[oracle@hisdb1 ~]$ srvctl status instance -d orcl -n hisdb1
Instance orcl1 is running on node hisdb1
13.2、节点2补丁
说明:节点1补丁升级结束后,再升级其它节点补丁,不可同时进行.
13.2.1、停服务
$ srvctl stop instance -d orcl -n hisdb2
$ lsnrctl stop
检查残留进程:ps -ef|grep oracle,停ogg.
13.2.2、安装目录备份
[root@hisdb1 ~]# tar -zcvPf oraclebase.tar.gz /u01/app/oracle >/dev/null
[root@hisdb1 ~]# tar -zcvPf oraInventory.tar.gz /u01/app/oraInventory >/dev/null
[root@hisdb1 ~]# tar -zcvPf gridbase.tar.gz /u01/app/grid >/dev/null
[root@hisdb1 ~]# tar -zcvPf gridhome.tar.gz /u01/app/11.2.0/grid >/dev/null
13.2.3、Opatch处理
节点2上传补丁包 psu opatch
sftp> cd /tmp
sftp> lcd F:\installmedium\11g
sftp> put p6880880_112000_Linux-x86-64.zip
[grid@hisdb2 tmp]$ unzip -q -o p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
[oracle@hisdb2 tmp]$ unzip -q -o p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
13.2.4、PSU处理
[root@hisdb2 ~]# mkdir /recover
[root@hisdb2 /]# chown -R grid:oinstall /recover
sftp> cd /home/grid
sftp> lcd F:\installmedium\11g
sftp> put p31718723_112040_Linux-x86-64.zip
[grid@hisdb2 tmp]$ unzip -q p31718723_112040_Linux-x86-64.zip -d /recover
13.2.5、补丁升级
打gi补丁PSU (16:50-17:00)
[root@hisdb2 recover]# /u01/app/11.2.0/grid/OPatch/opatch auto /recover/31718723/ -oh /u01/app/11.2.0/grid/
[grid@hisdb2 ~]$ crsctl check crs
[grid@hisdb2 ~]$ crsctl check has --如果has服务未启动,则将其启动,然后继续打oracle补丁
[grid@hisdb2 ~]$ crsctl start has
打db补丁(17:03-17:09)
[root@hisdb2 recover]# /u01/app/oracle/product/11.2.0/db/OPatch/opatch auto /recover/31718723/ -oh /u01/app/oracle/product/11.2.0/db
验证:
[grid@hisdb2 ~]$ opatch lspatches
29509309;ACFS Patch Set Update : 11.2.0.4.190716 (29509309)
31537677;Database Patch Set Update : 11.2.0.4.201020 (31537677)
29938455;OCW Patch Set Update : 11.2.0.4.191015 (29938455)
[oracle@hisdb2 ~]$ /u01/app/oracle/product/11.2.0/db/OPatch/opatch lspatches
31537677;Database Patch Set Update : 11.2.0.4.201020 (31537677)
29938455;OCW Patch Set Update : 11.2.0.4.191015 (29938455)
14、dg搭建
14.1、移除虚拟嵌套
[root@hisdb1 ~]# yum remove libvirt-libs
14.2、网卡配置
ifcfg-ens33做如下修改,主要是bootproto
[root@hisdg network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=d2440d99-31de-4cd9-a767-68486090592f
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.133.168
PREFIX=24
GATEWAY=192.168.133.2
DNS1=192.168.133.2
IPV6_PRIVACY=no
[root@hisdg network-scripts]# service network restart
14.3、配置Yum源
[root@hisdg ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@hisdg ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 13M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 91G 4.3G 87G 5% /
/dev/sda1 1014M 185M 830M 19% /boot
tmpfs 781M 48K 781M 1% /run/user/1000
/dev/sr0 4.4G 4.4G 0 100% /mnt
tmpfs 781M 0 781M 0% /run/user/0
[root@hisdg ~] # cat <<EOF>>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF
[root@hisdg ~]# # yum makecache
14.4、安装依赖包
[root@hisdg ~]# yum groupinstall -y "Server with GUI"
yum install -y 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* \
tigervnc* \
psmisc --skip-broken
#手动上传并安装依赖包:pdksh-5.2.14-37.el5.x86_64.rpm和compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
[root@hisdg ~]# rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
[root@hisdg ~]# rpm -e ksh-20120801-143.el7_9.x86_64
[root@hisdg ~]# rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm
检查依赖包安装情况
# rpm -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"
注意:package ksh is not installed 对后面安装无影响
14.5、关闭防火墙
# systemctl status firewalld.service
# systemctl stop firewalld.service
# systemctl disable firewalld.service
14.6、禁用selinux
将SELINUX修改为disabled
[root@hisdb1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config [root@hisdb1 ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted |
注意:需重启主机,才能生效
14.7、修改/etc/sysctl.conf文件
# cat <<EOF>>/etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8181829631
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 = 1048576
net.ipv4.conf.ens33.rp_filter = 1
EOF
# /sbin/sysctl -p
14.8、修改用户限制
[root@hisdg ~]# cat <<EOF>>/etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728
EOF
14.9、修改/etc/pam.d/login文件
[root@hisdg ~]# cat <<EOF>>/etc/pam.d/login
session required pam_limits.so
session required /lib64/security/pam_limits.so
EOF
14.10、创建用户、用户组、目录
创建组
/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/groupadd -g 54323 oper
创建用户
/usr/sbin/useradd -u 54321 -g oinstall -G dba,oper oracle
修改密码
echo "oracle_4U" |passwd oracle --stdin
创建目录
mkdir -p /u01/app/oracle/product/11.2.0/db
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oralnventory
chmod -R 775 /u01/app/oralnventory
14.11、设置oracle用户环境变量
oracle用户:
$ cat <<EOF>>/home/oracle/.bash_profile
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcldg
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysdba'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
EOF
$ source .bash_profile
14.12、修改/etc/profile文件
# cat <<EOF>>/etc/profile
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
# source /etc/profile
备注:此为设置系统限制
14.13、上传安装包
# mkdir -p /u01/setup/db
sftp> cd /u01/setup/db
sftp> lcd F:\installmedium\11g
sftp> put p13390677_112040_Linux-x86-64_1of7.zip
sftp> put p13390677_112040_Linux-x86-64_2of7.zip
# chown -R oracle:oinstall /u01/setup/db
[oracle@hisdg db]$ unzip -q p13390677_112040_Linux-x86-64_1of7.zip
[oracle@hisdg db]$ unzip -q p13390677_112040_Linux-x86-64_2of7.zip
14.14、开始安装
$ export DISPLAY=192.168.133.1:0.0
$ ./runInstaller
$ vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
将$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL-lnnz11)
# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/oracle/product/11.2.0/db/root.sh
DB软件安装完毕.
14.15、添加监听
[oracle@hisdg ~]$ netca
监听安装成功.
14.16、主库配置
节点1配置:
SQL> select log_mode,force_logging from v$database;
LOG_MODE FOR
------------ ---
ARCHIVELOG NO
SQL> alter database force logging;
Database altered.
SQL> select log_mode,force_logging from v$database;
LOG_MODE FOR
------------ ---
ARCHIVELOG YES
SQL> show parameter config
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1 string /u01/app/oracle/product/11.2.0
/db/dbs/dr1orcl.dat
dg_broker_config_file2 string /u01/app/oracle/product/11.2.0
/db/dbs/dr2orcl.dat
log_archive_config string
设置dg配置
SQL> alter system set log_archive_config='dg_config=(orcl,orcldg)';
System altered.
设置本地归档路径
SQL> alter system set log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=orcl' sid='*';
System altered.
设置归档目的地为备库
SQL> alter system set log_archive_dest_2='service=orcldg lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcldg' sid='*';
System altered.
将对应归档状态开启
SQL> alter system set log_archive_dest_state_1='enable';
SQL> alter system set log_archive_dest_state_2='enable';
SQL> show parameter standby
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_archive_dest string ?/dbs/arch
standby_file_management string MANUAL
SQL> select group#,bytes/1024/1024 as M from v$standby_log;
no rows selected
设置文件管理模式为自动
说明:如果不设置,主库创建数据文件后,备库不会自动创建
SQL> alter system set standby_file_management=AUTO;
System altered.
SQL> show parameter standby
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_archive_dest string ?/dbs/arch
standby_file_management string AUTO
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/orcl/spfileorcl.ora
两节点tns配置
[oracle@hisdb1 admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hisdb-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
orcldg =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.133.168)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcldg)
)
)
#蓝色为增加部分,若备库hosts文件没有添加scan ip,如:192.168.133.164 hisdb-scan,那么tns文件中需使用备库的ip 192.168.133.168,勿使用备库主机名.
拷贝口令文件、pfile、tns文件到备库对应位置
SQL> create pfile='/home/oracle/pfile.ora' from spfile;
[oracle@hisdb1 ~]$ scp pfile.ora oracle@192.168.133.168:/u01/app/oracle/product/11.2.0/db/dbs
[oracle@hisdb1 dbs]$ scp orapworcl1 oracle@192.168.133.168:/u01/app/oracle/product/11.2.0/db/dbs
[oracle@hisdb1 admin]$ scp tnsname.ora oracle@192.168.133.168:/u01/app/oracle/product/11.2.0/db/network/admin
确定要创建的standby日志组数
SQL> select thread#,group#,members,bytes/1024/1024 as M from v$log;
THREAD# GROUP# MEMBERS M
---------- ---------- ---------- ----------
1 1 2 50
1 2 2 50
2 3 2 50
2 4 2 50
因此在备库需要添加4(组)*2(节点数)+1=9组standby日志.
14.17、备库配置
14.17.1、备库重命名密码文件
[oracle@hisdg dbs]$ ll
total 12
-rw-r--r--. 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-r-----. 1 oracle oinstall 1536 May 2 15:44 orapworcl1
-rw-r--r--. 1 oracle oinstall 1662 May 2 15:42 pfile.ora
[oracle@hisdg dbs]$ mv orapworcl1 orapworcldg
14.17.2、修改参数文件
[oracle@hisdg dbs]$ vi pfile.ora
[oracle@hisdg dbs]$ cat pfile.ora
*.audit_trail='db'
*.cluster_database=false
*.compatible='11.2.0.4.0'
*.db_block_size=8192
*.db_domain=''
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=817889280
*.processes=1500
*.sessions=1655
*.sga_target=2453667840
*.standby_file_management='AUTO'
*.audit_file_dest='/u01/app/oracle/admin/orcldg/adump'
*.undo_tablespace='UNDOTBS1'
*.db_name='orcl'
*.db_unique_name='orcldg'
*.db_recovery_file_dest='/u01/app/fast_recovery_area'
*.db_recovery_file_dest_size=6005194752
*.log_archive_config='dg_config=(orcl,orcldg)'
*.log_archive_dest_1='location=/u01/app/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=orcldg'
*.log_archive_dest_2='service=orcl lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcl'
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'
*.remote_login_passwordfile='exclusive'
*.fal_client='orcldg'
*.fal_server='orcl'
*.control_files='/u01/app/controlfile/control01.ctl'
*.db_file_name_convert='+DATA/orcl/datafile/','/u01/app/oradata/'
*.log_file_name_convert='+DATA/orcl/onlinelog/','/u01/app/oradata/','+FRA/orcl/onlinelog/','/u01/app/oradata/','+DATA/orcl/controlfile/','/u01/app/controlfile/'
14.17.3、创建相应文件目录
根据修改的参数文件,为备库创建相应的文件目录:
[oracle@hisdg dbs]$ mkdir -p /u01/app/oracle
[oracle@hisdg dbs]$ mkdir -p /u01/app/oracle/admin/orcldg/adump
[oracle@hisdg dbs]$ mkdir -p /u01/app/fast_recovery_area
[oracle@hisdg dbs]$ mkdir -p /u01/app/controlfile/
[oracle@hisdg dbs]$ mkdir -p /u01/app/oradata/
[oracle@hisdg dbs]$ mkdir -p /u01/app/controlfile/
14.17.4、修改监听配置文件
[oracle@hisdg admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcldg)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db)
(SID_NAME = orcldg)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.133.168)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
#蓝色为添加部分,修改后重启监听.
14.17.5、启动备库到nomount
备库以参数文件启动到nomount状态.
SQL> startup nomount pfile='/u01/app/oracle/product/11.2.0/db/dbs/pfile.ora'
SQL> create spfile from pfile='/u01/app/oracle/product/11.2.0/db/dbs/pfile.ora';
SQL> shutdown immediate
SQL> startup nomount
14.17.6、验证tns
主库:
ping 192.168.133.168
tnsping orcldg
备库:
ping 192.168.133.160
tnsping orcl
14.17.6.1、主库验证
[oracle@hisdb1 ~]$ sqlplus sys/oracle_4U@orcldg as sysdba
SQL> show parameter db_unique_name
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
db_unique_name string orcldg
[oracle@hisdb1 ~]$ sqlplus sys/oracle_4U@orcl as sysdba
SQL> show parameter db_unique_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_unique_name string orcl
14.17.6.2、备库验证
[oracle@hisdg ~]$ sqlplus sys/oracle_4U@orcldg as sysdba
SQL> show parameter db_unique_name
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
db_unique_name string orcldg
[oracle@hisdg ~]$ sqlplus sys/oracle_4U@orcl as sysdba
SQL> show parameter db_unique_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_unique_name string orcl
14.17.7、复制数据库
[oracle@hisdg ~]$ rman target sys/oracle_4U@orcl auxiliary sys/oracle_4U@orcldg
Recovery Manager: Release 11.2.0.4.0 - Production on Mon May 2 21:33:58 2022
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1631367904)
connected to auxiliary database: ORCL (not mounted)
RMAN> duplicate target database for standby nofilenamecheck from active database;
14.17.8、创建standby log
备库创建standby_log,open备库开启实时应用
SQL> alter database add standby logfile thread 1 group 5 '/u01/app/oradata/standby15.log' size 50M;
SQL> alter database add standby logfile thread 1 group 6 '/u01/app/oradata/standby16.log' size 50M;
SQL> alter database add standby logfile thread 1 group 7 '/u01/app/oradata/standby17.log' size 50M;
SQL> alter database add standby logfile thread 2 group 8 '/u01/app/oradata/standby28.log' size 50M;
SQL> alter database add standby logfile thread 2 group 9 '/u01/app/oradata/standby29.log' size 50M;
SQL> alter database add standby logfile thread 2 group 10 '/u01/app/oradata/standby210.log' size 50M;
SQL> alter database open;
SQL> alter database recover managed standby database using current logfile disconnect from session;
14.17.9、验证
查看备库读写状态
SQL> select open_mode,database_role from v$database;
OPEN_MODE DATABASE_ROLE
-------------------- ----------------
READ ONLY WITH APPLY PHYSICAL STANDBY
主库切换日志,查看备库日志情况
主库:
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
98
备库:
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
98
主库切换日志:
SQL> alter system archive log current;
System altered.
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
99
备库:
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
99
主库创建表并在两个节点分别插入数据,在备库查询
主库执行:
SQL> create table test(id number);
Table created.
节点一插入数据:
SQL> insert into test values (1);
1 row created.
SQL> commit;
Commit complete.
在备库查询:
SQL> select * from test;
ID
----------
1
节点二插入数据:
SQL> insert into test values (2);
1 row created.
SQL> commit;
Commit complete.
在备库查询:
SQL> select * from test;
ID
----------
1
2
DG同步验证成功
15、备库补丁升级
说明:此为非asm单机oracle环境,使用oracle用户打补丁.
15.1、补丁包上传
sftp> cd /tmp
sftp> lcd F:\installmedium\11g
sftp> put p6880880_112000_Linux-x86-64.zip
sftp> cd /home/oracle
sftp> lcd F:\installmedium\11g\11.2.0.4.201020
sftp> put p31537677_112040_Linux-x86-64.zip
[oracle@hisdg dbs]$ $ORACLE_HOME/OPatch/opatch lspatches
There are no Interim patches installed in this Oracle Home.
15.2、备份目录
[root@hisdb1 ~]# tar -zcvPf oraclebase.tar.gz /u01/app/oracle >/dev/null
[root@hisdb1 ~]# tar -zcvPf oraInventory.tar.gz /u01/app/oraInventory >/dev/null
15.3、处理升级包
[oracle@hisdg tmp]$ unzip -q -o p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
[oracle@hisdg db]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.28
OPatch succeeded.
[root@hisdg /]# mkdir /recover
[root@hisdg /]# chown -R oracle:oinstall /recover
[oracle@hisdg ~]# unzip -q p31537677_112040_Linux-x86-64.zip –d /recover
15.4、检查
检查opatch是否能正常应用补丁.
[oracle@hisdg ~]$ cd /recover/31537677
[oracle@hisdg ~]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
15.5、停相关服务
sql > alter database recover managed standby database cancel;
sql > shutdown immediate
[oracle@hisdg OPatch]$ lsnrctl stop
检查是否存在残留进程:ps -ef|grep oracle如果有ogg,也需要将ogg全部停掉
15.6、安装补丁
[oracle@hisdg OPatch]$ ./opatch apply /recover/31537677
……
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
Composite patch 31537677 successfully applied.
OPatch Session completed with warnings.
Log file location: /u01/app/oracle/product/11.2.0/db/cfgtoollogs/opatch/opatch2022-05-02_16-19-56PM_1.log
OPatch completed with warnings.
15.7、验证
[oracle@hisdg OPatch]$ $ORACLE_HOME/OPatch/opatch lspatches
31537677;Database Patch Set Update : 11.2.0.4.201020 (31537677)
OPatch succeeded.
说明:正常情况此处还应有29938455;OCW Patch Set Update : 11.2.0.4.191015 (29938455)此补丁包.
15.8、启动备库
启动dg、监听、开启同步进程
lsnrctl start
sqlplus / as sysdba
startup
alter database recover managed standby database using current logfile disconnect from session;
15.9、备库应用以及补丁情况
SQL> select process,status,sequence# from v$managed_standby;
PROCESS STATUS SEQUENCE#
--------- ------------ ----------
ARCH CLOSING 30
ARCH CLOSING 115
ARCH CONNECTED 0
ARCH CLOSING 28
RFS IDLE 0
RFS IDLE 0
RFS IDLE 0
RFS IDLE 0
RFS IDLE 0
RFS IDLE 116
RFS IDLE 31
PROCESS STATUS SEQUENCE#
--------- ------------ ----------
MRP0 APPLYING_LOG 31
12 rows selected.
SQL> col action for a20
SQL> col version for a20
SQL> col bundle_series for a20
SQL> col comments for a20
SQL> set line 200
SQL> select ACTION,VERSION,BUNDLE_SERIES,COMMENTS from dba_registry_history;
ACTION VERSION BUNDLE_SERIES COMMENTS
-------------------- -------------------- -------------------- --------------------
APPLY 11.2.0.4 PSU Patchset 11.2.0.2.0
APPLY 11.2.0.4 PSU PSU 11.2.0.4.201020
SQL> r
1* select action_time,action,namespace,version,bundle_series,id from registry$history
ACTION_TIME ACTION NAMESPAC VERSION BUNDLE_SERIES ID
------------------------------ -------------------- -------------------- -------------------- -------------------- ----------
02-MAY-22 12.26.48.318059 AM APPLY SERVER 11.2.0.4 PSU 0
03-MAY-22 05.17.43.269545 PM APPLY SERVER 11.2.0.4 PSU 201020
16、更新信息
rac主节点更新字典
[oracle@hisdb1 ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@hisdb1 admin]$ sqlplus / as sysdba
SQL> @catbundle.sql psu apply
….
2 (action_time, action,
3 namespace, version, id,
4 bundle_series, comments)
5 VALUES
…
处理无效对象
SQL> @utlrp.sql
如果有使用catalog,更新rman catalog
$ rman catalog username/password@alias
RMAN> UPGRADE CATALOG;
说明:本次rac+dg+补丁实验结束,如果条件允许,所有环境重启一次.