天天看点

rhel 6.4 + udev + 11.2.0.3 + asm 单点安装

第一块磁盘的大小为50G,安装RHEL6.4 及 gi standalone,oracle software。

第二块磁盘的大小为40G,使用udev配置成asm的磁盘。

安装OS结束后,执行下面的步骤

cd /mnt

mkdir cdrom

mount /dev/cdrom /mnt/cdrom

chkconfig cups off

chkconfig sendmail off

chkconfig isdn off

chkconfig smartd off

chkconfig iptables off

reboot

创建第二块盘

cd D:Program FilesVMwareVMware Server

vmware-vdiskmanager.exe -c -s 40000Mb -a lsilogic -t 2 H:/VM_ware/asm_data1.vmdk

下面类容添加到 dbasm 的 Red Hat Linux.vmx中

scsi1.present = "TRUE" 

scsi1.virtualDev = "lsilogic" 

scsi1.sharedBus = "virtual" 

scsi1:1.present = "TRUE" 

scsi1:1.mode = "independent-persistent" 

scsi1:1.filename = "H:/VM_ware/asm_data1.vmdk" 

scsi1:1.deviceType = "plainDisk" 

disk.locking = "false" 

diskLib.dataCacheMaxSize = "0" 

diskLib.dataCacheMaxReadAheadSize = "0" 

diskLib.DataCacheMinReadAheadSize = "0" 

diskLib.dataCachePageSize = "4096" 

diskLib.maxUnsyncedWrites = "0"

需要添加内容结束

修改OS的信息

vi /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=dbasm

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

HWADDR=00:0C:29:59:4B:00

ONBOOT=yes

IPADDR=10.1.1.35

NETMASK=255.255.255.0

GATEWAY=10.1.1.1

vi /etc/hosts

10.1.1.35 asmnode

--重启网络服务,使修改生效

service network restart

建立oracle,grid用户

11gr2建议将oracle用户的权限分离,当然不分离也是可以的,不过分离是应该的,

把数据库用户和存储用户区别开,就好比 data tablespace 和index tablespace 一样让人概念清晰,管理方便

估计会在12c中强制分离

创建 相应 的组

 groupadd -g 501 oinstall

 groupadd -g 502 dba

 groupadd -g 503 oper

 groupadd -g 504 asmadmin

 groupadd -g 505 asmdba

 groupadd -g 506 asmoper

创建oracle用户及grid用户,这里可以看出grid的权限是比oracle大的

 useradd -u 1100 -g oinstall -G asmdba,dba,oper oracle

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

修改用户的密码

 passwd oracle

 passwd grid

如果有错可以用usermod 命令修改

usermod -G osasm,osdba,osoper,dba,oper oracle

创建目录

mkdir -p /u01/app/oracle/product/11.2.0/db_1

mkdir -p /u01/app/grid/product/11.2.0/grid_1

mkdir -p /u01/app/gridbase

chown -R oracle:oinstall /u01/app

chown -R grid:oinstall /u01/app/grid

chown -R grid:oinstall /u01/app/gridbase

chmod -R 775 /u01

修改一些系统配置

vi /etc/security/limits.conf

#ORACLE SETTING

grid                 soft    nproc   655350

grid                 hard    nproc   655350

grid                 soft    nofile  655350

grid                 hard    nofile  655350

oracle               soft    nproc   655350

oracle               hard    nproc   655350

oracle               soft    nofile  655350

oracle               hard    nofile  655350

vi /etc/pam.d/login

#ORACLE SETTING

session    required    /lib64/security/pam_limits.so

session    required    pam_limits.so

vi /etc/sysctl.conf

#ORACLE SETTING

#kernel.shmall = 2097152

#kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.aio-max-nr = 1048576

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 = 1048586

立即生效

sysctl -p

禁止selinux

vi /etc/selinux/config

SELINUX=disabled

关掉防火墙

service iptables status

service iptables stop

chkconfig iptables off

--应该是不需要的,单机需要时间同步?在11gr2 RAC中建议使用CTSS

gird时间同步所需要的设置,Network Time Protocol Setting

/sbin/service ntpd stop

chkconfig ntpd off

mv /etc/ntp.conf /etc/ntp.conf.bak 或者 rm /etc/ntp.conf

fdisk 处理裸设备,切记不要格式化为文件系统 

特别注意:如果是虚拟机,就要在虚拟机的配置文件里设置 disk.EnableUUID = "TRUE",否则 scsci_id 获取不到磁盘的字符串

/dev/sdb1

/dev/sdb2

/dev/sdb3

/sbin/partprobe /dev/sdb1

/sbin/partprobe /dev/sdb2

/sbin/partprobe /dev/sdb3

配置udev设备

touch /etc/udev/rules.d/99-oracle-asmdevices.rules

#添加记录到/etc/scsi_id.config,如果没有该文件,则手动创建

echo "options=--whitelisted --replace-whitespace"  >> /etc/scsi_id.config

for i in b1 b2 b3

do

echo "KERNEL=="sd$i", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent", RESULT=="`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd${i:0:1}`", NAME="asm-disk$i", OWNER="grid", GROUP="asmadmin", MODE="0660""      

done;

输出结果添加到 /etc/udev/rules.d/99-oracle-asmdevices.rules

# /sbin/udevadm control --reload-rules

# start_udev

# ls -lrt /dev/asm*

oracle 用户的.bash_profile 文件

vi /home/oracle/.bash_profile

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=dbasm

#export TNS_ADMIN=$ORACLE_HOME/network/admin

#export ORA_NLS10=$ORACLE_HOME/nls/data

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

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 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 TEMP=/tmp

export TMP=/tmp

export TMPDIR=/tmp

用户的.bash_profile 文件 ORACLE_HOSTNAME请自行设置

vi /home/grid/.bash_profile

export ORACLE_BASE=/u01/app/gridbase

export ORACLE_HOME=/u01/app/grid/product/11.2.0/grid_1

export ORACLE_SID=+ASM

export TEMP=/tmp

export TMP=/tmp

export TMPDIR=/tmp

PATH=$ORACLE_HOME/bin:$PATH; export PATH

yum 配置

vi /etc/yum.conf

追加如下内容

[base]

name=base pyb yum test

baseurl=file:///mnt/cdrom

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

[updates-released]

name= updates-released pyb yum test

baseurl=file:///mnt/cdrom

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

修改其中的 gpgcheck参数,改为gpgcheck=0 

修改其中的 enabled参数,改为enabled=1 

先安装 gi software ,可以仅安装软件,或者安装软件时同时配置( standalone)。建议后面一种方式。

再安装 oracle software,之后再dbca建库

安装 grid software,这里是仅安装软件,中间会检查系统参数和OS的依赖包,用yum install 安装就可以了

最后运行弹出窗口的脚本

/u01/app/oraInventory/orainstRoot.sh

/u01/app/grid/product/11.2.0/grid_1/root.sh

配置监听

[grid@asmnode software]$ netca 

运行asmca

[grid@asmnode software]$ asmca

如果只安装软件,在运行asmca 时会报错,需要 以root运行 grid 用户的这个文件 

# perl /u01/app/grid/product/11.2.0/grid_1/crs/install/roothas.pl 

可以会出错,提示要先卸载

# perl /u01/app/grid/product/11.2.0/grid_1/crs/install/roothas.pl -verbose -deconfig -force

重新运行root.sh

# /u01/app/grid/product/11.2.0/grid_1/root.sh

# perl /u01/app/grid/product/11.2.0/grid_1/crs/install/roothas.pl

下面为相关的日志输出,供学习研究用

# perl /u01/app/grid/product/11.2.0/grid_1/crs/install/roothas.pl

Using configuration parameter file: /u01/app/grid/product/11.2.0/grid_1/crs/install/crsconfig_params

User ignored Prerequisites during installation

CRS is already configured on this node for crshome=/u01/app/grid/product/11.2.0/grid_1

Cannot configure two CRS instances on the same cluster.

Please deconfigure before proceeding with the configuration of new home. 

# perl /u01/app/grid/product/11.2.0/grid_1/crs/install/roothas.pl -verbose -deconfig -force

Using configuration parameter file: /u01/app/grid/product/11.2.0/grid_1/crs/install/crsconfig_params

PRKO-2573 : ONS daemon is already stopped.

CRS-2500: Cannot stop resource 'ora.cssd' as it is not running

CRS-4000: Command Stop failed, or completed with errors.

CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'asmnodedup'

CRS-2673: Attempting to stop 'ora.evmd' on 'asmnodedup'

CRS-2677: Stop of 'ora.evmd' on 'asmnodedup' succeeded

CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'asmnodedup' has completed

CRS-4133: Oracle High Availability Services has been stopped.

Successfully deconfigured Oracle Restart stack

# /u01/app/grid/product/11.2.0/grid_1/root.sh

Performing root user operation for Oracle 11g 

The following environment variables are set as:

    ORACLE_OWNER= grid

    ORACLE_HOME=  /u01/app/grid/product/11.2.0/grid_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: 

The contents of "dbhome" have not changed. No need to overwrite.

The contents of "oraenv" have not changed. No need to overwrite.

The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

To configure Grid Infrastructure for a Stand-Alone Server run the following command as the root user:

/u01/app/grid/product/11.2.0/grid_1/perl/bin/perl -I/u01/app/grid/product/11.2.0/grid_1/perl/lib -I/u01/app/grid/product/11.2.0/grid_1/crs/install /u01/app/grid/product/11.2.0/grid_1/crs/install/roothas.pl

To configure Grid Infrastructure for a Cluster execute the following command:

/u01/app/grid/product/11.2.0/grid_1/crs/config/config.sh

This command launches the Grid Infrastructure Configuration Wizard. The wizard also supports silent operation, and the parameters can be passed through the response file that is available in the installation media.

# perl /u01/app/grid/product/11.2.0/grid_1/crs/install/roothas.pl

Using configuration parameter file: /u01/app/grid/product/11.2.0/grid_1/crs/install/crsconfig_params

User ignored Prerequisites during installation

LOCAL ADD MODE 

Creating OCR keys for user 'grid', privgrp 'oinstall'..

Operation successful.

LOCAL ONLY MODE 

Successfully accumulated necessary OCR keys.

Creating OCR keys for user 'root', privgrp 'root'..

Operation successful.

CRS-4664: Node asmnodedup successfully pinned.

Adding Clusterware entries to upstart

asmnode     2016/04/26 08:56:20     /u01/app/grid/product/11.2.0/grid_1/cdata/asmnodedup/backup_20160426_085620.olr

Successfully configured Oracle Grid Infrastructure for a Standalone Server

grid 用户下,注意用sysasm登录(11g新加的角色)

$ sqlplus /nolog

SQL> conn / as sysasm

Connected.

SQL> shutdown immediate

ASM diskgroups dismounted

ASM instance shutdown

------------

如果在11g grid 下启动asm实例会报 ORA-29701 错误

$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.3.0 Production onTue Apr 26 15:44:30 2016

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup

ORA-01078: failure in processing system parameters

ORA-29701: unable to connect to Cluster Synchronization Service

那是因为css没有起来,可以手动起来,或者稍等一下,因为重启后会随着系统启动,存在延迟

注意用户.bash_profile 的 ORACLE_SID 和dbca 的实例名的大小写

--检查css

crsctl check css  

ps -ef|grep -i cssd

--检查has

crsctl check has  

ps -ef|grep -i d.bin

手动启动css

crsctl start resource ora.cssd  

手动启动全部资源

crsctl start resource -all

# ./crs_stat -t -v

Name           Type           R/RA   F/FT   Target    State     Host        

----------------------------------------------------------------------

ora.DG_DATA.dg ora....up.type 0/5    0/     ONLINE    ONLINE    asmnode     

ora.asm        ora.asm.type   0/5    0/     ONLINE    ONLINE    asmnode     

ora.cssd       ora.cssd.type  0/5    0/5    ONLINE    ONLINE    asmnode     

ora.dbasm.db   ora....se.type 0/2    0/1    ONLINE    ONLINE    asmnode     

ora.diskmon    ora....on.type 0/10   0/5    OFFLINE   OFFLINE               

ora.evmd       ora.evm.type   0/10   0/5    ONLINE    ONLINE    asmnode     

ora.ons        ora.ons.type   0/3    0/     OFFLINE   OFFLINE   

# ./crsctl status resource -t -init

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS       

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.DG_DATA.dg

               ONLINE  ONLINE       asmnode                                      

ora.asm

               ONLINE  ONLINE       asmnode                  Started             

ora.ons

               OFFLINE OFFLINE      asmnode                                      

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.cssd

      1        ONLINE  ONLINE       asmnode                                      

ora.dbasm.db

      1        ONLINE  ONLINE       asmnode                  Open                

ora.diskmon

      1        OFFLINE OFFLINE                                                   

ora.evmd

      1        ONLINE  ONLINE       asmnode   

1)默认情况下HAS(High Availability Service)是自动启动的.通过如下命令可以取消和启用自动启动

        crsctl disable has        

        crsctl enable has      

2)HAS手动启动和停止        

        crsctl start has        

        crsctl stop has      

3)查看HAS的状态        

        crsctl check has      

4)如果想让ora.css和ora.diskmon服务随着HAS的启动而自动启动,

  那么你可以这两个服务的AUTO_START属性        

  crsctl modify resource "ora.cssd" -attr "AUTO_START=1"       

  or         

  crsctl modify resource "ora.diskmon" -attr "AUTO_START=1"   

5)如果想取消ora.css和ora.diskmon的Auto start         

  crsctl modify resource "ora.cssd" -attr "AUTO_START=never"  

  or  

  crsctl modify resource "ora.diskmon" -attr "AUTO_START=never"

----------------------------------------------------------

安装oracle software,仅安装数据库软件

下一步,一直下一步 注意选择 only database software

/u01/app/oracle/product/11.2.0/db_1/root.sh 

分别运行后 数据库软件就算安装完毕了

开始创建数据库,运行dbca

$ dbca

注意存储时选择ASM,

DG_DATA01

注意选择数据库的编码,要和OS的 NLS_LANG 变量一致

再后面是创建数据库了,没什么好说的了