本小節說明以下基本 HADB 配置作業:
hadbm createdomain 指令可建立包含指定 HADB 主機的管理網域。此指令可初始化主機和持續性配置存放區之間的內部通訊通道。
該指令語法為:
hadbm createdomain [--adminpassword=password |--adminpasswordfile= file | --no-adminauthentication] [--agent=maurl] hostlist
hostlist 運算元是以逗號分隔的 HADB 主機清單,其中每一個均為有效的 IPv4 網路位址。希望位於新網域中的所有主機都包括在 hostlist 中。
請參閱一般選項,以取得指令選項說明。
使用此指令之前,請確定 HADB 管理代理程式可在 hostlist 中的每台主機上執行。此外,管理代理程式還必須:
不是現有網域的成員。
配置為使用同一連接埠。
能夠經由 UDP、TCP 和使用 IP 多重播送到達彼此。
hadbm 建立管理網域之後,會啟用網域中的所有主機。然後管理代理程式即可以用於管理資料庫了。建立 HADB 網域之後是建立 HADB 資料庫。如需有關建立 HADB 資料庫的更多資訊,請參閱建立資料庫。
以下範例在四個指定的主機上建立管理網域:
hadbm createdomain --adminpassword= password host1,host2,host3,host4
hadbm 成功執行指令後,會顯示以下訊息:
Domain host1,host2,host3, host4 created.
建立 HADB 網域後,將 HADB 套裝軟體的路徑和版本與管理代理程式一同註冊。
使用此指令建立資料庫之前,請首先建立管理網域並註冊 HADB 套裝軟體。如果在執行 hadbm create 時尚未執行這兩個步驟,則會隱式執行這兩個步驟。雖然這看似需要較少的工作,但任何指令中出現故障均會很難除錯。而且,hadbm create 是不可分割的,即如果其中一個隱式指令失敗,則已成功執行的指令將不會回復。因此,最好僅在建立網域並註冊 HADB 套裝軟體之後建立資料庫。
例如,如果 hadbm createdomain 和 hadbm registerpackage 執行成功,但 hadbm create database 失敗,則 hadbm createdomain 和 hadbm registerpackage 所做的變更仍會保留。
建立管理網域。
如需更多資訊,請參閱建立管理網域
註冊 HADB 套裝軟體。
如需更多資訊,請參閱註冊 HADB 套裝軟體。
使用 hadbm create 指令建立資料庫。
如需有關指令語法的資訊,請參閱以下小節。
dbname 運算元指定資料庫名稱,該名稱必須是唯一的。若要確保資料庫名稱的唯一性,請使用 hadbm list 指令列出現有資料庫名稱。請使用預設資料庫名稱,除非需要建立多個資料庫。例如,若要在同一組 HADB 機器上建立具有獨立資料庫的多個叢集,請為每個叢集使用獨立的資料庫名稱。
hadbm create 指令將錯誤訊息寫入主控台,而非記錄檔。
表 3–7 說明特殊 hadbm create 指令選項。請參閱一般選項,以取得其他指令選項說明。
表 3–7 hadbm create 選項
選項 (短形式) |
說明 |
預設 |
---|---|---|
-a |
每個節點上的資料裝置數 (1 到 8 [含])。資料裝置從 0 開始計數。 |
1 |
-d |
裝置路徑。有四個裝置:
|
Solaris 和 Linux:/var/opt/SUNWhadb Windows:C:\Sun\AppServer \SUNWhadb\vers,其中 vers 為 HADB 版本編號。 預設由管理代理程式配置檔案中的 ma.server.dbdevicepath 指定。如需更多詳細資訊,請參閱配置檔案 |
-z |
每個節點的裝置大小。如需更多資訊,請參閱指定裝置大小。 遵循增加現有節點的儲存空間中的說明增加裝置大小。 |
1024MB 最大大小小於最大作業系統檔案大小或 256 GB。最小大小為: (4 x LogbufferSize + 16MB) / n 其中,n 為選項 --datadevices 指定的資料裝置數。 |
-t |
歷史檔案的路徑。此路徑必須已經存在且可寫入。 如需有關歷史檔案的更多資訊,請參閱清除和歸檔歷史檔案 |
預設由管理代理程式配置檔案中的 ma.server.dbhistorypath 指定。如需詳細資訊,請參閱配置檔案 Solaris 和 Linux:/var/opt/SUNWhadb Windows:REPLACEDIR (在執行階段由實際 URL 替代。) |
-H |
以逗號分隔的資料庫中節點之主機名稱或 IP 位址 (僅 IPv4) 清單。使用 IP 位址可避免對 DNS 查詢的依賴性。主機名稱必須為絕對的。localhost 或 127.0.0.1 不能用做主機名稱。主機名稱 請參閱指定主機,以取得更多資訊。 |
無 |
--package=name -k |
HADB 套裝軟體名稱 (版本)。如果找不到套裝軟體,將註冊預設套裝軟體。 已停用此選項。使用 hadbm registerpackage 指令在網域中註冊套裝軟體。 |
無 |
--packagepath=path-L |
HADB 軟體套裝軟體的路徑。僅當套裝軟體未在網域中註冊時使用。 已停用此選項。使用 hadbm registerpackage 指令在網域中註冊套裝軟體。 |
無 |
-b |
用於節點 0 的連接埠基底號。在步驟 20 中自此數字開始為後繼節點指定連接埠基底號。每個節點使用其連接埠基底號及接下來連續的五個已編號連接埠。 若要在同一機器上執行數個資料庫,請明確配置連接埠號。 |
15200 |
-s |
備援節點數。此數字必須等於或小於在 --hosts 選項中指定的節點數。 |
0 |
-S |
以逗號分隔的資料庫配置屬性 (格式為 name =value) 清單。如需資料庫配置屬性說明,請參閱清除和歸檔歷史檔案 |
無 |
以下指令為建立資料庫的範例:
hadbm create --spares 2 --devicesize 1024 --hosts n0,n1,n2,n3,n4,n5
可使用 --hosts 選項指定以逗號分隔的資料庫節點之主機名稱或 IP 位址清單。hadbm create 指令可為清單中的每個主機名稱 (或 IP 位址) 建立一個節點。節點數必須相等。使用重複主機名稱在同一機器上建立具有不同連接埠號的多個節點。請確定相同機器上的節點並非鏡像節點,也不是來自不同的 DRU。
節點以此選項中列出的順序自零開始編號。第一個鏡像對為節點零 (0) 和一 (1),第二個為二 (2) 和三 (3),以此類推。奇數編號的節點在一個 DRU 中,偶數編號的節點在其他 DRU 中。使用 --spares 選項,備援節點為編號最大的節點。
如需有關配置雙網路介面的資訊,請參閱配置網路備援
使用 --devicesize 選項可指定裝置大小。建議的裝置大小:
(4x / nd + 4l/d) / 0.99
其中,
x 為使用者資料的總大小
n 為節點數 (由 --hosts 選項指定)
d 為每個節點上的裝置數 (由 --datadevices 選項指定)
l 為記錄緩衝區大小 (由屬性 LogBufferSize 指定)
如果可能會發生重新分段 (例如,使用 hadbm addnodes),則建議的裝置大小為:
(8x / nd + 4l/d) / 0.99
若要為每個節點或服務設定不同的裝置路徑,請使用 hadbm create 的 --set 選項。有四種類型的裝置:DataDevice、NiLogDevice (節點內部記錄裝置)、RelalgDevice (相關代數查詢裝置) 和 NoManDevice (節點管理員裝置)。每個 name =value 對的語法如下,其中,-devno 僅在 device 為 DataDevice 時需要:
node-nodeno.device-devno.Devicepath
例如︰
--set Node-0.DataDevice-0.DevicePath=/disk0, Node-1.DataDevice-0.DevicePath=/disk 1
還可以設定歷史檔案的異質多工式路徑,如下所示:
node-nodeno.historypath=path
如需有關歷史檔案的資訊,請參閱清除和歸檔歷史檔案
未設定的特定節點或裝置裝置路徑均預設為 --devicepath 值。
使用 hadbm set 和 hadbm addnodes 指令變更歷史檔案的裝置路徑和位置。
如果您在建立資料庫時遇到困難,請檢查以下內容:
確定在所有主機上啟動了管理代理程式並定義了 HADB 網域。如需詳細資訊,請參閱啟動管理代理程式
必須設定檔案和目錄權限,以允許以下使用者對安裝、歷史、裝置和配置路徑擁有讀取、寫入和執行存取權限:
Sun Java System Application Server 管理使用者 (安裝期間設定)
HADB 系統使用者
如需有關設定使用者權限的詳細資訊,請參閱準備 HADB 設定
Application Server 和 HADB 連接埠指定不可與同一機器上的其他連接埠指定衝突。建議的預設連接埠指定為:
Sun Java System 訊息佇列:7676
IIOP:3700
HTTP 伺服器:80
管理伺服器:4848
HADB 節點:每個節點使用六個連續的連接埠。例如,對於預設連接埠 15200,節點 0 使用 15200 至 15205 ,節點 1 使用 15220 至 15225,以此類推。
磁碟空間必須足夠,請參閱「Sun Java System Application Server Enterprise Edition 8.2 版本說明」。
可以分別使用hadbm get 和 hadbm set 指令檢視和修改資料庫配置。
若要取得配置屬性值,請使用 hadbm get 指令。如需有效屬性清單,請參閱配置屬性。指令語法為:
hadbm get attribute-list | --all [dbname] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl]
dbname 運算元指定資料庫名稱。預設為 hadb。
attribute-list 運算元是以逗號分隔或引號引起的、並以空格分隔的屬性清單。--all 選項顯示所有屬性值。如需 hadbm get 的所有屬性清單,請參閱配置屬性。
請參閱一般選項,以取得指令選項說明。
hadbm get JdbcUrl,NumberOfSessions
若要設定配置屬性值,請使用 hadbm get 指令。如需有效屬性清單,請參閱配置屬性
hadbm set [dbname] attribute =value[,attribute= value...] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl]
dbname 運算元指定資料庫名稱。預設為 hadb。
attribute=value 清單為以逗號分隔或引號引起的、並以空格分隔的屬性清單。
請參閱一般選項,以取得指令選項說明。
如果此指令成功執行,則會重新啟動資料庫,並使其處於資料庫之前所處狀態或更佳狀態。如需有關資料庫狀態的資訊,請參閱取得 HADB 的狀態。依照重新啟動資料庫所述方式重新啟動 HADB。
無法使用 hadbm set 設定以下屬性,而應在建立資料庫時設定 (請參閱建立資料庫)。
DatabaseName
DevicePath
HistoryPath
NumberOfDatadevices
Portbase
JdbcUrl (其值在資料庫建立期間根據 --hosts 和 --portbase 選項設定)。
使用 hadbm set 設定配置屬性 (除 ConnectionTrace 或 SQLTraceMode 之外) 會導致 HADB 的滾動重新啟動。在滾動重新啟動中,會停止每個節點,並使用新的配置啟動,每次一個節點;HADB 服務不會中斷。
如果設定 ConnectionTrace 或 SQLTraceMode,不會發生滾動重新啟動,但變更會僅對 Application Server 實例的 HADB 連線有效。
下表列出可使用 hadbm set 修改和使用 hadbm get 擷取的配置屬性。
表 3–8 配置屬性
屬性 |
說明 |
預設 |
範圍 |
---|---|---|---|
如果為 true,則初始化或終止用戶端連線 (JDBC、ODBC) 時在 HADB 歷史檔案中記錄訊息。 |
False |
True 或 False |
|
請勿變更預設值。 |
False |
True 或 False |
|
資料庫名稱。 |
hadb | ||
共用記憶體中配置的資料緩衝區池的大小。 |
200MB |
16 - 2047 MB |
|
指定節點的裝置大小。如需有關建議的 DataDeviceSize 之資訊,請參閱指定裝置大小 最大值為 256GB 或最大作業系統檔案大小中的較小值。最小值為: (4 x LogbufferSize + 16MB) / n 其中,n 為資料裝置數。 |
1024MB |
32 - 262144 MB |
|
PackageName |
資料庫使用之 HADB 軟體套裝軟體的名稱。 |
V4.x.x.x |
無 |
裝置位置:裝置為:
|
Solaris 和 Linux:/var/opt/SUNWhadb Windows:C:\Sun\AppServer \SUNWhadb\vers,其中 vers 為 HADB 版本編號。 | ||
確定使用的是一般還是急切閒置階段作業過期。 在一般閒置階段作業過期中,閒置超過 SessionTimeout 秒的階段作業將過期。 同步運作的階段作業數超過最大階段作業數的百分之 EagerSessionThreshold 時,閒置超過 EagerSessionTimeout 秒的階段作業將過期。 |
NumberOfSessions 屬性的一半 |
0 - 100 |
|
使用急切階段作業過期時,資料庫連線在過期之前可以閒置的時間 (以秒為單位表示) 。 |
120 秒 |
0-2147483647 秒 |
|
事件緩衝區的大小,在其中記錄資料庫事件。如果設定為 0,將不執行事件緩衝區記錄。 出現故障期間,將傾印事件緩衝區。這可為故障原因提供有價值的資訊,並在試部署期間提供協助。 將事件寫入記憶體會有效能懲罰。 |
0 MB |
0-2097152 MB |
|
HADB 歷史檔案的位置,該檔案包含資訊、警告和錯誤訊息。 此為唯讀屬性。 |
Solaris 和 Linux:/var/opt/SUNWhadb Windows:REPLACEDIR (在執行階段由實際 URL 替代。) | ||
節點內部記錄裝置大小,該裝置用於追蹤與儲存資料相關的作業。 |
12MB |
4 - 128 MB |
|
資料庫的 JDBC 連線 URL。 此為唯讀屬性。 |
無 | ||
記錄緩衝區大小,該緩衝區可追蹤資料相關的作業。 |
48MB |
4 - 2048 MB |
|
HADB 資料庫中允許的最大表格數。 |
1100 |
100 - 1100 |
|
HADB 節點使用的資料裝置數。 此為唯讀屬性。 |
1 |
1 - 8 |
|
HADB 節點配置的鎖定數。 |
50000 |
20000 -1073741824 |
|
可為 HADB 節點開啟的最大階段作業 (資料庫連線) 數。 |
100 |
1 - 10000 |
|
用於為不同 HADB 程序建立不同的連接埠號之基底連接埠號。 此為唯讀屬性。 |
15200 |
10000 - 63000 |
|
相關代數查詢中所使用裝置的大小。 |
128 MB |
32 - 262144 MB |
|
使用一般階段作業過期時資料庫連線在過期之前可以閒置的時間數。 |
1800 秒 |
0-2147483647 秒 |
|
有關寫入歷史檔案的已執行 SQL 查詢之資訊量。 如果為 SHORT,將記錄登入和登出 SQL 階段作業。如果為 FULL,將記錄所有就緒和執行的 SQL 查詢,包括參數值。 |
NONE |
NONE /SHORT /FULL |
|
備援節點允許出現故障的使用中節點執行節點回復的最長時間。如果出現故障的節點無法在此時間間隔內回復,備援節點即開始從出現故障的節點的鏡像複製資料,並變為使用中。建議不要變更預設值。 |
20 秒 |
0 - 100000 秒 |
|
HADB 節點將流量和回應時間統計寫入其歷史檔案的間隔。若要停用,請設定為 0。 此為統計行的範例: Req-reply time: # 123, min= 69 avg= 1160 max= 9311 %=100.0 井號 (#) 後的數字為經由 StatInterval 服務的請求數。接下來的三個數字為經由 StatInterval 完成之作業事件的最小、平均和最大時間 (以微秒為單位)。百分比符號 (%) 後的數字為經由 StatInterval 在 15 毫秒內成功完成的作業事件數。 |
600 秒 |
0 - 600 秒 |
|
報告給 syslog 時使用的功能。應該配置 syslog 常駐程式 (請參閱 man syslogd.conf, 以取得詳細資訊)。 使用在同一機器上執行的其他應用程式未使用的功能。 設定為 none 可停用 syslog 記錄。 |
local0 |
local0、local1、local2、local3、local4、local5、local6、local7、kern、user、mail、daemon、auth、syslog、lpr、news、uucp、 cron、none |
|
如果為 true,HADB 節點會將資訊寫入作業系統 syslog 檔案。 |
True |
True 或 False |
|
儲存至作業系統 syslog 檔案的 HADB 訊息之最低層級。將記錄該層級或更高層級的所有訊息。例如,「info」記錄所有訊息。 |
warning |
nonealert errorwarning info |
|
插入所有 HADB 寫入 syslog 的訊息之前的文字字串。 |
hadb -dbname | ||
節點出現故障及其鏡像接管之間的時間。請勿變更預設值。 |
10000 (毫秒) |
500 - 16000 毫秒 |
Application Server 使用 Java 資料庫連結 (JDBC) API 與 HADB 通訊。asadmin configure-ha-cluster 指令可自動建立 JDBC 連線池,以與 HADB 配合使用 (對於叢集 cluster-name)。連線池的名稱為「cluster-name-hadb-pool」。JDBC 資源的 JNDI URL 為「jdbc/cluster-name-hastore」。
連線池的初始配置通常是充足的。增加節點時,請變更持續的池大小,以便每個 HADB 使用中的節點均具有八條連線。請參閱增加節點。
本小節包含以下主題:
有關連線池和 JDBC 資源的一般資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.2 管理指南」中的第 3 章「JDBC 資源」。
設定 JDBC 連線池之前,需要使用 hadbm get 指令如下所示來確定 HADB 的 JDBC URL:
hadbm get JdbcUrl [dbname]
例如︰
hadbm get JdbcUrl
此指令可顯示 JDBC URL,其形式如下:
jdbc:sun:hadb:host:port, host:port,...
移除 jdbc:sun:hadb: 前綴並使用 host:port, host:port... 部分做為 serverList 連線池特性值,如表 3–10 中所述。
下表概括 HADB 必需的連線池設定。增加節點時變更持續的池大小,但請勿變更其他設定。
表 3–9 HADB 連線池設定
設定 |
HADB 必需的值 |
---|---|
HADB JDBC 資源的池名稱設定必須參照此名稱 |
|
HADB 4.4 |
|
取消核取/false |
|
com.sun.hadb.jdbc.ds.HadbDataSource |
|
為每個使用中的 HADB 節點使用 8 條連線。如需更多詳細資訊,請參閱系統部署指南。 |
|
核取/true |
|
meta-data |
|
不指定 |
|
取消核取/false |
|
repeatable-read |
|
核取/true |
下表概括 HADB 必需的連線池特性。增加節點時變更 serverList,但請勿變更其他特性。
表 3–10 HADB 連線池特性
特性 |
說明 |
---|---|
用於 asadmin create-session-store 指令的 storeuser 名稱。 |
|
用於 asadmin create-session-store 指令的密碼 (storepassword)。 |
|
HADB 的 JDBC URL。若要確定此值,請參閱取得 JDBC URL 如果要增加節點至資料庫,必須變更此值。請參閱增加節點。 |
|
為 false 時,必須確保對 Connection.getMetaData() 的呼叫可產生對資料庫的呼叫,才能確保連線有效。 |
|
為 true 時,必須透過減少多餘的確定和回復請求並在未開啟任何作業事件時忽略這些請求來提昇效能。 |
|
在磁碟機敘述池中快取的每條開啟連線的最大敘述數。此特性設定為 20。 |
此為建立 HADB JDBC 連線池之 asadmin create-jdbc-connection-pool 指令的範例:
asadmin create-jdbc-connection-pool --user adminname --password secret --datasourceclassname com.sun.hadb.jdbc.ds.HadbDataSource --steadypoolsize=32 --isolationlevel=repeatable-read --isconnectvalidatereq=true --validationmethod=meta-data --property username=storename:password=secret456:serverList= host\:port,host\:port, host\\:port,host\:port, host\:port,host\:port :cacheDatabaseMetaData=false:eliminateRedundantEndTransaction=true hadbpool
在 Solaris 上,使用雙反斜線 (\\) 替換特性值內的冒號字元 (:)。在 Windows 上,使用單反斜線 (\) 替換冒號字元 (:)。
下表概括 HADB 必需的 JDBC 資源設定。
表 3–11 HADB JDBC 資源設定
設定 |
說明 |
---|---|
以下為階段作業持續性配置中的預設 JNDI 名稱:jdbc/hastore。可以使用預設名稱或其他名稱。 在啟動可用性服務時,還必須指定此 JNDI 名稱為 store-pool-jndi-name 持續性存放區特性的值。 |
|
在此 JDBC 資源使用的 HADB 連線池名稱 (或 ID) 清單中選取。如需更多資訊,請參閱配置網路備援 |
|
核取/true |