標籤:Oracle 18C新特性
Oracle 18c 是在 2018-02-16 發布出來的,還是秉承著 Oracle 的 Cloud first 理念,18c 現在 Cloud 和 Engineered Systems 上推出。Oracle 18c號稱是一款自治性的資料庫,可以減少很多DBA的工作,很多從事DBA工作的人員是不是要擔心自己的工作受到影響?其實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
現在,Multiple-Instance Redo Apply(也叫 MIRA ),也可以支援 BCT(Block Change Tracking)的備份方式了。這對於超大的資料庫,且是主從都是 RAC(即時應用叢集),且備份發生在從庫上,這是非常有效一種增量備份方式。
- 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 為止。
SQL> ALTER DATABASE SET STANDBY NOLOGGING FOR DATA AVAILABILITY;
一種是 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新特性介紹