本文档描述在Oracle Linux 8.9操作系统平台安装ORACLE 19c RAC环境并更新版本至19.22的过程。
查询ORACLE MOS认证列表,查询到Oracle Database 19.0.0.0已在OEL8.X上通过认证;UEK内核版本大于5.4.17;RHCK内核版本大于4.18.0。
所需软件列表:
序号 |
软件名称 |
软件列表 |
1 |
操作系统 |
OEL8.9 |
2 |
基础软件包 |
LINUX.X64_193000_db_home.zip |
LINUX.X64_193000_grid_home.zip |
||
3 |
OPatch工具 |
p6880880_190000_Linux-x86-64.zip |
4 |
RU补丁包(含GI\DB\OJVM) |
p36031453_190000_Linux-x86-64.zip |
5 |
GI ONE-OFF补丁 |
p34672698_1922000DBRU_Linux-x86-64.zip |
6 |
DB ONE-OFF补丁 |
p35985645_1922000DBRU_Linux-x86-64.zip |
DB ONE-OFF补丁 |
p35778398_1922000DBRU_Linux-x86-64.zip |
|
DB ONE-OFF补丁 |
p34672698_1922000DBRU_Linux-x86-64.zip |
|
DB ONE-OFF补丁 |
p35692839_1922000DBRU_Linux-x86-64.zip |
|
DB ONE-OFF补丁 |
p34774667_1922000DBRU_Linux-x86-64.zip |
|
DB ONE-OFF补丁 |
p29213893_1922000DBRU_Generic.zip |
Ø 相关安装介质统一上传到/u01/install 目录下,OPatch 工具、RU补丁、ONE-OFF 补丁需要在两个节点都上传,Database 和 Grid 软件仅需在节点一上传;
Ø Oracle 19c 会在 ID 555.1 文档上推荐一些
ONE-OFF补丁,我们应用的是 19.22 官方建议的ONE-OFF补丁。
操作系统使用OEL8.9,内核版本大于UEK5.4.17。
文件系统:
/u01和/目录建议使用不同的磁盘,创建不同的VG
挂载点/目录 |
推荐大小 |
用途说明 |
/ |
|
|
/home |
|
|
/tmp |
|
|
/u01 |
|
存放 DB 安装软件和运行日志 |
安装目录
目录名称 |
规划路径 |
集群软件BASE目录 |
/u01/app/grid |
集群软件HOME目录 |
/u01/app/19.0.0/grid |
软件清单目录 |
/u01/app/oraInventory |
数据库软件BASE目录 |
/u01/app/oracle |
数据库软件HOME目录 |
/u01/app/oracle/product/19.0.0/dbhome_1 |
软件介质存放目录 |
/u01/install |
Ø 数据库类型:Oracle
Ø 数据库版本:19.3.0.0(补丁集19.22), 64位
Ø 数据库SID:hxdb1,hxdb2,hxdb3,hxdb4
Ø 数据库名:hxdb
Ø 语言:AMERICAN_AMERICA
Ø 数据库字符集(NLS_CHARACTERSET):AL32UTF8
Ø 国家区域字符集(NLS_NCHAR_CHARACTERSET):AL16UTF16
ASM磁盘组规划 |
|||
磁盘组名称 |
冗余度 |
容量 |
用途 |
+OCR |
HIGH |
10G*5 |
OCR、VoteDisk |
+FRA |
EXTERN |
- |
REDO LOG |
+DATA01 |
EXTERN |
- |
DATA_FILE |
+ARCH |
EXTERN |
- |
FLASH\ARCHIVE LOG |
|
节点1 |
节点2 |
节点3 |
节点4 |
主机名 |
db19crac1 |
db19crac2 |
db19crac3 |
db19crac4 |
Public域名 |
db19crac1.tzwdb.com |
db19crac2.tzwdb.com |
db19crac3.tzwdb.com |
db19crac4.tzwdb.com |
Public IP |
200.200.200.60 |
200.200.200.61 |
200.200.200.62 |
200.200.200.63 |
Virtual名称 |
db19crac1vip |
db19crac2vip |
db19crac3vip |
db19crac4vip |
Virtual域名 |
db19crac1vip.tzwdb.com |
db19crac2vip.tzwdb.com |
db19crac3vip.tzwdb.com |
db19crac4vip.tzwdb.com |
Virtual IP |
200.200.200.64 |
200.200.200.65 |
200.200.200.66 |
200.200.200.67 |
Private名称 |
db19crac1prv |
db19crac2prv |
db19crac3prv |
db19crac4prv |
Private域名 |
db19crac1prv.tzwdb.com |
db19crac2prv.tzwdb.com |
db19crac3prv.tzwdb.com |
db19crac4prv.tzwdb.com |
Private IP |
10.10.10.60 |
10.10.10.61 |
10.10.10.62 |
10.10.10.63 |
SCAN名称 |
db19scan |
|||
SCAN域名 |
db19scan.tzwdb.com |
|||
SCAN IP |
200.200.200.68/69/70 |
|||
集群名称 |
db19c-cluster |
uname –a |
注:必须要求内核版本不低于5.4.17
free -m |
swapon -s |
swap 大小配置参考如下:
物理内存 |
swap |
小于8GB |
设置为内存的2倍 |
8GB-16GB |
设置为与内存相等 |
16GB-64GB |
设置为32GB |
大于16GB |
设置为16GB |
df -h |
date –R timedatectl |grep “Time zone” ## 如果不是东八区,通过下面命令修改 ## timedatectl set-timezone
"Asia/Shanghai" |
注:需要确保所有节点的时间和时区是一致的
rpm -q --qf
'%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n' \ bc \ binutils \ elfutils-libelf \ elfutils-libelf-devel \ fontconfig-devel \ glibc \ glibc-devel \ ksh \ libaio \ libaio-devel \ libXrender \ libX11 \ libXau \ libXi \ libXtst \ libgcc \ libnsl \ librdmacm \ libstdc++ \ libstdc++-devel \ libxcb \ libibverbs \ make \ policycoreutils \ policycoreutils-python-utils \ smartmontools \ sysstat | grep "not installed" |
cat >>/etc/hosts << EOF #public ip 200.200.200.60 db19crac1 db19crac1.tzwdb.com 200.200.200.61 db19crac2 db19crac2.tzwdb.com 200.200.200.62 db19crac3 db19crac3.tzwdb.com 200.200.200.63 db19crac4 db19crac4.tzwdb.com #priv ip 10.10.10.60 db19crac1prv db19crac1prv.tzwdb.com 10.10.10.61 db19crac2prv db19crac2prv.tzwdb.com 10.10.10.62 db19crac3prv db19crac3prv.tzwdb.com 10.10.10.63 db19crac4prv db19crac4prv.tzwdb.com #vip ip 200.200.200.64 db19crac1vip
db19crac1vip.tzwdb.com 200.200.200.65 db19crac2vip db19crac2vip.tzwdb.com 200.200.200.66 db19crac3vip
db19crac3vip.tzwdb.com 200.200.200.67 db19crac4vip
db19crac4vip.tzwdb.com #scan ip 200.200.200.68 db19scan db19scan.tzwdb.com 200.200.200.69 db19scan db19scan.tzwdb.com 200.200.200.70 db19scan db19scan.tzwdb.com #For DNS Server 200.200.200.250 oracledns tzwdb.com
oracledns.tzwdb.com EOF |
##如果使用DNS,需要对DNS进行如下配置: cat >> /etc/resolv.conf << EOF search tzwdb.com oracledns.tzwdb.com
localdomain nameserver 200.200.200.250 options timeout:2 options attempts:5 EOF cat >> /etc/host.conf << EOF order bind,hosts multi on EOF ##如果未使用DNS,建议关闭DNS解析 mv /etc/resolv.conf /etc/resolv.conf.bak |
systemctl stop firewalld.service systemctl disable firewalld.service systemctl status firewalld.service |
getenforce sed -i 's/SELINUX=enforcing/SELINUX=disabled/'
/etc/selinux/config cat /etc/selinux/config setenforce 0 getenforce |
## 调整MTU值 netstat –in ifconfig 网卡名 mtu 9000 cat >> /etc/sysconfig/network-scripts/ifcfg-xxx
<< EOF MTU=9000 EOF cat /etc/sysconfig/network-scripts/ifcfg-xxx ifconfig xxx down ifconfig xxx up netstat -in ## 修改lo回环网卡的MTU值 当 linux 系统上 lo 接口的 MTU 过大,会存在一些 BUG,检查 LO 网卡的 MTU,如果是 65536,需要修改为16436 参见 MOS 文档:ORA-27301: OS Failure Message: No Buffer Space Available /
ORA-27302: failure occurred at: sskgxpsnd2 Source Script (Doc ID 2322410.1) netstat -in ifconfig lo mtu 16436 cat >>
/etc/sysconfig/network-scripts/ifcfg-lo << EOF MTU=16436 EOF cat /etc/sysconfig/network-scripts/ifcfg-lo ifconfig lo down ifconfig lo up netstat -in |
## 配置YUM源 mount /dev/cdrom /mnt cd /etc/yum.repos.d mkdir bk mv *.repo bk/ echo "[EL8-1]" >>
/etc/yum.repos.d/oel8.9.repo echo "name =Linux-8-DVD1" >>
/etc/yum.repos.d/oel8.9.repo echo "baseurl=file:///mnt/AppStream"
>> /etc/yum.repos.d/oel8.9.repo echo "gpgcheck=0" >>
/etc/yum.repos.d/oel8.9.repo echo "enabled=1" >>
/etc/yum.repos.d/oel8.9.repo echo "[EL8-2]" >>
/etc/yum.repos.d/oel8.9.repo echo "name =Linux-8-DVD2" >>
/etc/yum.repos.d/oel8.9.repo echo "baseurl=file:///mnt/BaseOS"
>> /etc/yum.repos.d/oel8.9.repo echo "gpgcheck=0" >>
/etc/yum.repos.d/oel8.9.repo echo "enabled=1" >>
/etc/yum.repos.d/oel8.9.repo cat /etc/yum.repos.d/oel8.9.repo dnf clean all dnf makecache ##安装依赖包 dnf install -y bc dnf install -y binutils dnf install -y elfutils-libelf dnf install -y elfutils-libelf-devel dnf install -y fontconfig-devel dnf install -y glibc dnf install -y glibc-devel dnf install -y ksh dnf install -y libaio dnf install -y libaio-devel dnf install -y libXrender dnf install -y libX11 dnf install -y libXau dnf install -y libXi dnf install -y libXtst dnf install -y libgcc dnf install -y libnsl dnf install -y librdmacm dnf install -y libstdc++ dnf install -y libstdc++-devel dnf install -y libxcb dnf install -y libibverbs dnf install -y make dnf install -y policycoreutils dnf install -y policycoreutils-python-utils dnf install -y smartmontools dnf install -y sysstat |
## 多播DNS网络服务,对RAC有影响,关闭后减少因多播产生的网卡流量 systemctl stop avahi-daemon.socket systemctl stop avahi-daemon.service systemctl disable avahi-daemon.socket systemctl disable avahi-daemon.service systemctl disable avahi-daemon |
cat >> /etc/pam.d/login <<EOF #ORACLE SETTING session required pam_limits.so EOF |
以下内核参数配置数值来自官方建议(Doc ID 1587357.1)
## 计算
kernel.shmmax echo "`cat /proc/meminfo | grep
"MemTotal" | awk '{print $2}'` * 1024 * 0.8" | bc | sed
's#\..*$##' ## 计算
kernel.shmall kernel.shmmax/kernel.shmmni ## 修改内核参数 cat >>
/etc/sysctl.d/97-oracle-database-sysctl.conf << EOF #ORACLE SETTING fs.aio-max-nr = 4194304 fs.file-max = 6815744 kernel.shmall = 前面计算的值 kernel.shmmax = 前面计算的值 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 net.ipv4.ipfrag_high_thresh = 16777216 net.ipv4.ipfrag_low_thresh = 15728640 kernel.randomize_va_space = 0 vm.swappiness =10 vm.min_free_kbytes = 524288 kernel.panic_on_oops = 1 vm.dirty_background_ratio = 3 vm.dirty_ratio = 10 vm.dirty_writeback_centisecs = 100 vm.dirty_expire_centisecs = 500 EOF ## 生效 /sbin/sysctl --system ## 在使用多块私网网卡的情况下需要设置 rp_filter(多块私网卡才需要设置) 注:rp_filter 参数有三个值:0、1、2,默认为 1,具体含义为: 0 关闭反向路径校验 1 开启严格的反向路径校验 2 开启松散的反向路径校验 在使用多块私网网卡的情况下,需要对每块私网网卡都设置为 2,否则在默认的严格的反向路径校验规则下,因为数据包接收的网卡和响应数据包发出的网卡可能不是同一个物理网卡而丢弃该数据包。 如下假如 eth2、eth3
是私网网卡: cat >> /etc/sysctl.d/97-oracle-database-sysctl.conf
<< EOF net.ipv4.conf.eth2.rp_filter = 2 net.ipv4.conf.eth3.rp_filter = 2 EOF ## 生效 /sbin/sysctl --system |
以下资源限制参数值来自官方文档(https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/checking-resource-limits-for-oracle-software-installation-users.html#GUID-293874BD-8069-470F-BEBF-A77C06618D5A)
cat >> /etc/security/limits.conf
<<EOF #ORACLE SETTING # * soft memlock unlimited # * hard memlock unlimited oracle soft nproc 163840 oracle hard nproc 163840 oracle soft nofile 655360 oracle hard nofile 655360 oracle soft stack 10240 grid soft nproc 163840 grid hard nproc 163840 grid soft nofile 655360 grid hard nofile 655360 grid soft stack 10240 EOF 注:如果设置了大页内存,必须设置memlock限制参数。 |
## 关闭透明页 sed -i
's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="transparent_hugepage=never
/g' /etc/default/grub ## 判断操作系统是否使用 UEFI 方式启动 ls -ld /sys/firmware/efi ## 如果上面查询目录存在使用如下方式重建 grub 配置文件(针对 EFI 方式) grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg ## 否则使用如下方式重建 grub 配置文件(针对 BIOS 方式) grub2-mkconfig -o /boot/grub2/grub.cfg ## 重启操作系统后验证 cat /sys/kernel/mm/transparent_hugepage/enabled |
## 计算当前需要设置的大页数量 cat >>
/etc/sysctl.d/97-oracle-database-sysctl.conf << EOF vm.nr_hugepages >= SGA_Target(+1GB/500MB)/Hugepagesize(2M) EOF 例如: SGA=100G vm.nr_hugepages=(100+1) * 1024 / 2=51712 注:SGA 是当前服务器上所有实例的 SGA 总和(包括 ASM 实例) |
1) 使用 chrony服务同步
cp /etc/chrony.conf /etc/chrony.conf.bak cat >> /etc/chrony.conf << EOF server 时钟同步服务器IP地址 allow 200.200.200.0/24 local stratum 10 EOF ##启动chrony服务 systemctl enable chronyd.service systemctl restart chronyd.service systemctl status chronyd.service ## 查看同步源 chronyc sources –v ## 查看同步统计信息 chronyc sourcestats ##强制同步 chronyc
-a makestep date clockdiff IP地址 |
2) 使用 ntp服务同步
## 禁用chrony服务 systemctl stop chronyd.service systemctl disable chronyd.service systemctl status chronyd.service ## 安装ntp软件包 dnf install ntp ntpdate –y cat >> /etc/ntp.conf << EOF server ntp服务器IP地址iburst EOF ## 启动NTP服务 systemctl enable ntpd.service systemctl start ntpd.service systemctl status ntpd.service ## 查看ntp服务源并手工同步 ntpq -p ntpdate -u ntp服务器IP地址 ntpstat |
3) 使用 ctss服务同步
## 在没有时间同步服务器的情况下,可以采用Oracle集群自导的CTSS做节点之间的时钟同步,前提是需要关闭chrony和ntp服务 systemctl disable ntpd.service systemctl stop ntpd.service systemctl disable chronyd.service systemctl stop chronyd.service systemctl status ntpd.service systemctl status chronyd.service ## 删除ntp和chrony的配置文件 mv /etc/chrony.conf /etc/chrony.conf.bak mv /etc/ntp.conf /etc/ntp.conf.bak ## 检查集群自带的ctss是否生效 crsctl check ctss |
##关闭NOZEROCONF 当操作系统无法通过DHCP获取IP地址时,就会尝试通过NOZEROCONF获取,此时就会在系统中多出199.254.0.0网段的路由。 echo "NOZEROCONF=yes" >>
/etc/sysconfig/network |
## 检查是否开启NUMA dmesg | grep -i numa ## 关闭NUMA sed -i
's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="numa=off /g'
/etc/default/grub # 判断操作系统是否使用 UEFI 方式启动 ls -ld /sys/firmware/efi ## 如果上面查询目录存在使用如下方式重建 grub 配置文件(针对 EFI 方式) grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg ## 否则使用如下方式重建 grub 配置文件(针对 BIOS 方式) grub2-mkconfig -o /boot/grub2/grub.cfg ##重启后验证是否关闭 dmesg | grep -i numa |
## 配置xmanager打开图形化 vi /etc/ssh/sshd_config SSH X11Forwarding yes systemctl status sshd.service systemctl restart sshd.service ## 安装xterm dnf install xclock xterm ## 验证是否能打开图形化 xclock |
## 扫描磁盘 lsblk >> /tmp/diskinfo.log cd /sys/class/scsi_host/ for i in *; do echo ‘- - -’>$i/scan;done lsblk >> /tmp/disknew.log ## 检查ASM共享磁盘是否为空盘 hexdump -n 1024 -C /dev/sd? ## 检查磁盘的UUID for d in `fdisk -l |grep /dev/sd | egrep -v
"sda|sdb" | sort -k 2 | awk '{print $2":"$3$4}' | sed
's/://' ` do i=`echo $d|awk -F':' '{print $1}'` echo -n $d;echo -n " " udevadm info --name=$i | grep -E '(ID_SERIAL=)' done ## 编写UDEV规则 注:Oracle官方建议为了获得 Oracle ASM 的最佳性能,建议使用
Deadline I/O Scheduler。 但是在某些虚拟环境(VM)和特殊设备(例如快速存储设备)上,上述命令的输出可能是 none 。操作系统或VM绕过内核I/O调度,将所有I/O请求直接提交给设备。不要更改此类环境中的 I/O 调度程序设置。 通过命令查看ASM磁盘设备的I/O
Scheduler方式: cat /sys/block/${ASM_DISK}/queue/scheduler 如果不是官方建议的deadline,可以在UDEV规则中加入下面规则来修改调度算法: ATTR{queue/scheduler}="mq-deadline" cat >>
/etc/udev/rules.d/99-oracle-asmdevices.rules << EOF ACTION=="add|change",
SUBSYSTEM=="block", ENV{ID_SERIAL}=="36000c296b294ae9826aa58b67ec05f91",SYMLINK+="asm-disk-ocr1",OWNER:="grid",GROUP:="asmadmin",MODE="0660" ACTION=="add|change",
SUBSYSTEM=="block",
ENV{ID_SERIAL}=="36000c29b727b25864cd550bbdd27fff6",SYMLINK+="asm-disk-ocr2",OWNER:="grid",GROUP:="asmadmin",MODE="0660" ACTION=="add|change",
SUBSYSTEM=="block",
ENV{ID_SERIAL}=="36000c29315b3da4c27923bbee653e9d5",SYMLINK+="asm-disk-ocr3",OWNER:="grid",GROUP:="asmadmin",MODE="0660" ACTION=="add|change",
SUBSYSTEM=="block",
ENV{ID_SERIAL}=="36000c296dfdc0d4f736ff31a6e98172a",SYMLINK+="asm-disk-ocr4",OWNER:="grid",GROUP:="asmadmin",MODE="0660" ACTION=="add|change",
SUBSYSTEM=="block",
ENV{ID_SERIAL}=="36000c29d4c1410db4edc533a704539a9",SYMLINK+="asm-disk-ocr5",OWNER:="grid",GROUP:="asmadmin",MODE="0660" EOF ##刷新
udev 策略 udevadm control --reload-rules udevadm trigger --type=devices --action=change ##检查磁盘 ls -ltr /dev/asm* |
## 多路径聚合,获取wwid multipath -ll for d in `fdisk -l |grep /dev/mapper| egrep -v
"root*|rhel*" | sort -k 2 | awk '{print $2":"$3$4}' | sed
's/://' ` do i=`echo $d|awk -F':' '{print $1}'` echo -n $d;echo -n " " udevadm info --name=$i | grep -E '(UUID)'|awk
'{print $2}' done ## 修改多路径配置文件 vi /etc/multipath.conf multipaths { multipath { wwid 2c5dd2dd8c79bff51 alias ocr1 } multipath { wwid 2fce61925e6d8f237 alias ocr2 } multipath { wwid 2719cffd67e004ddf alias ocr3 } multipath { wwid 295b981ef744c64c2 alias ocr4 } multipath { wwid 29a679143947a6182 alias ocr5 } ...... } ## 使多路径聚合生效 systemctl
restart multipathd multipath
-F multipath
-v2 multipath
–ll for i in asm-ocr01
asm-ocr02 asm-ocr03 asm-ocr04 asm-5 asm-fra01 asm-data01 asm-data02; do printf "%s %s\n"
"$i" "$(udevadm info --query=all --name=/dev/mapper/$i |grep
-i dm_uuid)"; done ## 配置UDEV绑定磁盘并赋权 cat >> /etc/udev/rules.d/99-oracle-asmdevices.rules
<< EOF ACTION=="add|change",
SUBSYSTEM=="block",
ENV{DM_UUID}=="mpath-14f504e46494c45525037534534662d335373642d46593638",
SYMLINK+=" asm-disk-ocr01
",OWNER:="grid",GROUP:="asmadmin",MODE="0660" EOF ##刷新
udev 策略 udevadm control --reload-rules udevadm trigger --type=devices --action=change ##检查磁盘 ls -ltr /dev/asm* |
##安装华为多路径软件,禁用操作系统自带的multipath yum localinstall –y ./UltraPath-xxxxxx.rpm systemctl stop multipathd systemctl disable multipathd ## 查询磁盘的WWN号 upadm show path upadm show array ##配置UDEV绑定磁盘并赋权 cat >>
/etc/udev/rules.d/99-oracle-asmdevices.rules << EOF KERNEL=="dm-*",
SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d
--whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36cc64a6100bae65e0004652800000000",
RUN+="/bin/sh -c 'mknod /dev/asm-ocr01 b
$major $minor; chown grid:asmadmin /dev/asm-ocr01; chmod 0660 /dev/asm—disk-ocr1'" EOF ##刷新
udev 策略 udevadm control --reload-rules udevadm trigger --type=devices --action=change ##检查磁盘 ls -ltr /dev/asm* |
/usr/sbin/groupadd -g 1001 oinstall /usr/sbin/groupadd -g 1002 dba /usr/sbin/groupadd -g 1003 oper /usr/sbin/groupadd -g 1004 backupdba /usr/sbin/groupadd -g 1005 dgdba /usr/sbin/groupadd -g 1006 kmdba /usr/sbin/groupadd -g 1007 asmdba /usr/sbin/groupadd -g 1008 asmoper /usr/sbin/groupadd -g 1009 asmadmin /usr/sbin/groupadd -g 1010 racdba /usr/sbin/useradd -u 1001 -g oinstall -G
asmadmin,asmdba,dba,asmoper,oper grid /usr/sbin/useradd -u 1002 -g oinstall -G
dba,backupdba,dgdba,kmdba,asmadmin,asmdba,racdba,oper oracle |
mkdir -p /u01/app/19.0.0/grid mkdir -p /u01/app/grid mkdir -p /u01/app/oraInventory mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 mkdir -p /u01/install chown -R grid:oinstall /u01/app chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01/app ## 修改介质目录权限 chmod -R 775 /u01/install chown -R grid:oinstall /u01/install |
## grid配置环境变量 cat >> /home/grid/.bash_profile <<
EOF # Oracle Grid 19c Environment export ORACLE_SID=+ASM1 export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/app/19.0.0/grid export TEMP=/tmp export TMPDIR=/tmp export
LIBPATH=\$ORACLE_HOME/lib:\$ORACLE_HOME/lib32 export NLS_LANG=american_america.AL32UTF8 export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$ORACLE_HOME/lib:\$ORACLE_HOME/lib32: export
LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$ORACLE_HOME/jdk/jre/lib:\$ORACLE_HOME/network/lib:\$ORACLE_HOME/rdbms/lib export
CLASSPATH=\$ORACLE_HOME/jre:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib:\$ORACLE_HOME/network/jlib export
PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:. alias cdh='cd $ORACLE_HOME' alias cdt='cd /u01/app/grid/diag/asm/+asm/+ASM1/trace' alias cdct='cd /u01/app/grid/diag/crs/`hostname`/crs/trace’ alias csr='crsctl status res -t' alias csi='crsctl status res -t -init' umask 022 stty erase ^H EOF ## Oracle配置环境变量 cat >> /home/oracle/.bash_profile
<< EOF # Oracle 19c oracle Environment export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 export ORACLE_SID=hxdb1 export TMP=/tmp export NLS_LANG=american_america.AL32UTF8 export
LIBPATH=\$ORACLE_HOME/lib:\$ORACLE_HOME/lib32 export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$ORACLE_HOME/jdk/jre/lib:\$ORACLE_HOME/network/lib:\$ORACLE_HOME/rdbms/lib export
LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$ORACLE_HOME/lib:\$ORACLE_HOME/lib32 export
CLASSPATH=\$ORACLE_HOME/jre:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib:\$ORACLE_HOME/network/jlib export
PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:. umask 022 alias cdh='cd $ORACLE_HOME' alias cdt='cd /u01/app/oracle/diag/rdbms/hxdb/hxdb*/trace' alias tns='cd $ORACLE_HOME/network/admin' stty erase ^H EOF ## root用户可以直接使用crsctl命令 cat >> /etc/profile <<EOF export PATH=/u01/app/19.0.0/grid/bin:$PATH alias cdt='cd /u01/app/grid/diag/asm/+asm/+ASM*/trace' alias cdct='cd /u01/app/grid/diag/crs/`hostname`/crs/trace’ alias csr='crsctl status res -t' alias csi='crsctl status res -t -init' EOF |
## 配置互信 ./sshUserSetup.sh -user grid -hosts "
db19crac1 db19crac2 db19crac3db19crac4" -advanced -exverify –confirm ./sshUserSetup.sh -user oracle -hosts "
db19crac1 db19crac2 db19crac3 db19crac4" -advanced -exverify –confirm ## 验证互信 ssh db19crac1 date ssh db19crac2 date ssh db19crac3 date ssh db19crac4 date ssh ora19c1prv date ssh ora19c2prv date ssh ora19c3prv date ssh ora19c4prv date |
1) 解压GI介质
su – grid cd /u01/install unzip LINUX.X64_193000_grid_home.zip -d
/u01/app/19.0.0/grid/ |
2) 安装 cvuqdisk
rpm -ivh /u01/app/19.0.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm scp /u01/app/19.0.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
db19crac2:/tmp ##安装
cvuqdisk 包(2/3/4节点) rpm -ivh /tmp/cvuqdisk-1.0.10-1.rpm |
3) 安装检查
su - grid cd $ORACLE_HOME ./runcluvfy.sh stage -pre crsinst -n
db19crac1,db19crac2,db19crac3,db19crac4 -fixup -verbose |
4) 编辑响应文件
GI响应文件模板位置
/u01/app/19.0.0/grid/install/response
响应文件简要说明:
选项 |
说明 |
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0 |
系统默认值,不能修改 |
INVENTORY_LOCATION=/u01/app/oraInventory |
指定清单目录 |
oracle.install.option=CRS_CONFIG |
指定安装选项 |
ORACLE_BASE=/u01/app/grid |
指定BASE目录 |
oracle.install.asm.OSDBA=asmdba |
指定用户组 |
oracle.install.asm.OSOPER=asmoper |
指定用户组 |
oracle.install.asm.OSASM=asmadmin |
指定用户组 |
oracle.install.crs.config.scanType=LOCAL_SCAN |
指定SCAN类型 |
oracle.install.crs.config.SCANClientDataFile= |
|
oracle.install.crs.config.gpnp.scanName=db19scan.tzwdb.com |
指定SCAN名称,参考/etc/hosts |
oracle.install.crs.config.gpnp.scanPort=1521 |
监听端口 |
oracle.install.crs.config.ClusterConfiguration=STANDALONE
|
指定所需的集群配置 |
oracle.install.crs.config.configureAsExtendedCluster=false
|
是否将集群配置为扩展集群 |
oracle.install.crs.config.memberClusterManifestFile=
|
|
oracle.install.crs.config.clusterName=db19c-cluster |
集群名称(最大不能超过63个字符) |
oracle.install.crs.config.gpnp.configureGNS=false
|
是否配置了GNS |
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
|
|
oracle.install.crs.config.gpnp.gnsOption= |
|
oracle.install.crs.config.gpnp.gnsClientDataFile=
|
|
oracle.install.crs.config.gpnp.gnsSubDomain= |
|
oracle.install.crs.config.gpnp.gnsVIPAddress= |
|
oracle.install.crs.config.sites= |
|
oracle.install.crs.config.clusterNodes=db19crac1:db19crac1vip,db19crac2:db19crac2vip,db19crac3:db19crac3vip,db19crac4:db19crac4vip, |
节点配置,参考/etc/hosts |
oracle.install.crs.config.networkInterfaceList=enp1s0:200.200.200.0:1,ens1:10.10.10.0:5,virbr0:192.168.122.0:3 |
网卡配置, |
oracle.install.crs.configureGIMR=false |
是否配置GIMR |
oracle.install.asm.configureGIMRDataDG=false |
|
oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE
|
选择使用ASM |
oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=
|
|
oracle.install.crs.config.sharedFileSystemStorage.ocrLocations= |
|
oracle.install.crs.config.useIPMI=false |
是否使用IPMI |
oracle.install.crs.config.ipmi.bmcUsername= |
|
oracle.install.crs.config.ipmi.bmcPassword= |
|
oracle.install.asm.SYSASMPassword=Oracle123 |
ASM密码 |
oracle.install.asm.diskGroup.name=OCR |
指定OCR磁盘组名称 |
oracle.install.asm.diskGroup.redundancy=HIGH |
指定OCR冗余模式 |
oracle.install.asm.diskGroup.AUSize=4 |
指定AU |
oracle.install.asm.diskGroup.FailureGroups= |
|
oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk-ocr01,,/dev/asm-disk-ocr02,,/dev/asm-disk-ocr03,,/dev/asm-disk-ocr04,,/dev/asm-disk-ocr05, |
指定OCR的磁盘组的故障组列表 |
oracle.install.asm.diskGroup.disks=/dev/asm-disk-ocr01,/dev/asm-disk-ocr02,/dev/asm-disk-ocr03,/dev/asm-disk-ocr04,/dev/asm-disk-ocr05 |
指定OCR的磁盘 |
oracle.install.asm.diskGroup.quorumFailureGroupNames=
|
|
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* |
指定磁盘路径,保证能扫描到所有ASM磁盘即可 |
oracle.install.asm.monitorPassword=Oracle123 |
ASM密码 |
oracle.install.asm.gimrDG.name= |
|
oracle.install.asm.gimrDG.redundancy= |
|
oracle.install.asm.gimrDG.AUSize=1 |
|
oracle.install.asm.gimrDG.FailureGroups= |
|
oracle.install.asm.gimrDG.disksWithFailureGroupNames=
|
|
oracle.install.asm.gimrDG.disks= |
|
oracle.install.asm.gimrDG.quorumFailureGroupNames=
|
|
oracle.install.asm.configureAFD=false |
不安装配置AFD |
oracle.install.crs.configureRHPS=false |
|
oracle.install.crs.config.ignoreDownNodes=false |
|
oracle.install.config.managementOption=NONE |
|
oracle.install.config.omsHost= |
|
oracle.install.config.omsPort=0 |
|
oracle.install.config.emAdminUser= |
|
oracle.install.config.emAdminPassword= |
|
oracle.install.crs.rootconfig.executeRootScript=false
|
不自动执行root.sh脚本 |
oracle.install.crs.rootconfig.configMethod= |
|
oracle.install.crs.rootconfig.sudoPath= |
|
oracle.install.crs.rootconfig.sudoUserName= |
|
oracle.install.crs.config.batchinfo= |
|
oracle.install.crs.app.applicationAddress= |
|
oracle.install.crs.deleteNode.nodes= |
|
## 编辑响应文件 su - grid cd /u01/install cat >> gi_install.rsp << EOF oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0 INVENTORY_LOCATION=/u01/app/oraInventory oracle.install.option=CRS_CONFIG ORACLE_BASE=/u01/app/grid oracle.install.asm.OSDBA=asmdba oracle.install.asm.OSOPER=asmoper oracle.install.asm.OSASM=asmadmin oracle.install.crs.config.scanType=LOCAL_SCAN oracle.install.crs.config.SCANClientDataFile= oracle.install.crs.config.gpnp.scanName=db19scan.tzwdb.com oracle.install.crs.config.gpnp.scanPort=1521 oracle.install.crs.config.ClusterConfiguration=STANDALONE
oracle.install.crs.config.configureAsExtendedCluster=false
oracle.install.crs.config.memberClusterManifestFile=
oracle.install.crs.config.clusterName=db19c-cluster oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.crs.config.gpnp.gnsOption= oracle.install.crs.config.gpnp.gnsClientDataFile=
oracle.install.crs.config.gpnp.gnsSubDomain= oracle.install.crs.config.gpnp.gnsVIPAddress= oracle.install.crs.config.sites= oracle.install.crs.config.clusterNodes=db19crac1:db19crac1vip,db19crac2:db19crac2vip,db19crac3:db19crac3vip,db19crac4:db19crac4vip oracle.install.crs.config.networkInterfaceList=enp1s0:200.200.200.0:1,ens1:10.10.10.0:5,virbr0:192.168.122.0:3 oracle.install.crs.configureGIMR=false oracle.install.asm.configureGIMRDataDG=false oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE
oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=
oracle.install.crs.config.sharedFileSystemStorage.ocrLocations= oracle.install.crs.config.useIPMI=false oracle.install.crs.config.ipmi.bmcUsername= oracle.install.crs.config.ipmi.bmcPassword= oracle.install.asm.SYSASMPassword=Oracle123 oracle.install.asm.diskGroup.name=OCR oracle.install.asm.diskGroup.redundancy=HIGH oracle.install.asm.diskGroup.AUSize=4 oracle.install.asm.diskGroup.FailureGroups= oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk-ocr01,,/dev/asm-disk-ocr02,,/dev/asm-disk-ocr03,,/dev/asm-disk-ocr04,,/dev/asm-disk-ocr05, oracle.install.asm.diskGroup.disks=/dev/asm-disk-ocr01,/dev/asm-disk-ocr02,/dev/asm-disk-ocr03,/dev/asm-disk-ocr04,/dev/asm-disk-ocr05 oracle.install.asm.diskGroup.quorumFailureGroupNames=
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* oracle.install.asm.monitorPassword=Oracle123 oracle.install.asm.gimrDG.name= oracle.install.asm.gimrDG.redundancy= oracle.install.asm.gimrDG.AUSize=1 oracle.install.asm.gimrDG.FailureGroups= oracle.install.asm.gimrDG.disksWithFailureGroupNames=
oracle.install.asm.gimrDG.disks= oracle.install.asm.gimrDG.quorumFailureGroupNames=
oracle.install.asm.configureAFD=false oracle.install.crs.configureRHPS=false oracle.install.crs.config.ignoreDownNodes=false oracle.install.config.managementOption=NONE oracle.install.config.omsHost= oracle.install.config.omsPort=0 oracle.install.config.emAdminUser= oracle.install.config.emAdminPassword= oracle.install.crs.rootconfig.executeRootScript=false
oracle.install.crs.rootconfig.configMethod= oracle.install.crs.rootconfig.sudoPath= oracle.install.crs.rootconfig.sudoUserName= oracle.install.crs.config.batchinfo= oracle.install.crs.app.applicationAddress= oracle.install.crs.deleteNode.nodes= EOF |
1) 静默安装GI
mv OPatch/ OPatch_bak unzip
/u01/install/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME opatch version cd /u01/install unzip p36031453_190000_Linux-x86-64.zip cd $ORACLE_HOME export CV_ASSUME_DISTID=OL7 ./gridSetup.sh -applyRU /u01/install/36031453/35940989
-ignorePrereqFailure -silent -responseFile /u01/install/gi_install.rsp ## 执行脚本 /u01/app/oraInventory/orainstRoot.sh /u01/app/19.0.0/grid/root.sh ## 接着执行后续配置脚本 ./gridSetup.sh -silent -executeConfigTools
-responseFile /u01/install/gi_install.rsp |
1) 解压DB介质
su – oracle unzip LINUX.X64_193000_db_home.zip -d
$ORACLE_HOME |
2) 编辑响应文件
DB响应文件模板位置
$ORACLE_HOME/install/response
响应文件简要说明
配置 |
说明 |
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 |
系统默认值,不能修改 |
oracle.install.option=INSTALL_DB_SWONLY |
选择只安装DB软件 |
UNIX_GROUP_NAME=oinstall |
用户主组 |
INVENTORY_LOCATION=/u01/app/oraInventory |
软件清单目录 |
ORACLE_BASE=/u01/app/oracle |
BASE目录 |
ORACLE_HOME=/u01/app/oracle/product/19/db_1 |
HOME目录 |
oracle.install.db.InstallEdition=EE |
安装企业版 |
oracle.install.db.OSDBA_GROUP=dba |
设置相关用户组 |
oracle.install.db.OSOPER_GROUP=oper |
|
oracle.install.db.OSBACKUPDBA_GROUP=backupdba |
|
oracle.install.db.OSDGDBA_GROUP=dgdba |
|
oracle.install.db.OSKMDBA_GROUP=kmdba |
|
oracle.install.db.OSRACDBA_GROUP=racdba |
|
oracle.install.db.rootconfig.executeRootScript=false
|
不自动执行root.sh脚本 |
oracle.install.db.rootconfig.configMethod= |
|
oracle.install.db.rootconfig.sudoPath= |
|
oracle.install.db.rootconfig.sudoUserName= |
|
oracle.install.db.CLUSTER_NODES=db19crac1,db19crac2,db19crac3,db19crac4 |
节点主机名 |
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
|
|
oracle.install.db.config.starterdb.globalDBName=
|
|
oracle.install.db.config.starterdb.SID= |
|
oracle.install.db.ConfigureAsContainerDB=false |
|
oracle.install.db.config.PDBName= |
|
oracle.install.db.config.starterdb.characterSet=
|
|
oracle.install.db.config.starterdb.memoryOption=false
|
|
oracle.install.db.config.starterdb.memoryLimit=
|
|
oracle.install.db.config.starterdb.installExampleSchemas=false
|
|
oracle.install.db.config.starterdb.password.ALL=
|
|
oracle.install.db.config.starterdb.password.SYS=
|
|
oracle.install.db.config.starterdb.password.SYSTEM=
|
|
oracle.install.db.config.starterdb.password.DBSNMP=
|
|
oracle.install.db.config.starterdb.password.PDBADMIN=
|
|
oracle.install.db.config.starterdb.managementOption=DEFAULT
|
|
oracle.install.db.config.starterdb.omsHost= |
|
oracle.install.db.config.starterdb.omsPort=0 |
|
oracle.install.db.config.starterdb.emAdminUser=
|
|
oracle.install.db.config.starterdb.emAdminPassword=
|
|
oracle.install.db.config.starterdb.enableRecovery=false
|
|
oracle.install.db.config.starterdb.storageType=
|
|
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
|
|
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
|
|
oracle.install.db.config.asm.diskGroup= |
|
oracle.install.db.config.asm.ASMSNMPPassword= |
|
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 |
系统默认值,不能修改 |
oracle.install.option=INSTALL_DB_SWONLY |
选择只安装DB软件 |
UNIX_GROUP_NAME=oinstall |
用户主组 |
INVENTORY_LOCATION=/u01/app/oraInventory |
软件清单目录 |
##编辑响应文件 su - oracle cd /u01/install cat >> db_install.rsp << EOF oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper oracle.install.db.OSBACKUPDBA_GROUP=backupdba oracle.install.db.OSDGDBA_GROUP=dgdba oracle.install.db.OSKMDBA_GROUP=kmdba oracle.install.db.OSRACDBA_GROUP=racdba oracle.install.db.rootconfig.executeRootScript=false oracle.install.db.rootconfig.configMethod= oracle.install.db.rootconfig.sudoPath= oracle.install.db.rootconfig.sudoUserName= oracle.install.db.CLUSTER_NODES=db19crac1,db19crac2,db19crac3,db19crac4 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE oracle.install.db.config.starterdb.globalDBName= oracle.install.db.config.starterdb.SID= oracle.install.db.ConfigureAsContainerDB=false oracle.install.db.config.PDBName= oracle.install.db.config.starterdb.characterSet= oracle.install.db.config.starterdb.memoryOption=false oracle.install.db.config.starterdb.memoryLimit= oracle.install.db.config.starterdb.installExampleSchemas=false oracle.install.db.config.starterdb.password.ALL= oracle.install.db.config.starterdb.password.SYS= oracle.install.db.config.starterdb.password.SYSTEM= oracle.install.db.config.starterdb.password.DBSNMP= oracle.install.db.config.starterdb.password.PDBADMIN= oracle.install.db.config.starterdb.managementOption=DEFAULT oracle.install.db.config.starterdb.omsHost= oracle.install.db.config.starterdb.omsPort=0 oracle.install.db.config.starterdb.emAdminUser= oracle.install.db.config.starterdb.emAdminPassword= oracle.install.db.config.starterdb.enableRecovery=false oracle.install.db.config.starterdb.storageType= oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= oracle.install.db.config.asm.diskGroup= oracle.install.db.config.asm.ASMSNMPPassword= EOF |
3) 静默安装DB
su - oracle cd $ORACLE_HOME mv OPatch/ OPatch_bak unzip
/u01/install/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME opatch version export CV_ASSUME_DISTID=OL7 cd $ORACLE_HOME ./runInstaller -applyRU /u01/install/36031453/35940989
-silent -responseFile /u01/install/db_install.rsp -ignorePrereqFailure ## 执行脚本 /u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.0.0/dbhome_1/root.sh |
1) 应用 OJVM补丁
## 将OJVM补丁包传到其它节点并解压 su – oracle scp p36031453_190000_Linux-x86-64.zip db19crac2:/u01/install cd /u01/install unzip p36031453_190000_Linux-x86-64.zip ## 应用OJVM补丁 cd /u01/install/36031453/35926646 opatch prereq CheckConflictAgainstOHWithDetail
-ph ./ $ORACLE_HOME/OPatch/opatch apply opatch lspatches 35926646;OJVM RELEASE UPDATE: 19.22.0.0.240116
(35926646) 35967489;OCW RELEASE UPDATE 19.22.0.0.0 (35967489) 35943157;Database Release Update :
19.22.0.0.240116 (35943157) OPatch succeeded. |
2) 关闭集群
## 使用root用户执行如下脚本(所有节点都需要执行) # /u01/app/19.0.0/grid/crs/install/rootcrs.sh
-prepatch Using configuration parameter file: /u01/app/19.0.0/grid/crs/install/crsconfig_params The log of current session can be found at:
/u01/app/grid/crsdata/db19crac1/crsconfig/crs_prepatch_apply_inplace_db19crac1_2024-03-28_09-44-41AM.log Oracle Clusterware active version on the
cluster is [19.0.0.0.0]. The cluster upgrade state is [NORMAL]. The cluster
active patch level is [3844574830]. 2024/03/28 09:46:02 CLSRSC-4012: Shutting down
Oracle Trace File Analyzer (TFA) Collector. 2024/03/28 09:47:14 CLSRSC-4013: Successfully
shut down Oracle Trace File Analyzer (TFA) Collector. 2024/03/28 09:47:23 CLSRSC-347: Successfully
unlock /u01/app/19.0.0/grid 2024/03/28 09:47:27 CLSRSC-671: Pre-patch steps
for patching GI home successfully completed. |
3) 备份GI及DB软件目录
tar -zxcf grid_home_bak_19c.tar.gz /u01/app/19.0.0/grid
tar -zxcf oracle_home_bak_19c.tar.gz /u01/app/oracle/product/19.0.0/dbhome_1 |
4) GI应用ONEOFF补丁
## 解压ONEOFF补丁 su - grid cd /u01/install mkdir oneoff_grid unzip -n p34672698_1922000DBRU_Linux-x86-64.zip
-d ./oneoff_grid/ ## 检测补丁冲突 su - grid opatch prereq CheckConflictAgainstOHWithDetail
-phBaseFile /u01/install/oneoff_grid/34672698/ ## 调整oradism文件的权限(补丁34672698中REDME要求) ls -ld /u01/app/19.0.0/grid/bin/oradism -rwsr-x--- 1 root oinstall 147848 4月 17 2019 /u01/app/19.0.0/grid/bin/oradism chown grid /u01/app/19.0.0/grid/bin/oradism chmod 0750 /u01/app/19.0.0/grid/bin/oradism ls -ld /u01/app/19.0.0/grid/bin/oradism -rwxr-x--- 1 grid oinstall 147848 4月 17 2019 /u01/app/19.0.0/grid/bin/oradism ## 检查oui-patch.xml文件权限,必须为660 ll /u01/app/oraInventory/ContentsXML/oui-patch.xml -rw-rw---- 1 grid oinstall 174 3月 27 17:07
/u01/app/oraInventory/ContentsXML/oui-patch.xml ## 安装GI
ONEOFF补丁 su - grid /u01/app/19.0.0/grid/OPatch/opatch apply -oh
/u01/app/19.0.0/grid/ -local /u01/install/oneoff_grid/34672698/ ## 安装成功后恢复oradism文件权限(补丁34672698中REDME要求) ls -ld /u01/app/19.0.0/grid/bin/oradism -rwxr-x--- 1 grid oinstall 145888 2月 26 14:57 /u01/app/19.0.0/grid/bin/oradism chown root /u01/app/19.0.0/grid/bin/oradism chmod 4750 /u01/app/19.0.0/grid/bin/oradism ls -ld /u01/app/19.0.0/grid/bin/oradism -rwsr-x--- 1 root oinstall 145888 2月 26 14:57 /u01/app/19.0.0/grid/bin/oradism ##检查补丁信息 opatch lspatches 34672698;ORA-00800 SOFT EXTERNAL ERROR, ARGUMENTS [SET PRIORITY FAILED], [VKTM] , DISM(16) 36115038;TOMCAT RELEASE UPDATE 19.0.0.0.0
(36115038) 35967489;OCW RELEASE UPDATE 19.22.0.0.0
(35967489) 35956421;ACFS RELEASE UPDATE 19.22.0.0.0
(35956421) 35943157;Database Release Update :
19.22.0.0.240116 (35943157) 33575402;DBWLM RELEASE UPDATE 19.0.0.0.0
(33575402) OPatch succeeded. ## 滚动执行上面步骤,依次应用其余节点GI ONEOFF补丁 |
5) DB应用ONEOFF补丁
## 解压ONEOFF补丁 su - oracle cd /u01/install mkdir oneoff_oracle unzip -n p35985645_1922000DBRU_Linux-x86-64.zip
-d ./oneoff_oracle unzip -n p35778398_1922000DBRU_Linux-x86-64.zip
-d ./oneoff_oracle unzip -n p34672698_1922000DBRU_Linux-x86-64.zip
-d ./oneoff_oracle unzip -n p35692839_1922000DBRU_Linux-x86-64.zip
-d ./oneoff_oracle unzip -n p34774667_1922000DBRU_Linux-x86-64.zip
-d ./oneoff_oracle unzip -n p29213893_1922000DBRU_Generic.zip -d ./oneoff_oracle cat >/u01/install/patch_oracle.txt<<
EOF /u01/install/oneoff_oracle/35985645 /u01/install/oneoff_oracle/35778398 /u01/install/oneoff_oracle/34672698 /u01/install/oneoff_oracle/35692839 /u01/install/oneoff_oracle/34774667 /u01/install/oneoff_oracle/29213893 EOF ## 检测补丁冲突 su - oracle opatch prereq CheckConflictAgainstOHWithDetail
-phBaseFile /u01/install/patch_oracle.txt ## 调整oradism文件的权限(补丁34672698中REDME要求) ls -ld /u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism -rwsr-x--- 1 root oinstall 147848 4月 17 2019
/u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism chown oracle /u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism chmod 0750 /u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism ls -ld /u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism -rwxr-x--- 1 oracle oinstall 147848 4月 17 2019
/u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism ## 检查oui-patch.xml文件权限,必须为660 ll
/u01/app/oraInventory/ContentsXML/oui-patch.xml -rw-rw---- 1 grid oinstall 174 3月 28 10:17
/u01/app/oraInventory/ContentsXML/oui-patch.xml ## 批量安装DB ONEOFF补丁 su – oracle opatch napply -phBaseFile
/u01/install/patch_oracle.txt -local -silent ## 安装成功后恢复oradism文件权限(补丁34672698中REDME要求) ls -ld /u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism -rwxr-x--- 1 oracle oinstall 145888 2月 26 14:57
/u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism chown root /u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism
chmod 4750 /u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism ls -ld /u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism -rwsr-x--- 1 root oinstall 145888 2月 26 14:57
/u01/app/oracle/product/19.0.0/dbhome_1/bin/oradism ##检查补丁信息 opatch lspatches 35985645;EVEV-DEV2 DB CONTINUOUS RESTARTS WITH ORA-00600 INTERNAL ERROR CODE, ARGUMENTS [KDIFIND KCBZ_OBJDCHK] 35778398;FURTHER FIXES FOR ROW CACHE ON TOP OF
34304965 35692839;LRGRHEXAPROVCLUSTER_LIVEMIG
DB_WORKLOAD ORA-02002 AND
ORA-600_IPC_RECREATE_QUE_2 34774667;TT23.1ASAN GLOBAL-BUFFER-OVERFLOW IN PGA AT
KWQALOCKQTWITHINFO 34672698;ORA-00800 SOFT EXTERNAL ERROR, ARGUMENTS [SET PRIORITY FAILED], [VKTM] , DISM(16) 29213893;DBMS_STATS FAILING WITH ERROR
ORA-01422 WHEN GATHERING STATS FOR USER$ TABLE 35926646;OJVM RELEASE UPDATE: 19.22.0.0.240116
(35926646) 35967489;OCW RELEASE UPDATE 19.22.0.0.0 (35967489) 35943157;Database Release Update :
19.22.0.0.240116 (35943157) OPatch succeeded. ## 滚动执行上面步骤,依次应用其余节点DB ONEOFF补丁 |
6) 启动集群
/u01/app/19.0.0/grid/crs/install/rootcrs.sh -postpatch Using configuration parameter file: /u01/app/19.0.0/grid/crs/install/crsconfig_params The log of current session can be found at:
/u01/app/grid/crsdata/db19crac1/crsconfig/crs_postpatch_apply_inplace_db19crac1_2024-03-28_11-31-43AM.log 2024/03/28 11:31:55 CLSRSC-329: Replacing
Clusterware entries in file 'oracle-ohasd.service' Oracle Clusterware active version on the
cluster is [19.0.0.0.0]. The cluster upgrade state is [ROLLING PATCH]. The
cluster active patch level is [3844574830]. 2024/03/28 11:34:23 CLSRSC-4015: Performing
install or upgrade action for Oracle Trace File Analyzer (TFA) Collector. 2024/03/28 11:34:24 CLSRSC-672: Post-patch
steps for patching GI home successfully completed. |
## 创建磁盘组 su - grid asmca -silent -createDiskGroup -diskGroupName
DATA01 \ -diskList ‘/dev/asm-disk-data01’,’/dev/asm-disk-data02’
-redundancy NORMAL asmca -silent -createDiskGroup -diskGroupName
FRA01 -disk /dev/asm-disk-fra01 -redundancy EXTERNAL |
1) 创建NON-CDB
## 编辑响应文件 参考Oracle自带的模板编辑,模板位置为$ORACLE_HOME/assistants/dbca cd /u01/install cat >>dbca_noncdb.rsp <<EOF responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0 gdbName=hxdb sid=hxdb databaseConfigType=RAC RACOneNodeServiceName= policyManaged=false createServerPool=false serverPoolName= cardinality= force=false pqPoolName= pqCardinality= createAsContainerDatabase=false numberOfPDBs=0 pdbName= useLocalUndoForPDBs=true pdbAdminPassword= nodelist=db19crac1,db19crac2,db19crac3,db19crac4 templateName=/u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/templates/New_Database.dbt sysPassword=Oracle123 systemPassword=Oracle123 serviceUserPassword= emConfiguration= emExpressPort=5500 runCVUChecks=FALSE dbsnmpPassword= omsHost= omsPort=0 emUser= emPassword= dvConfiguration=false dvUserName= dvUserPassword= dvAccountManagerName= dvAccountManagerPassword= olsConfiguration=false datafileJarLocation= datafileDestination=+DATA01/{DB_UNIQUE_NAME}/ recoveryAreaDestination= storageType=ASM diskGroupName=+DATA01/{DB_UNIQUE_NAME}/ asmsnmpPassword= recoveryGroupName= characterSet=AL32UTF8 nationalCharacterSet=AL16UTF16 registerWithDirService=false dirServiceUserName= dirServicePassword= walletPassword= listeners=LISTENER skipListenerRegistration=false variablesFile= variables= initParams= sampleSchema=false memoryPercentage=40 databaseType=MULTIPURPOSE automaticMemoryManagement=false totalMemory=0 EOF ## 静默创建数据库 dbca -silent -createDatabase -responseFile
/u01/install/dbca_noncdb.rsp -ignorePreReqs |
2) 创建CDB
## 编辑响应文件 参考Oracle自带的模板编辑,模板位置为$ORACLE_HOME/assistants/dbca cd /u01/install cat >>dbca_cdb.rsp <<EOF responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0 gdbName=hxdb sid=hxdb databaseConfigType=RAC RACOneNodeServiceName= policyManaged=false createServerPool=false serverPoolName= cardinality= force=false pqPoolName= pqCardinality= createAsContainerDatabase=true numberOfPDBs=1 pdbName=hxpdb useLocalUndoForPDBs=true pdbAdminPassword=Oracle123 nodelist=db19crac1,db19crac2,db19crac3,db19crac4 templateName=/u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc sysPassword=Oracle123 systemPassword=Oracle123 serviceUserPassword= emConfiguration= emExpressPort=5500 runCVUChecks=FALSE dbsnmpPassword= omsHost= omsPort=0 emUser= emPassword= dvConfiguration=false dvUserName= dvUserPassword= dvAccountManagerName= dvAccountManagerPassword= olsConfiguration=false datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ datafileDestination=+DATA01/{DB_UNIQUE_NAME}/ recoveryAreaDestination= storageType=ASM diskGroupName=+DATA01/{DB_UNIQUE_NAME}/ asmsnmpPassword= recoveryGroupName= characterSet=AL32UTF8 nationalCharacterSet=AL16UTF16 registerWithDirService=false dirServiceUserName= dirServicePassword= walletPassword= listeners=LISTENER skipListenerRegistration=false variablesFile= variables= initParams= sampleSchema=false memoryPercentage=40 databaseType=MULTIPURPOSE automaticMemoryManagement=false totalMemory=0 EOF ## 静默创建数据库 dbca -silent -createDatabase -responseFile
/u01/install/dbca_cdb.rsp -ignorePreReqs |
5.1 多租户常规操作及配置
## 查看当前CDB中有哪些PDB,及查看状态 sqlplus / as sysdba show pdbs; ## 设置PDB随CDB启动自启动 alter pluggable database all save state; ## 利用PDB$SEED克隆PDB create pluggable database hxpdb2 admin user
pdbadmin identified by Oracle123; ## 启停单个PDB alter pluggable database hxpdb close immediate
instances=all; alter pluggable database hxpdb open
instances=all; ## 启停所有的PDB alter pluggable database all open instances=all; alter pluggable database all close immediate
instances=all; ## 切换到某个PDB下面 alter session set container=hxpdb; |
5.2 数据库常规配置
1) 调整REDO
重做日志组最低要求每个线程在2组以上,为了保障 redo 日志文件安全,如果规划了多个 ASM 磁盘组,可将每组 redo 日志设置两个成员并分布到不同 ASM 磁盘组上,日志大小和组数根据业务高峰期redo 的切换频率为基准,官方建议切换间隔在15分钟左右。 本例只提供redo日志组添加和调整大小的示例,实际生产系统根据具体业务繁忙程度进行调整。 下面的操作实现将redo日志组从默认的2组增加到3组;并将日志的大小调整为1G; ## 查看当前的redo日志组情况 sqlplus / as sysdba set lines 200 pages 200 select GROUP#,THREAD#,SEQUENCE#,BYTES,STATUS
from v$log; col member for a50 select * from v$logfile; ## 添加临时日志组 ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 25 size 1G; ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 26 size 1G; ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 27 size 1G; ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 28 size 1G; ALTER DATABASE ADD LOGFILE THREAD 3 GROUP 29 size 1G; ALTER DATABASE ADD LOGFILE THREAD 3 GROUP 30 size 1G; ALTER DATABASE ADD LOGFILE THREAD 4 GROUP 31 size 1G; ALTER DATABASE ADD LOGFILE THREAD 4 GROUP 32 size 1G; ## 切换日志,确保4个实例的 CURRENT 落在新建的日志组上 alter system archive log current; alter system checkpoint; ## 删除默认的日志组 ALTER DATABASE DROP LOGFILE GROUP 1; ALTER DATABASE DROP LOGFILE GROUP 2; ALTER DATABASE DROP LOGFILE GROUP 3; ALTER DATABASE DROP LOGFILE GROUP 4; ALTER DATABASE DROP LOGFILE GROUP 5; ALTER DATABASE DROP LOGFILE GROUP 6; ALTER DATABASE DROP LOGFILE GROUP 7; ALTER DATABASE DROP LOGFILE GROUP 8; select GROUP#,THREAD#,SEQUENCE#,BYTES,STATUS
from v$log; ## 添加新的日志组,每个实例6组,每组大小1G ALTER DATABASE ADD LOGFILE THREAD 1 GROUP
1 size 1G; ALTER DATABASE ADD LOGFILE THREAD 1 GROUP
2 size 1G; ALTER DATABASE ADD LOGFILE THREAD 1 GROUP
3 size 1G; ALTER DATABASE ADD LOGFILE THREAD 1 GROUP
4 size 1G; ALTER DATABASE ADD LOGFILE THREAD 1 GROUP
5 size 1G; ALTER DATABASE ADD LOGFILE THREAD 1 GROUP
6 size 1G; ALTER DATABASE ADD LOGFILE THREAD 2 GROUP
7 size 1G; ALTER DATABASE ADD LOGFILE THREAD 2 GROUP
8 size 1G; ALTER DATABASE ADD LOGFILE THREAD 2 GROUP
9 size 1G; ...... select GROUP#,THREAD#,SEQUENCE#,BYTES,STATUS
from v$log; ## 再次切换日志组,确保4个实例的CURRENT落在新建的日志组上 alter system archive log current; alter system checkpoint; ## 删除之前新建临时日志组 ALTER DATABASE DROP LOGFILE GROUP 25; ALTER DATABASE DROP LOGFILE GROUP 26; ALTER DATABASE DROP LOGFILE GROUP 27; ALTER DATABASE DROP LOGFILE GROUP 28; ALTER DATABASE DROP LOGFILE GROUP 29; ALTER DATABASE DROP LOGFILE GROUP 30; ALTER DATABASE DROP LOGFILE GROUP 31; ALTER DATABASE DROP LOGFILE GROUP 32; select GROUP#,THREAD#,SEQUENCE#,BYTES,STATUS
from v$log; |
2) 调整系统默认表空间大小
调整 SYSTEM、UNDO、TEMP表空间的数据文件大小,初始大小建议20G起步,具体根据业务情况和数据量来决定。 ## 调整数据文件大小 set line 200 pagesize 200 col file_name for a100 select file_name,file_id,tablespace_name from
dba_data_files; select file_name,file_id,tablespace_name from
dba_temp_files; alter database datafile 1 resize 20G; alter database datafile 3 resize 20G; alter database datafile 4 resize 20G; alter database datafile 9 resize 20G; alter database datafile 10 resize 20G; alter database datafile 11 resize 20G; alter database tempfile 1 resize 20G; |
3) PROFILE调整
## 调整密码过期期限为不限制 alter profile default limit PASSWORD_LIFE_TIME
unlimited; |
4) AWR相关调整
以下调整只提供修改示例,具体根据实际业务情况进行调整 ## 调整AWR快照收集间隔 将默认的AWR快照收集间隔修改为30分钟,保留期限为45天,这样便于跨月进行性能比对及性能问题排查。以下只是基于上面的基准做调整,生产系统可以根据以下调整示例自定义。 ## AWR快照收集间隔调整 exec
dbms_workload_repository.modify_snapshot_settings(interval=>30,
retention=>60*24*45); select *
from dba_hist_wr_control; ## 调整AWR报告中的TOPSQL条数为50条 exec dbms_workload_repository.modify_snapshot_settings(topnsql
=>50); ## 创建AWR基线 exec
dbms_workload_repository.create_baseline(start_snap_id => 68,
end_snap_id => 69,
baseline_name => 'hxdb_baselin68-69',
expiration => 30); |
5) 开启归档
## 设置归档路径 archive log list; alter system set
log_archive_dest_1='location=+ARCH'; ## 关闭所有节点数据库 srvctl stop database -d hxdb -o immediate ## 启动一个实例到mount执行 startup mount alter database archivelog; alter database open; archive log list; ## 打开其它节点数据库实例 srvctl start instance -d hxdb -i hxdb2 -o open srvctl start instance -d hxdb -i hxdb3 -o open srvctl start instance -d hxdb -i hxdb4 -o open |
6) 配置sqlplus命令提示符
## 配置DB登陆的提示符 su - oracle cat>>$ORACLE_HOME/sqlplus/admin/glogin.sql<<EOF set linesize 200 set pagesize 999 define_editor=vi set sqlprompt
"_user'@'_connect_identifier> " EOF ## 配置ASM登陆的提示符 su - grid cat>>$ORACLE_HOME/sqlplus/admin/glogin.sql<<EOF set linesize 200 set pagesize 999 define _editor=vi set sqlprompt
"_user'@'_connect_identifier> " EOF |
5.3 集群常规配置
1) 禁用HAIP
## 停止所有节点的CRS crsctl stop crs -f ## 依次在每个节点中执行以下命令 crsctl start crs -excl -nocrs crsctl stop res ora.asm -init crsctl modify res ora.cluster_interconnect.haip -attr "ENABLED=0" -init crsctl modify res ora.asm -attr \ "START_DEPENDENCIES='hard(ora.cssd,ora.ctssd)pullup(ora.cssd,ora.ctssd)weak(ora.drivers.acfs)',STOP_DEPENDENCIES='hard(intermediate:ora.cssd)'" -init crsctl stop crs -f ## 依次在每个节点启动CRS crsctl start crs ## 检查HAIP是否禁用 crsctl stat res -t -init 确认cluster_interconnect.haip为offline ## 查看是否还有169.254开头的地址,如果没有了,说明已经禁用成功;如果还有169.254开头的地址,说明没有禁用成功需要进一步排查原因。 ifconfig -a |
2) 调整OS Watcher
OSWatcher 是 oracle 提供的一个监控工具,它通过调用 OS 的的一些命令(例如 vmstat、iostat 等)来采集、存储
CPU/Memory/Swap/Disk IO/Nentwork 相关历史数据。
## 检查是否安装traceroute rpm -qa traceroute dnf install traceroute ## 检查是否安装OSW ps -ef | grep -i osw grid
5352 1 0 09:32 ? 00:00:08 /bin/sh ./OSWatcher.sh 30 48
/bin/gzip
/u01/app/grid/oracle.ahf/data/repository/suptools/db19crac1/oswbb/grid/archive grid
5695 5352 0 09:33 ? 00:00:02 /bin/sh ./OSWatcherFM.sh 48
/u01/app/grid/oracle.ahf/data/repository/suptools/db19crac1/oswbb/grid/archive root
319931 6858 0 16:01 pts/0 00:00:00 grep --color=auto osw ## 部署私网监控脚本 注:ahf 默认自带私网监控,但是只监控当前节点私网 ip,依然需要配置所有节点私网监控 cat >
/u01/app/grid/oracle.ahf/data/repository/suptools/`hostname|tr 'A-Z' 'a-z'`/oswbb/grid/oswbb/private.net
<<EOF #Linux Example echo "private_net osw*******"\`date\` traceroute -r -F db19crac1prv traceroute -r -F db19crac2prv traceroute -r -F db19crac3prv traceroute -r -F db19crac4prv rm locks/lock.file EOF chmod 755 /u01/app/grid/oracle.ahf/data/repository/suptools/`hostname|tr
'A-Z' 'a-z'`/oswbb/grid/oswbb/private.net ## 重启oswbb,采集间隔10s,保留192小时,采用 gzip 压缩 tfactl stop oswbb tfactl start oswbb 10 192 gzip ## 验证是否成功监控到私网信息 cd
/u01/app/grid/oracle.ahf/data/repository/suptools/`hostname|tr 'A-Z'
'a-z'`/oswbb/grid/archive/oswprvtnet cat *.dat private_net osw*******Wed Apr 3 16:07:45 CST
2024 traceroute to db19crac1prv (10.10.10.60), 30
hops max, 60 byte packets 1 db19crac1prv (10.10.10.60) 0.074 ms
0.014 ms 0.021 ms traceroute to db19crac2prv (10.10.10.61), 30
hops max, 60 byte packets 1 db19crac2prv (10.10.10.61) 0.668 ms
0.435 ms 0.444 ms traceroute to db19crac3prv (10.10.10.62), 30
hops max, 60 byte packets 1 db19crac3prv (10.10.10.62) 0.616 ms
0.508 ms 0.439 ms traceroute to db19crac4prv (10.10.10.63), 30
hops max, 60 byte packets 1 db19crac4prv (10.10.10.63) 0.556 ms
0.477 ms 0.420 ms |
5.4 自动作业任务调整
1) 禁用SQL Tuning
exec dbms_auto_task_admin.disable(client_name
=> 'sql tuning advisor',operation => NULL,window_name => NULL); |
2) 禁用自动段顾问
exec dbms_auto_task_admin.disable(client_name
=> 'auto space advisor',operation => NULL,window_name => NULL); |
3) 调整自动任务作业窗口
如果默认的自动任务窗口和业务时间段有冲突,调整自动任务运行的窗口为其它时间段,这样窗口期为业务低峰期,对系统影响最小,下面配置是参考,请根据实际需要调整。
## 查看当前自动任务窗口 数据库自带的自动任务作业窗口开启时间为:工作日22点到凌晨两点、周末22点到第二天18点 set lines 222 pages 999 col WINDOW_NAME for a20 col REPEAT_INTERVAL for a70 col DURATION for a15 select window_name,repeat_interval,duration,enabled
from dba_scheduler_windows; ## 查看当前自动任务窗口 调整窗口期为每天的 2 点至6
点,2 是
2 点开始的意思,240 是持续 240 分钟(4 小时) BEGIN dbms_scheduler.set_attribute(name=>'SYS.MONDAY_WINDOW',attribute=>'REPEAT_INTERVAL',value=>'freq=daily;byday=MON;byhour=2;byminute=0;bysecond=0'); dbms_scheduler.set_attribute(name=>'SYS.TUESDAY_WINDOW',attribute=>'REPEAT_INTERVAL',value=>'freq=daily;byday=TUE;byhour=2;byminute=0;bysecond=0'); dbms_scheduler.set_attribute(name=>'SYS.WEDNESDAY_WINDOW',attribute=>'REPEAT_INTERVAL',value=>'freq=daily;byday=WED;byhour=2;byminute=0;bysecond=0'); dbms_scheduler.set_attribute(name=>'SYS.THURSDAY_WINDOW',attribute=>'REPEAT_INTERVAL',value=>'freq=daily;byday=THU;byhour=2;byminute=0;bysecond=0'); dbms_scheduler.set_attribute(name=>'SYS.FRIDAY_WINDOW',attribute=>'REPEAT_INTERVAL',value=>'freq=daily;byday=FRI;byhour=2;byminute=0;bysecond=0'); dbms_scheduler.set_attribute(name=>'SYS.SATURDAY_WINDOW',attribute=>'REPEAT_INTERVAL',value=>'freq=daily;byday=SAT;byhour=2;byminute=0;bysecond=0'); dbms_scheduler.set_attribute(name=>'SYS.SUNDAY_WINDOW',attribute=>'REPEAT_INTERVAL',value=>'freq=daily;byday=SUN;byhour=2;byminute=0;bysecond=0'); dbms_scheduler.set_attribute(name=>'SYS.MONDAY_WINDOW',attribute=>'DURATION',value=>numtodsinterval(240,
'minute')); dbms_scheduler.set_attribute(name=>'SYS.TUESDAY_WINDOW',attribute=>'DURATION',value=>numtodsinterval(240,
'minute')); dbms_scheduler.set_attribute(name=>'SYS.WEDNESDAY_WINDOW',attribute=>'DURATION',value=>numtodsinterval(240,
'minute')); dbms_scheduler.set_attribute(name=>'SYS.THURSDAY_WINDOW',attribute=>'DURATION',value=>numtodsinterval(240,
'minute')); dbms_scheduler.set_attribute(name=>'SYS.FRIDAY_WINDOW',attribute=>'DURATION',value=>numtodsinterval(240,
'minute')); dbms_scheduler.set_attribute(name=>'SYS.SATURDAY_WINDOW',attribute=>'DURATION',value=>numtodsinterval(240,
'minute')); dbms_scheduler.set_attribute(name=>'SYS.SUNDAY_WINDOW',attribute=>'DURATION',value=>numtodsinterval(240,
'minute')); END; / |
4) 关闭 ORACLE_OCM 任务
BEGIN
dbms_scheduler.disable('ORACLE_OCM.MGMT_CONFIG_JOB');
dbms_scheduler.disable('ORACLE_OCM.MGMT_STATS_CONFIG_JOB'); END; / |
5.5 RMAN配置
调整RMAN的retention配置(有效备份保留xx天), 并开启控制文件自动备份,开启备份优化,修改控制文件自动备份位置到共享存储
rman target / configure retention policy to recovery window
of xx days; configure controlfile autobackup on; configure backup optimization on; configure snapshot controlfile name to '+ARCH/snapcf_hxdb.f'; |
5.6 数据库参数初始化
## 查询隐含参数 set linesize 210 col "Parameter" format a30 col "Session Value" format a20 col "Instance Value" format a20 col "Desc" format a70 select a.ksppinm "Parameter",
c.ksppstvl "Instance Value", ksppdesc "Desc" from sys.x$ksppi a, sys.x$ksppcv b,
sys.x$ksppsv c where a.indx = b.indx and a.indx = c.indx and substr(a.ksppinm, 1, 1) = '_' and a.ksppinm
like '_PX%' ## 修改参数基线 create pfile='/home/oracle/hxdb_pfile.ora' from
spfile; alter system set "_ash_size"=254M
scope=spfile; alter system set
"_cleanup_rollback_entries"=2000 scope=spfile; alter system set
"_cursor_obsolete_threshold"=1024 scope=spfile; alter system set
"_clusterwide_global_transactions"=FALSE scope=spfile; alter system set "_datafile_write_errors_crash_instance"=FALSE
scope=spfile; alter system set
"_drop_stat_segment"=1 scope=spfile sid='*'; alter system set "_lm_drm_disable"=5
scope=spfile; alter system set
"_log_segment_dump_parameter"=FALSE scope=spfile; alter system set "_log_segment_dump_patch"=FALSE
scope=spfile; alter system set
"_rollback_segment_count"=500 scope=spfile; alter system set
"_securefiles_concurrency_estimate"=50 scope=spfile; alter system set "_sys_logon_delay"=0
scope=spfile; alter system set
"_autotask_max_window"=23040 scope=spfile; alter system set
"_partition_large_extents"=FALSE scope=spfile; alter system set
"_use_adaptive_log_file_sync"=FALSE scope=spfile; ##alter system set
optimizer_adaptive_plans=FALSE scope=spfile; alter system set audit_sys_operations=FALSE scope=spfile; alter system set enable_ddl_logging=TRUE
scope=spfile; alter system set fast_start_mttr_target=300
scope=spfile; alter system set max_dump_file_size='2048M'
scope=spfile; alter system set open_links=10 scope=spfile; alter system set open_links_per_instance=10
scope=spfile; alter system set
parallel_execution_message_size=32768 scope=spfile; alter system set recovery_parallelism=8
scope=spfile; alter system set undo_retention=10800
scope=spfile; alter system set control_file_record_keep_time=31
scope=spfile; alter system set db_files=2000 scope=spfile; alter system set parallel_min_servers=8
scope=spfile; alter system set event='28401 trace name
context forever,level 1','10949 trace name context forever,level 1' scope=spfile; --10949(12c):Bug 18498878 - medium size tables do not cached consistently (文档 ID 18498878.8) --28401:High
'library cache lock' Wait Time Due to Invalid Login Attempts (文档 ID 1309738.1) ## 下面参数根据实际内存情况设置 alter system set sga_max_size=30G scope=spfile; alter system set shared_pool_size=6G
scope=spfile; alter system set java_pool_size=1G
scope=spfile; alter system set large_pool_size=1G
scope=spfile; ## 下面参数根据cpu count设置 col cpu_count new_value cpu_count noprint; select case when ceil(value/2) < 16 then 16 else ceil(value/2) end cpu_count from v$parameter where name='cpu_count'; alter system set
parallel_max_servers=&cpu_count scope=spfile; alter system set job_queue_processes=&cpu_count
scope=spfile; ## 禁用inmemory alter system set inmemory_query=DISABLE
scope=spfile; |
5.7 ASM参数初始化
默认的ASM实例内存管理方式为AMM,我们将调整为ASMM管理方式
su - grid sqlplus / as sysasm create pfile='/home/grid/asm_pfile.ora' from
spfile; alter system set sga_max_size=3072M
scope=spfile sid='*'; alter system set sga_target=3072M scope=spfile
sid='*'; alter system set pga_aggregate_target=1024M
scope=spfile sid='*'; alter system set memory_target=0 scope=spfile
sid='*'; alter system set memory_max_target=0
scope=spfile sid='*'; alter system reset memory_max_target
scope=spfile sid='*'; alter system set processes=2000 scope=spfile
sid='*'; |
## 强制关闭集群 crsctl stop crs -f ## 检查集群相关进程 ps -ef | grep grid ps -ef | grep oracle ## 删除文件 rm -rf /etc/ora* rm -rf /opt/ora* rm -rf /usr/local/ora* rm -rf /opt/ORCLfmap rm -rf /etc/oraInst.loc rm -rf /opt/ORCLfmap rm -f /etc/init.d/init.cssd rm -f /etc/init.d/init.crs rm -f /etc/init.d/init.crsd rm -f /etc/init.d/init.evmd rm -f /etc/rc2.d/K96init.crs rm -f /etc/rc2.d/S96init.crs rm -f /etc/rc3.d/K96init.crs rm -f /etc/rc3.d/S96init.crs rm -f /etc/rc5.d/K96init.crs rm -f /etc/rc5.d/S96init.crs rm -rf /etc/oracle/scls_scr rm -f /etc/inittab.crs rm -f /etc/ohasd rm -f /etc/oraInst.loc rm -rf /tmp/.oracle rm -rf /tmp/ora* rm -rf /var/tmp/.oracle rm -rf /tmp/CVU* rm -rf /tmp/Ora* rm -rf /home/grid/.oracle rm -rf /usr/app/* rm -rf /etc/init.d/init.ohasd rm -rf /usr/local/bin/dbhome rm -rf /usr/local/bin/oraenv rm -rf /usr/local/bin/coraenv rm -rf /etc/oratab rm -rf /tmp/*oracle* rm -rf /tmp/OraInst* rm -rf /etc/systemd/system/oracle* rm -rf /u01/app ## 清理磁盘头信息 dd if=/dev/zero of=/dev/asm-disk-data01 bs=1024
count=5000 dd if=/dev/zero of=/dev/asm-disk-data02 bs=1024
count=5000 dd if=/dev/zero of=/dev/asm-disk-fra01 bs=1024
count=5000 dd if=/dev/zero of=/dev/asm-disk-ocr01 bs=1024
count=5000 dd if=/dev/zero of=/dev/asm-disk-ocr02 bs=1024
count=5000 dd if=/dev/zero of=/dev/asm-disk-ocr03 bs=1024
count=5000 dd if=/dev/zero of=/dev/asm-disk-ocr04 bs=1024
count=5000 dd if=/dev/zero of=/dev/asm-disk-ocr05 bs=1024
count=5000 ##检查磁盘头是否清除 hexdump -n 1024 -C /dev/asm-disk-data01 hexdump -n 1024 -C /dev/asm-disk-data02 hexdump -n 1024 -C /dev/asm-disk-fra01 hexdump -n 1024 -C /dev/asm-disk-ocr01 hexdump -n 1024 -C /dev/asm-disk-ocr02 hexdump -n 1024 -C /dev/asm-disk-ocr03 hexdump -n 1024 -C /dev/asm-disk-ocr04 hexdump -n 1024 -C /dev/asm-disk-ocr05 ## 重启操作系统 reboot ## 重新创建相应目录并授权 mkdir -p /u01/app/19.0.0/grid mkdir -p /u01/app/grid mkdir -p /u01/app/oraInventory mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 chown -R grid:oinstall /u01/app chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01/app ## 返回到安装步骤重新安装 |
评论
