熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle 10gas 之 集群

2013-11-13 22:23:32  來源: Oracle 

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

From:http://tw.wingwit.com/Article/program/Oracle/201311/18970.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.