在linux上單機模擬Oracle 10g RAC集群一
2024-08-29 13:36:50
供稿:網友
 
             
  一、簡介
  
  熟悉 Oracle 真正應用集群 (RAC) 10g 技術的最有效方法之一是訪問一個實際的 Oracle RAC 10g 集群。沒有什么方法比直接體驗它們能夠更好地理解其好處的了 — 包括容錯、安全性、負載均衡和可伸縮性。
  
                                                                                              Oracle RAC 的核心是共享磁盤子系統。集群中的所有節點必須能夠訪問集群中所有節點的所有數據、重做日志文件、控制文件和參數文件。數據磁盤必須在全局范圍內可用,以便答應所有節點訪問數據庫。每個節點擁有自己的重做日志和控制文件,但是其他節點必須能夠訪問這些文件,以便在系統故障時恢復該節點。
  
  希望本文能對一些手頭上只有一臺PC而沒有真正的雙機環境的朋友提供一個參考。
  
  二、本文實踐環境
  
  1、PC主要配置:
  
  Celeron(R) CPU 1.80GHz
  
  Maxtor 6E040L0, ATA DISK drive 40G
  
  RelTek 8139C 網卡 一塊
  
  內存DDR333 512MB * 2
  
  顯示卡:ATI [Radeon 9200 SE]
  
  操作系統:White Box EnterPRise linux 3 (本文同樣適用于RedHat企業版,不同之處是WBEL3目前可以免費運用于商業)
  
  遠程終端一臺,裝有windowsXP和遠程X-server軟件
  
  2、服務器分區方案
  
  Oracle 數據庫文件
  
  RAC節點名
  
  實例名
  
  數據庫名
  
  $ORACLE_BASE
  
  文件系統
  
  dbrac
  
  orcl1
  
  orcl
  
  /home/oracle
  
  ASM
  
  Oracle CRS 共享文件
  
  文件類型
  
  文件名
  
  分區
  
  掛載點
  
  文件系統
  
  oracle集群注冊表
  
  /u01/orcl/orcfile
  
  /dev/hda8
  
  /u01
  
  OCFS
  
  CRS表決磁盤
  
  /u01/orcl/CSSfile
  
  /dev/hda8
  
  /u01
  
  OCFS
  
  3、所涉及軟件
  
  1)oracle 10g 數據庫軟件
  
  hip.db.lnx32.cpio.gz
  
  2)oracle 10g 集群服務軟件
  
  hip.crs.lnx32.cpio.gz
  
  3)OCFS文件系統支持
  
  ocfs-2.4.21-EL-1.0.14-1.i686.rpm
  
  ocfs-support-1.0.10-1.i386.rpm
  
  ocfs-tools-1.0.10-1.i386.rpm
  
  4)ASMlib驅動程序
  
  oracleasm-2.4.21-EL-1.0.3-1.i686.rpm
  
  oracleasm-support-1.0.3-1.i386.rpm
  
  oracleasmlib-1.0.0-1.i386.rpm
  
  以上軟件包均可以從oracle官方網站下載
  
  WBEL linux下載地址:http://www.whiteboxlinux.org/download.Html
  
  三、基礎操作
  
  1、安裝linux
  
  安裝過程中一些需要注重的地方:
  
  1)磁盤分區:swap分區大小建議是內存的2倍,這里是2048MB,劃出一些系統必要的分區根分區/,var分區/var,usr分區 /usr,home分區/home,臨時文件分區/tmp。
                         注重:這里不要把所有的硬盤空間劃分進操作系統,留下一半給后面安裝oarcle集群磁盤使用,本文示例
  
  2)文件系統   容量 掛載點
  
  /dev/hda1     1012M /
  
  /dev/hda2     7.7G  /home
  
  /dev/hda7     1012M  /tmp
  
  /dev/hda3     5.8G  /usr
  
  /dev/hda5     2.0G  /var
  
  3)組件選取:一定要選上delvelopment tools和X-windows兩項,為了節省空間其他可以不要
  
  4)防火墻:最好不要
  
  5)網絡設置:eth0
  
  取消選中 [Configure using DHCP] 復選項
  
  選中 [Activate on boot]
  
  IP 地址:192.168.22.44
  
  網絡掩碼: 255.255.255.0
  
  6)主機名:dbrac
  
  2、.安裝完成后檢查必需的 RPM
  
  3、必須安裝以下程序包(或更高版本):
  
  make-3.79.1
  
  gcc-3.2.3-34
  
  glibc-2.3.2-95.20
  
  glibc-devel-2.3.2-95.20
  
  glibc-headers-2.3.2-95.20
  
  glibc-kernheaders-2.4-8.34
  
  cpp-3.2.3-34
  
  compat-db-4.0.14-5
  
  compat-gcc-7.3-2.96.128
  
  compat-gcc-c++-7.3-2.96.128
  
  compat-libstdc++-7.3-2.96.128
  
  compat-libstdc++-devel-7.3-2.96.128
  
  openmotif-2.2.2-16
  
  etarch-1.3-1
  
  四、設置
  
  1、更改/etc/hosts
  
  vi /etc/hosts
  
  127.0.0.1        localhost.localdomain localhost
  
  192.168.22.44  dbrac int-dbrac
  
  192.168.22.244 vip-dbrac
  
  確保RAC節點名沒有出現在回送地址中。
  
  此處設置相當重要,不能跳過,一定按照此設置,IP和主機別名可以自己定
  
  oracle 10g RAC中 使用了虛擬IP(VIP)技術,這是一個令人心動的高可用性、多機無縫切換的解決方案,但在單機模擬環境中僅僅是個形式而已,為了以后的順利安裝,不得不配置它
  
  2、調整內核網絡設置參數
  
  編輯/etc/sysctl.conf,增加下面的設置:
  
  vi /etc/sysctl.conf
  
  # Default setting in bytes of the socket receive buffer
  
  et.core.rmem_default=262144
  
  # Default setting in bytes of the socket send buffer
  
  et.core.wmem_default=262144
  
  # Maximum socket receive buffer size which may be set by using
  
  # the SO_RCVBUF socket option
  
  et.core.rmem_max=262144
  
  # Maximum socket send buffer size which may be set by using
  
  # the SO_SNDBUF socket option
  
  et.core.wmem_max=262144
  
  3、添加模塊選項:
  
  將下列行添加到 /etc/modules.conf 中:
  
  options sbp2 sbp2_exclusive_login=0
  
  4、創建“oracle”用戶和目錄
  
  $su -
  
  #groupadd dba
  
  #useradd -g dba -m oracle
  
  #passwd oracle
  
  5、編輯.bash_profile文件,增加oracle環境變量
  
  $vi .bash_profile
  
  export PATH
  
  unset USERNAME
  
  export LANG=zh_CN.EUC
  
  ORACLE_BASE=/home/oracle;export ORACLE_BASE
  
  export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
  
  export ORA_CRS_HOME=$ORACLE_BASE/product/10.1.0/crs_1
  
  export ORACLE_SID=rac1
  
  export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
  
  PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/bin:/usr/ccs/bin:/usr/local/bin:/usr/ucb;
                         export PATH
  
  LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:$ORACLE_HOME/oracm/lib:/usr/local/lib:/usr/lib;export LD_LIBRARY_PATH
  
  export ORACLE_TERM=xterm
  
  export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
  
  export THREADS_FLAG=native
  
  export TEMP=/tmp
  
  export TMPDIR=/tmp
  
  export LD_ASSUME_KERNEL=2.4.1
  
  6、創建CRS分區和數據文件分區
  
  1)先建立CRS分區掛載點
  
  mkdir /u01
  
  chown oracle:dba /u01
  
  2)接著創建CRS分區和共享數據文件分區
  
  fdisk /dev/hda
  
  CRS分區只要500M就夠了,剩下的全部劃分給數據文件分區,這里為數據文件只分了1個區/dev/hda9
  
  CRS分區為/dev/hda8
  
  [root@dbrac root]# fdisk /dev/hda
  
  The number of cylinders for this disk is set to 4997.
  
  [root@dbrac root]# fdisk /dev/hda
  
  The number of cylinders for this disk is set to 4997.
  
  There is nothing wrong with that, but this is larger than 1024,
  
  and could in certain setups cause problems with:
  
  1) software that runs at boot time (e.g., old versions of LILO)
  
  2) booting and partitioning software from other OSs
  
  (e.g., DOS FDISK, OS/2 FDISK)
  
  Command (m for help): p
  
  Disk /dev/hda: 41.1 GB, 41109061120 bytes
  
  255 heads, 63 sectors/track, 4997 cylinders
  
  Units = cylinders of 16065 * 512 = 8225280 bytes
  
  Device Boot  Start    End  Blocks  Id System
  
  /dev/hda1  *     1    131  1052226  83 Linux
  
  /dev/hda2      132   1151  8193150  83 Linux