Installation Oracle11gR2 RAC One Node ----环境部署
admin
2023-05-05 03:41:01
0

第一章、基础环境部署

1.1、环境

操作系统:SuSE Linux Enterprise Server 11SP2

数据库:Oracle 11gR2(112040)

节点1

主机名:node1

ip地址:

192.168.1.30    node1 

192.168.1.50    node1-vip 

10.10.10.30     node1-priv 

ORACLE_SID:ORACLE_1

节点2

主机名:node2

ip地址:

192.168.1.31    node2 

192.168.1.51    node2-vip 

10.10.10.31     node2-priv 

ORACLE_SID:ORACLE_2

SCANIP:  192.168.1.41     my-cluster my-cluster-scan

共享存储:

设备名

大小

作用

/dev/sdb

2g

OCR_VOTE

/dev/sdc

10g

数据库归档日志

/dev/sdd

20g

数据库文件

 1.2、创建账户

 分别在两台服务器上创建如下账户。

groupadd-g 1000 oinstall  

 groupadd -g 1200 asmadmin 

 groupadd -g 1201 asmdba  

 groupadd -g 1202 asmoper  

 useradd -m -u 1100 -goinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash  grid 

 groupadd -g 1300 dba 

 groupadd -g 1301oper 

 useradd -m -u 1101 -goinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash oracle 

 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 

 passwd oracle 

1.3、配置hosts文件

配置两台服务器hosts文件。

#vi /etc/hosts

192.168.1.30    node1 

192.168.1.50    node1-vip 

10.10.10.30     node1-priv 

192.168.1.31    node2 

192.168.1.51    node2-vip 

10.10.10.31     node2-priv 

192.168.1.41    my-cluster my-cluster-scan

1.4、安装所需rpm包

两节点均查看所需rpm包,安装所需rpm包。

#rpm -q binutils gcc gcc-32bit gcc-c++ glibc glibc-32bitglibc-devel glibc-devel-32bit ksh libaio libaio-32bit libaio-devellibaio-devel-32bit libstdc++33 libstdc++33-32bit libstdc++43 libstdc++43-32bitlibstdc++43-devel libstdc++43-devel-32bit libgcc43 libstdc++-devel make sysstatunixODBC unixODBC-devel unixODBC-32bit unixODBC-devel-32bit libcap1 

binutils-2.23.1-0.17.18 

gcc-4.3-62.198 

gcc-32bit-4.3-62.198 

gcc-c++-4.3-62.198 

glibc-2.11.3-17.54.1 

glibc-32bit-2.11.3-17.54.1 

glibc-devel-2.11.3-17.54.1 

glibc-devel-32bit-2.11.3-17.54.1 

ksh-93u-0.18.1 

libaio-0.3.109-0.1.46 

libaio-32bit-0.3.109-0.1.46 

libaio-devel-0.3.109-0.1.46 

libaio-devel-32bit-0.3.109-0.1.46 

libstdc++33-3.3.3-11.9 

libstdc++33-32bit-3.3.3-11.9 

libstdc++43-4.6.9-0.11.38 

libstdc++43-32bit-4.6.9-0.11.38 

libstdc++43-devel-4.3.4_20091019-0.37.30 

libstdc++43-devel-32bit-4.3.4_20091019-0.37.30 

libgcc43-4.6.9-0.11.38 

libstdc++-devel-4.3-62.198 

make-3.81-128.20 

sysstat-8.1.5-7.45.24 

unixODBC-2.2.12-198.17 

unixODBC-devel-2.2.12-198.17 

unixODBC-32bit-2.2.12-198.17 

unixODBC-devel-32bit-2.2.12-198.17 

libcap1-1.10-6.10 

1.5、修改内核参数

设置两台服务器的内核参数

#vi /etc/sysctl.conf

net.ipv4.icmp_echo_ignore_broadcasts = 1 

net.ipv4.conf.all.rp_filter = 1 

fs.inotify.max_user_watches = 65536 

net.ipv4.conf.default.promote_secondaries = 1 

net.ipv4.conf.all.promote_secondaries = 1 

fs.aio-max-nr = 1048576 

fs.file-max = 6815744 

kernel.shmall = 2097152 

kernel.shmmax = 536870912 

kernel.shmmni = 4096 

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 

vm.hugetlb_shm_group= 1000            ###此处为oinstall group number

1.6、设置Shell对Oracle及grid用户的限制

vi /etc/security/limits.conf

oracle soft nproc 2047 

oracle hard nproc 16384 

oracle soft nofile 1024 

oracle hard nofile 65536 

grid soft nproc 2047 

grid hard nproc 16384 

grid soft nofile 1024 

grid hard nofile 65536

编辑/etc/pam.d/login,添加如下内容:

vi /etc/pam.d/login

session required pam_limits.so

1.7、禁用NTP服务

在两台服务器上均禁止NTP服务

service ntp stop

chkconfig ntp off 

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

1.8、grid用户环境变量

节点1

ORACLE_SID=+ASM1; export ORACLE_SID 

ORACLE_BASE=/u01/app/grid; export ORACLE_BASE 

ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME 

ORACLE_PATH=/u01/app/oracle/common/oracle/sql; exportORACLE_PATH 

ORACLE_TERM=xterm; export ORACLE_TERM 

 

TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN 

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11 

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG 

 

PATH=${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch 

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin 

PATH=${PATH}:/u01/app/common/oracle/bin 

export PATH 

 

LD_LIBRARY_PATH=$ORACLE_HOME/lib 

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib 

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib 

export LD_LIBRARY_PATH 

 

CLASSPATH=$ORACLE_HOME/JRE 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib 

export CLASSPATH 

export TEMP=/tmp 

export TMPDIR=/tmp 

 

if [ $USER = "oracle" ] || [ $USER = "grid"]; then 

    if [ $SHELL ="/bin/ksh" ]; then 

        ulimit -p16384 

        ulimit -n 65536 

    else 

        ulimit -u 16384 -n65536 

    fi 

        umask 022 

fi

节点2

ORACLE_SID=+ASM2; export ORACLE_SID 

ORACLE_BASE=/u01/app/grid; export ORACLE_BASE 

ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME 

ORACLE_PATH=/u01/app/oracle/common/oracle/sql; exportORACLE_PATH 

ORACLE_TERM=xterm; export ORACLE_TERM 

 

TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN 

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11 

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG 

 

PATH=${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch 

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin 

PATH=${PATH}:/u01/app/common/oracle/bin 

export PATH 

 

LD_LIBRARY_PATH=$ORACLE_HOME/lib 

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib 

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib 

export LD_LIBRARY_PATH 

 

CLASSPATH=$ORACLE_HOME/JRE 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib 

export CLASSPATH 

export TEMP=/tmp 

export TMPDIR=/tmp 

 

if [ $USER = "oracle" ] || [ $USER = "grid"]; then 

    if [ $SHELL ="/bin/ksh" ]; then 

        ulimit -p 16384 

        ulimit -n65536 

    else 

        ulimit -u 16384 -n65536 

    fi 

        umask 022 

fi

1.9、oracle用户环境变量

节点1

ORACLE_SID=ORACLE_1; export ORACLE_SID  

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE 

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; exportORACLE_HOME 

ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH 

ORACLE_TERM=xterm; export ORACLE_TERM 

 

TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN 

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11 

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG 

 

PATH=${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch 

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin 

PATH=${PATH}:/u01/app/common/oracle/bin 

export PATH 

 

LD_LIBRARY_PATH=$ORACLE_HOME/lib 

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib 

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib 

export LD_LIBRARY_PATH 

 

CLASSPATH=$ORACLE_HOME/JRE 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib 

export CLASSPATH 

 

export TEMP=/tmp 

export TMPDIR=/tmp 

 

if [ $USER = "oracle" ] || [ $USER = "grid"]; then 

    if [ $SHELL ="/bin/ksh" ]; then 

        ulimit -p16384 

        ulimit -n65536 

    else 

        ulimit -u 16384 -n65536 

    fi 

        umask 022 

fi

节点2

ORACLE_SID=ORACLE_2; export ORACLE_SID  

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE 

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; exportORACLE_HOME 

ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH 

ORACLE_TERM=xterm; export ORACLE_TERM 

 

TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN 

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11 

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG 

 

PATH=${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch 

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin 

PATH=${PATH}:/u01/app/common/oracle/bin 

export PATH 

 

LD_LIBRARY_PATH=$ORACLE_HOME/lib 

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib 

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib 

export LD_LIBRARY_PATH 

 

CLASSPATH=$ORACLE_HOME/JRE 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib 

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib 

export CLASSPATH 

 

export TEMP=/tmp 

export TMPDIR=/tmp 

 

if [ $USER = "oracle" ] || [ $USER = "grid"]; then 

    if [ $SHELL ="/bin/ksh" ]; then 

        ulimit -p16384 

        ulimit -n65536 

    else 

        ulimit -u 16384 -n65536 

    fi 

        umask 022 

fi

1.10、配置asm磁盘

node1:/etc/udev/rules.d# fdisk -l

Disk/dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b4c72

DeviceBoot     Start        End      Blocks   Id  System
/dev/sda1   *       2048      401407     199680   83  Linux
/dev/sda2         401408     8787967    4193280   82  Linux swap / Solaris
/dev/sda3        8787968    83859455    37535744  83  Linux

Disk/dev/sdb: 2097 MB, 2097152000 bytes
65 heads, 62 sectors/track, 1016 cylinders, total 4096000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk/dev/sdb doesn't contain a valid partition table

Disk/dev/sdc: 10.5 GB, 10485760000 bytes
64 heads, 32 sectors/track, 10000 cylinders, total 20480000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk/dev/sdc doesn't contain a valid partition table

Disk/dev/sdd: 21.0 GB, 20971520000 bytes
64 heads, 32 sectors/track, 20000 cylinders, total 40960000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk/dev/sdd doesn't contain a valid partition table
node1:/etc/udev/rules.d #
添加编辑/etc/scsi_id.config 文件,并同步至节点2上。
options=--whitelisted --replace-whitespace 

添加编辑/etc/udev/rules.d/99-oracle-asmdevices.rules 
node1:~ # for i in b c d
> do  
> echo "KERNEL==\"sd*\", SUBSYSTEM==\"block\",PROGRAM==\"/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/\

$name\",RESULT==\"`/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid

\",GROUP=\"asmadmin\", MODE=\"0660\""  
> done  
KERNEL=="sd*", SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",

RESULT=="2e8ced45878991f7f",NAME="asm-diskb", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",

RESULT=="2ff5dd7058b0ffb40",NAME="asm-diskc", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",

RESULT=="26c6d14a2e3aa5dd4",NAME="asm-diskd", OWNER="grid", GROUP="asmadmin",MODE="0660"

修改设备别名为所需设备名,同步至节点2.
node1:~ # cd /etc/udev/rules.d/
node1:/etc/udev/rules.d # vi 99-oracle-asmdevices.rules 
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id--whitelisted --replace-whitespace --device=/dev/$name",

RESULT=="2e8ced45878991f7f",NAME="asmocr", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",

RESULT=="2ff5dd7058b0ffb40",NAME="asmfra", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",

RESULT=="26c6d14a2e3aa5dd4",NAME="asmdata", OWNER="grid", GROUP="asmadmin",MODE="0660"
"99-oracle-asmdevices.rules" 3L, 625Cwritten                    
node1:/etc/udev/rules.d #

SUSE和RedHat系列不同,需要使用udevadm test测试才可以看到新产生的设备名称,节点2也需进行测试。

node1:/etc/udev/rules.d# udevadm test /sys/block/sdb
node1:/etc/udev/rules.d # udevadm test /sys/block/sdc
node1:/etc/udev/rules.d # udevadm test /sys/block/sdd

重新启动udev(确保udev为运行状态),节点2页重新启动。
node1:/etc/udev/rules.d # /etc/init.d/boot.udev restart
Restarting udevd:        done
node1:/etc/udev/rules.d # 
查看生成的设备名称
node1:/dev # ll asm*
brw-rw---- 1 grid asmadmin 8, 48 May 22 23:11 asmdata
brw-rw---- 1 grid asmadmin 8, 32 May 22 23:11 asmfra
brw-rw---- 1 grid asmadmin 8, 16 May 22 23:11 asmocr
node1:/dev #

相关内容

热门资讯

菲律宾总统称未下达逮捕德拉罗萨... 新华社马尼拉5月13日电(记者赵晨捷 李萌)据菲律宾媒体报道,菲总统马科斯13日称未下达逮捕参议员德...
时隔九年再度来京,特朗普有何诉... ◆5月12日,特朗普登上“空军一号”前对着镜头挥手告别。(图源:美联社)文/何平编辑/漆菲5月13日...
硬科技管控,中美关系的新压舱石 特朗普此次访华,英伟达CEO黄仁勋随行的消息提振美股市场,凸显芯片与人工智能已成为中美关系的核心议题...
报告:今年一季度AI原生APP... 中国青年网北京5月12日电(记者 高蕾)近日,第三方智能数据服务商QuestMobile发布了《中国...
七大新品发布!国轩高科第15届... 央广网合肥5月13日消息(记者徐鹏)5月16日至17日,电池龙头企业国轩高科将在合肥举办第15届全球...
百度伐谋2.0发布,李彦宏:能... 5月13日举办的Create2026百度AI开发者大会开幕式上,自我演化决策智能体百度伐谋升级至2....
泰顶级豪门曝性侵丑闻!哥哥侵犯... 泰国最有影响力的巨头之一Singha集团(胜狮集团),这两天爆出性侵丑闻。集团第四代成员,环保活动家...
什么信号?多地要求干部带头缴纳... 多地要求干部带头缴纳物业费。最近一段时间,物业费成了社会关注的焦点。原因竟然是多地密集出台文件,号召...
“这不是威胁而是绝佳机遇”,默... 【文/观察者网 张菁娟】“当下挑战之所以如此巨大,是因为我们长期以来为自己制造了太多问题,而这些问题...
老杜盟友半路杀出,“闪电夺权”... 最近两天,马尼拉的政治温度直接爆表。5月11日上午,菲律宾众议院以255票赞成、26票反对、9票弃权...