Oracle 12c新特性(For DBA)


一: 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來協助判定。

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM