前几天刚练习了一波12c,今天抽空看了下18c.
如果有一段时间不接触Oracle或者是不大了解Oracle,其实很容易会产生误解。以为12c到18c之间差距的版本应该还有13c,14c,...17c等等,其实不然。
在今年过年前后的时间,即2018年2月16日,Oracle宣布Database 18c发布,随后纠正了发布时间为3月1日,整个版本的发布是优先从Exadata优先也包括supercluster。从版本的发布情况来看,自Oracle 12c开始已彻底抛弃了x86-32的平台,全面拥抱x86-64,其它平台的发布已经在计划中。
简单说下版本的情况。
根据Oracle的产品线规划,18c开始的新版本将是年度版,版本将是发布年度的最后两位数字。原本计划作为12.2.0.2的版本就是现在发布中的18c,12.2.0.3将以19c的版本形式发布。预期Oracle数据库19将是12.2的最后一个版本(“长期支持”版本)。
对于Oracle版本支持的一个roadmap,仅供参考。
所以Oracle的策略会类似于SQL Server的方式推出年度版,也是对已有的12c版本的发布迟缓的一种补救措施。因为18c是12.2.0.2,所以相比于12c的内容来说,也不会有非常大的变化。
Oracle 18c的概念很火来来自于2017年的Openworld的时候,发布了一个新的概念,自治数据库,当时很多DBA听到这个词,感觉DBA生涯要走到头了。但是转眼你来想一下,自治是一个迭代的过程,必然是在之前铺垫了大量的半自动,自动化的过程,自治不是一个全新的事物,可以是一个全新的理念。
另外,换句话来说,数据库能够自动升级,打补丁等等,对于很多线上系统来说,还是有所顾虑的,你肯定不希望你的核心业务一会添加一个索引,一会维护一些数据库的新增任务。系统要的更多是稳定,稳定的前提就是更少的变更,自治需要做到的就是把握这个平衡。
我从安装部署开始做了下18c的体验,所以就捡一些细节来说说。
安装文件是个压缩包,大概是4G,解压后大概是10G,这个量级确实对存储和机器性能是一个基本的考验。
因为目前发布的基于Linux 64位的版本,所有的操作都是在Linux环境下完成,我选择的是Centos 6u8的环境。
在静默安装软件方面,18c绝对是一种全新的理念,在Linux和Windows下面,安装文件夹大概是这样的目录结构。
但是到了18c里面,全变了。最大的变化就是Oracle希望你把这个目录当做$ORACLE_HOME
否则静默安装的时候会抛出下面的错误。
./runInstaller -silent -responseFile /data/oracle18c/oracle_software/install/response/db_install2.rsp -ignorePrereqFailure
Launching Oracle Database Setup Wizard...
[FATAL] [INS-35954] The installer has detected that the Oracle home location provided in the response file is not correct.
CAUSE: The Database Oracle home is the location from where the installer is executed. It has been detected that the value set in the response file is different (/data/oracle18c/product). Value expected is: /data/oracle18c/oracle_software
ACTION: It is not required to specify ORACLE_HOME in the response file for Database installation. Alternatively, set it to the location of the installer (/data/oracle18c/oracle_software).
最开始一直没想明白,揣摩了下这个目录结构和日志报错,总算理解了。
当然你也完全可以使用图形界面来安装。
作为一个深度玩家,我是两种方式都体验了下。
Oracle的安装目录也比原来丰富的多。
[oracle@dev01 install]$ ll
total 8376
drwxr-xr-x 2 oracle dba 4096 Feb 8 06:14 acls
drwxr-xr-x 2 oracle dba 4096 Feb 8 06:14 chainedInstall
drwxr-xr-x 2 oracle dba 4096 Jul 19 2018 config
-rw-r--r-- 1 oracle dba 446 Jul 19 2018 envVars.properties
-rw-r--r-- 1 oracle dba 1709 Feb 8 06:14 envVars.properties.bak
-rw-rw-r-- 1 oracle dba 1989542 Feb 8 06:20 files.lst.bak
drwxr-xr-x 2 oracle dba 4096 Jul 19 2018 jlib
drwxr-xr-x 2 oracle dba 4096 Feb 8 06:12 mesg
-rw-r----- 1 oracle dba 3140 Feb 8 03:02 modmakedeps.pl
-rw-rw---- 1 oracle dba 142 Jul 19 2018 orabasetab
-rwxr-x--- 1 oracle dba 6530089 Jul 14 2018 pilot
drwxr-xr-x 2 oracle dba 4096 May 30 01:01 response
-rwxr-xr-x 1 oracle dba 857 Jul 19 2018 root_schagent.sh
drwxr-xr-x 2 oracle dba 4096 Feb 8 06:11 sizes
drwxr-xr-x 2 oracle dba 4096 Jul 19 2018 utl
安装的部分我选择了容器数据库,整个初始化的过程还算顺利。
[oracle@dev01 TESTDB]$ du -sh ./*
4.0K ./pdbseed
272M ./system01.dbf
4.0K ./testpdb1
4.0K ./testpdb2
一点一点的初始化文件出来。这是一个初步的目录结构。
[oracle@dev01 oracle18c]$ ll
total 36
drwxr-x--- 3 oracle dba 4096 May 30 04:23 admin
drwxr-x--- 3 oracle dba 4096 May 30 04:26 audit
drwxr-x--- 5 oracle dba 4096 May 30 04:26 cfgtoollogs
drwxr-xr-x 2 oracle dba 4096 May 30 02:41 checkpoints
drwxrwxr-x 23 oracle dba 4096 May 30 02:41 diag
drwxr-x--- 2 oracle dba 4096 May 30 04:06 fast_recovery_area
drwxrwx--- 4 oracle dba 4096 May 30 02:41 inventory
drwxr-xr-x 3 oracle dba 4096 May 30 04:23 oradata
drwxr-xr-x 69 oracle dba 4096 May 30 04:27 product
明显多了audit的目录。
整个Oracle的启动日志里面多了很多的bug号。
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,
这一点其实和12c里面差不多。
一个标准的18c姿势是:
[oracle@dev01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Wed May 30 04:59:16 2018
Version 18.3.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 TESTPDB1 READ WRITE NO
4 TESTPDB2 READ WRITE NO
SQL>
Oracle 18c的文档说明可以看到,变化还是很多细节的改进。
最后的一段红色字可以看到是和腾讯的紧密合作。
AWR的部分和Oracle 12c看起来没有大的变化。
一个细节就是oerr的实现改成了perl,原来是awk解析错误信息。