centos部署oracle rac單實例11.2.0.3數據庫(使用asm磁盤)

部署oracle rac單實例數據庫,須要安裝grid和datavase兩部分,因此首先建立兩個用戶oracle和grid,由於不能使用root用戶進行安裝,在安裝以前首先須要修改一些系統參數和安裝一些庫。css

1.建立用戶和用戶組c++

  首先是官方推薦的用戶和用戶組清單:數據庫

描述 OS 組名 分配給該組的 OS 用戶 Oracle 權限 Oracle 組名
Oracle 清單和軟件全部者 oinstall grid、oracle    
Oracle 自動存儲管理組 asmadmin grid SYSASM OSASM
ASM 數據庫管理員組 asmdba grid、oracle ASM 的 SYSDBA OSDBA for ASM
ASM 操做員組 asmoper grid ASM 的 SYSOPER OSOPER for ASM
數據庫管理員 dba oracle SYSDBA OSDBA
數據庫操做員 oper oracle SYSOPER OSOPER

  而後是建立用戶和用戶組語句:vim

# 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   
# passwd grid bash


# 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
# passwd oracle網絡

2.建立 Oracle 基目錄路徑session

# mkdir -p /home/app/grid
# mkdir -p /home/app/11.2.0/grid
# chown -R grid:oinstall /home
# mkdir -p /home/app/oracle
# chown oracle:oinstall /home/app/oracle
# chmod -R 775 /home

3.使用udev部署用於建立asm磁盤組的磁盤oracle

  首先使用fdisk -l 查看全部的磁盤,而後fdisk /dev/sda (假設使用sda做爲asm磁盤)進行分區,具體分區操做可百度,總之最後在用fdisk -l查看磁盤信息的時候能夠看到/dev/sda  下有一個/dev/sda1app

  而後打開/etc/udev/rules.d/文件夾建立一個99-oracle.rules文件,插入如下相似的語句:ui

KERNEL=="sdb1",OWNER="grid",GROUP="asmadmin",MODE="0777" 
KERNEL=="sdd1",OWNER="grid",GROUP="asmadmin",MODE="0777" 
KERNEL=="sde1",OWNER="grid",GROUP="asmadmin",MODE="0777"

  這裏使用了三個磁盤就寫了三行,編寫完畢保存退出。

  最後兩個語句完成從新載入udev規則和重啓udev:

# udevadm control --reload-rules
# start_udev

4.安裝所需庫:

  我全寫成了一個yum安裝語句:

yum -y install binutils compat-libcap1 compat-libstdc* gcc gcc-c++* glibc glibc-devel ksh libgcc libstdc libaio libaio-devel make elfutils-libelf-devel sysstat

5.修改系統參數

  修改文件修改添加:

# vim /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

# vi /etc/pam.d/login
session    required     pam_limits.so

# vi /etc/profile
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

# vi /etc/hosts
127.0.0.1   localhost oracletest
::1         localhost oracletest


# 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

# sysctl -p
# chmod -R 775 /etc/oracle

6.解壓安裝包,database和grid都是./runInstall 運行安裝界面,這裏面的每一步我就不截圖一點點來了,百度有不少的。

  下面是一些我遇到的問題,以及個人解決方法(僅參考)

  • 安裝完grid以後能夠不急着安裝database,如今$GRID_HOME/bin/目錄下運行asmca再增長其餘asm磁盤組,這個也是圖形化界面。
  • 安裝database的時候能夠選擇只安裝數據庫軟件,不安裝數據庫實例,等到數據庫軟件安裝好了以後,在$ORACLE_HOME/bin/下運行dbca建數據庫實例,選擇asm磁盤做爲數據存放路徑。
  • grid和databse安裝過程當中會檢測庫是否安裝徹底,若是運行完成我以前的yum語句可忽略此次檢測的異常。(僅參考)
  • grid卸載後從新安裝時ASM磁盤識別不到了 :http://www.cnblogs.com/-abm/p/9240127.htm
    安裝了一次磁盤已經有asm信息寫入,須要擦除才能從新被識別到(of="須要擦除的磁盤")

dd if=/dev/zero of=/dev/sdb1 bs=1M count=10
  • grid 安裝過程當中若是找不到udev部署的磁盤多是由於權限的問題,能夠參考一下我對這幾個磁盤的全部者和全部組(僅參考)
brwxrwxrwx. 1 grid asmadmin 8, 17 Oct 20 10:23 /dev/sdb1
brwxrwxrwx. 1 grid asmadmin 8, 49 Oct 20 10:23 /dev/sdd1
brwxrwxrwx. 1 grid asmadmin 8, 65 Oct 20 10:23 /dev/sde1
  • grid 安裝過程當中若是 root.sh執行 錯誤能夠執行這句解決  
.$GRID_HOME/crs/install/roothas.pl -deconfig -force -verbose
  • grid 安裝過程當中若是 root.sh執行到一半停頓不動了,而後報錯,能夠在停頓的時候再另外的界面執行這個(11.2.0.1有這個bug,11.2.0.3我暫時沒遇到過):
# /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/nullbs=1024 count=1
  • dbca建立數據庫時,找不到asm磁盤,多是oracle用戶沒有權限,給oracle加上asm配置時的用戶組就行 將oracle用戶加到asmadmin用戶組中 將grid用戶加到dba用戶組中 

  • 機器重啓後,若是數據庫沒有啓動使用下面的語句可啓動(參考https://blog.csdn.net/haiross/article/details/16861849)

#./crsctl start has

7.設置開機自啓

  • 1.在$GRID_HOME的bin目錄下運行:
#./crsctl modify resource "ora.cssd" -attr "AUTO_START=1"
#./crsctl modify resource "ora.diskmon" -attr "AUTO_START=1" 
#./crsctl enable has
  • 2.在/etc/init.d/ohasd 中添加(11.2.0.1有這個bug,11.2.0.3我暫時沒遇到過)
enable*)
$LOGERR "Oracle HA daemon is enabled for autostart."
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1 &
/home/grid/app/grid/product/11.2.0/grid/bin/crsctl start has &
sleep 600
ps -ef|grep dd|grep hasd|awk '{print $2}'|xargs kill -9
;;

   以上就是我遇到過的問題,,,配置系統參數那塊是真的一點不能少或者錯,否則後面安裝必報錯,看日誌也不必定能定位問題,asm磁盤的那個部分其實可使用openfiler添加網絡磁盤,網絡磁盤的擴容很簡單不會由於機器放不下硬盤而擴容失敗,這一塊主要就是找一臺專門的機器安裝openfiler,而後oracle這塊使用iscsi鏈接上openfiler,而後一樣的分區,而後使用udev,編寫規則,不同的是這裏的udev規則須要先獲取使用磁盤id編寫而不是磁盤的名字,由於openfiler掛載來的磁盤會發生漂移,沒準機器重啓以後本來掛載在sda的磁盤就變成sdb了因此使用磁盤id。

相關文章
相關標籤/搜索