目录

linux oracle 11gr2 rac安装

编辑hosts文件

1
2
3
4
5
6
7
10.29.0.200   rac1.com       rac1
10.29.0.210   rac1-vip.com   rac1-vip
10.29.0.201   rac2.com       rac2
10.29.0.211   rac2-vip.com   rac2-vip
10.29.0.220   rac-scan.com   rac-scan
10.29.0.221   rac-scan.com   rac-scan
10.29.0.222   rac-scan.com   rac-scan

安装相关包

rhel5

1
yum install binutils* compat-libstdc* elfutils-libelf* gcc* glibc* ksh* libaio* libgcc* libstdc* make* numactl-devel* sysstat*

rhel6

1
yum install binutils* compat-libstdc* elfutils-libelf* gcc* glibc* ksh* libaio* libgcc* libstdc* make* numactl-devel* sysstat* unixODBC* compat-libcap1.x86_64  libcap.x86_64

rhel7

1
yum install binutils compat-libcap1 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libXi libXtst make sysstat unixODBC unixODBC-devel compat-libstdc++-33 elfutils-libelf-devel xdpyinfo xclock

创建用户和组

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
groupadd -g 1000 oinstall

groupadd -g 1100 dba

groupadd -g 1200 dbaoper

groupadd -g 1300 asmadmin

groupadd -g 1400 asmdba

groupadd -g 1500 asmoper

useradd -u 1000 -g oinstall -G asmdba,asmadmin,asmoper,dba grid

useradd -u 1001 -g oinstall -G dba,dbaoper,asmdba oracle

passwd oracle

passwd grid

创建目录和授权

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
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/

编辑.profile

grid

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
umask 022
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_SID=+ASM1
export NLS_LANG=american_america.zhs16gbk
export JAVA_HOME=$ORACLE_HOME/jdk
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export PS1=`hostname`:'$PWD'"$"

oracle

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl1
export ORACLE_UNQNAME=orcl
export NLS_LANG=american_america.zhs16gbk
export JAVA_HOME=$ORACLE_HOME/jdk
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export PS1=`hostname`:'$PWD'"$"

编辑/etc/sysctl.conf

加入如下字段

rhel5

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2074060800
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
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

rhel6

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2076233728
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
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

编辑/etc/security/limits.conf加入软硬限制

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240

编辑/etc/pam.d/login加入

1
session    required     pam_limits.so

编辑/etc/profile加入

1
2
3
4
5
6
7
8
9
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

禁用selinux

vi /etc/selinux/config

关闭防火墙

1
2
3
/etc/init.d/iptables stop

chkconfig iptables off

禁用ntpd

1
2
3
4
5
service ntpd stop

chkconfig ntpd off

mv /etc/ntp.conf /etc/ntp.conf.bak

配置共享存储

方式一、使用asmlib配置共享存储(推荐)

  1. 安装oracleasm

    安装顺序 oracleasm-support oracleasm oracleasmlib

  2. fdisk划分共享磁盘

    配置asmlib

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    /usr/sbin/oracleasm configure -i
    
    grid
    
    asmadmin
    
    y
    
    y
    
  3. 创建asm磁盘

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    
    oracleasm createdisk CRSVOL1 /dev/sdb1
    
    oracleasm createdisk DATAVOL1 /dev/sdc1
    
    oracleasm createdisk DATAVOL2 /dev/sdd1
    
    oracleasm createdisk FRAVOL1 /dev/sdf1
    
    oracleasm createdisk FRAVOL2 /dev/sdg1
    
    oracleasm createdisk FRAVOL3 /dev/sdh1
    
    oracleasm scandisks
    
    oracleasm listdisks
    
  4. 在另一台主机扫描磁盘

    1
    2
    3
    
    oracleasm scandisks
    
    oracleasm listdisks
    

方式二、使用udev配置共享存储

  1. 查看/dev/disk/by-id 查看磁盘id号

  2. 编辑cd /etc/udev/rules.d/99-oracle-asmdevices.rules

    rhel6

    1
    2
    3
    4
    5
    6
    7
    
    for i in b c d ;
    
    do
    
    echo "KERNEL==\\"sd*\\", BUS==\\"scsi\\", PROGRAM==\\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\\$name\\", RESULT==\\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\\", NAME=\\"asm-disk$i\\", OWNER=\\"grid\\", GROUP=\\"asmadmin\\", MODE=\\"0660\\""      >> /etc/udev/rules.d/99-oracle-asmdevices.rules
    
    done
    

rhel5

1
2
3
4
5
6
7
for i in b c d e ;

do

echo "KERNEL==\\"sd*\\", BUS==\\"scsi\\", PROGRAM==\\"/sbin/scsi_id -g -u -s %p\\", RESULT==\\"`scsi_id -g -u -s /block/sd$i`\\", NAME=\\"asm-disk$i\\", OWNER=\\"grid\\", GROUP=\\"asmadmin\\", MODE=\\"0660\\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules

done
  1. 启动udev

    /sbin/start_udev

安装cvmqdisk

CVUQDISK_GRP=oinstall; export CVUQDISK_GRP

  1. 安装cvuqdisk

    ls -l /usr/sbin/cvuqdisk

ssh信任关系配置

此处略

安装前校验

1
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose

启动图形化安装