歡迎您光臨本站 註冊首頁

RHEL AS4u2下安裝oracle 9i rac

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

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