RHEL AS4u2下安裝oracle 9i rac 作者 blue_stone E-mail: blue_stone@xinhuanet.com Blog: http://bluestone.cublog.cn 轉載請保留作者信息 測試環境VMware server 1.0, 建立2個虛擬機, 類型為Redhat Enterprise Linux 4, 每個虛擬機器分配700m內存, 一塊12G硬碟, 2塊網卡. 虛擬機操作系統安裝完成後增加2塊4G硬碟作為共享存儲設備. 在本文中, 如未說明, 該操作必須在2台機器上都完成. 0 操作系統安裝 Oracle9i需要禁止使用SELinux和防火牆, 這些設置可以在操作系統安裝過程中完成. 安裝操作系統時選擇安裝Legacy Network Server(並從detail中選擇rsh-server), Development Tool, X Software Development, Gnome Software Development, Legancy Software Development可以安裝Oracle rac需要的主要軟體包. 安裝libaio-devel-0.3.103-3.i386.rpm(在第三張光碟): # mount /media/cdrom/ mount: block device /dev/hdc is write-protected, mounting read-only # cd /media/cdrom/ # cd RedHat/RPMS/ # rpm -ivh libaio-devel-0.3.103-3.i386.rpm warning: libaio-devel-0.3.103-3.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### 1:libaio-devel ########################################### 安裝gnome-libs-devel-1.4.1.2.90-44.1.i386.rpm(在第四張光碟) # rpm -ivh gnome-libs-devel-1.4.1.2.90-44.1.i386.rpm ORBit-devel-0.5.17-14.i386.rpm gtk+-devel-1.2.10-33.i386.rpm imlib-devel-1.9.13-23.i386.rpm glib-devel-1.2.10-15.i386.rpm warning: gnome-libs-devel-1.4.1.2.90-44.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### 1:glib-devel ########################################### [ 20%] 2:gtk+-devel ########################################### [ 40%] 3:imlib-devel ########################################### [ 60%] 4:ORBit-devel ########################################### [ 80%] 5:gnome-libs-devel ########################################### 安裝compat-oracle-rhel4-1.0-5.i386.rpm和compat-libcwait-2.0-2.i386.rpm(在oracle補丁4198954中) # unzip p4198954_21_LINUX.zip Archive: p4198954_21_LINUX.zip creating: 4198954/ inflating: 4198954/compat-oracle-rhel4-1.0-5.i386.rpm inflating: 4198954/compat-libcwait-2.0-2.i386.rpm inflating: 4198954/README.txt # cd 4198954/ # rpm -ivh compat-libcwait-2.0-2.i386.rpm Preparing... ########################################### cat: /etc/ld.so.preload: No such file or directory 1:compat-libcwait ########################################### # cat /etc/ld.so.preload /usr/lib/libcwait.so # rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm Preparing... ########################################### 1:compat-oracle-rhel4 ########################################### 1 建立oracle用戶及需要的用戶組 # groupadd oinstall # groupadd dba # useradd oracle -g oinstall -G dba,oinstall # passwd oracle Changing password for user oracle. New UNIX password: BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully. # id oracle uid=500(oracle) gid=501(oinstall) groups=501(oinstall),502(dba) # id nobody uid=99(nobody) gid=99(nobody) groups=99(nobody) 在2台機器上運行id oracle的結果必須相同, 否則需要用usermod或者直接修改/etc/passwd和/etc/group的方式使兩之相同. nobody是oracle apache伺服器運行時使用的帳號, 必須在伺服器上存在. 2 設置共享存儲. 在第一台伺服器上對共享磁碟進行分區. 分區后, fdisk -l結果如下: # fdisk -l Disk /dev/sda: 12.8 GB, 12884901888 bytes 255 heads, 63 sectors/track, 1566 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 1566 12474472+ 8e Linux LVM Disk /dev/sdb: 4294 MB, 4294967296 bytes 255 heads, 63 sectors/track, 522 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 62 497983+ 83 Linux /dev/sdb2 63 124 498015 83 Linux /dev/sdb3 125 186 498015 83 Linux /dev/sdb4 187 522 2698920 5 Extended /dev/sdb5 187 205 152586 83 Linux /dev/sdb6 206 224 152586 83 Linux /dev/sdb7 225 243 152586 83 Linux /dev/sdb8 244 268 200781 83 Linux /dev/sdb9 269 281 104391 83 Linux /dev/sdb10 282 294 104391 83 Linux /dev/sdb11 295 307 104391 83 Linux /dev/sdb12 308 320 104391 83 Linux /dev/sdb13 321 333 104391 83 Linux /dev/sdb14 334 346 104391 83 Linux /dev/sdb15 347 359 104391 83 Linux Disk /dev/sdc: 4294 MB, 4294967296 bytes 255 heads, 63 sectors/track, 522 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdc1 1 19 152586 83 Linux /dev/sdc2 20 38 152617+ 83 Linux /dev/sdc3 39 57 152617+ 83 Linux /dev/sdc4 58 522 3735112+ 5 Extended /dev/sdc5 58 76 152586 83 Linux /dev/sdc6 77 95 152586 83 Linux /dev/sdc7 96 114 152586 83 Linux /dev/sdc8 115 176 497983+ 83 Linux /dev/sdc9 177 238 497983+ 83 Linux /dev/sdc10 239 251 104391 83 Linux /dev/sdc11 252 264 104391 83 Linux 這些分區並不都是必須的, 在Metalink Notes:246205.1給出的必須建立的裸設備及其大小如下: Raw Volume File Size Sample File Name SYSTEM tablespace 400 Mb db_name_raw_system_400m USERS tablespace 120 Mb db_name_raw_users_120m TEMP tablespace 100 Mb db_name_raw_temp_100m UNDOTBS tablespace per instance 312 Mb db_name_raw_undotbsx_312m CWMLITE tablespace 100 Mb db_name_raw_cwmlite_100m EXAMPLE 160 Mb db_name_raw_example_160m OEMREPO 20 Mb db_name_raw_oemrepo_20m INDX tablespace 70 Mb db_name_raw_indx_70m TOOLS tablespace 12 Mb db_name_raw_tools_12m DRYSYS tablespace 90 Mb db_name_raw_drsys_90m First control file 110 Mb db_name_raw_controlfile1_110m Second control file 110 Mb db_name_raw_controlfile2_110m Two ONLINE redo log files per instance 120 Mb x 2 db_name_thread_lognumber_120m spfile.ora 5 Mb db_name_raw_spfile_5m srvmconfig 100 Mb db_name_raw_srvmconf_100m quorum 20 Mb quorum_raw_20m 建立磁碟分區和裸設備的對映列表, 編輯文件/etc/sysconfig/rawdevices, 增加如下內容: /dev/raw/raw11 /dev/sdb1 /dev/raw/raw12 /dev/sdb2 /dev/raw/raw13 /dev/sdb3 /dev/raw/raw15 /dev/sdb5 /dev/raw/raw16 /dev/sdb6 /dev/raw/raw17 /dev/sdb7 /dev/raw/raw18 /dev/sdb8 /dev/raw/raw19 /dev/sdb9 /dev/raw/raw20 /dev/sdb10 /dev/raw/raw21 /dev/sdb11 /dev/raw/raw22 /dev/sdb12 /dev/raw/raw23 /dev/sdb13 /dev/raw/raw24 /dev/sdb14 /dev/raw/raw25 /dev/sdb15 /dev/raw/raw31 /dev/sdc1 /dev/raw/raw32 /dev/sdc2 /dev/raw/raw33 /dev/sdc3 /dev/raw/raw35 /dev/sdc5 /dev/raw/raw36 /dev/sdc6 /dev/raw/raw37 /dev/sdc7 /dev/raw/raw38 /dev/sdc8 /dev/raw/raw39 /dev/sdc9 /dev/raw/raw40 /dev/sdc10 /dev/raw/raw41 /dev/sdc11 linux kernel 2.6 最多支持4096個裸設備. 所以我們可以選擇其中的部分裸設備來使用, 上面的對映可以從裸設備的名稱方便的知道它對映的磁碟分區. 此外, Extended partition(/dev/sdb4, /dev/sdc4) 不能被oracle使用, 也就不應該出現在愛/etc/sysconfig/rawdevices文件中. 設置裸設備的許可權, rhel4使用udev來管理設備, 手動修改/dev/raw/raw??並不能持久有效. 要想使許可權修改持久有效, 需要修改文件/etc/udev/permissions.d/50-udev.permissions, 編輯113行 raw/*:root:disk:0660 為 raw/*:oracle:oinstall:0660 重新啟動系統, 可以使用ls -al /dev/raw/*來確認修改. 設置裸設備和數據文件的對映關係, 以oracle用戶登錄, 建立文件/home/oracle/raw_config, 內容如下 system=/dev/raw/raw11 spfile=/dev/raw/raw20 users=/dev/raw/raw17 temp=/dev/raw/raw21 undotbs1=/dev/raw/raw12 undotbs2=/dev/raw/raw13 example=/dev/raw/raw18 cwmlite=/dev/raw/raw41 xdb=/dev/raw/raw22 odm=/dev/raw/raw23 indx=/dev/raw/raw24 tools=/dev/raw/raw25 drsys=/dev/raw/raw40 control1=/dev/raw/raw15 control2=/dev/raw/raw16 redo1_1=/dev/raw/raw31 redo1_2=/dev/raw/raw32 redo2_1=/dev/raw/raw33 redo2_2=/dev/raw/raw35 srvmconfig=/dev/raw/raw36 quorum=/dev/raw/raw19 3 設置網路, 修改/etc/hosts文件, 修改後hosts文件內容如下: # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.1.141 rhel1 192.168.1.142 rhel2 10.10.10.141 rhel1-priv 10.10.10.142 rhel2-priv 注意127.0.0.1后不應該有本機的主機名稱. 在任一主機上ping兩台主機的4個主機名都應該可以ping通, 如果無法ping通, 請檢測網路設置. 啟動rsh和rlogin服務 # chkconfig rsh on # chkconfig rlogin on # service xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] 建立文件/etc/hosts.equiv, 內容如下: rhel1 rhel2 rhel1-priv rhel2-priv 設置/etc/hostss.equiv屬主為root, 模式為600, 即只允許root用戶讀寫該文件. 切換到oracle用戶, 在每台伺服器上分別測試rcp可以從2台主機的4個主機名複製文件. 4 檢查oracle硬體需求. Oracle需要的最小硬體需求為 內存: 512M swap分區, 1G和內存大小x2中的大者 /tmp所在分區, 300M oracle安裝目錄所在分區3.5G 檢查過程如下 # cat /proc/meminfo |grep "Total" MemTotal: 706628 kB HighTotal: 0 kB LowTotal: 706628 kB SwapTotal: 1441784 kB VmallocTotal: 303096 kB HugePages_Total: 0 # df -m Filesystem 1M-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 10552 2446 7571 25% / /dev/sda1 99 9 85 10% /boot none 346 0 346 0% /dev/shm 可查得內存大小為700M, swap大小為1.4g, root分區剩餘空間為7.5g, /tmp和oracle安裝分區都放在root分區上. 5 檢查oracle軟體需求. 安裝oracle前需要安裝如下軟體包 compat-db-4.1.25-9 compat-gcc-32-3.2.3-47.3 compat-gcc-32-c++-3.2.3-47.3 compat-oracle-rhel4-1.0-3 compat-libcwait-2.0-1 compat-libgcc-296-2.96-132.7.2 compat-libstdc++-296-2.96-132.7.2 compat-libstdc++-33-3.2.3-47.3 gcc-3.4.3-9.EL4 gcc-c++-3.4.3-9.EL4 gnome-libs-1.4.1.2.90-44 gnome-libs-devel-1.4.1.2.90-44 libaio-devel-0.3.102-1 libaio-0.3.102-1 make-3.80-5 openmotif21-2.1.30-11 xorg-x11-deprecated-libs-devel-6.8.1-23.EL xorg-x11-deprecated-libs-6.8.1-23.EL rsh-server-0.17-5 6 設置內核變數, 將如下內容添加到/etc/sysctl.conf kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_default = 262144 net.core.wmem_max = 262144 然後運行sysctl -p或重新啟動機器使設置生效. 7 配置hangcheck-timer, 將下面命令添加到/etc/rc.d/rc.local, 並運行這一命令活著重啟機器, 載入hangcheck-timer模塊 modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 8 建立oracle安裝目錄 # mkdir -p /u01/app/oracle # chown -R oracle:oinstall /u01/app/oracle # chmod 755 -R /u01/app/oracle 9 設置oracle用戶環境變數, 以oracle用戶登錄, 編輯.bash_profile文件, 增加如下內容 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/9.2.0 export PATH=$ORACLE_HOME/bin:$PATH export DBCA_RAW_CONFIG=~/raw_config export LD_ASSUME_KERNEL=2.4.19 export ORACLE_SID=orcl1 在rhel2上最後一行為 export ORACLE_SID=orcl2 10 安裝oracm 在rhel1上以oracle身份登錄, 運行Disk1下的runInstaller開始安裝oracle 安裝時選擇Oracle Cluster Manager 9.2.0.4,同時可在Product Language中增加Simplified chinese 輸入public node information時在public node1和public node2 中分別輸入rhel1和rhel2 輸入private node information時在private node1和private node2中分別輸入rhel1-priv和rhel2-priv quorum disk information輸入/dev/raw/raw19 安裝完成後退出 11 配置運行oracm 修改文件/u01/app/oracle/product/9.2.0/oracm/admin/cmcfg.ora, 添加 KernelModuleName=hangcheck-timer 修改MissCount=20為MissCount=210 以root身份登錄, 運行/u01/app/oracle/product/9.2.0/oracm/bin/ocmstart.sh # export ORACLE_HOME=/u01/app/oracle/product/9.2.0 # ./ocmstart.sh oracm </dev/null 2>&1 >/u01/app/oracle/product/9.2.0/oracm/log/cm.out & # ps -ef |grep cm root 7201 1 0 23:09 pts/1 00:00:00 oracm root 7211 3358 0 23:09 pts/1 00:00:00 grep cm # 12 安裝oracle rac 在rhel1上以oracle身份登錄, 運行Disk1下的runInstaller開始安裝oracle 選擇節點時使用ctrl鍵選擇rhel1和rhel2, 如果沒有出現節點選擇的畫面, 請檢查oracm 是否啟動. 安裝時選擇Oracle Database 9.2.0.4.0, 同時可在Product Language中增加Simplified chinese. 安裝類型選擇Enterprise Edition 選擇不創建資料庫. shared configuration field中輸入/dev/raw/raw36 安裝過程中需要以root身份運行/u01/app/oracle/product/9.2.0/root.sh, 運行這個腳本前, 請建立目錄/var/opt/oracle 13 啟動gsd 以oracle身份運行gsdctl start啟動gsd # su - oracle $ gsdctl start Successfully started GSD on local node $ gsdctl stat GSD is running on the local node $ 14 建立監聽器配置文件及tnsnames.ora文件 在rhel1上運行netca使用默認值建立監聽器 建立文件/u01/app/oracle/product/9.2.0/network/admin/tnsnames.ora, 內容如下: listener_orcl1= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=rhel1)(PORT=1521))) listener_orcl2= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=rhel2)(PORT=1521))) listeners_orcl= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=rhel1)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=rhel2)(PORT=1521))) orcl= (description= (ADDRESS=(PROTOCOL=tcp)(HOST=rhel1)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=rhel2)(PORT=1521)) (connect_data= (service_name=orcl) (failover_mode= (type=select)(method=basic)(retries=20)(delay=15)))) orcl1= (description= (ADDRESS=(PROTOCOL=tcp)(HOST=rhel1)(PORT=1521)) (connect_data= (sid=orcl1))) orcl2= (description= (ADDRESS=(PROTOCOL=tcp)(HOST=rhel2)(PORT=1521)) (connect_data= (sid=orcl2))) 15 建立資料庫 在rhel1上運行dbca建立資料庫 節點選擇時使用Select All選擇全部節點 資料庫類型選擇new database 全局名稱輸入orcl 初試化參數中可根據需要選擇不同的字符集. create option中選擇建立資料庫腳本, 取消選擇創建資料庫. 如果直接使用dbca建立資料庫會提示ocr錯誤, 可能是oracle 的bug, 沒有做進一步分析. 在rhel1 上以oracle身份運行/u01/app/oracle/admin/orcl/scripts/orcl1.sh創建資料庫, 這個過程需要比較長的時間, 在我的機器上運行了將近2個小時. 在rhel上以oracle身份在/u01/app/oracle/admin/orcl/下建立目錄bdump, cdump, udump, 使用 /u01/app/oracle/product/9.2.0/bin/orapwd file=/u01/app/oracle/product/9.2.0/dbs/orapworcl2 password=change_on_install 生成密碼文件后就可以啟動資料庫. 參考資料: Metalink Notes:246205.1 Configuring Raw Devices for Real Application Clusters on Linux Metalink Notes:184821.1 Step-By-Step Installation of 9.2.0.5 RAC on Linux Metalink Notes:189256.1 Script to Verify Installation Requirements for Oracle 8.0.5 to 9.2 versions of RDBMS Oracle9i Release Notes Release 2 (9.2.0.4.0) for Linux x86 Oracle9i Real Application Clusters Setup and Configuration
[火星人
]
RHEL AS4u2下安裝oracle 9i rac 已經有433 次圍觀
本文地址: http://coctec.com/docs/service/show-post-9160.html