對於大規模的企業級應用來講
沒有集群是不太現實的
考慮到可擴展性和高可用性
在通常的生產環境中
都會應用到中間件集群這種技術
本文主要講述了
gas相關的集群配置
一般的管理方面的內容
gas的集群分為兩大類 基於管理的集群
基於管理的集群主要通過 Repository 來記錄 整個集群得相關配置信息
比如集群發布的程序阿等等
這個方式下
管理員需要手工操作的東西比較少
比如發布一個程序
只要對整個集群做一次發布即可
手工管理的集群方式
在這種方式下
除了最基本的session復制以及ejb cluster 外
gas不提供更多的管理手段
如果需要發布程序
你需要對參與集群的所有instance做發布
你可以想象再你有
幾台服務器的情況下
如果每次發布程序
都需要一台台去發布
不但工作量大
而且很容易搞錯
所以建議采用基於管理的方式來做集群
基於管理的集群主要用到需要 Repository 來存儲相關的配置信息
由於 Repository 的重要性
這裡花點時間講一下 Repository得相關信息
Repository 有兩種存儲方式
databased
Repository 和 filebased
Repository
其中 filebased
Repository 是
gas才新心出來的功能
主要是解決以前只能創建
databased
Repository cluster 的問題
而 databased
Repository 需要安裝 Infrastructure
這個Infrastructure 是大家頗為頭疼的東西
不太龐大
而且極容易出問題
所以才有了filebased
Repository
存放在 Repository 的信息主要有下面幾種
Product metadata
Management metadata
Idendity Management metadata (databased
Repository 才有)
對於集群主要需要用到的信息是
Product metadata 和
Management metadata
還記得我
gas 系列文章的第一篇嗎 (oracle
gas安裝攻略) 裡面的安裝方式
J
EE andWeb Cache installation type
這個安裝方式缺省就是采用 filebased
Repository
當然也可以
遷移到 databased
Repository
所以本文主要講如何創建 filebased
Repository 的cluster
對於基於 databased
Repository 的方式的集群
以後再深入講
先講一下創建集群的要求 所有的 application server instance 必須再同一個farm
也就是要用同一個 Repository來存放管理信息
所有的參與集群的 application server instance 都必須安裝同樣的os
每個參與集群的 application server instance 只能由一個ohs server
每一個 application server instance 可以有多個 oc
j instance
每個oc
j instance可以有多個 oc
j process
當然要求所有的application server instance 版本一樣了
涉及的 application server instance 有兩個
ip 都是
在同一 物理server 用兩個用戶安裝兩個 application server instance
每個 application server instance 用不同的端口
操作系統是 redhat
update
用戶 ias
g 啟用 ohs
端口
用戶 ias
g
只啟用oc
j
其中 ias
g用戶 作為 filebased
Repository host
測試該 application server instance 是否已經屬於某個 farm
檢查 instance
su
ias
g
[ias
g@finproduction home]$ dcmctl whichFarm
Standalone instance
顯示 該 instance還沒有加入 farm
如果顯示已經加入farm
請執行下面的命令離開farm
dcmctl leaveFarm
檢查 instance
su
ias
g
[ias
g
@finproduction ias
g
]$ dcmctl whichFarm
Standalone instance
[ias
g
@finproduction ias
g
]$
初始化 Repository
su
ias
g
獲得當前的 id 號碼
[ias
g@finproduction home]$ dcmctl getRepositoryid
finp:
[ias
g@finproduction home]$
初始化farm
dcmctl joinFarm
r finp:
其中 finp:
就是前面通過 getRepositoryid 獲得信息
現在在來看看 是否已經加入 farm
[ias
g@finproduction home]$ dcmctl whichFarm
Farm Name:
tpdata
ias
g
OraHome
dcm
repository
Host Instance: iastest
finp
Host Name: finp
Repository Type: Distributed File Based (host)
SSL In Use: false
可以看到 已經加入 File Based farm
而且這個 instance是 host
加入 instance
su
ias
g
dcmctl joinFarm
r finp:
加入成功
看看 現在的 farm 信息
[ias
g
@finproduction ias
g
]$ dcmctl whichFarm
Farm Name:
tpdata
ias
g
OraHome
dcm
repository
Host Instance: iastest
finp
Host Name: finp
Repository Type: Distributed File Based
SSL In Use: false
[ias
g
@finproduction ias
g
]$
可以看到
已經加入成功 file
based Repository
創建集群 創建集群有兩種方式
一
通過 em 管理界面創建
二
通過dcmctl手工創建
由於通過 em 創建比較簡單
且創建集群屬於比較高階的內容
我這裡主要講如何手工創建
su
ias
g
看看是否已經創建集群
dcmctl listclusters
沒有輸出
說明還沒有創建
創建一個集群
[ias
g@finproduction home]$ dcmctl createcluster
cl mycluster
mycluster
cl 指定 集群的名字
可以隨便取
[ias
g@finproduction home]$ dcmctl listclusters
mycluster
可以看到已經創建一個cluster
先把 instance
加入集群
[ias
g@finproduction home]$ dcmctl joincluster
cl mycluster
iastest
finp
接著把 instance
加入集群
su
ias
g
[ias
g
@finproduction ias
g
]$ dcmctl joincluster
cl mycluster
iastest
finp
iastest
finp
可以看到已經再集群 mycluster 中已經有兩個 instance 了
From:http://tw.wingwit.com/Article/program/Oracle/201311/18970.html