Oracle19c on 银河麒麟的安装与升级
下载内容
preinstall CentOS8
https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el8.x86_64.rpm
preinstall CentOS7
https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
下载Oracle安装软件:
https://download.oracle.com/otn/linux/oracle19c/190000/oracle-database-ee-19c-1.0-1.x86_64.rpm
注意数据库的安装软件需要登录权限才可以.
下载补丁集合
需要注意 2023.12.29 已经到了 oracle 19.21.0.0
下载需要MOS账号, 自己注册的账号无法下载这样的补丁集合
需要说明的第二点是:
Oracle会将过往的12个月之前的补丁集合设置为密码保护, 不允许下载
如果下载需要提交 SR 但是提交SR 必须关联 MOS账号对应的购买序列号和服务的产品信息
所以基本上很难处理好.
还需要注意, 需要升级 opatch的补丁包 下载路径是:
https://updates.oracle.com/download/6880880.html
系统初始化
之前总结过 这次直接拿来用
cat > /etc/redhat-release <<EOF
CentOS Linux release 8.0
EOF
然后执行:
rpm -ivh oracle-database-preinstall-19c-1.0-1.el8.x86_64.rpm --nodeps --force
安装必备的一些软件:
yum install ksh* libnsl* -y
安装软件
time rpm -ivh oracle-database-ee-19c-1.0-1.x86_64.rpm
注意这个安装比较耗时, 我这边的时间为 接近 6min.
初始化数据库
vim /etc/init.d/oracledb_ORCLCDB-19c
# 修改部分内容如下:
export ORACLE_VERSION=19C
export ORACLE_SID=ORA19C
export TEMPLATE_NAME=General_Purpose.dbc
export CHARSET=ZHS16GBK
export PDB_NAME=ORA19CPDB
export LISTENER_NAME=LISTENER
export NUMBER_OF_PDBS=1
export CREATE_AS_CDB=true
cd /etc/sysconfig/
scp oracledb_ORCLCDB-19c.conf oracledb_ORA19C-19C.conf
创建部分目录
chown -R oracle:oinstall /opt/oracle
mkdir -p /opt/oracle/product/19c/dbhome_1
mkdir -p /opt/app/oracle/oradata/
mkdir /opt/oracle/oraInventory
touch /etc/oratab
chown oracle:oinstall /etc/oratab
初始化数据库
/etc/init.d/oracledb_ORCLCDB-19c configure
修改环境变量
cat >/etc/profile.d/oracle.sh <<EOF
export ORACLE_SID=ORA19C
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export PATH=$PATH:/opt/oracle/product/19c/dbhome_1/bin
export NLS_LANG="AMERICAN_AMERICA.UTF8"
EOF
部分设置
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited ;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
CREATE TRIGGER open_all_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'alter pluggable database all open';
END open_all_pdbs;
/
升级最新版本的补丁包
需要使用 oracle 的MOS账号 上Oracle官网下载最新补丁包
2023.12.31时最新的补丁包是
p35643107_190000_Linux-x86-64.zip
他的版本号是 19.21.0.0
需要现将文件上传上去.
并且执行解压缩
升级步骤-第一步关闭数据库
1. 关闭数据库软件
su - oracle
sqlplus / as sysdba <<EOS
shutdown immediate
EOS
lsnrctl stop
升级步骤-第二步备份应用
su - oracle
echo $ORACLE_HOME
exit
mkdir /opt/oracle19.3rpmonly
chown oracle:oinstall /opt/oracle19.3rpmonly
su - oracle
cd /opt
time tar -czvf oracle19.3rpmonly/oraclebackup.tar.gz oracle
升级步骤-第三步替换opatch目录并验证
# root用户
scp -r 35643107/* /opt/oracle/product/19c/dbhome_1/OPatch/
cd /opt/oracle/product/19c/dbhome_1
chown oracle:oinstall OPatch -R
su - oracle
cd /opt/oracle/product/19c/dbhome_1/OPatch/
./opatch lsinventory -detail -oh $ORACLE_HOME
提示: --------------------------------------------------------------------------------
OPatch succeeded.
基本上就可以了, 注意磁盘空间尽量保持20G以上.
需要注意 还需要升级 opatch的版本
可以理解为 补丁包是升级Oracle的 opatch的包是升级打补丁工具的.
下载地址就是第一部分里面讲解的:https://updates.oracle.com/download/6880880.html
需要注意这个路径很固定, 需要选择不同的版本和安装包进行使用.
升级步骤-第四步执行升级
第一部分:
应用升级
su - oracle
cd /opt/oracle/product/19c/dbhome_1/OPatch/
./opatch apply
注意升级时间可能会比较长, 需要等待.
中间会有两次要求输入选项的的步骤, 选择 y 后继续下一步的操作.
正在将临时补丁程序 '35643107' 应用于 OH '/opt/oracle/product/19c/dbhome_1'
中间会提示很多组件的信息.
注意如果是Oracle19.3 的rpm包安装的版本, 不升级OPatch的话 会报错为:
The OPatch being used has version 12.2.0.1.17 while the following patch(es) require higher versions:
Patch 35643107 requires OPatch version 12.2.0.1.37.
我这边大概耗时 7min 完成.
第二部分:
升级数据库
lsnrctl start 打开监听
sqlplus / as sysdba 链接数据库
已经可以看到数据库版本发生了变化:
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Dec 31 11:01:41 2023
Version 19.21.0.0.0
startup 数据库 查看 show pdbs 都是正常状态
然后执行升级数据库的脚本
time ./datapatch -verbose
注意需要先打开数据库 再升级.
注意我这边没有任何自己创建的数据库实例, 数据14min完成升级.
升级成功后:
需要编译一下无效对象
cd $ORACLE_HOME/rdbms/admin/
sqlplus / as sysdba <<EOS
@utlrp.sql
EOS
查看一下数据库的版本升级情况:
select patch_id, action,status,action_time,description from dba_registry_sqlpatch;
29-DEC-23 06.24.48.466705 PM Database Release Update : 19.3.0.0.190416 (29517242)
31-DEC-23 11.16.38.351972 AM Database Release Update : 19.21.0.0.231017 (35643107)
可以看到我数据库的安装时间和 数据库的版本时间.
可以看到 oracle19c 其实是四年半之前的版本了 20190416
生产环境还时很建议要升级一下版本的.
最后
建议重启一下应用和数据库, 保证产品正常.
su - oracle
sqlplus / as sysdba <<EOS
shutdown immediate
EOS
lsnrctl stop
sqlplus / as sysdba <<EOS
startup
EOS
lsnrctl start
sqlplus / as sysdba <<EOS
alter system register ;
EOS
lsnrctl status
标签:opt,Oracle19c,数据库,麒麟,升级,银河,export,oracle,19c
From: https://www.cnblogs.com/jinanxiaolaohu/p/17937334