linux 数据库服务器-上海吉库展览展示服务有限公司
前言
4月中旬,甲骨文正式发布季度补丁包。 我们生产环境中很多可以打补丁的数据库都打了补丁,不能打补丁的不重要的数据库也关闭了一段时间。 上个月真是火爆了一个月,感觉每天都在打补丁,后来写了一篇文章。 这两天有朋友问怎么操作单节点数据库。 正好今晚有两个单节点数据库需要打补丁,有时间再写一下,方便以后学习。
补丁准备
Linux 平台下 2019 年 4 月发布的补丁包
p6880880_112000_Linux-x86-64.zip
p29255947_112040_Linux-x86-64.zip
Oracle官方发布的Linux 11.2.0.4补丁,如上图,可以在官网下载。 在这里linux 数据库服务器,选择补丁号和平台。 如果你没有 Oracle MOS 帐户,我已经在这里下载了。 只需要在公众号【捷客旭路】后台回复【RAC补丁】,这个补丁和RAC使用的是同一个补丁。 您也可以到以下地址下载:
下载补丁后,最重要的是看一下里面的README.html。 里面有方法和步骤。 英语好的同学可以直接看文档,不用看下面的内容。
文本
废话不多说,跟着下面的步骤就可以了。
0.备份
如果目录比较大,符合条件,可以做全量备份。 这是非常有必要的,因为升级过程中出现的问题是不可控的。 备份很容易。 如果没有条件,就cp整个ORACLE_HOME。
1.升级环境检查
$ORACLE_BASE目录至少有5G升级空间,然后查看数据库版本,不能跨大版本。
su - oracle
opatch lsinventory
注意:如果opatch 命令不可用,需要配置环境变量或者进入到 $ORACLE_HOME/OPatch 下
exportPATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
2.上传补丁包到/u01/app/------------这里的目录是oracle权限
OPatch补丁包:p6880880_112000_Linux-x86-64.zip
数据库电源补丁包:p29255947_112040_Linux-x86-64.zip
3.oracle用户解压
unzip p21523375_112040_AIX64-5L.zip(一定要用unzip解压!!!!!!)
unzip p6880880_112000_AIX64-5L.zip(解压后生成OPatch文件夹)
笔记; 这里是AIX下的补丁包,一般就是下图中的补丁包。
4.oracle用户停止监听,停止数据库
注意linux 数据库服务器,如果有两个实例,需要分别设置环境变量和停止库:stop another instance
ps -ef |grep smon
导出 ORACLE_SID=test2
如果有连接,需要kill连接,使用如下命令:
ps -ef | grep LOCAL=NO | grep -v grep |awk'{print $2}' | xargs kill -9
停止监听
lsnrctl stop
停止数据库
sqlplus / as sysdba
shutdown immediate
5.升级opatch
[oracle@JiekeXu dbhome_1]$cd $ORACLE_HOME
[oracle@JiekeXu dbhome_1]$mv OPatch OPatch_bak190705
[oracle@JiekeXu dbhome_1]$ mv/u01/app/OPatch/ ./
检查版本
[oracle@JiekeXu dbhome_1]$ opatch version
-bash: opatch: command not found
[oracle@JiekeXu dbhome_1]$ cd OPatch
[oracle@JiekeXu OPatch]$
[oracle@JiekeXu OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.21
OPatch succeeded.
[oracle@JiekeXu OPatch]$
6.升级补丁p29255947_112040_Linux-x86-64.zip
cd /u01/app/29255947/29141056
opatch apply
如果没法使用此命令,设置下环境变量在执行
exportPATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
opatch apply
先输入y,不输入邮箱直接回车,然后输入y再输入y,如下图。
--------------warning可以忽略,就是不报failed
7.查看数据库版本
[oracle@JiekeXu bin]$ opatch lsinventory |grep Sub-patch
Sub-patch 28729262; "Database Patch Set Update : 11.2.0.4.190115(28729262)"
Sub-patch 28204707; "Database Patch Set Update : 11.2.0.4.181016(28204707)"
Sub-patch 27734982; "Database Patch Set Update : 11.2.0.4.180717(27734982)"
Sub-patch 27338049; "Database Patch Set Update : 11.2.0.4.180417(27338049)"
Sub-patch 26925576; "Database Patch Set Update : 11.2.0.4.180116(26925576)"
Sub-patch 26392168; "Database Patch Set Update : 11.2.0.4.171017(26392168)"
Sub-patch 26609445; "Database Patch Set Update : 11.2.0.4.170814(26609445)"
Sub-patch 25869727; "Database Patch Set Update : 11.2.0.4.170718(25869727)"
Sub-patch 24732075; "Database Patch Set Update : 11.2.0.4.170418(24732075)"
Sub-patch 24006111; "Database Patch Set Update : 11.2.0.4.161018(24006111)"
Sub-patch 23054359; "Database Patch Set Update : 11.2.0.4.160719(23054359)"
Sub-patch 22502456; "Database Patch Set Update : 11.2.0.4.160419(22502456)"
Sub-patch 21948347; "Database Patch Set Update : 11.2.0.4.160119(21948347)"
Sub-patch 21352635; "Database Patch Set Update : 11.2.0.4.8 (21352635)"
Sub-patch 20760982; "Database Patch Set Update : 11.2.0.4.7 (20760982)"
Sub-patch 20299013; "Database Patch Set Update : 11.2.0.4.6 (20299013)"
Sub-patch 19769489; "Database Patch Set Update : 11.2.0.4.5 (19769489)"
Sub-patch 19121551; "Database Patch Set Update : 11.2.0.4.4 (19121551)"
Sub-patch 18522509; "Database Patch Set Update : 11.2.0.4.3 (18522509)"
Sub-patch 18031668; "Database Patch Set Update : 11.2.0.4.2 (18031668)"
Sub-patch 17478514; "Database Patch Set Update : 11.2.0.4.1 (17478514)"
8、启动数据库,执行升级脚本(如果有多个实例,需要每个实例都执行)
具体意思可以看README.html,这里就不解释了,也懒得说了。
$cd $ORACLE_HOME/rdbms/admin
$sqlplus / as sysdba
SQL >startup;
SQL > .sql psu apply
SQL > .sql
SQL > @dbmsjdev.sql
SQL > exec dbms_java_dev.disable
rman catalog username/password@alias
UPGRADE CATALOG;
要执行这些脚本,您可以转到 README.html。 这里已经多次提到了,可见还是很重要的!
9.验证
SYS@PROD>col ACTION_TIME for a35
SYS@PROD>col COMMENTS for a45
SYS@PROD>select ACTION_TIME,COMMENTSfrom registry$history;
ACTION_TIME COMMENTS
------------------------------------------------------------
24-AUG-13 12.03.45.119862 PM Patchset 11.2.0.2.0
19-JAN-16 12.10.26.734097 AM Patchset 11.2.0.2.0
26-JAN-19 10.45.57.188831 AM PSU 11.2.0.4.180116 ------升级前数据库版本
26-JAN-19 11.52.32.664077 AM PSU 11.2.0.4.19041611.2.0.4.190416 ---升级后的数据库版本
10.开始监控
lsnrctl start
11.oracle数据库注册监控
alter system register;
12.验证监控状态
lsnrctl status
好了,按照这一步就没有问题了。 基本上,它已经解释过了。 记住目录和版本一定要符合要求。 如果需要回滚,可以去官方文档或者阅读README.html。 这里不做解释,感兴趣的朋友可以自行阅读。 如果你没有MOS账号,是无法登录下载补丁的,别着急,我这里已经下载好了。 公众号【捷客旭路】回复【RAC补丁】】即可获取补丁包。 晚安我的朋友们!