
手把手地教你搭建Oracle Sharding
Sharding架構是數據庫層面的一種分片技術,可以使分過區的數據分布在各不相同的獨立數據庫里。Sharding是Oracle Database 12c Release 2的新特性,它能為適合于 Sharding技術的OLTP應用提供線性擴展和完全錯誤隔離的能力,可以將 Sharding簡單地理解為Oracle 表分區技術的擴展。
本文將向您展示如何從頭一步一步搭建Sharded Database的過程,展示過程中還會穿插講解一些相關的概念。
本例將搭建如下 Sharded Database (SDB).

·一共3臺Host,即 SDB1, SDB2, SDB3。 均已安裝Oracle Linux 6.7。
·在HostSDB1上安裝Shard Director和Shard Catalog。
·在HostSDB2和HostSDB3上各安裝一個Shard。
下面是對Oracle Sharding 主要部件的簡要解釋:
Sharded Database(SDB) – 是一個邏輯上的Oracle Database,它由多個物理上互相獨立的Oracle Databases (Shards) 組成,Shards之間不共享任何軟件和硬件,即Share Nothing.
Shards – 是一個獨立的數據庫。
ShardCatalog - 它也是一個Oracle Database,主要用于Shard的自動部署、集中管理以及跨Shard的查詢。
ShardDirectors - 跟據Sharding Key來提供到Shard的路由。OracleSharding中可以設置多個位于不同Host的Shard Director。
Oracle Sharding 支持如下三種Sharding方式:
System-ManagedSharding – 這種Sharding方式不需要用戶指定數據到Shard的mapping關系(可以簡單理解為數據按consistenthash之后再分布到各個Shard),本例中將使用這種Sharding 方式。
CompositeSharding –這種Sharding方式需要用戶指定數據到Shard的mapping關系(這里將不做詳細講解)。
UsingSubpartitions with Sharding – Oracle Sharding是基于表分區技術的, 因此 Sharding可以支持所有的subpartition方法。
下面開始搭建環境:
一.安裝軟件:
OracleDatabase 12c Release 2
OracleDatabase 12c Release 2 Global Service Manager (GSM/GDS)
1.在所有節點上安裝Oracle Database 12c Release 2。(注:只安裝軟件,不創建DB)
1.1安裝前準備。

1.2 開始安裝,點擊Next。
1.3 選擇Installdatabase software only,點擊Next。
1.4 選擇Singleinstance database installation,點擊Next。
1.5 選擇EnterpriseEdition,點擊Next。
1.6 接下來的所有步驟都使用默認值。點擊Next。
1.7 在Summary頁面,選擇SaveResponse File, 將用于其它節點的安裝。

1.8 安裝過程中,應該按要求新開一個終端,用root執行腳本。
.jpg)
1.9 在另外兩個節點準備環境并靜默安裝Oracle Database 12c Release 2。

2.在Shard Director 所在節點安裝Oracle Database 12c Release 2 Global Service Manager (GSM/GDS), 本例中即HOST SDB1。安裝過程與安裝OracleDatabase 12c Release 2類似,均使用默認值。
二.創建ShardCatalog Database。本例中將會在HostSDB1上創建。
1.準備環境并啟動DBCA。

2.選擇Create a database,點擊Next。
3.選擇Advanced configuration,點擊Next。
4.選擇Oracle Single Instance database, 選擇General Purpose orTransaction Process模板,點擊Next。
5.輸入Global Database name和SID,請不要選中Create asContainer database,點擊Next。

6.選擇File System,選擇Oracle-Managed Files(OMF),點擊Next。

7.選擇Specify Fast Recovery Area ,Enable archiving,點擊Next。

8.接下來的頁使用默認值,并跳過Data Vault 選項頁。然后選擇Use Automatic Shared Memory Management。

9.選擇Use Unicode(AL32UTF8),點擊Next。

10.不要選擇Configure EnterpriseManager(EM) database express,點擊Next。
11.本例所有的用戶都用同樣密碼’welcome1’。

12.選擇Create database。

13.點擊Finish。
三.設置OracleSharding Manage和路由層。本例中在HostSDB1上設置。
1.設置catalog database 環境變量并啟動監聽。

2.賦角色和權限。GSMCATUSER是12c內置的一個用戶,shard director 用這個用戶連到catalog database。
.jpg)
3.進入到GDSCTL命令行,創建shard catalog。
注:GDSCTL是一個命令行工具,用于管理和配置Global Data Services framework。

4.創建并啟動shard director。并設置操作系統安全認證。

5.連接到每一個Shard Hosts(本例中為HOST SDB2和HOST SDB3),注冊Scheduler agents, 并創建好oradata和fast_recovery_area文件夾。

四.開始布署SharedDatabase。本例將布署System-ManagedSDB。
1.準備

2.布署

TIPs:
•deploy命令會調用遠程每一個節點上的dbca去靜默安裝sharded database。我們可以通過dbca的日志文件去監控安裝進度。

·deploy 還會在catalogdatabase 上提交一些job來完成相關事務。我們可以查詢dba_scheduler_jobs 來監控進度。
·另外,GSM日志可以用于deploy過程的監控和診斷。GSM日志的位置可以通過如下命令查到。
GDSCTL>status gsm
3.驗證安裝是否成功。

Sharded Database (SDB) 安裝布署到此完成。我們看到,SDB的安裝布署非常容易,幾乎所有的管理配置都是通過GDSCTL的幾條簡單命令完成的。另外,Oracle Sharding還高度整合了Oracle Data Guard:如果你想布署standby database,可以通過GDSCTL的一兩條命令來定義,Oracle Sharding 會自動幫你布署好standbys。
【文章來源:Oracle官網】