Openfiler+RAC的安裝之六--安裝前的準備工作

jolly10發表於2012-08-10

安裝oracle資料庫及asm的一些準備工作包括以下:

1.建立任務角色劃分作業系統許可權組、使用者和目錄

2.為 Oracle 軟體安裝使用者設定資源限制

3.為 Oracle 配置 Linux 伺服器

4.配置 RAC 節點以便可以使用 SSH 進行遠端訪問(可選)

5.安裝並配置ASMLib 2.0

[@more@]

1.建立任務角色劃分作業系統許可權組、使用者和目錄

[root@racnode1 ~]# groupadd -g 1000 oinstall
[root@racnode1
~]# groupadd -g 1200 asmadmin
[root@racnode1 ~]# groupadd -g 1201 asmdba
[root@racnode1 ~]# groupadd -g 1202 asmoper
[root@racnode1 ~]# useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d
/home/grid -s /bin/bash -c "Grid Infrastructure Owner" grid
[root@racnode1 ~]# passwd grid

[root@racnode1 ~]# su - grid

: 在為每個 Oracle RAC 節點設定 Oracle 環境變數時,確保為每個 RAC 節點指定唯一的 Oracle SID。對於此示例,我使用:

  • racnode1ORACLE_SID=+ASM1
  • racnode2ORACLE_SID=+ASM2

[grid@racnode1 ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs
alias ls="ls -FA"

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
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 022
[grid@racnode1 ~]$

為 Oracle 資料庫軟體建立組和使用者

[root@racnode1 ~]# groupadd -g 1300 dba
[root@racnode1 ~]# groupadd -g 1301 oper
[root@racnode1 ~]# useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d
/home/oracle -s /bin/bash -c "Oracle Software Owner" oracle

[root@racnode1 ~]# passwd oracle


為 oracle 使用者帳戶建立登入指令碼

: 在為每個 Oracle RAC 節點設定 Oracle 環境變數時,確保為每個 RAC 節點指定唯一的 Oracle SID。對於此示例,我使用:

  • racnode1ORACLE_SID=racdb1
  • racnode2ORACLE_SID=racdb2

[oracle@racnode1 ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs
alias ls="ls -FA"
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
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 022

安裝軟體之前,執行以下過程,以驗證在兩個 Oracle RAC 節點上存在使用者 nobody

# id nobody
如果沒有nobody使用者,需要建立:

# /usr/sbin/useradd nobody
                                 
 
建立 Oracle 基目錄路徑 
[root@racnode1 ~]# mkdir -p /u01/app/grid
[root@racnode1 ~]# mkdir -p /u01/app/11.2.0/grid
[root@racnode1 ~]# chown -R grid:oinstall /u01
[root@racnode1 ~]# mkdir -p /u01/app/oracle
[root@racnode1 ~]# chown oracle:oinstall /u01/app/oracle
[root@racnode1 ~]# chmod -R 775 /u01
2.為 Oracle 軟體安裝使用者設定資源限制
將下面的內容複製到 /etc/security/limits.conf
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
將下面的內容複製到 /etc/pam.d/login
session    required     pam_limits.so
對預設的 shell 啟動檔案進行以下更改,以便更改所有 Oracle 安裝所有者的 ulimit 設定(注意這裡的示例顯示 oraclegrid 使用者): 
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
3.為 Oracle 配置 Linux 伺服器 
記憶體和交換空間考慮事項

RHEL/OEL 的最小 RAM 要求為:1.5 GB 用於叢集的 Grid Infrastructure,或 2.5 GB 用於叢集的 Grid Infrastructure 和 Oracle RAC。在本指南中,每個 Oracle RAC 節點上將執行 Oracle Grid Infrastructure 和 Oracle RAC,因此每臺伺服器至少需要 2.5 GB RAM

所需的最小交換空間為 1.5 GB。對於 RAM 等於或小於 2 GB 的系統, Oracle 建議您將交換空間設定為 RAM 容量的 1.5 倍。對於 RAM 在 2 GB 到 16 GB 之間的系統,請使用與 RAM 同等大小的交換空間。對於 RAM 大於 16 GB 的系統,請使用 16 GB 的交換空間。

但我是虛擬機器環境,ram只有1G,swap為2G。
由於我用的是RHEL/OEL 5,一些配置已經不需要象RHEL那樣都設定了,比如kernel.shmall,kernel.shmmax
都不需要再設定,將下面的內容增加到/cat/sysctl.conf:
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
啟用剛剛的核心引數:
[root@racnode1 ~]# 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 = 68719476736
kernel.shmall = 4294967296
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
4.配置 RAC 節點以便可以使用 SSH 進行遠端訪問(可選)
配置grid和oracle兩個使用者的ssh互信的工作為什麼是可選的,不是因為不需要了,
而是因為 11g 第 2 版中的 OUI 介面包含了一個新的特性,該特性可以在 Oracle 軟體的實際安裝階段為執行該安裝的使用者帳戶自動配置SSH.
我決定放棄手動配置 SSH 連線,試一下這個新功能。
5.安裝並配置ASMLib 2.0 
安裝asm的核心驅動程式及驅動程式支援檔案,一般系統不會預設安裝的,需要手動來安裝:
[root@racnode1 ~]# cd /media/
[root@racnode1 media]# cd Enterprise Linux dvd 20090908/
[root@racnode1 Enterprise Linux dvd 20090908]# cd Server/
[root@racnode1 Server]# rpm -Uvh oracleasm-support-2.1.3-1.el5.x86_64.rpm
warning: oracleasm-support-2.1.3-1.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:oracleasm-support ########################################### [100%]
[root@racnode1 Server]# rpm -Uvh oracleasm-2.6.18-164.el5-2.0.5-1.el5.x86_64.rpm
warning: oracleasm-2.6.18-164.el5-2.0.5-1.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:oracleasm-2.6.18-164.el########################################### [100%]
 還需要Oracle ASMLib 使用者空間庫,這個檔案需要oracle官方網站下載:
[root@racnode1 home]# rpm -Uvh oracleasmlib-2.0.4-1.el5.x86_64.rpm
warning: oracleasmlib-2.0.4-1.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:oracleasmlib ########################################### [100%]
配置 ASMLib
[root@racnode1 home]# /usr/sbin/oracleasm configure
ORACLEASM_ENABLED=false
ORACLEASM_UID=
ORACLEASM_GID=
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
[root@racnode1 home]# /usr/sbin/oracleasm configure -i
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 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
輸入以下命令以載入 oracleasm 核心模組: 
[root@racnode1 ~]# /usr/sbin/oracleasm init 
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Mounting ASMlib driver filesystem: /dev/oracleasm
對兩個節點都需要做此動作。
下面對oracle建立asm磁碟,只需要在一個節點進行:
[root@racnode1 home]# /usr/sbin/oracleasm createdisk CRSVOL1 /dev/iscsi/crs2/part1
Writing disk header: done
Instantiating disk: done
[root@racnode1 home]# /usr/sbin/oracleasm createdisk DATAVOL1 /dev/iscsi/data1/part1
Writing disk header: done
Instantiating disk: done
[root@racnode1 home]# /usr/sbin/oracleasm createdisk FRAVOL1 /dev/iscsi/fra1/part1
Writing disk header: done
Instantiating disk: done

要使磁碟可用於叢集中其他節點 (racnode2),以 root 使用者身份在每個節點上輸入以下命令:

[root@racnode2 ~]# /usr/sbin/oracleasm scandisks 
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "FRAVOL1"
Instantiating disk "DATAVOL1"
Instantiating disk "CRSVOL1"

現在,我們可以使用以下命令在 RAC 叢集中的兩個節點上以 root 使用者帳戶測試是否成功建立了 ASM 磁碟。此命令指出連線的節點的、標記為自動儲存管理磁碟的共享磁碟:

[root@racnode1 ~]# /usr/sbin/oracleasm listdisks 
CRSVOL1
DATAVOL1
FRAVOL1

[root@racnode2 ~]# /usr/sbin/oracleasm listdisks
CRSVOL1
DATAVOL1
FRAVOL1

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271283/viewspace-1059139/,如需轉載,請註明出處,否則將追究法律責任。

相關文章