Oracle Database 18c 已经正式对外发布,第一个公共版本的版本号是 18.3 ,让我们从 18.3 的安装过程来一睹 18c 的改变。
首先我们看看版本,18c 发布的第一个版本是 18.1.0 :
SQL> select banner_full from v$version;
BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.1.0.0.0
而现在发布的版本,演进到 18.3.0 :
[oracle@sdb0 ]$ sqlplus / as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Wed Jul 25 21:18:09 2018
Version 18.3.0.0.0
SQL> select banner_full from v$version;
BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
在MOS 上已经更新了产品发布计划,HP-UX 和 AIX 版本将在 8 月份发布:
当然我们不要恐惧 Oracle 版本的快速变化,再来看看这个版本路线图,18c 相当于 12.2.0.2 ,而 19c 则相当于 12.2.0.3 ,而 20c 将会是一个全新的版本:
整个数据库的安装过程非常流畅,没有遇到任何问题,我选择创建了一个 SID 为 enmo ,包含一个 PDB ,PDB 的名称是 enmotech :
完成安装之后,让我们从数据库的告警日志开始,看看 18.3 中带来了什么改变。当然,如果您没有安装过 18.1 ,那么事实上这些就是 18c 的改变。
改变一:详细的补丁信息
在告警日志中,数据库创建完成之后,会输出详细的补丁信息,告知数据库中已经应用的补丁列表,我删节了大部分BUG号,这是一个超长的列表。有同事说:看到修复了这么多BUG,就放心了。(其实 12.2 初始版本也有这个特性)。
注意,这里的 Patch ID 28090523 就是 2018年7月 17日发布的 RU 版本,可以从 MOS 上找到详细的信息:
===========================================================
Dumping current patch information
===========================================================
Patch Id: 28090523
Patch Description: Database Release Update : 18.3.0.0.180717 (28090523)
Patch Apply Time: 2018-07-19T01:39:24+08:00
Bugs Fixed: 9062315,13554903,21547051,21766220,21806121,23003564,23310101,
24489904,24689376,24737581,24925863,25035594,25035599,25287072,25348956,
25634405,25726981,25743479,25824236,25929650,25943740,26226953,26336101,
26423085,26427905,26450454,26476244,26598422,26615291,26646549,26654411,
...
28072130,28098865,28106402,28132287,28169711,28174827,28184554,28188330,
28264172
Patch Id: 28090553
Patch Description: OCW RELEASE UPDATE 18.3.0.0.0 (28090553)
Patch Apply Time: 2018-07-19T01:40:01+08:00
Bugs Fixed: 12816839,18701017,22734786,23698980,23840305,25709124,25724089,
26299684,26313403,26433972,26527054,26586174,26587652,26647619,26827699,
26860285,26882126,26882316,26943660,26996813,27012915,27018734,27032726,
27034318,27040560,27080748,27086406,27092991,27098733,27106915,27114112,
...
27609819,27625010,27625050,27627992,27654039,27657467,27657920,27668379,
27906509,27931506,27935826,27941514,27957892,27978668,27984314,27993298,
28023410,28025398,28032758,28039471,28039953,28045209,28099592,28109698,
28174926,28182503,28204423,28240153
Patch Id: 27923415
Patch Description: OJVM RELEASE UPDATE: 18.3.0.0.180717 (27923415)
Patch Apply Time: 2018-07-19T01:41:38+08:00
Bugs Fixed: 27304131,27461740,27539876,27636900,27642235,27952586
Patch Id: 27908644
Patch Description: UPDATE 18.3 DATABASE CLIENT JDK IN ORACLE HOME TO JDK8U171
Patch Apply Time: 2018-07-19T01:44:11+08:00
Bugs Fixed: 27908644
===========================================================
这个封包,在 MOS 上就是包含以下这几个补丁列表:
Build Date: July 17, 2018 16:00
Software home of Oracle Database software
This zip file contains Database software version: 18.3.0.0.180717
To use this patch with OEDA, copy this file to OEDA's WorkDir before running OEDA.
Refer to the Exadata database machine owners guide for information about the Oracle Exadata deployment assistant
Patches installed:
27923415;OJVM RELEASE UPDATE: 18.3.0.0.180717 (27923415)
28090523;Database Release Update : 18.3.0.0.180717 (28090523)
28090553;OCW RELEASE UPDATE 18.3.0.0.0 (28090553)
整个补丁集合也就是我们今天公开下载到的,4.4 G 的补丁安装包,MOS 上的下载次数是 0 ,我贡献第一个下载:
改变二:Redo 日志的 DAX 存储支持
在告警日志中,可以看到如下的信息:
Redo log for group 1, sequence 1 is not located on DAX storage
Redo log for group 3, sequence 12 is not located on DAX storage
也就是数据库检查,Redo 日志没有位于 DAX 存储设备,也就是说,Oracle 支持将 Redo 放置于 Direct Access Storage (DAX) 上,更好的支持 NVRAM 等高速存储设备(这个改进不确认,需要测试验证)。
初始化参数中, _simulate_dax_storage 可以用于模拟 DAX 存储,具体需要测试看:
SQL> select ksppinm,ksppdesc from x$ksppi where ksppinm like '%dax%';
KSPPINM
--------------------------------------------------------------------------------
KSPPDESC
----------------------------------------------------------------------------------
_simulate_dax_storage
Simulate log on DAX storage
同时,在进行网络传输时,增加了 日志网络传输调节 的新特性:
2018-07-25T18:36:51.730072+08:00
.... (PID:14041): Redo network throttle feature is disabled at mount time
强势插播广告:
改变三:创建DBaaS 和 SaaS lockdown Profile
在 Oracle 12.2 中引入了安全增强,lockdown profile ,进行了更细粒度的权限控制:
2018-07-25T17:37:46.285748+08:00
create lockdown profile PRIVATE_DBAAS
Completed: create lockdown profile PRIVATE_DBAAS
create lockdown profile SAAS
Completed: create lockdown profile SAAS
create lockdown profile PUBLIC_DBAAS
Completed: create lockdown profile PUBLIC_DBAAS
以下通过一个简单的测试来看看这个特性的基本功能。 首先在CDB下创建一个profile,这个Profile将对全局可用:
SQL> connect / as sysdba
Connected.
SQL> CREATE LOCKDOWN PROFILE enmotech;
Lockdown Profile created.
SQL> ALTER LOCKDOWN PROFILE enmotech DISABLE STATEMENT = ('ALTER SYSTEM');
Lockdown Profile altered.
连接到PDB YHEM,在PDB级别启用lockdown profile :
SQL> connect sys/oracle@yhem as sysdba
Connected.
SQL> ALTER SYSTEM SET PDB_LOCKDOWN = enmotech;
System altered.
测试一下,可以看到所有的ALTER SYSTEM的操作都被禁用了:
SQL> alter system checkpoint;
alter system checkpoint
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> alter system set optimizer_mode = first_rows_1;
alter system set optimizer_mode = first_rows_1
*
ERROR at line 1:
ORA-01031: insufficient privileges
同事我们注意到 APP Container 被初始化:
alter pluggable database application APP$CDB$SYSTEM begin install '1.0'
Completed: alter pluggable database application APP$CDB$SYSTEM begin install '1.0'
alter pluggable database application APP$CDB$SYSTEM end install '1.0'
Completed: alter pluggable database application APP$CDB$SYSTEM end install '1.0'
改变四:创建过程中的缺省压缩
在数据库创建过程中,可以看到对于 SYSTEM 、SYSAUX 表空间,启用了所有操作压缩:
alter tablespace system default compress for all operations
Completed: alter tablespace system default compress for all operations
PDB$SEED(2):alter tablespace system default compress for all operations
PDB$SEED(2):Completed: alter tablespace system default compress for all operations
alter tablespace sysaux default compress for all operations
Completed: alter tablespace sysaux default compress for all operations
PDB$SEED(2):alter tablespace sysaux default compress for all operations
PDB$SEED(2):Completed: alter tablespace sysaux default compress for all operations
表压缩是 Oracle 9i 就有的特性,11g 做出了很多增强,OLTP 压缩需要 高级压缩 选件,是一个收费的组件。
所以在数据库创建完成之后,这个压缩被禁用了,当然也一定是基于性能的考虑:
但是创建数据库过程中的压缩,是第一次被观察到。
SYSTEM 还有一个特殊之处,被启用了 force logging :
2018-07-25T17:27:48.447861+08:00
alter tablespace system force logging
Completed: alter tablespace system force logging
PDB$SEED(2):alter tablespace system force logging
PDB$SEED(2):Completed: alter tablespace system force logging
改变五:增加详细的环境控制信息
在数据库启动时,能够看到详细的环境控制信息,之前发布的Exadata版本就是通过这些信息控制安装的:
2018-07-25T17:27:16.850169+08:00
Initial number of CPU is 10
Number of processor cores in the system is 10
Number of processor sockets in the system is 10
Capability Type : Network
capabilities requested : 1 detected : 0 Simulated : 0
Capability Type : Runtime Environment
capabilities requested : 400000FF detected : 40000000 Simulated : 0
Capability Type : Engineered Systems
capabilities requested : 3 detected : 0 Simulated : 0
改变六:SCN兼容性版本信息
虽然这不是 18c 才有的,但是因为其重要性,列出在这里:
Database SCN compatibility initialized to 1
目前 18c 采用的是 兼容性版本 1,当然这个参数是动态调整的。
具体参考之前的文章:Oracle SCN 兼容性版本解密
改变七:全数据库缓存
全数据库缓存是 12c 的新特性,之前未注意是否会被缺省启用,在 18.3 的初始按照中,可以看到如下过程,全库缓存被启用,也就是说如果内存足够,Oracle 会尽量将全部数据库内容缓存到内存中去:
Buffer Cache Full DB Caching mode changing from FULL CACHING DISABLED to FULL CACHING ENABLED
我的 Demo 库由于 Cache 设置过低,所以最后全库缓存被禁用:
2018-07-25T17:27:24.364156+08:00
Buffer Cache Full DB Caching mode changing from FULL CACHING ENABLED to FULL CACHING DISABLED
Full DB Caching disabled: DEFAULT_CACHE_SIZE should be at least 456 MBs bigger than current size.
Oracle 18.3 已至,管中窥豹,让我们一起开始 18c 自治数据库之旅吧。
原文发布时间为:2018-07-26
本文作者:盖国强
本文来自云栖社区合作伙伴“数据和云”,了解相关信息可以关注“数据和云”。