一: Multitenant Architecture (12.1.0.1)
      多租户架构是Oracle 12c(12.1)的新增重磅特性,内建的多分租(Multi-tenancy),一个容器数据库(container database)中可以存放多个Pluggable Databases,每个Pluggable Database均独立于其他Pluggable Database。

      

对于外部应用程序和开发者来说,Pluggable Databases看上去就是一个普通的12.1版本之前的单一数据库。DBA可以连接到Pluggable Database并仅仅管理该数据库,超级DBA可以连接到容器数据库并如同管理单系统镜像那样管理所有Pluggable Database。

Pluggable Databases特性带来的好处:
            1、集中式管理多个数据库实例。
            2、通过PDB$SEED模板快速配置新数据库。
            3、加速现有数据库打补丁和升级的速度。
            4、通过PDB拔插移植到更高版本中的其他CDB中进行修补或升级。
            5、通过将现有数据库的拔插和插拔快速重新部署到新平台(迁移)。

 
 
二: Oracle 12c In-Memory (12.1.0.2)
      Oracle 12c In-Memory提供了一种独特的双格式架构,可以使用传统的行格式和新的内存列格式在内存中同时存储表。
      In-Memory模式下,SQL Optimizer将自动分析查询类型,对分析和报表采用In-Memory列格式,OLTP则采用行格式运行,透明地提供了双方的最佳性能,数据库自动维护行和列格式之间的完全事务一致性,就像今天保持表和索引之间的一致性一样。 新的列格式是纯内存格式,并且在磁盘上不会持久存在,因此不会有额外的存储成本或存储同步问题。
            

对于传统的OLTP系统,为了实现快速查询,往往采用分析型索引的方式,在这样的架构下,向表中插入一条记录需要同时更新数十个索引,OLTP系统性能被迫降低。12c In-Memory通过用内存列存储取代分析型索引,纯内存中的列式存储能够快速响应数据变化,可达到2倍至20倍的压缩比例,其粒度还支持表级与分区级,并适用于所有主流的硬件平台,使得OLTP系统中可以给予任意一列实现快速分析,OLTP和批处理的速度得到大幅提升。
      在测试当中,列格式的每CPU内核可达到10亿条/秒的扫描速度,而行格式仅能达到百万条,性能的提升高达一百倍以上。不仅如此,通过将多表的连接操作转化为高效的列扫描,表连接速度也加快10倍。

        
 
三: Oracle Sharding (12.2.0.1)

Oracle Sharding是用于自定义设计的OLTP应用程序的可扩展性和可用性功能,可以在不共享硬件或软件的Oracle数据库池之间分发和复制数据。 将数据库池作为单个逻辑数据库呈现给应用程序。 应用程序可以在任何平台上将任何级别(数据,事务和用户)弹性地缩放(简单地通过在池中添加数据库(分片))。
      简单来说,Oracle的Sharding技术就是通过分区(Partioning)技术的扩展来实现的。以前一个表的分区可以存在于不同的表空间,现在可以存在于不同的数据库。

与其他NOSQL型的sharding结构相比,Oracle Sharding提供了卓越的运行时性能和更简单的生命周期管理。 它还提供企业RDBMS的优势,包括:关系模式,SQL和其他编程接口,支持复杂数据类型,在线模式更改,多核可扩展性,高级安全性,压缩,高可用性,ACID属性,一致性等等。

Oracle Sharding使用GDS(Global Data Services)架构来自动部署和管理sharding和复制技术。GDS(GDS是Oracle RDBMS 12.1的新特性)也提供负载均衡和SDB(sharded database)中的基于位置的路由功能。
  Shard目录(Shard directors)使用GDS framework的全局服务管理组件(global service manager component)来提供应用层请求到shard的直接路由。shard目录(Shard directors)是一个单独的数据库,它用来保存SDB(Sharding database)配置数据和提供其他相关功能,比如shard的交叉查询和集中管理。可以使用GDS是GDSCTL工具可以用来配置SDB。
  Oracle Sharding的分区架构(Partitioning Infrastructure)分区在表空间级别跨Shards分布,每个表空间关联一个特定的shard。一个shard表的每一个分区放单独的表空间,并且每个表空间关联到一个特定的shard。根据不同的sharding方法,这个关联可以自动建立或者根据定义创建。尽管一个shard表的多个分区放在多个单独主机的数据库上(这些数据库完全独立,不共享CPU、内存等软件和硬件),但是应用访问表时就如同访问一个单独数据库中的分区表一样。应用发出的SQL语句不需要依赖shard号和shard的物理配置。

Sharding如何实现数据路由?
     既然数据被拆分,那么在访问时如何实现数据路由呢?在Sharding的架构里,存在一个“Shard Directories”目录库来管理Sharding的分布,当应用通过Sharding Key来访问数据时,连接池(GDS - Global Data Services)就会给出访问路径,快速指向需要访问的Shard。如果应用不指定分区键访问,则需要通过协调库-Coordinator DB来协助判定。

 
 

Oracle 12c新特性(For DBA)的更多相关文章

  1. Oracle 12c新特性

    转载自:Oracle 12c新特性(For DBA) 一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性 ...

  2. Oracle 12C 新特性之扩展数据类型(extended data type)

    Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节.只要可能,扩展字 ...

  3. Oracle 12C 新特性之 PDB热克隆(本地克隆、远端异机克隆)

    说明:版本12.2.0.1 12c r1版本中 clone 一份PDB源库需要打开在read only只读模式 , 在12c r2版本中引入了local undo mode, 源PDB在read/wr ...

  4. ORACLE 12C新特性——CDB与PDB

    Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库( ...

  5. Oracle 12C 新特性之表分区带 异步全局索引异步维护(一次add、truncate、drop、spilt、merge多个分区)

    实验准备:-- 创建实验表CREATE TABLE p_andy(ID number(10), NAME varchar2(40))PARTITION BY RANGE (id)(PARTITION ...

  6. Oracle 12C 新特性 - “可插拔数据库”功能

    Oracle 12C加入了一个非常有新意的功能"可插拔数据库"特性,实现了数据库(PDB)在"容器"(CDB)上的拔功能,既能提高系统资源的利用率,也简化大面积 ...

  7. Oracle 12c新特性之——TABLE ACCESS BY INDEX ROWID BATCHED

    Oracle12c开始,我们在获取SQL语句的执行计划时,也会经常看到"TABLE ACCESS BY INDEX ROWID BATCHED"操作,那么,这个操作到底是什么意思呢 ...

  8. Oracle 12C 新特性之 db默认字符集AL32UTF8、PDB支持不同字符集

    一. db默认字符集AL32UTF8Specify the database character set when you create the database. Starting from Ora ...

  9. Oracle 12c 新特性之 数据库内归档(In-Database Archiving)

    Oracle Database 12c中引入了 In-Database Archiving的新特性, 该特性允许用户通过对表上的数据行标记为inactive不活跃的,以归档数据. 这些inactive ...

随机推荐

  1. TableView,自定义TableViewCell

    自定义Table 原理: http://blog.jobbole.com/67272/ http://www.cnblogs.com/wangxiaofeinin/p/3532831.html 补充: ...

  2. MySQL 5.7.18 解压版安装

    原文链接:https://my.oschina.net/u/3474266/blog/895696 我在安装免安装版的5.7.18的时候出现了问题,正好找到这个,十分感激 今天下载安装了MySQL C ...

  3. 论文笔记之:Human-level control through deep reinforcement learning

    Human-level control through deep reinforcement learning Nature 2015 Google DeepMind Abstract RL 理论 在 ...

  4. 操作构造字符串化宏#define STRINGIZE(x) #x

    c++test工程单元测试中报错 “STRINGIZE” 未定义错误 解决方案:在头文件定义宏STRINGIZE #符号把一个符号直接转换为字符串,例如:#define STRINGIZE(x) #x ...

  5. 【TCP/IP详解 卷一:协议】第十七章 TCP:传输控制协议

    本章作为TCP的入门章节,简单的概述了一些TCP的知识,和TCP数据报的首部格式. TCP 最重要的特性:reliable. 17.1 引言 本章介绍的是 TCP为应用层提供的服务. 17.2 TCP ...

  6. Python subprocess模块学习总结--转载

    一.subprocess以及常用的封装函数运行python的时候,我们都是在创建并运行一个进程.像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序.在Python ...

  7. python打包到pypi小结

       如果你写了一个python库,想让别人快速使用你的库,最简单的方式就是使用python官方出品的库托管网站pypi了.    pypi的全称是Python Package Index,是pyth ...

  8. JS 字符串 作为变量名

    function initCKEditor(querySelector,content_val,myEditor) { ClassicEditor.create(document.querySelec ...

  9. linux下模拟FTP服务器(笔记)

    要在linux下做一个模仿ftp的小型服务器,后来在百度文库中找到一份算是比较完整的实现,就在原代码一些重要部分上备注自己的理解(可能有误,千万不要轻易相信). 客户端: 客户端要从服务器端中读取数据 ...

  10. 如何学习编程和做好DBA

    关于学习编程和做好DBA的关系 我这里只是讨论SQLSERVER DBA 我发现很多DBA都是从程序员开始做起的,一般做了4.5年之后就转型做DBA或者管理或者销售啊. 为什麽一开始不直接做DBA,D ...