Oracle数据库版本和补丁基础
Oracle数据库之所以强大,和其30年来不断迭代以及更新是绝对分不开的。
而在这个迭代过程中,各种版本和补丁的概念也变得非常复杂,本文将帮助你理清Oracle版本相关知识以及补丁相关的概念。
数据库的版本
当你使用SQL*Plus等工具成功连接数据库库后,SQL命令提示符前通常会显示出下面的提示信息:
--11g输出例
$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun Apr 12 02:41:10 2020
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
--19c输出例
$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Apr 12 02:40:35 2020
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
这个由五位数字组成的如“11.2.0.4.0”、“19.3.0.0.0 ”的信息,表示的是Oracle数据库软件的发行版本信息。
包括数据库软件发布流程以及Oracle 版本编号,以12.2版本为界限,Oracle进行了一次重要的调整。
・数据库 12.1 及以前版本,采用传统的 PSU/BP 流程以及版本编号。
・数据库 12.2 及之后版本,将采用新的RU和 RUR流程以及新的版本编号。
12.2之前的版本编号
12.2之前的Oracle数据库软件的详细发行版本号(Release Number),由以下内容组成。
11.2.0.4.0
| | | | |_ 平台相关发行版本号(Port Specific Maintenance Release)
| | | |___ 特定组件的版本号(Component-Specific Release Number)
| | |_____ 融合中间件的版本号(Internet Application Server (IAS) Release)
| |_______ 数据库维护版本发行号(Database Maintenance Release)
|_________ 数据库主要发行版本号(Major Database Release)
各位数字的介绍:
第1位:数据库主要发行版本号(Major Database Release)
是Oracle进行了重大更新的版本,通常功能上的可能有巨大差别。如10g,11g,12c等。
第2位:数据库维护版本发行号(Database Maintenance Release)
是对主要发行版本的更新。如10gR1,10gR2,11gR1,11gR2,12cR1,12cR2等。
第3位:融合中间件的版本(Internet Application Server (IAS) Release)
通常不是DB使用的版本号,主要目的是与中间件版本进行融合,
9i前的旧版本中非0(如8.1.7.X),9i以后基本为0。
第4位:特定组件的版本号(Component-Specific Release Number)
一般为PSR(Patch Set Release)号,是在主版本上发布的补丁集(Patchsets)
第5位:平台相关发行版本号(Port Specific Maintenance Release)
特定操作系统上软件产品的维护版本,一般为PSU(patch set update)号,是在某个特定的补丁集版本上的集中性地Bug修复。
12.2之后的版本编号
从2018年开始,为了更加适应云时代的需要,Oracle数据库产品的新版本发布时间变更成了每年一次, 数据库软件版本编号也采用新的形式。
新的版本编号主要由三位数组成 – Year.Update.Revision即年.更新.发布。
・Year 是发布年份的后两位数字,比如19c,表示该版本发布于2019年。
・Update 表示Release Update,一般每个季度发布一次。
・Revision 表示基于某个RU的修订,一般每个RU最多两个RUR。
例如:
18.12.1.0.0
18.12.2.0.0
如何查看数据库版本和补丁状况
可以通过如下方法查看数据库的版本和补丁状况:
1. 通过v$version视图查看数据库版本
--11g输出例
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
--19c输出例
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
BANNER_FULL
----------------------------------------------------------------------------------------------------
BANNER_LEGACY CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production 0
另外,也可以通过如下SQL查看数据库的版本。
例:
SQL> select * from product_component_version;
PRODUCT
--------------------------------------------------------------------------------
VERSION
--------------------------------------------------------------------------------
VERSION_FULL
--------------------------------------------------------------------------------
STATUS
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition
19.0.0.0.0
19.3.0.0.0
Production
SQL> SET SERVEROUTPUT ON
SQL> EXEC dbms_output.put_line( dbms_db_version.version );
19
PL/SQL procedure successfully completed.
2. 通过opatch lsinventory 命令确认<ORACLE_HOME>的补丁状况和版本
例:
$ ./opatch lsinventory
Oracle Interim Patch Installer version 11.2.0.3.4
Copyright (c) 2012, Oracle Corporation. All rights reserved.
Oracle Home : <ORACLE_HOME>
Central Inventory : /refresh/home/app/oraInventory
from : <ORACLE_HOME>/oraInst.loc
OPatch version : 11.2.0.3.4
OUI version : 11.2.0.4.0
Log file location : <ORACLE_HOME>/cfgtoollogs/opatch/opatch2020-04-12_10-16-05AM_1.log
Lsinventory Output file location : <ORACLE_HOME>/cfgtoollogs/opatch/lsinv/lsinventory2020-04-12_10-16-05AM.txt
-------------------------------------------------------------------------------
Installed Top-level Products (1):
Oracle Database 11g 11.2.0.4.0
There are 1 products installed in this Oracle Home.
There are no Interim patches installed in this Oracle Home.
--------------------------------------------------------------------------------
3. 如果执行过PSU后期安装步骤的话
3.1 可以通过字典表的基表registry$history查看PSU状况. (12cR1之前的版本)
--11g输出例
set linesize 200
col action_time format a30
col ACTION format a10
col NAMESPACE format a15
col VERSION format a15
col comments format a60
col BUNDLE_SERIES format a20
col id format 99999
SQL> select * from registry$history;
ACTION_TIME ACTION NAMESPACE VERSION ID COMMENTS BUNDLE_SERIES
------------------------------ ---------- --------------- --------------- ------ ------------------------------------------------------------ --------------------
24-AUG-13 12.03.45.119862 PM APPLY SERVER 11.2.0.4 0 Patchset 11.2.0.2.0 PSU
24-AUG-17 10.54.11.141859 AM APPLY SERVER 11.2.0.4 0 Patchset 11.2.0.2.0 PSU
SQL>
3.2 可以通过字典表的基表registry$sqlpatch查看PSU状况. (12cR1之后的版本)
SQL>select PATCH_ID,ACTION,STATUS,ACTION_TIME,DESCRIPTION from registry$sqlpatch;
--CDB/PDB环境
SQL> select con_id,patch_id, action, action_time, description, bundle_series from cdb_registry_sqlpatch order by action_time;
3.3 可以通过字典表cdb_registry_sqlpatch查看PSU状况. (18c之后的版本)
SQL> select con_id,patch_id, action, action_time, description, patch_type from cdb_registry_sqlpatch order by action_time;
相关文章
- ORA-07441: function address must be aligned on string byte boundary ORACLE 报错 故障修复 远程处理
- 排序Oracle数据库倒序排序的简易方法(倒序oracle)
- 解决Oracle数据库重新导入问题(oracle重新导入数据)
- Oracle数据库中的临时表类型简介(oracle临时表类型)
- 索引揭示Oracle索引中的中文之谜(oracle不支持中文)
- 构建 Oracle 数据立方体:获得深刻洞察力(oracle数据立方体)
- 精通Oracle数据库触发器类型的奥妙之处(oracle触发器类型)
- Oracle 数据库中的触发器种类(oracle触发器类型)
- 利用Oracle减法函数实现数据计算(oracle减法函数)
- Oracle监听服务:可靠的数据访问方案(oracle监听服务)
- 精通 Oracle 触发器类型:性能最强的实现方式(oracle触发器类型)
- Oracle数据库简明入门实用指南(oracle简单使用)
- 化Oracle最小化:更好的数据处理(oracle最小)
- 如何修改Oracle数据库主键(oracle怎么修改主键)
- 企业轻松管理:选择Oracle数据库(企业用oracle)
- Oracle MRP关闭提升生产效率的关键一步(oracle 关闭mrp)
- 掌握Oracle关系模型图,轻松做数据库架构(oracle关系模型图)
- C语言结合Oracle数据库,使用方法汇总(c oracle用法)
- Oracle数据库的主要文件格式简介(oracle主要文件格式)
- 探索Oracle中跨用户表格查询(oracle中跨用户查表)
- Oracle数据库中自带表简介(oracle中自带表介绍)
- Oracle实现极致的性能优化(oracle中的加好)
- 存储过程Oracle中不可比拟的存储过程(oracle中不像)
- Oracle 12权限访问的安全密码管理(oracle 12密码)