Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

了解Oracle数据库的版本号

1,503 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

了解Oracle数据库的版本号

  1. 1. 了解 Oracle 数据库的版 本号 by Maclean.liu liu.maclean@gmail.com www.oracledatabase12g.com
  2. 2. About Mel Email:liu.maclean@gmail.coml Blog:www.oracledatabase12g.coml Oracle Certified Database Administrator Master 10gand 11gl Over 6 years experience with Oracle DBA technologyl Over 7 years experience with Linux technologyl Member Independent Oracle Users Groupl Member All China Users Groupl Presents for advanced Oracle topics: RAC,DataGuard, Performance Tuning and Oracle Internal.
  3. 3. Oracle 数据库的发行版本号(release number)一般由五位数字组成,那么这些数字分别代表什么含义呢?Major Database Release Number第一位阿拉伯数字是我们最常提到的一个大版本标识,它代表了数据库主要发行版本号;譬如我们说的 10g 不管是 R1 还是 R2,其版本号的第一位总是 10;不同 Major release Number 之间预示着存在功能上的巨大差别,例如在 11g 中加入了许多 10g 上永远不会有的新特性。新的 major release number 表明这是崭新一代的产品。Database Maintenance Release Number第二位阿拉伯数字代表数据库维护版本发行号,也就是我们常说的 R1 或者 R2。已有的 Maintenance ReleaseNumber 包括:8.1(比较特殊)、9.1、9.2、10.1、10.2 和 11.1、11.2。从 9i 开始每一个大版本都有 2 个 release,一般来说 R1 总是显得不那么稳定(至少 11g 之前是这样),通过在 R1 中引入大量特性后发行并根据用户实际使用情况不断修正 Bug,到 R2 发行时 R1 中引入的新特性已经日渐成熟,当然按照 Oracle 的风格在 R2 中还会引入部分特性,一些特性甚至可能是颠覆性的(例如 10.2.0.2 中引入 mutex 保护的 Cursor pin)。另外值得一提的是 R1 极不稳定这个铁律似乎在 11g 中被打破了,11gR1 的使用率非常之高,这是 9.1 或 10.1 所不能想象的。Application Server Release Number第三位阿拉伯数字代表了 Oracle Application Server (OracleAS)的发行版本号;对于 Oracle database 软件而言这一位总是为 0
  4. 4. Component-Specific Release Number第四位阿拉伯数字代表了某个组件的发行版本号。这里说的组件是指我们在使用 DBCA 创建数据库是选择安装的Component,例如 Oracle OLAP、Label Security 等(如果是手动创建数据库,那么必然运行了安装组件的脚本,一般位于$ORACLE_HOME/rdbms/admin 目录下)取决于数据库上所打过的 Component Patch set 补丁集或interim release 临时版本,同一个数据库中不同组件可能存在不同的组件版本号。实际使用中该组件发行版本号一般被我们用来指代数据库软件或者某个数据库所打过的 Patch set 补丁集,Patch set 补丁集一般都是些大家伙(1-2GB 不稀奇)。在给数据库软件打上 Patch set 后我们需要给已经存在的数据库升级组件版本,通俗地说是给数据库升级数据字典,这样数据库内的组件版本一般是一致的,如我将一个 10.2.0.1 的数据库升级到 10.2.0.4,那么这个数据库里的组件版本也会是 10.2.0.4(不排除说你为某个组件打了特殊的 Patch 后造成这个组件的版本独树一帜,当然这很少见,也不推荐)。我们可以通过查询 DBA_SERVER_REGISTRY 视图来了解数据库中的组件版本情况:desc dba_server_registry;Name Null? Type----------------------------------------- -------- ----------------------------COMP_ID NOT NULL VARCHAR2(30)COMP_NAME VARCHAR2(255)VERSION VARCHAR2(30)STATUS VARCHAR2(11)MODIFIED VARCHAR2(20)CONTROL NOT NULL VARCHAR2(30)SCHEMA NOT NULL VARCHAR2(30)PROCEDURE VARCHAR2(61)STARTUP VARCHAR2(8)PARENT_ID VARCHAR2(30)OTHER_SCHEMAS VARCHAR2(4000)col comp_name for a60select comp_name,version from dba_server_registryCOMP_NAME VERSION------------------------------------------------------------------------------------------Spatial 10.2.0.4.0Oracle interMedia 10.2.0.4.0OLAP Catalog 10.2.0.4.0Oracle Enterprise Manager 10.2.0.4.0
  5. 5. Oracle XML Database 10.2.0.4.0Oracle Text 10.2.0.4.0Oracle Expression Filter 10.2.0.4.0Oracle Rules Manager 10.2.0.4.0Oracle Workspace Manager 10.2.0.4.3Oracle Data Mining 10.2.0.4.0Oracle Database Catalog Views 10.2.0.4.0Oracle Database Packages and Types 10.2.0.4.0JServer JAVA Virtual Machine 10.2.0.4.0Oracle XDK 10.2.0.4.0Oracle Database Java Packages 10.2.0.4.0OLAP Analytic Workspace 10.2.0.4.0Oracle OLAP API 10.2.0.4.0Platform-Specific Release Number第五位阿拉伯数字代表了平台相关发行版本号。通常意义上该位数字受到另一种补丁(不是 Patch set)的影响。在10g 以后 Oracle 引入了在某个特定的补丁集的基础上发行的补丁集的更新(PSU-patch set update),用中文说起来十分拗口;通过 PSU 的发行,Oracle 可以针对某个特定的补丁集版本上发生的 Bug 集中性地修复,例如10.2.0.4 是一个 10g 使用十分广泛的版本,如果在 10.2.0.4 上发现了 Bug 那么就可以将 fix 合并到 PSU 中。一般来说 PSU 会每年的 1、4、7、10 月份 release,最近的一次 PSU 释放是在 2011 年的 4 月,包含了 10.2.0.4 的第8 个 PSU 也就是 10.2.0.4.8。注意 Oracle 只会为某个大版本上的几个 final release 制作 PSU 补丁,目前在 10g上保持 PSU 发布的版本是 10.2.0.4 和 10.2.0.5,而对于 10.2.0.3 则不再有 PSU 的支持。可以通过查询registry$history 表了解数据库(DB ,not Database Software)的 PSU 信息:SQL> desc registry$history;Name Null? Type----------------------------------------- -------- ----------------------------ACTION_TIME TIMESTAMP(6)ACTION VARCHAR2(30)NAMESPACE VARCHAR2(30)VERSION VARCHAR2(30)ID NUMBERCOMMENTS VARCHAR2(255)BUNDLE_SERIES VARCHAR2(30)SQL> select * from registry$history;ACTION_TIME
  6. 6. ---------------------------------------------------------------------------ACTION NAMESPACE------------------------------ ------------------------------VERSION ID------------------------------ ----------COMMENTS--------------------------------------------------------------------------------BUNDLE_SERIES------------------------------17-MAY-11 10.42.32.533510 PMAPPLY SERVER10.2.0.4 4PSU 10.2.0.4.4PSU以上可以看到示例数据库打过 PSU 10.2.0.4.4,还可以通过 opatch lsinventory 找出数据库软件(DatabaseSoftware,not DB)打过的 Patch Number,一般包含大量 Bug 修复的 Interim patches 可能是 PSU(也可能是 CPU),如 Patch 9352164 即对应为 PSU 10.2.0.4.4。我们还可以通过查询 V$VERSION 来了解当前数据库软件(注意是 Database Software,而不是 DB)的版本,该视图中还包含 PL/SQL 引擎和 TNS 协议的版本:SQL> startup nomount;SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64biPL/SQL Release 10.2.0.4.0 - ProductionCORE 10.2.0.4.0 ProductionTNS for Linux: Version 10.2.0.4.0 - ProductionNLSRTL Version 10.2.0.4.0 - Production© 2011, www.oracledatabase12g.com. 版权所有.文章允许转载,但必须以链接方式注明源地址,否则追求法律责任.

×