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. Python -- 网络编程 -- Socket简单网络通信

    Qt如果多线程的话,似乎会出BUG 1.服务端(server.py) import sys, socket, threading import binascii from PyQt4 import Q ...

  2. URL编码分析与乱码解决方案

    一.问题的由来 URL就是网址,只要上网,就一定会用到. 一般来说,URL只能使用英文字母.阿拉伯数字和某些标点符号,不能使用其他文字和符号.比如,世界上有英文字母的网址"http://ww ...

  3. kafka报错处理

    Kafka报错处理 1.   记一次kafka报错处理   Kafka停止后,再启动的时候发生了报错: [2017-10-27 09:43:18,313] INFO Recovering unflus ...

  4. lucene源码分析(5)lucence-group

    1. 普通查询的用法 org.apache.lucene.search.IndexSearcher public void search(Query query, Collector results) ...

  5. golang基础--常量与运算符

    常量与运算符 常量的定义 常量的值在编译时已经确定 常量的定义格式与变量的基本相同 等号的右侧必须是常量或者常量表达式 规范: 常量定义时建议都使用大写,单词之间使用大写 便于包的外部调用 如果只限于 ...

  6. Python jieba库的使用说明

    1.jieba库基本介绍 (1).jieba库概述 jieba是优秀的中文分词第三方库 - 中文文本需要通过分词获得单个的词语         - jieba是优秀的中文分词第三方库,需要额外安装 - ...

  7. [CTSC 2018]假面

    Description 题库链接 有 \(n\) 个敌方单位,初始第 \(i\) 个单位的血量为 \(m_i\) .共 \(Q\) 次操作,分两种: 对某一个单位以 \(p\) 的概率造成 \(1\) ...

  8. [转]SQL Server如何启用xp_cmdshell组件

    本文转自:https://www.cnblogs.com/atree/p/SQL_SERVER_xp_cmdshell.html 错误描述]: SQL Server阻止了对组件‘xp_cmdshell ...

  9. Web服务的调用

    1.创建服务引用 例如:天气预报 2.在代码添加引用空间 TvProgram.ChinaTVprogramWebService tp = new TvProgram.ChinaTVprogramWeb ...

  10. Jupyter Notebook 快速入门[转]

    Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言.在本文中,我们将介绍 Jupyter notebook 的主要特性,以 ...