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。

相关文章
相关标签/搜索