Oracle 18c在2018-02-16 release出来的,还是秉承着Oracle的cloud first理念,18c现在cloud和Engineered Systems上推出,想在传统的机器上安装18c,估计还要等到2018年下半年。

下面,我从我的角度,来快速review一下值得关注的18c新特性(当然可能还有其他多值得关注的新特性):

(一)Availability
1. Oracle Data Guard Multi-Instance Redo Apply Supports Use of Block Change Tracking Files for RMAN Backups
现在,Multiple-Instance Redo Apply (也叫MIRA,可以参考我之前写的【Oracle 12.2新特性介绍】的第48页),也可以支持BCT(Block Change Tracking)的备份方式了。这对于超大的数据库,且是主从都是RAC,且备份发生在从库上,这是非常有效的一种增量备份方式。

2.Automatic Correction of Non-logged Blocks at a Data Guard Standby Database
新增2种类standby logging模式(主要是为了加快主库loading数据):
一种是Standby Nologging for Data Availability,即loading操作的commit会被delay,直到所有的standby都apply data为止。

 
 
1
SQL> ALTER DATABASE SET STANDBY NOLOGGING FOR DATA AVAILABILITY;

一种是Standby Nologging for Load Performance,这种模式和上一种类似,但是会在load数据的时候,遇到网络瓶颈时,先不发送数据,这就保证了loading性能,但是丢失了数据,但是丢失的数据,会从primary中再次获取。

 
 
1
SQL> ALTER DATABASE SET STANDBY NOLOGGING FOR LOAD PERFORMANCE;

3.Shadow Lost Write Protection
创建一个shadow tablespaces(注,是big file tablespace)来提供保护。注,此时你就可以不需要ADG来提供额外的lost write的保护了。
搞mysql的同学,你们是不是发现了什么?这是不是很像double write? 嘿嘿……

4. Backups from non-CDBs are usable after migration to CDB
原来的non-CDB,可以以这种方式,作为一个PDB迁移到当前已经存在的CDB中。

5. Support for PDBs as Shards and Catalogs
天,终于支持shard是pdb了。但是!但是!但是!也只是支持单个pdb在单个cdb中。哈哈哈哈哈,等于没支持。

6. User-Defined Sharding Method
这个在12.2中的beta版中存在的特性在,在正式发布是被取消了。现在,再次release出来了。

7. Consistency Levels for Multi-Shard Queries
提供MULTISHARD_QUERY_DATA_CONSISTENCY初始化参数,执行的之前可以先设置该初始化参数,避免跨分片查询时的SCN synchronization。

8. Manual termination of run-away queries
现在,你可以手动的杀掉一个语句,而不断开这个session:ALTER SYSTEM CANCEL SQL。

 
 
1
ALTER SYSTEM CANCEL SQL 'SID, SERIAL, @INST_ID, SQL_ID';

(二)Big Data and Data Warehousing
9. Approximate Top-N Query Processing
注,18c中,增加了 APPROX_COUNT和APPROX_SUM来配合APPROX_RANK的使用。

10. LOB support with IMC, Big Data SQL
LOB对象也支持in memory了。

(三)Database Overall
11. Copying a PDB in an Oracle Data Guard Environment
新增了2个参数,方便在ADG环境中创建PDB。
一个是STANDBY_PDB_SOURCE_FILE_DIRECTORY,自动寻找ADG的数据文件路径(注,在18c之前,如果将一个pdb插入到一个standby环境的中cdb,需要手动将文件拷贝到pdb的OMF路径下)

另一个是STANDBY_PDB_SOURCE_FILE_DBLINK,方便remote clone时自动查找ADG文件路径(注,在18c之前,如果是本地clone,就不用复制数据文件,但是远程clone,就需要手动复制。)。

12. PDB Lockdown Profile Enhancements
现在可以在application root和CDB root中创建PDB lockdown profile。如果你还没了解什么事application root和lockdown profile,可以参考我之前写的【Oracle 12.2新特性介绍】的第7页和第40页。

你现在还可以根据一个pdb lockdown profile,创建另外一个pdb lockdown profile。

18c包含三个默认的lockdown profile:PRIVATE_DBAAS,SAAS,PUBLIC_DBAAS

13. Refreshable PDB Switchover
PDB refresh一直号称是穷人的ADG,这个特性,在18c中也越来越好用了。支持了switchover。switchover分成计划内核计划外的两种场景。
计划内的,可以切回去,主要用于平衡CDB的负载。
计划外的,主要用于PDB master失效之后,不用整个CDB做切换。
如果你还没了解什么是PDB refresh,可以参考我之前写的【Oracle 12.2新特性介绍】的第37页)

14. PDB Snapshot Carousel
pdb的snapshot备份转盘,默认保留8份,每24小时备份一次。

 
 
1
ALTER PLUGGABLE DATABASE SNAPSHOT MODE EVERY 24 HOURS;

15. New Default Location of Oracle Database Password File
注意,新的密码文件路径已经在ORACLE_BASE,而不是ORACLE_HOME。

16. Read-Only Oracle Home
可以在dbca或者roohctl -enable来进程read only oracle home的安装,
运行orabasehome命令可以检查当前的Oracle Home是否只读,如果这个命令输出的结果和$ORACLE_HOME一样,则表示Oracle Home是可读写的。如果输出是ORACLE_BASE/homes/HOME_NAME,则表示Oracle Home是只读。

17.Online Merging of Partitions and Subpartitions
支持在线合并分区。注,需要使用ONLINE关键字。

18. Concurrent SQL Execution with SQL Performance Analyzer
SPA可以并行运行了(默认情况还是串行),帮你更快的完成SPA测试。

(四)Performance
19. Automatic In-Memory
自动In Memory会根据Heat Map,在内存使用紧张的情况下,将不常访问的IM列驱逐出内存。

20. Database In-Memory Support for External Tables
外部表支持IM特性。

21. Memoptimized Rowstore
在SGA中有一块memoptimize pool区域,大小受MEMOPTIMIZE_POOL_SIZE参数设置,当开启fast lookup的时候,就能利用该内存区域,进行快速的查找。
开启fast lookup,需要在建表语句中加上关键字:

当基于主键查询时,就能使用到fast lookup。

Memoptimized Rowstore将极大的提高物联网中基于主键的高频查询。

(五)RAC and Grid
22. ASM Database Cloning
可以基于ASM做pdb的克隆。基于asm的flex diskgroup来实现。关于flex diskgroup,参考我之前写的【Oracle 12.2新特性介绍】的第17页。


23. Converting Normal or High Redundancy Disk Groups to Flex Disk Groups without Restricted Mount

呵呵,鼓励往flex diskgroup上转型。

(六)Security
24. Integration of Active Directory Services with Oracle Database
和微软的AD结合。在18c之前,需要使用Oracle Enterprise User Security (EUS)进行交互,现在,可以使用centrally managed users (CMU) 直接将AD的users和groups和Oracle的users和role进行mappiing。

(七)其他
25. 新增初始化参数:

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ADG_ACCOUNT_INFO_TRACKING
 
FORWARD_LISTENER
 
INMEMORY_AUTOMATIC_LEVEL
 
INMEMORY_OPTIMIZED_ARITHMETIC
 
MEMOPTIMIZE_POOL_SIZE
 
MULTISHARD_QUERY_DATA_CONSISTENCY
 
OPTIMIZER_IGNORE_HINTS
 
OPTIMIZER_IGNORE_PARALLEL_HINTS
 
PARALLEL_MIN_DEGREE
 
PRIVATE_TEMP_TABLE_PREFIX
 
STANDBY_PDB_SOURCE_FILE_DBLINK
 
STANDBY_PDB_SOURCE_FILE_DIRECTORY
 
TDE_CONFIGURATION
 
UNIFIED_AUDIT_SYSTEMLOG
 
WALLET_ROOT

值得说一下的是OPTIMIZER_IGNORE_PARALLEL_HINTS,在纯OLTP的系统中,你终于可以禁用开发人员不受控制的并发了(往往不写并发度)。:)

26. dbms_session.sleep
可以

 
 
1
exec dbms_session.sleep(3);

终于不用再单独grant dbms_lock的权限了。

看到上面的这些新特性,你怎么想?“DBA将死”、“Oracle将实现自动驾驶”?这些新特性是不是还需要DBA? :)

参考:
1. Oracle Database Database New Features Guide, 18c
2. ORACLE 18C: ORACLE 18C.. NEW FEATURES.. WHAT’S NEWS..
3. Franck Pachot (@FranckPachot)

18c新特性的一些小结(from JimmyHe)的更多相关文章

  1. Oracle 18c新特性一览

    1. 一般新特性 1.1. Shadow Lost Write Protection Shadow lost write protection检测到一个丢失的写,它会导致一个主要的数据损坏.可以在不需 ...

  2. JAVA 8 新特性实用总JAVA 8 新特性实用总结结

    JAVA 8 新特性实用总结 作为一个工作两年多的 老 程序猿,虽然一开始就使用 jdk1.8 作为学习和使用的版本,随着技术的迭代,现有的 JDK 版本从两年前到现在,已经飞速发展到了 JDK 15 ...

  3. php 7 新特性整理小结

    php 7 比php 5 性能提升了很多,php 7 新特性主要表现在:1.变量存储字节减小,减少内存占用,提升变量操作速度:2.改善数组结构,数组元素和hash映射表被分配在同一块内存里,降低了内存 ...

  4. 【转】【C#】C# 5.0 新特性——Async和Await使异步编程更简单

    一.引言 在之前的C#基础知识系列文章中只介绍了从C#1.0到C#4.0中主要的特性,然而.NET 4.5 的推出,对于C#又有了新特性的增加--就是C#5.0中async和await两个关键字,这两 ...

  5. Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1Python 3_x 新特性1python3.4新特性1python3.5新特性1值得关注的新特性1Pyth

    Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1 Python 3_x 新特性1 python3.4新特性1 python3.5新特性1 值得关注的新特性1 ...

  6. jQuery Mobile 1.1八大新特性介绍

    随着HTML 5时代的来临,移动开发开始进入了一个新的时代,现在只需要懂得HTML5,配合一定的开发框架,就可以开发出十分漂亮的HTML5的移动应用.在众多的 移动HTML5开发框架中,比较著名的是j ...

  7. c# 语法5.0 新特性 转自网络

    本专题概要: 引言 同步代码存在的问题 传统的异步编程改善程序的响应 C# 5.0 提供的async和await使异步编程更简单  async和await关键字剖析 小结 一.引言 在之前的C#基础知 ...

  8. Java SE 6 新特性: Java DB 和 JDBC 4.0

    http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何 ...

  9. html5新特性:利用history的pushState等方法来解决使用ajax导致页面后退和前进的问题

    一.背景 使用ajax,可以实现不需要刷新整个页面就可以进行局部页面的更新.这样可以开发交互性很强的富客户端程序,减少网络传输的内容.但长期以来存在一个问题,就是无法利用浏览器本身提供的前进和后退按钮 ...

随机推荐

  1. golang-nsq消息队列应用

    1. 安装nsq brew install nsq 2.启动nsq https://nsq.io/overview/quick_start.html 3.golang client var produ ...

  2. solidity如何拼接字符串?

    当你开始学习使用solidity开发以太坊智能合约之后,很快你会碰到一个问题: 一.在solidity中该如何拼接字符串? 可能你已经试过了,下面的代码试图把两个字符串使用相加的运算符连接起来,但是这 ...

  3. Date类学习总结(Calendar Date 字符串 相互转换 格式化)

    Date类学习总结 1.计算某一月份的最大天数 Calendar time=Calendar.getInstance();time.clear();time.set(Calendar.YEAR,yea ...

  4. 在Docker平台实现MySQL Replication(复制)

    MySQL Replication提供了数据库之间复制数据的功能,通过这个功能可以让一个数据库的数据更改自动同步到另外一个数据库.通常用这个功能来实现数据备份.数据容灾.数据冗余,进一步实现数据的读写 ...

  5. Golang 知识图谱

  6. Golang xorm工具,根据数据库自动生成 go 代码

    使用 golang 操作数据库的同学都会遇到一个问题 —— 根据数据表结构创建对应的 struct 模型.因为 golang 的使用首字母控制可见范围,我们经常要设计 struct 字段名和数据库字段 ...

  7. Error: EACCES: permission denied, access '/usr/local/lib/node_modules'

    sudo chown -R username /usr/local/lib/node_modules 注:username要具有/usr/local/lib/node_modules的读写权限

  8. MyEclipse中更改JRE环境

    今天代码中需要用到λ表达式,但λ表达式需要JRE1.8的支持,而MyEclipse设置的默认JRE是1.7.为了是程序能够顺利通过编译,需要将MyEclipse的JRE由1.7转换为1.8.步骤如下:

  9. solr+tomcat整合

    一.solr安装 http://archive.apache.org/dist/lucene/solr/ 这个地址有各个版本的 这次我使用的是5.5.4版本和tomcat8 版本5.5.4已经内置了j ...

  10. SpringBoot+thymelates入门

    在pom.xml当中加入这俩个依赖 <dependency> <groupId>org.springframework.boot</groupId> <art ...