天天看點

Oracle Database 12c新特性對企業影響的思考

當今的世界,是雲的世界。

而關系型資料庫管理系統 (RDBMS) 也正在發生一場重大變革 ---- 從固定的伺服器和存儲轉向靈活的雲部署,從存儲優化的資料庫管理轉向記憶體優化的資料庫管理。

新一代的資料庫環境已經來臨。傳統資料庫中的Oracle也釋出了12C的版本,經過一段時間的使用和測試,我們感覺Oracle Database 12C能為我們提供進行創新的基礎,并企業以安全、可靠且經濟高效的方式進行IT管理。本文主要探讨12C中的幾個對新特性帶來的影響。

1. 多租戶架構(Multitenant)

Oracle12c引入了一種新的多租戶架構(Multitenant),該架構有助于輕松部署和管理資料庫,并能使使用者充分利用雲計算所提供的資源共享、管理靈活性和成本節省等優勢。

Oracle新的多租戶架構(Multitenant)為雲而設計,它帶來的新架構可以簡化整合并提供基于模式的高密度的整合,然而卻無需更改現有應用程式。它可帶來将多個資料庫作為一個管理的所有好處,同時還能保持不同資料庫的互相隔離和資源控制。在這個架構中,單個容器資料庫可以托管多個“可插拔”資料庫。對于應用程式而言,每個整合或“插入”到多租戶容器中的資料庫感覺就和以前版本的Oracle資料庫一樣。對可插拔資料庫的通路與對現有Oracle資料庫的通路一樣,并且DBA可以控制所有整合資料庫使用資源的優先級。

整合多個資料庫意味着DBA需要管理的資料庫數量變少,對IT部門來說,即使不是數千個資料庫,管理數百個資料庫也是相當尋常的情況,這些資料庫中的每一個(無論是生産、測試還是開發資料庫)都需要進行維護。

将多個可插拔資料庫整合到一個多租戶容器中,可以大大減少所需更新活動的數量。現在隻需要在容器級應用更新檔和更新,不需要對每個可插拔資料庫應用更新檔和更新。同時,我們還可以靈活地建立新的修補和/或更新的容器資料庫,可以有選擇地将資料庫從舊的容器資料庫中拔出,然後插入新更新的容器資料庫中。

新的可插拔架構隻需在多租戶容器級執行備份,不必對資料中心的每個獨立資料庫分别進行備份。這意味着DBA管理的備份減少,因為對容器資料庫中每個可插拔資料庫的備份都是自動進行的。

将多個可插拔資料庫作為一個管理的另一個好處是維護的備用資料庫減少。使用12C,将在容器級傳輸和應用重做日志,是以,可以完全保護每個整合到容器中的可插拔資料庫免受站點中斷影響,但是這裡也帶來一個負面的影響,這有可能會帶來備份空間的浪費。此外,使用ADG的使用者還可以将自己的備用可插拔資料庫用于生成報表及其他活動用途。

盡管通過整合多個資料庫可獲得諸多好處,我們還是應該全面考慮資料庫整合各個方面的問題。一個顯而易見的問題是,在這種新的多租戶架構中如何確定資源使用的優先級?畢竟,如果資料庫應用程式不斷地争用可用系統資源,那麼将多個資料庫作為一個管理帶來的許多好處将會迅速消失,使用者性能服務級别也會開始下降。我們可以使用12C的資源管理特性,在可插拔資料庫級友善地定義資源使用優先級,雖然目前Oracle Database 12C在多個可插拔資料庫之間的IO資源隔離依然存在不足,但在CPU、記憶體等資源的隔離依然好于其他資料庫,使用可插拔資料庫對資源的隔離,依然是一個比較合适的選擇。

2. Database In-Memory(IMDB)選件

IMDB是12C的一個新選件,它提供了一個獨特的雙格式架構。可以使用傳統的行格式和新的記憶體中列格式同時在記憶體中表示資料庫表。12C自動維護行格式和列格式間的完全的事務一緻性,優化器自動将分析查詢路由到列格式,将OLTP查詢路由到行格式,進而以透明的方式提供了兩者之最佳性能。

IMDB對記憶體中掃描、記憶體中聯接和記憶體中聚合采用最新的算法。這些記憶體中優化能極大的提升分析類業務的查詢速度,在同樣的硬體環境下,對于分析類業務的性能提升顯著。

IMDB不要求将所有資料庫資料都放在記憶體中。使用者可以選擇隻将性能敏感的表、分區或列填充到記憶體中。性能不太敏感的資料則可以存放在低成本的閃存或磁盤上。對存放于所有三個層(記憶體、閃存和磁盤)中的資料透明地執行查詢使IMDB可以與任何大小的資料庫結合使用。

利用IMDB時無需對現有應用程式進行更改。它與12c的所有功能完全相容,包括Multitenant、最高可用性架構和資料庫安全性特性。

3. 實施縱深防禦以實作最高安全性

12C引入了新的預防、檢測和管理控制,這些控制可以幫助使用者加強其企業資料的保護。

  • 資料編輯:通過在資料庫(而非應用程式)中定義和實行資料編輯政策,無需修改應用程式,使用者就可以有效地防止在應用程式螢幕和報告上顯示諸如身份證号、生日和銀行賬号等敏感資料。
  • 全面審計:這種審計架構既是基于政策的也是上下文感覺的,并設定了新角色來管理審計政策和檢視審計資料。這一新架構将現有審計線索統一為單個審計線索,進而簡化了對資料庫生成的審計資料的管理,同時提高了它們的安全性。
  • 權限分析:能夠跟蹤連接配接到資料庫的特定會話或所有會話的權限及角色使用。權限分析有效地記錄所使用的權限和角色,并允許安全的個人、資料庫管理者和審計人員通過設計能準确反應日常業務和管理活動所需權限的最小權限模型來保護其資料庫。 

4. 簡化大資料分析

盡管Hadoop和分布式鍵值對存儲等技術可以幫助企業擷取大量低密度資料,但是,如果能結合更多傳統企業資料對大資料進行分析,則能實作大資料的真正價值。

12C為提供了一個資料庫倉儲平台,該平台可存儲和管理海量資料,并可使用熟悉的SQL接口和諸如R等統計架構來處理從簡單查詢到複雜分析的每件事情。與以往不同,使用者不再需要不斷将資料從資料倉庫移動到資料集市和專用處理伺服器,而是可以将企業資料和大資料全部整合到同一個資料倉庫中以支援其所有使用者的業務智能和分析需求。 

5. 新特性在實際生産運維中的應用

Oracle Database 12c投産到我們部分生産系統已有兩年,确實為我們提供了較多的便利。

首先,它提供的多租戶架構,讓我們能夠快速友善的新增資料庫,免去複雜的環境配置、參數配置環節。同時,使用者可以登陸一台主機,便可檢視各個PDB資料庫狀态及監聽狀态,便于日常監控管理。

其次,在12c之前的版本中,Varchar2和nVarchar2資料類型的最大長度是4000 位元組,一旦超過4000位元組,将以out of line方式存放。12c提供的32K String功能,使得Varchar2和nVarchar2類型最大可以支援到 32K。雖然底層存儲方面是采用類似LOB字段的out of line的方式存放,但對于前端開發者來說,可以像使用普通的Varchar2字段一樣使用32K Varchar2,而不用像使用LOB字段那樣需要寫專門的代碼來通路LOB字段的内容。

此外,在12C中,多個PDB可以共享process,undo等資源,通過将業務高峰期錯開的資料庫置于一個CDB中,使系統資源得到了充分的利用。

但是,在日常運維中,我們也發現了12c的一些不足。例如,當收到undo表空間使用率告警時,DBA需要到CDB裡檢視各PDB UNDO使用率,然後再根據使用率,到PDB去檢視其具體會話詳情, 且PDB中隻能檢視自身UNDO使用情況,而無法檢視其占總UNDO的百分比,給日常問題管理帶來較多不便;在12c中,當一個節點的資料庫程序出錯時,會導緻該節點所有的pdb無法繼續提供服務。當該節點恢複正常的時候,為了能夠讓分節點通路的業務正常通路節點,需要啟停更多的業務程序,延遲了故障恢複時間等。

 總結 

Oracle Database 12c新特性對企業影響的思考

在雲化架構到來的時候,我們可以嘗試依據自己的業務對Oracle Database 12C的相關新特性進行測試,并選擇最合适自己企業的特性進行生産實踐。

作者:唐小丹(浙江移動資料庫管理者);王航威(上海新炬資料庫管理者)

本文來自雲栖社群合作夥伴"DBAplus",原文釋出時間:2016-03-16