Oracle 18C新特性介紹
查看了官方的一些文檔資料,就新增的一些新的特點和大家分享一下,18C繼續著12C的雲數據庫的特點,並從18C開始改變了以後版本的命名方式。
了解18C的新特性之前,需要簡單的對12C有一個基本的認知。2013年6月26日,Oracle發布了Oralce 12C。雲(cloud)計算設計。12C引入了CDB與PDB的新特性,在ORACLE 12C數據庫引入的多租用戶環境(Multitenant Environment)中(註:多租戶技術(英語:multi-tenancy technology)或稱多重租賃技術,是一種軟件架構技術,它是在探討與實現如何於多用戶的環境下共用相同的系統或程序組件,並且仍可確保各用戶間數據的隔離性),允許一個數據庫容器(CDB)承載多個可插拔數據庫(PDB)。
CDB全稱為Container Database,中文翻譯為數據庫容器,PDB全稱為Pluggable Database,即可插拔數據庫。在ORACLE 12C之前,實例與數據庫是一對一或多對一關系(RAC):即一個實例只能與一個數據庫相關聯,數據庫可以被多個實例所加載。而實例與數據庫不可能是一對多的關系。當進入ORACLE 12C後,實例與數據庫可以是一對多的關系。
對12C有了基本的特性認知後,就可以了解看看18C以後增加的一些新的特性了,下面列了一些新增的一些實用的新特性。
(一)Availability
- Oracle Data Guard Multi-Instance Redo Apply Supports Use of Block Change Tracking Files for RMAN Backups
- Automatic Correction of Non-logged Blocks at a Data Guard Standby Database
自動糾正備庫因Nologging而導致的壞塊問題。新增兩種 standby logging 模式(主要是為了加快主庫 loading 數據):
一種是 Standby Nologging for Data Availability,即 loading 操作的 commit 會被 delay,直到所有的 standby 都 apply data 為止。
一種是 Standby Nologging for Load Performance,這種模式和上一種類似,但是會在 load 數據的時候,遇到網絡瓶頸時,先不發送數據,這就保證了 loading 性能,但是丟失了數據,但是丟失的數據,會從 primary 中再次獲取。
SQL> ALTER DATABASE SET STANDBY NOLOGGING FOR LOAD PERFORMANCE; - Shadow Lost Write Protection
創建一個 shadow tablespaces(註:是 big file tablespace)來提供保護。(註:此時你就可以不需要 ADG 來提供額外的 lost write 的保護了), 寫丟失的影子保護,可以在表空間、數據庫、數據文件級別開啟,用於主動提前檢查和防止寫丟失。 - Backups from non-CDBs are usable after migration to CDB
原來的 non-CDB,可以以這種方式,作為一個 PDB 遷移到當前已經存在的 CDB 中。 - Scalable Sequences
自適應的序列,是為了減少高並發DML下的競爭,通過構建不連續的序列,打散和減輕類似索引之上的分裂競爭等,這是來自Oracle優化最佳實踐的增強。 - User-Defined Sharding Method
支持用戶自定義分片。這個在12.2中的 beta 版中存在的特性在,在正式發布是被取消了。現在,再次 release 出來了。 - Consistency Levels for Multi-Shard Queries
提供 MULTISHARD_QUERY_DATA_CONSISTENCY 初始化參數,執行之前可以先設置該初始化參數,避免跨分片查詢時的 SCN synchronization。 - Manual termination of run-away queries
現在,你可以手動的殺掉一個語句,而不斷開這個 session:
ALTER SYSTEM CANCEL SQL。
(二)Big Data and Data Warehousing
- Approximate Top-N Query Processing
註:18c 中,增加了 APPROX_COUNT 和 APPROX_SUM 來配合 APPROX_RANK 的使用。 - LOB support with IMC, Big Data SQLLOB
對象也支持 in memory 了。
三)Database Overall
- 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,就需要手動復制)。 - PDB Lockdown Profile Enhancements
現在可以在 application root 和 CDB root 中創建 PDB lockdown profile。
你現在還可以根據一個 pdb lockdown profile,創建另外一個 pdb lockdown profile。
18c 包含三個默認的 lockdown profile:PRIVATE_DBAAS,SAAS,PUBLIC_DBAAS - Refreshable PDB SwitchoverPDB refresh
支持了 switchover。switchover 分成計劃內核計劃外的兩種場景。計劃內的,可以切回去,主要用於平衡 CDB 的負載。計劃外的,主要用於 PDB master 失效之後,不用整個 CDB 做切換。 - PDB Snapshot Carouselpdb 的 snapshot
備份轉盤,默認保留8份,每24小時備份一次。
ALTER PLUGGABLE DATABASE SNAPSHOT MODE EVERY 24 HOURS; - New Default Location of Oracle Database Password File
口令文件路徑已經在 ORACLE_BASE,而不是 ORACLE_HOME,以便去除對ORACLE_HOME的更改。 - 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 是只讀。設置 ORACLE_HOME 為只讀,則變化文件將創建於 $ORACLE_BASE, 這是為了標準化、分發共享、滾動升級等提供便利。 - Online Merging of Partitions and Subpartitions
支持在線合並分區,加強了在線維護性。註:需要使用 ONLINE 關鍵字。 - Concurrent SQL Execution with SQL Performance AnalyzerSPA
可以並行運行了(默認情況還是串行),幫你更快的完成 SPA 測試,這個特性在升級時很有用。
(四)Performance
- Automatic In-Memory
自動 In Memory 會根據 Heat Map,在內存使用緊張的情況下,將不常訪問的 IM 列驅逐出內存。 - Database In-Memory Support for External Tables
外部表支持 IM 特性。 - Memoptimized Rowstore
SGA 中有一塊 memoptimize pool 區域,大小受MEMOPTIMIZE_POOL_SIZE 參數設置,當開啟 fast lookup 的時候,就能利用該內存區域,進行快速的查找。開啟 fast lookup,需要在建表語句中加上關鍵字:當基於主鍵查詢時,就能使用到 fast lookup。Memoptimized Rowstore 將極大的提高物聯網中基於主鍵的高頻查詢。
(五)RAC and Grid
- ASM Database Cloning
ASM數據庫克隆支持多租戶數據,這個特點通過ASM冗余提供了一種基於數據的原生克隆方式,可以替代基於存儲級別的克隆或復制同步 - Converting Normal or High Redundancy Disk Groups to Flex Disk Groups without Restricted Mount
鼓勵往 flex diskgroup 上轉型。
(六)Security - 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。
以上這些就是Oracle 18c發布的版本中所涉及到的主要特性,更多的新的特性還需要我們要實踐的過程中進行發現和總結,不過從Oracle的發展戰略來看,後期版本會越來越智能,搭上雲計算和人工智能的春風,我們拭目以待,期待Oracle給我們帶來更多的驚喜!
Oracle 18C新特性介紹