单用户安装Oracle 11g 单机ASM
一、安装准备
环境:RedHat 5.6 64位 Oracle 11.2.0.3
初始化安装环境(用脚本完成):
#!/bin/bashif [ ! $1 ] || [ ! $2 ] then echo "execute error,please input sid and oracle basic home path" exitfiyum install -y binutils* compat-libstdc++* elfutils-libelf* elfutils-libelf-devel* elfutils-libelf-devel-static* gcc* gcc-c++* glibc* glibc-common* glibc-devel* glibc-headers* kernel-headers* ksh* libaio* libaio-devel* libgcc* libgomp* libstdc++* libstdc++-devel* make* numactl-devel* sysstat* unixODBC* openmotif* compat-lib* compat-gcc*/usr/sbin/groupadd -g 501 oinstall/usr/sbin/groupadd -g 502 dba/usr/sbin/groupadd -g 503 asmadmin/usr/sbin/groupadd -g 504 asmdba/usr/sbin/useradd -g oinstall -G dba,asmadmin,asmdba oracleecho oracle | passwd oracle --stdinmkdir -p $2/oracle/app/oraInventorymkdir -p $2/oracle/app/gridmkdir -p $2/oracle/app/oraclechown -R oracle:oinstall $2/oracle/app/chown -R oracle:oinstall $2/oracle/app/oraInventorychown -R oracle:oinstall $2/oracle/app/gridchown -R oracle:oinstall $2/oracle/app/oraclechmod -R 775 $2/oracle/app/chmod -R 775 $2/oracle/app/oraInventorychmod -R 775 $2/oracle/app/oraclechmod -R 775 $2/oracle/app/gridcat > /home/oracle/.bash_grid_profile <<EOFexport PATH=$PATH:$HOME/binexport TMP=/tmpexport TMPDIR=$TMPexport ORACLE_SID=+ASMexport ORACLE_BASE=$2/oracle/app/oracleexport ORACLE_HOME=$2/oracle/app/grid/product/11.2.0export CVUQDISK_GRP=oinstallexport NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"export THREADS_FLAG=nativeexport PATH=$2/oracle/app/grid/product/11.2.0/bin:$PATHEOFcat > /home/oracle/.bash_profile <<EOFexport PATH=$PATH:$HOME/binexport TMP=/tmpexport TMPDIR=$TMPexport ORACLE_BASE=$2/oracle/app/oracleexport ORACLE_HOME=$2/oracle/app/oracle/product/11.2.0export ORACLE_SID=$1export ORACLE_TERM=xtermexport PATH=$ORACLE_HOME/bin:/usr/sbin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libexport CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibexport NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKEOFcat >> /etc/security/limits.conf <<EOForacle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536EOFecho "session required pam_limits.so ">> /etc/pam.d/logincat >> /etc/profile <<EOFif [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fifiEOFcat >>/etc/sysctl.conf <<EOFfs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 4294967295kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586EOFsysctl -p
将软件解压到/opt/soft/目录,给予oracle用户读权限。
以下安装都是用oracle一个用户完成,没有单独配置grid用户。
二、用udev配置asm磁盘
/dev/sdb、/dev/sdc、/dev/sdd 分别为三块硬盘。
用scsi_id获取块设备的唯一标示符:
[root@oratest ~]# /sbin/scsi_id -g -u -s /block/sdb
36000c2945fbd119dfeb6f164fdcfa54e
[root@oratest ~]# /sbin/scsi_id -g -u -s /block/sdc
36000c297080ea12caa33925bb579012a
[root@oratest ~]# /sbin/scsi_id -g -u -s /block/sdd
36000c299eb521cb7b35a1ea392fff524
创建udev配置文件:
[root@oratest ~]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="36000c2945fbd119dfeb6f164fdcfa54e", NAME="data1", OWNER="oracle",
GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="36000c297080ea12caa33925bb579012a", NAME="data2", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="36000c299eb521cb7b35a1ea392fff524", NAME="data3", OWNER="oracle", GROUP="asmadmin", MODE="0660"
如果是rac,需要将文件拷贝到其他节点。
启动udev服务
[root@oratest ~]# /sbin/udevcontrol reload_rules
[root@oratest ~]# /sbin/start_udev
Starting udev: [ OK ]
设置随机启动
[root@oratest ~]# echo "/sbin/start_udev" >>/etc/rc.local
检查是否可以看到磁盘
[root@oratest ~]# ll /dev/data*
brw-rw---- 1 oracle asmadmin 8, 16 Sep 30 17:58 /dev/data1
brw-rw---- 1 oracle asmadmin 8, 32 Sep 30 17:58 /dev/data2
brw-rw---- 1 oracle asmadmin 8, 48 Sep 30 17:58 /dev/data3
三、安装Grid Infrastructure
[root@oratest ~]# xhost +
[root@oratest ~]# su - oracle
[oracle@oratest ~]$ source .bash_grid_profile
[oracle@oratest ~]$ cd /opt/soft/grid/
[oracle@oratest grid]$ ./runInstaller
点击yes,继续:
由于这里是虚拟机,忽略警告,继续:
按顺序用root用户执行这两个脚本,继续:
至此,Grid Infrastructure安装完成。
检查Grid Infrastructure是否安装完成:
[oracle@oratest ~]$ crs_stat -t
Name Type Target State Host
------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE oratest
ora....ER.lsnr ora....er.type ONLINE ONLINE oratest
ora.asm ora.asm.type ONLINE ONLINE oratest
ora.cssd ora.cssd.type ONLINE ONLINE oratest
ora.diskmon ora....on.type OFFLINE OFFLINE
ora.evmd ora.evm.type ONLINE ONLINE oratest
ora.ons ora.ons.type OFFLINE OFFLINE
[oracle@oratest ~]$ asmcmd
ASMCMD> ls
DATA/
ASMCMD>
四、安装Oracle Soft
点yes,忽略,继续:
执行脚本,继续:
至此,oracle db软件安装完成。
五、DBCA建库
建库前配置合适的共享内存/dev/shm,以便设置自动内存管理:
[root@oratest ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 4.4G 12G 27% /
/dev/sda5 20G 15G 4.4G 77% /opt
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 500M 200M 301M 40% /dev/shm
[root@oratest ~]# umount /dev/shm -l
[root@oratest ~]# mount -t tmpfs -o size=750m tmpfs /dev/shm
检查修改是否成功:
[root@oratest ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 4.4G 12G 27% /
/dev/sda5 20G 15G 4.4G 77% /opt
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 750M 0 750M 0% /dev/shm
添加到fstab中
[root@oratest ~]# vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=750m 0 0
[oracle@oratest ~]# dbca
关闭自动维护任务:
选择已经配置好的asm磁盘组data:
设置asmsnmp用户密码:
不开启闪回和归档,如有需要,后期在开启:
如果没有配置足够的共享内存,则会报如上错误:
根据实际情况,配置合适的块大小和进程数:
选择正确的字符集:
设置合适的redo大小和添加合适的组数,这里设置为50m和配置了6组,也可以建库后再设置:
参考:
http://www.oracledatabase12g.com/archives/utilize-udev-resolve-11gr2-rac-asm-device-name.html