• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 在linux上單機模擬Oracle 10g RAC集群

    發表于:2007-07-13來源:作者:點擊數: 標簽:
    一、簡介 熟悉 Oracle 真正應用集群 (RAC) 10g 技術的最有效方法之一是訪問一個實際的 Oracle RAC 10g 集群。沒有什么方法比直接體驗它們能夠更好地理解其好處的了 — 包括容錯、 安全 性、負載均衡和可伸縮性。 Oracle RAC 的核心是共享磁盤子系統。集群中

    一、簡介

     熟悉 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 數據庫軟件

    ship.db.lnx32.cpio.gz

    2)oracle 10g 集群服務軟件

    ship.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)組件選?。阂欢ㄒx上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

    setarch-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

    net.core.rmem_default=262144

    # Default setting in bytes of the socket send buffer

    net.core.wmem_default=262144

    # Maximum socket receive buffer size which may be set by using

    # the SO_RCVBUF socket option

    net.core.rmem_max=262144

    # Maximum socket send buffer size which may be set by using

    # the SO_SNDBUF socket option

    net.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

    /dev/hda3          1152      1916   6144862+  83  Linux

    /dev/hda4          1917      4998  24756165    f  Win95 Ext'd (LBA)

    /dev/hda5          1917      2177   2096451   83  Linux

    /dev/hda6          2178      2438   2096451   82  Linux swap

    /dev/hda7          2439      2569   1052226   83  Linux

    Command (m for help): n

    First cylinder (2570-4998, default 2570):

    Using default value 2570

    Last cylinder or +size or +sizeM or +sizeK (2570-4998, default 4998): +500M

    Command (m for help): n

    First cylinder (2632-4998, default 2632):

    Using default value 2632

    Last cylinder or +size or +sizeM or +sizeK (2632-4998, default 4998): +15000M

    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

    /dev/hda3          1152      1916   6144862+  83  Linux

    /dev/hda4          1917      4998  24756165    f  Win95 Ext'd (LBA)

    /dev/hda5          1917      2177   2096451   83  Linux

    /dev/hda6          2178      2438   2096451   82  Linux swap

    /dev/hda7          2439      2569   1052226   83  Linux

    /dev/hda8          2570      2631    497983+  83  Linux

    /dev/hda9          2632      4456  14659281   83  Linux

    Command (m for help): w

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    WARNING: Re-reading the partition table failed with error 16: 設備或資源忙.

    The kernel still uses the old table.

    The new table will be used at the next reboot.

    Syncing disks.

    7、編輯/etc/sysctl.conf,增加下面2行以設置系統共享內存大小和文件句柄

    kernel.shmmax=2147483648

    kernel.sem=250 32000 100 128

    本文涉及到的linux操作系統的內核參數默認設置大多符合oracle安裝所需,不需要做更大的改動

    8、配置 hangcheck-timer 內核模塊

    在/etc/modules.conf中增加下面一行

    options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

    為了確保系統每次重新啟動的時候都能自動加載hangcheck-timer 模塊,需要在/etc/rc.local文件中增加下面一行

    echo “modprobe hangcheck-timer” >> /etc/rc.local

    重啟系統并檢查hangcheck-timer模塊是否已經加載

    [root@dbrac root]# lsmod | grep hangcheck-timer

    hangcheck-timer         2616   0  (unused)

    9、配置 RAC 節點以進行遠程訪問

     在 RAC 節點上運行 Oracle Universal Installer 時,它將使用 rsh 、rcp或scp命令將 Oracle 軟件復制到 RAC 集群中的所有其他節點。雖然是單機模擬,但仍然要配置,無法跳過,從oracle 10g開始已經支持ssh協議,本文將首先嘗試使用它

    使用oracle用戶創建ssh公共密匙:

    [oracle@dbrac oracle]$ ssh-keygen -t dsa

    Generating public/private dsa key pair.

    Enter file in which to save the key (/home/oracle/.ssh/id_dsa):

    Enter passphrase (empty for no passphrase):

    Enter same passphrase again:

    Your identification has been saved in /home/oracle/.ssh/id_dsa.

    Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.

    The key fingerprint is:

    2d:09:9a:c0:40:c7:99:46:ea:43:0d:22:4b:d0:a0:26 oracle@dbrac

    復制公匙到其他節點(這里是單機)

    [oracle@dbrac oracle]$ cp -v .ssh/id_dsa.pub .ssh/authorized_keys

    測試密匙是否生效

    [oracle@dbrac oracle]$ ssh dbrac

    The authenticity of host 'dbrac (192.168.22.44)' can't be established.

    RSA key fingerprint is e7:ff:ce:5e:92:ac:c4:96:a8:ca:3e:20:2e:5c:75:ae.

    Are you sure you want to continue connecting (yes/no)? yes

    Warning: Permanently added 'dbrac,192.168.22.44' (RSA) to the list of known hosts.

    [oracle@dbrac oracle]$

    無需密碼即可登陸表示密匙已經生效

    10、安裝和配置 OCFS

    OCFS是Oracle 集群文件系統 (OCFS),由 Oracle 開發,用于消除數據庫管理員和系統管理員管理原始設備這一負擔,它提供了與通常的文件系統相同的功能和用法。盡量不要在OCFS文件系統上使用linux二進制文件系統操作命令

    在目前的版本1種支持以下文件類型:

    Oracle 數據庫文件

    聯機重做日志文件

    歸檔重做日志文件

    控制文件

    服務器參數文件 (SPFILE)

    Oracle 集群注冊表 (OCR) 文件

    CRS 表決磁盤。

    安裝和配置

    1)上傳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到/home/oracle/install/rac/ocfs目錄

    2)執行rpm -ivh ocfs*.rpm 開始安裝

    [oracle@dbrac oracle]$ su -

    Password:

    [root@dbrac root]# cd /home/oracle/install/rac/ocfs

    [root@dbrac ocfs]# rpm -ivh ocfs*.rpm

    Preparing...                ########################################### [100%]

    1:ocfs-support           ########################################### [ 33%]

    2:ocfs-2.4.21-EL         ########################################### [ 67%]

    3:ocfs-tools             ########################################### [100%]

    3)生成并配置/etc/ocfs.conf文件

    root@dbrac ocfs]# ocfstool &

    4)使用 ocfstool GUI 工具執行以下步驟:

    5)選擇 [Task] - [Generate Config]

    在“OCFS Generate Config”對話框中,輸入專用互連的接口和 DNS 名。

    驗證所有節點上的所有值正確之后,請退出應用程序

    6)檢查/etc/ocfs.conf

    [root@dbrac ocfs]# cat /etc/ocfs.conf

    #

    # ocfs config

    # Ensure this file exists in /etc

    #

         node_name = dbrac

         ip_address = 192.168.22.44

         ip_port = 7000

         comm_voting = 1

         guid = B907DC7945D81C0A2C8C000D61EB0166

    注意guid在集群中唯一對應一個節點,如果要更換網卡,請使用ocfs_uid_gen -c 命令重新創建

    7)重新啟動系統并確認ocfs模塊已經正確加載

    [oracle@dbrac oracle]$ lsmod | grep ocfs

    ocfs                  299104   0 (unused)

    創建 OCFS 文件系統

    [oracle@dbrac oracle]$ id

    uid=500(oracle) gid=500(dba) groups=500(dba)

    [oracle@dbrac oracle]$ su -

    Password:

    [root@dbrac root]# mkfs.ocfs -F -b 128 -L crs -m /u01 -u '500' -g '500' -p 0775 /dev/hda8

    Cleared volume header sectors                

    Cleared node config sectors                

    Cleared publish sectors                    

    Cleared vote sectors                        

    Cleared bitmap sectors                      

    Cleared data block              

    Wrote volume header

    注意-u和-g 是oracle用戶的id和dba組的id,一定要填寫正確,-p是設置/u01目錄的訪問權限,如果要設置dba組用戶有權管理集群注冊文件的話,請設置0775

    9)載入 OCFS 文件系統

    $ su -

    # mount -t ocfs /dev/hda8 /u01

    10)將 OCFS分區配置為在啟動時自動載入

    11)將以下條目添加到/etc/fstab 文件中

    /dev/hda8    /u01     ocfs    _netdev    0 0

    12)重新啟動服務器并檢查CRS分區已經正確安裝

    [root@dbrac root]# mount | grep ocfs

    /dev/hda8 on /u01 type ocfs (rw)

    如果沒有被自動加載,請執行如下命令echo “mount -t ocfs /dev/hda8 /u01” >> /etc/rc.local,然后重新啟動

    也可用使用oracle官方為我們提供的打過補丁的linux內核來解決此問題




      

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>