Openfiler + Redhat 5.4 Oracle 11gR2 RAC 安装文档
?
?
Oracle 11gR2 RAC 的安裝。 這個(gè)實(shí)驗(yàn)采用的架構(gòu):
虛擬機(jī)VMServer 2.0 + REDHAT 5.4 +Oracle 11gR2+openfiler存儲(chǔ) + DNS server (scan),openfiler通過iscsi 連接到虛擬機(jī)上,作為共享設(shè)備。
?
參考Oracle 官方文檔:
?????? 在 Oracle Enterprise Linux 和 iSCSI 上構(gòu)建您自己的 Oracle RAC 11g 集群
?????? http://www.oracle.com/technology/global/cn/pub/articles/hunter-rac11gr2-iscsi.html
?
?
一. 準(zhǔn)備工作
?
1. 存儲(chǔ)的分配:
?
這里對(duì)在openfiler上劃分了3個(gè)target。 CRS, FRA和 Data。 然后在服務(wù)器上通過multipath進(jìn)行綁定。虛擬機(jī)的安裝和openfiler 的安裝及配置, 具體參考Blog:
?????? openfiler 搭建虛擬存儲(chǔ) 并 配置服務(wù)端
http://blog.csdn.net/tianlesoftware/archive/2010/10/29/5973222.aspx
?
?????? Multipath實(shí)現(xiàn)LUN設(shè)備名稱的持久化
????? http://blog.csdn.net/tianlesoftware/archive/2010/11/01/5979061.aspx
?
?????? Oracle 11gR2 RAC 新特性說明
?????? http://blog.csdn.net/tianlesoftware/archive/2010/11/02/5982972.aspx
?
?
配置完之后的信息如下:
?
[root@rac1 ~]# multipath -ll
crs (14f504e46494c4500315a6b5774512d4c5136482d6a424447) dm-0 OPNFILER,VIRTUAL-DISK
[size=2.0G][features=1 queue_if_no_path][hwhandler=0][rw]
/_ round-robin 0 [prio=2][active]
?/_ 9:0:0:0? sdb 8:16? [active][ready]
?/_ 10:0:0:0 sde 8:64? [active][ready]
fra (14f504e46494c450039396b35564d2d643574372d33414c4a) dm-1 OPNFILER,VIRTUAL-DISK
[size=3.0G][features=1 queue_if_no_path][hwhandler=0][rw]
/_ round-robin 0 [prio=2][active]
?/_ 7:0:0:0? sdc 8:32? [active][ready]
?/_ 8:0:0:0? sdd 8:48? [active][ready]
data (14f504e46494c45004d574c6870432d756654352d33347766) dm-2 OPNFILER,VIRTUAL-DISK
[size=9.6G][features=1 queue_if_no_path][hwhandler=0][rw]
/_ round-robin 0 [prio=2][active]
?/_ 11:0:0:0 sdf 8:80? [active][ready]
?/_ 12:0:0:0 sdg 8:96? [active][ready]
?
?
[root@rac1 mapper]# ls -lrt /dev/mapper/*
crw------- 1 root root? 10, 62 Nov 12 04:42 /dev/mapper/control
brw-rw---- 1 root disk 253,? 0 Nov 12 05:24 /dev/mapper/crs
brw-rw---- 1 root disk 253,? 1 Nov 12 05:24 /dev/mapper/fra
brw-rw---- 1 root disk 253,? 2 Nov 12 05:24 /dev/mapper/data
?
?
2. 安裝所需要的安裝包:
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.52
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11
?
用rpm -q? 命令檢查一下,如果沒有,到系統(tǒng)安裝盤里查找并安裝一下
?
二. 設(shè)備進(jìn)行格式化:
?
[root@rac1 mapper]# fdisk /dev/mapper/crs
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
?
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
?
Command (m for help): n
Command action
?? e?? extended
?? p?? primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-257, default 1): ?--直接敲回車,用默認(rèn)值
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-257, default 257): ?--直接敲回車,用默認(rèn)值
Using default value 257
?
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 22: Invalid argument.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@rac1 mapper]# fdisk /dev/mapper/fra
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
?
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
?
Command (m for help): n
Command action
?? e?? extended
?? p?? primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-387, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-387, default 387):
Using default value 387
?
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 22: Invalid argument.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@rac1 mapper]# fdisk /dev/mapper/data
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
?
?
The number of cylinders for this disk is set to 1248.
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)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
?
Command (m for help): n
Command action
?? e?? extended
?? p?? primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1248, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1248, default 1248):
Using default value 1248
?
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 22: Invalid argument.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@rac1 mapper]# multipath -F? -- 刷新一下multipath ,不然信息不能更新
[root@rac1 mapper]# ls -lrt /dev/mapper/*
crw------- 1 root root? 10, 62 Nov 12 04:42 /dev/mapper/control
brw-rw---- 1 root disk 253,? 0 Nov 12 05:33 /dev/mapper/crs
brw-rw---- 1 root disk 253,? 1 Nov 12 05:33 /dev/mapper/fra
brw-rw---- 1 root disk 253,? 2 Nov 12 05:33 /dev/mapper/data
brw-rw---- 1 root disk 253,? 3 Nov 12 05:33 /dev/mapper/crsp1
brw-rw---- 1 root disk 253,? 4 Nov 12 05:33 /dev/mapper/datap1
brw-rw---- 1 root disk 253,? 5 Nov 12 05:33 /dev/mapper/frap1
?
這里多了一下/dev/mapper/frap1,datap1 和crsp1 的分區(qū),這些就是已經(jīng)格式化之后的磁盤。 我們可以直接使用。 下面我來看安裝ASM,并將上面創(chuàng)建的幾個(gè)分區(qū)創(chuàng)建成ASM 磁盤組。
?
這里要注意一個(gè)問題,權(quán)限問題。 現(xiàn)在看到的用戶是root。 我們需要在Oracle 用戶。修改rc.local. 讓系統(tǒng)每次在啟動(dòng)時(shí)修改文件屬性:
?
[root@rac1 mapper]# cat /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
?
touch /var/lock/subsys/local
?
chown oracle:oinstall /dev/mapper/fra*
chown oracle:oinstall /dev/mapper/data*
chown oracle:oinstall /dev/mapper/crs*
?
執(zhí)行下腳本:
[root@rac1 mapper]# sh /etc/rc.d/rc.local
[root@rac1 mapper]# ll
total 0
crw------- 1 root?? root????? 10, 62 Nov 13 08:47 control
brw-rw---- 1 oracle oinstall 253,? 0 Nov 13 08:50 crs
brw-rw---- 1 oracle oinstall 253,? 3 Nov 13 08:50 crsp1
brw-rw---- 1 oracle oinstall 253,? 2 Nov 13 08:50 data
brw-rw---- 1 oracle oinstall 253,? 4 Nov 13 08:50 datap1
brw-rw---- 1 oracle oinstall 253,? 1 Nov 13 08:50 fra
brw-rw---- 1 oracle oinstall 253,? 5 Nov 13 08:50 frap1
?
?
三. 創(chuàng)建用戶和目錄
?
1. 在所有節(jié)點(diǎn)上創(chuàng)建用戶、組、目錄結(jié)構(gòu)和權(quán)限的建立
?
| 描述 | OS 組名 | 分配給該組的 OS 用戶 | Oracle 權(quán)限 | Oracle 組名 |
| Oracle 清單和軟件所有者 | oinstall | grid、oracle | ? | ? |
| Oracle 自動(dòng)存儲(chǔ)管理組 | asmadmin | grid | SYSASM | OSASM |
| ASM 數(shù)據(jù)庫(kù)管理員組 | asmdba | grid、oracle | ASM 的 SYSDBA | OSDBA for ASM |
| ASM 操作員組 | asmoper | grid | ASM 的 SYSOPER | OSOPER for ASM |
| 數(shù)據(jù)庫(kù)管理員 | dba | oracle | SYSDBA | OSDBA |
| 數(shù)據(jù)庫(kù)操作員 | oper | oracle | SYSOPER | OSOPER |
?
GRID 用戶:
#groupadd -g 1000 oinstall
#groupadd -g 1200 asmadmin
#groupadd -g 1201 asmdba
#groupadd -g 1202 asmoper
#useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash -c "Grid Infrastructure Owner" grid
# id grid
?
Oracle 用戶:
# groupadd -g 1300 dba
# groupadd -g 1301 oper
# useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle
# id oracle
?
?
修改密碼:
passwd oracle
passwd grid
?
?
在所有節(jié)點(diǎn)上驗(yàn)證用戶 nobody 存在
?????? 安裝軟件之前,執(zhí)行以下過程,以驗(yàn)證在兩個(gè) Oracle RAC 節(jié)點(diǎn)上存在用戶 nobody,要確定該用戶是否存在,輸入以下命令:
# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
?
如果該命令顯示了 nobody 用戶的信息,則無需創(chuàng)建該用戶。如果用戶 nobody 不存在,則輸入以下命令進(jìn)行創(chuàng)建:
# /usr/sbin/useradd nobody
?
?
?
?
2. 在所有節(jié)點(diǎn)上創(chuàng)建安裝目錄
?
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
chown -R grid:oinstall /u01
?
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
?
chown -R oracle:oinstall /u01
chmod -R 775 /u01/
?
?
3. 修改grid 和 Oracle 用戶的登陸腳本:bash_profile 文件
?
?
Grid 用戶:
?
以 grid 用戶帳戶分別登錄到兩個(gè) Oracle RAC 節(jié)點(diǎn)并創(chuàng)建以下登錄腳本 (.bash_profile)。在為每個(gè) Oracle RAC 節(jié)點(diǎn)設(shè)置 Oracle 環(huán)境變量時(shí),確保為每個(gè) RAC 節(jié)點(diǎn)指定唯一的 Oracle SID。如:
?????? racnode1:ORACLE_SID=+ASM1
?????? racnode2:ORACLE_SID=+ASM2
?
# su - grid
#vi ~/.bash_profile
# ---------------------------------------------------
# .bash_profile
# ---------------------------------------------------
# OS User:????? grid
# Application:? Oracle Grid Infrastructure
# Version:????? Oracle 11g release 2
# ---------------------------------------------------
?
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
????? . ~/.bashrc
fi
?
ORACLE_SID=+ASM1; export ORACLE_SID
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME
ORACLE_PATH=/u01/app/oracle/common/oracle/sql; export ORACLE_PATH
# SQLPATH=/u01/app/common/oracle/sql; export SQLPATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
# ---------------------------------------------------
# Set the default file mode creation mask
# (umask) to 022 to ensure that the user performing
# the Oracle software installation creates files
# with 644 permissions.
# ---------------------------------------------------
umask 022
?
?
Oracle 用戶:
?
以 oracle 用戶帳戶分別登錄到兩個(gè) Oracle RAC 節(jié)點(diǎn)并創(chuàng)建以下登錄腳本 (.bash_profile),在為每個(gè) Oracle RAC 節(jié)點(diǎn)設(shè)置 Oracle 環(huán)境變量時(shí),確保為每個(gè) RAC 節(jié)點(diǎn)指定唯一的 Oracle SID。如:
?????? racnode1:ORACLE_SID=racdb1
?????? racnode2:ORACLE_SID=racdb2
?
# su - oracle
#vi ~/.bash_profile
?
# ---------------------------------------------------
# .bash_profile
# ---------------------------------------------------
# OS User:????? oracle
# Application:? Oracle Database Software Owner
# Version:????? Oracle 11g release 2
# ---------------------------------------------------
?
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
????? . ~/.bashrc
fi
?
ORACLE_SID=racdb1; export ORACLE_SID
ORACLE_UNQNAME=racdb; export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
# ---------------------------------------------------
# UMASK
# ---------------------------------------------------
# Set the default file mode creation mask
# (umask) to 022 to ensure that the user performing
# the Oracle software installation creates files
# with 644 permissions.
# ---------------------------------------------------
umask 022
?
?
4. 為 Oracle 軟件安裝用戶設(shè)置資源限制
?
要改善 Linux 系統(tǒng)上的軟件性能,必須對(duì) Oracle 軟件所有者用戶(grid、oracle)增加以下資源限制:
| Shell 限制 | limits.conf 中的條目 | 硬限制 |
| 打開文件描述符的最大數(shù) | nofile | 65536 |
| 可用于單個(gè)用戶的最大進(jìn)程數(shù) | nproc | 16384 |
| 進(jìn)程堆棧段的最大大小 | stack | 10240 |
?
以 root 用戶身份,在每個(gè) Oracle RAC 節(jié)點(diǎn)上,在 /etc/security/limits.conf 文件中添加以下幾行代碼:
[root@rac1 ~]# cat >> /etc/security/limits.conf <<EOF
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
-- 說明,綠色部分一起執(zhí)行
?
在每個(gè) Oracle RAC 節(jié)點(diǎn)上,在 /etc/pam.d/login 文件中添加或編輯下面一行內(nèi)容:
[root@rac1 ~]# cat >> /etc/pam.d/login <<EOF
session??? required???? pam_limits.so
EOF
-- 說明,綠色部分一起執(zhí)行
?
?
對(duì)默認(rèn)的 shell 啟動(dòng)文件進(jìn)行以下更改,以便更改所有 Oracle 安裝所有者的 ulimit 設(shè)置:
?
(1)對(duì)于 Bourne、Bash 或 Korn shell,通過運(yùn)行以下命令將以下行添加到 /etc/profile 文件:
[root@racnode1 ~]# cat >> /etc/profile <<EOF
if [ /$USER = "oracle" ] || [ /$USER = "grid" ]; then
??? if [ /$SHELL = "/bin/ksh" ]; then
??????? ulimit -p 16384
??????? ulimit -n 65536
??? else
??????? ulimit -u 16384 -n 65536
??? fi
??? umask 022
fi
EOF
-- 說明,綠色部分一起執(zhí)行
?
對(duì)于 C shell(csh 或 tcsh),通過運(yùn)行以下命令將以下行添加到 /etc/csh.login 文件:
[root@racnode1 ~]# cat >> /etc/csh.login <<EOF
if ( /$USER == "oracle" || /$USER == "grid" ) then
??? limit maxproc 16384
??? limit descriptors 65536
endif
EOF
-- 說明,綠色部分一起執(zhí)行
?
?
四. 安裝配置 ASM
1. 安裝ASM包
先安裝ASM 包,這個(gè)幾個(gè)包可以從Oracle 官網(wǎng)下載:
http://www.oracle.com/technology/tech/linux/asmlib/index.html
?
[root@rac1 mapper]# uname -rm
2.6.18-164.el5xen i686
[root@rac2 mnt]# ls -lrt
total 223
-rwxrwSrwx 1 root root 127565 Aug? 8 23:38 oracleasm-2.6.18-164.el5xen-2.0.5-1.el5.i686.rpm
-rwxrwSrwx 1 root root? 85382 Aug? 8 23:38 oracleasm-support-2.1.3-1.el5.i386.rpm
-rwxrwSrwx 1 root root? 13929 Aug? 8 23:39 oracleasmlib-2.0.4-1.el5.i386.rpm
[root@rac2 mnt]# rpm -Uvh *.rpm
warning: oracleasm-2.6.18-164.el5xen-2.0.5-1.el5.i686.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...??????????????? ########################################### [100%]
?? 1:oracleasm-support????? ########################################### [ 33%]
?? 2:oracleasm-2.6.18-164.el########################################### [ 67%]
?? 3:oracleasmlib?????????? ########################################### [100%]
?
?
2. 配置ASM
?
oracleasm 命令的默認(rèn)路徑為 /usr/sbin。以前版本中使用的 /etc/init.d 路徑并未被棄用,但該路徑下的 oracleasm 二進(jìn)制文件現(xiàn)在一般用于內(nèi)部命令。如果輸入 oracleasm configure 命令時(shí)不帶 -i 標(biāo)志,則顯示當(dāng)前配置。
?
[root@rac1 mnt]# oracleasm configure
ORACLEASM_ENABLED=false
ORACLEASM_UID=
ORACLEASM_GID=
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
?
[root@rac2 mnt]# oracleasm configure -i?? -- 在所有節(jié)點(diǎn)都要執(zhí)行。
Configuring the Oracle ASM library driver.
?
This will configure the on-boot properties of the Oracle ASM library
driver.? The following questions will determine whether the driver is
loaded on boot and what permissions it will have.? The current values
will be shown in brackets ('[]').? Hitting <ENTER> without typing an
answer will keep that current value.? Ctrl-C will abort.
?
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
You have new mail in /var/spool/mail/root
?
該腳本完成以下任務(wù):
?????? 創(chuàng)建 /etc/sysconfig/oracleasm 配置文件
?????? 創(chuàng)建 /dev/oracleasm 掛載點(diǎn)
?????? 掛載 ASMLib 驅(qū)動(dòng)程序文件系統(tǒng)
?
?
輸入以下命令以加載 oracleasm 內(nèi)核模塊: ?
[root@rac1 mnt]# oracleasm init? -- 在所有節(jié)點(diǎn)都要執(zhí)行。
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Mounting ASMlib driver filesystem: /dev/oracleasm
?
如果這里沒有配置,在安裝Clusterware后執(zhí)行root.sh腳本時(shí)可能會(huì)觸發(fā)錯(cuò)誤,具體參考Blog:
?????? oracle 11gR2 RAC root.sh 錯(cuò)誤 ORA-15072 ORA-15018
?????? http://blog.csdn.net/tianlesoftware/archive/2010/11/11/6001696.aspx
?
?
3. 創(chuàng)建ASM磁盤
?
創(chuàng)建過程在一個(gè)節(jié)點(diǎn)執(zhí)行即可。 另一個(gè)節(jié)點(diǎn)掃描一下就可以識(shí)別到了。
?
在node1:
oracleasm createdisk CRS /dev/mapper/crsp1
oracleasm createdisk DATA /dev/mapper/datap1
oracleasm createdisk FRA /dev/mapper/frap1
?
?
node2:
?
[root@rac2 mnt]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "CRS"
Instantiating disk "FRA"
Instantiating disk "DATA"
[root@rac2 mnt]# oracleasm listdisks
CRS
DATA
FRA
?
如果創(chuàng)建錯(cuò)誤,可以用deletedisk參數(shù),如:oracleasm deletedisk DATA
?
[root@rac2 mnt]# oracleasm querydisk DATA
Disk "DATA" is a valid ASM disk
?
到此,ASM的安裝配置結(jié)束。
?
?
五. 配置時(shí)間同步
?
?????? 在集群中的兩個(gè) Oracle RAC 節(jié)點(diǎn)上執(zhí)行以下集群時(shí)間同步服務(wù)配置。 Oracle Clusterware 11g 第 2 版及更高版本要求在部署了 Oracle RAC 的集群的所有節(jié)點(diǎn)上實(shí)現(xiàn)時(shí)間同步。
?????? Oracle 提供了兩種方法來實(shí)現(xiàn)時(shí)間同步:
?????? 一種方法是配置了網(wǎng)絡(luò)時(shí)間協(xié)議 (NTP) 的操作系統(tǒng),
?????? 另一種方法是新的 Oracle 集群時(shí)間同步服務(wù) (CTSS)。Oracle 集群時(shí)間同步服務(wù) (ctssd) 旨在為那些 Oracle RAC 數(shù)據(jù)庫(kù)無法訪問 NTP 服務(wù)的組織提供服務(wù)。
?
1. 配置集群時(shí)間同步服務(wù) — (CTSS)
?????? 使用集群時(shí)間同步服務(wù)在集群中提供同步服務(wù),需要卸載網(wǎng)絡(luò)時(shí)間協(xié)議 (NTP) 及其配置。
要停用 NTP 服務(wù),必須停止當(dāng)前的 ntpd 服務(wù),從初始化序列中禁用該服務(wù),并刪除 ntp.conf 文件。要在 Oracle Enterprise Linux 上完成這些步驟,以 root 用戶身份在兩個(gè) Oracle RAC 節(jié)點(diǎn)上運(yùn)行以下命令:
[root@racnode1 ~]# /sbin/service ntpd stop
[root@racnode1 ~]# chkconfig ntpd off
[root@racnode1 ~]# mv /etc/ntp.conf /etc/ntp.conf.original
?
還要?jiǎng)h除以下文件:
[root@racnode1 ~]# rm /var/run/ntpd.pid
此文件保存了 NTP 后臺(tái)程序的 pid。
?
當(dāng)安裝程序發(fā)現(xiàn) NTP 協(xié)議處于非活動(dòng)狀態(tài)時(shí),安裝集群時(shí)間同步服務(wù)將以活動(dòng)模式自動(dòng)進(jìn)行安裝并通過所有節(jié)點(diǎn)的時(shí)間。如果發(fā)現(xiàn)配置了 NTP,則以觀察者模式啟動(dòng)集群時(shí)間同步服務(wù),Oracle Clusterware 不會(huì)在集群中進(jìn)行活動(dòng)的時(shí)間同步。
?
在安裝后,要確認(rèn) ctssd 處于活動(dòng)狀態(tài),請(qǐng)作為網(wǎng)格安裝所有者 (grid) 輸入以下命令:
[grid@racnode1 ~]$ crsctl check ctss
CRS-4701: The Cluster Time Synchronization Service is in Active mode.
CRS-4702: Offset (in msec): 0
?
2. 配置網(wǎng)絡(luò)時(shí)間協(xié)議 —(僅當(dāng)不按如上所述使用 CTSS 時(shí))
?????? 如果正在使用 NTP,并且愿意繼續(xù)使用它而不是集群時(shí)間同步服務(wù),那么您需要修改 NTP 初始化文件,在其中設(shè)置 -x 標(biāo)志,這樣可避免向后調(diào)整時(shí)間。完成此任務(wù)后,重啟網(wǎng)絡(luò)時(shí)間協(xié)議后臺(tái)程序。
?
為了在 Oracle Enterprise Linux、Red Hat Linux 和 Asianux 系統(tǒng)上完成此任務(wù),編輯 /etc/sysconfig/ntpd 文件,添加 -x 標(biāo)志,如下例所示:
?
[root@rac1 mapper]# cat /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
?
# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=no
?
# Additional options for ntpdate
NTPDATE_OPTIONS=""
?
然后,重啟 NTP 服務(wù)。
# /sbin/service ntp restart
?
?
?
六. 修改內(nèi)核參數(shù)和Hosts 文件
6.1 內(nèi)核參數(shù):
???? RHEL/OEL 5 上的 Oracle Database 11g 第 2 版需要如下所示的內(nèi)核參數(shù)設(shè)置。給出的值都是最小值,因此如果您的系統(tǒng)使用更大的值,則不要更改。
?
?
#vi /etc/sysctl.conf
?
kernel.shmmax = 4294967295
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
fs.aio-max-nr=1048576
?
RHEL/OEL 5 已經(jīng)配置了為以下內(nèi)核參數(shù)定義的默認(rèn)值:
?????? kernel.shmall
?????? kernel.shmmax
如果這些默認(rèn)值等于或大于必需值,則使用這些默認(rèn)值。
?
?
使修改的參數(shù)生效:
[root@rac1 ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
?
6.2 修改hosts文件
?
[root@rac2 ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1??????? localhost
?
# Public Network - (eth0)
192.168.6.223??? rac1
192.168.6.226??? rac2
?
# Private Interconnect - (eth1)
192.168.6.224??? rac1-priv
192.168.6.227??? rac2-priv
?
# Public Virtual IP (VIP) addresses - (eth0:1)
192.168.6.225??? rac1-vip
192.168.6.228??? rac2-vip
6.3 配置SCAN IP
?
這里我們配置2個(gè)SCAN IP。
192.168.6.233??? rac-scan.tianlesoftware.com
192.168.6.232??? rac-scan.tianlesoftware.com
?
?
關(guān)于Linux DNS Server 的配置參考:
Linux DNS Server 配置 -- for Oracle 11gR2 RAC SCAN IP
http://blog.csdn.net/tianlesoftware/archive/2010/11/13/6006247.aspx
?
配置完后,我們修改每個(gè)節(jié)點(diǎn)的dns:
[root@rac1 named]# vim /etc/resolv.conf
nameserver 192.168.6.223
?
?
七. 安裝Clusterware
?
用mount命令將安裝文件掛載到linux系統(tǒng)上:
mount -o username=administrator,password=888 ?//192.168.6.80/Software /mnt
?
用NoMachine 工具連接上節(jié)點(diǎn)1.? 關(guān)于Nomachine工具的使用,參考blog:??????
?????? 遠(yuǎn)程桌面工具 -- NoMachine
?????? http://blog.csdn.net/tianlesoftware/archive/2010/11/11/6003610.aspx
?
11g中Grid用戶管理cluster 和 ocr。 所以這兩個(gè)也是用grid用戶來安裝的。 運(yùn)行./runInstaller命令,彈出安裝界面。
?
?
開始安裝:
1. Install and Configure Grid infrastructure a Cluster
2. Advanced Installation
3. 配置SCAN。 我們選擇在DNS中定義域名的方式來解決,不配置GNS。
?????? SCAN Name: rac-scan.tianlesoftware.com
?????? SCAN Port : 1521
4. 添加Hostname 和 Virtual IP Name
5. 設(shè)置SSH 連接。 在10g里我們需要手工的去配置。 在11g中集成到安裝中。 點(diǎn)擊ssh connectivety. 然后輸入密碼,在設(shè)置一下,最后測(cè)試成功即可。設(shè)置的過程要等一會(huì)。
6. 選擇網(wǎng)卡類型:eth0: public; eth1: private
7.? 選擇ASM 來存放OCR
8.? 創(chuàng)建一個(gè)ASM 磁盤組來存放OCR。
9. 設(shè)置ASM 實(shí)例密碼。 這個(gè)密碼設(shè)置后會(huì)在$ORACLE_HOME/dbs/ 下生成一個(gè)orcl_+ASM的口令文件,如果忘記密碼,可以用orapwd命令來修改。
10. 下一步,在安裝之前會(huì)有個(gè)檢測(cè),如果有條件失敗,就修改它,在檢測(cè)。完全通過之后,進(jìn)入安裝。
?????? 這里物理內(nèi)存提示至少需要1.5G。 我的虛擬機(jī)給了1G。 報(bào)錯(cuò),忽略,繼續(xù)安裝。
?????? 還有要注意的, 對(duì)于交換區(qū), 在安裝操作系統(tǒng)的時(shí)候,最好設(shè)置在3G 以上。 不然也會(huì)有警告。
?
11. 安裝技術(shù)提示執(zhí)行2個(gè)腳本。 如果在第二個(gè)節(jié)點(diǎn)出現(xiàn)錯(cuò)誤,用命令:
?????? ?????? [root@rac2 ~]# /u01/app/11.2.0/grid/crs/install/roothas.pl -delete -force -verbose
?????? 刪除相關(guān)信息,在執(zhí)行,具體參考我的Blog:
?????? ?????? oracle 11gR2 RAC root.sh 錯(cuò)誤 ORA-15072 ORA-15018
?????? ?????? http://blog.csdn.net/tianlesoftware/archive/2010/11/11/6001696.aspx
12. 執(zhí)行完,點(diǎn)ok。 結(jié)束Clusterware的安裝
?
?
八. 創(chuàng)建ASM 磁盤組
?????? 在安裝Clusterware 的時(shí)候,會(huì)創(chuàng)建ASM 實(shí)例,但是它只創(chuàng)建了一個(gè)CRS 組來安裝OCR 和Voting Disk。 在我們繼續(xù)安裝Oracle 數(shù)據(jù)庫(kù)之前,我們需要?jiǎng)?chuàng)建一個(gè)DATA 和 FRA 的ASM 磁盤組來存放這些文件。 創(chuàng)建過程很簡(jiǎn)單。
?????? 運(yùn)行asmca(ASM Configuration Assistant)命令就可以彈出創(chuàng)建窗口。
??????
?????? 在窗口中創(chuàng)建完DATA 和 FRA 組后,退出窗口即可。
?
九. 安裝數(shù)據(jù)庫(kù)軟件
?????? 1. 用Oracle 用戶運(yùn)行安裝軟件
????? 2. 選擇只安裝軟件
?????? 3. 選擇集群安裝,并選中所有節(jié)點(diǎn)。
????? 4. 驗(yàn)證SSH
?????? 5. 選擇語(yǔ)言。
?????? 6. 選擇數(shù)據(jù)庫(kù)版本: 企業(yè)版
?????? 7. 選擇數(shù)據(jù)庫(kù)安裝的位置
?????? 8. 選擇用戶組。
?????? 9. 開始安裝, 安裝結(jié)束之后提示運(yùn)行一個(gè)腳本。
?????? 10. 腳本運(yùn)行完, 結(jié)束安裝。
?
?
?
十. 創(chuàng)建實(shí)例
?????? 1. 用Oracle用戶運(yùn)行dbca命令
?????? 2. 選擇Oracle 集群
?????? 3. 選擇數(shù)據(jù)庫(kù)類型: custom database
?????? 4. 選擇配置類型:admin-Managed, 實(shí)例名,最后選中所有節(jié)點(diǎn), 下一步
?????? 5. 設(shè)置密碼
?????? 6. 選擇存儲(chǔ)類型,Database Area 選我們剛才在ASM 實(shí)例中創(chuàng)建的DATA組。
?????? 7. 指定ASM 實(shí)例的 ASMSNMP 口令,就是我們?cè)诎惭bClusterware時(shí)指定的ASM密碼。
?????? 8. 創(chuàng)建FRA,指定位置,ASM實(shí)例中的FRA組,指定FRA 大小。
?????? 9. 設(shè)置內(nèi)存和字符集等參數(shù)。
?????? 10. 開始創(chuàng)建實(shí)例。 創(chuàng)建結(jié)束后退出。 安裝結(jié)束。
?
?
到此安裝已經(jīng)結(jié)束。
?
關(guān)于11gR2 下RAC進(jìn)程的說明,參考我的Blog:
?????? Oracle 11gR2 RAC 進(jìn)程說明
?????? http://blog.csdn.net/tianlesoftware/archive/2010/11/15/6009962.aspx
?
?
在Linux 下,Oracle 11gR2 多了一個(gè)MEMORY_TARGET 參數(shù)。 該參數(shù)用來管理SGA和PGA。 但是當(dāng)設(shè)置超過一定值的時(shí)候,Oracle 實(shí)例就不能啟動(dòng)。 我之前設(shè)置的是12G。 就報(bào)錯(cuò)了。 解決方法如下:
?????? Oracle 11gR2 RAC ORA-00845 MEMORY_TARGET not supported on this system 解決方法
?????? http://blog.csdn.net/tianlesoftware/archive/2010/11/17/6013777.aspx
?
?
在客戶端連接實(shí)例的使用,監(jiān)聽配置中使用SCAN IP 就可以了。 因?yàn)檫@個(gè)IP是固定的。 所以維護(hù)起來要簡(jiǎn)單一點(diǎn)。
?
?
?
?
?
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
網(wǎng)上資源: http://tianlesoftware.download.csdn.net
相關(guān)視頻:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(滿); DBA2 群:62697977(滿)
DBA3 群:62697850?? DBA 超級(jí)群:63306533;????
聊天 群:40132017
--加群需要在備注說明Oracle表空間和數(shù)據(jù)文件的關(guān)系,否則拒絕申請(qǐng)
轉(zhuǎn)載于:https://www.cnblogs.com/Hiberniane/archive/2010/11/25/2488556.html
總結(jié)
以上是生活随笔為你收集整理的Openfiler + Redhat 5.4 Oracle 11gR2 RAC 安装文档的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UNIAPP 小说采集阅读器
- 下一篇: app采集的10个经典方法