Oracle Linux 6.1 + Oracle 11.2.0.1 RAC + RAW 安装文档_dave 的blog-程序员宅基地

技术标签: Oracle RAC  


小整理了一下Oracle Linux 下6.1 + Oracle 11.2.0.1 RAC 的安装。中间有些贴图,blog里就不贴了。完成版可以下载pdf格式的文档,看的更清楚。


下载地址:

http://download.csdn.net/detail/tianlesoftware/4797570



目录.... 2

一.准备工作.... 3

1.1 RAC架构规划... 3

1.2 修改/etc/hosts文件(所有节点)... 3

1.3 添加组和用户... 3

1.4 禁用防火墙和SELNUX(所有节点)... 4

1.5 配置时间同步... 5

1.5.1 配置CTSS. 5

1.5.2 配置NTP(Network Time Protocol)6

1.6 创建目录结构(所有节点)... 6

1.7 配置环境变量... 7

1.7.1 Grid用户... 7

1.7.2 Oracle 用户... 7

1.8 为安装用户设置资源限制... 8

1.8.1 修改/etc/security/limits.conf8

1.8.2 修改/etc/pam.d/login. 9

1.8.3 shell 的限制... 9

1.9 存储规划... 10

1.9.1 盘区划分... 10

1.9.2 配置ISCSI(所有节点执行)... 11

1.9.3 格式化分区... 11

1.9.4 使用UDEV 进行持久化... 12

二.安装Grid.. 18

三.安装DB. 28

四.创建ASM 磁盘组.... 30

五.创建实例.... 31

六.配置Client-Side TAF. 32

6.1 节点1 配置... 32

6.2 节点2 配置... 33

6.3 在node1和node2的 tnsnames.ora 文件添加如下内容... 33

6.4 在所有节点设置remotelistener34

6.5 进行TAF测试... 34

 

1.1 RAC架构规划

服务器主机名

rac1

rac2

公共IP地址(eth0)

192.168.1.61

192.168.1.71

虚拟IP地址(eth0)

192.168.1.63

192.168.1.73

私有IP地址(eth1)

192.168.1.62

192.168.1.72

ORACLE RAC SID

dave1

dave2

集群实例名称

dave

SCAN IP

192.168.1.9

操作系统

Oracle Linux 6.1

存储

OpenFiler

Oracle

11.2.0.1

 

注:

    这里选择11.2.0.1 是因为从Oracle 11.2.0.2之后安装grid的public IP 和privateIP必须是不同网段的,我在虚拟机上配置不同网段比较蛮烦。所以降低版本使用11.2.0.1了。

 

1.2 修改/etc/hosts文件(所有节点)

[root@rac1~]# cat /etc/hosts

127.0.0.1   localhost 

 

192.168.1.61 rac1rac1-public

192.168.1.62 rac1-priv

192.168.1.63 rac1-vip

 

192.168.1.71 rac2rac2-public

192.168.1.72 rac2-priv

192.168.1.73 rac2-vip

 

192.168.1.9 rac-scan

 

1.3 添加组和用户

#groupadd -g 1000oinstall

#groupadd -g 1200 asmadmin

#groupadd -g 1201asmdba

#groupadd -g 1202asmoper

#groupadd -g 1300dba

#groupadd -g 1301 oper

# useradd -m -u 1100 -g oinstall -Gasmadmin,asmdba,asmoper -d /home/grid -s /bin/bash grid

#useradd -m -u 1101 -g oinstall -Gdba,oper,asmdba -d /home/oracle -s /bin/bash oracle

 

 

确认用户信息:

[root@rac1 ~]# id oracle

uid=502(oracle) gid=507(oinstall)groups=507(oinstall),502(dba),503(oper),506(asmdba)

[root@rac1 ~]# id grid

uid=1100(grid) gid=507(oinstall)groups=507(oinstall),504(asmadmin),506(asmdba),505(asmoper)

 

 

修改密码:

passwd oracle

passwd grid

 

在所有节点上验证用户 nobody 存在:

安装软件之前,执行以下过程,以验证在两个 Oracle RAC 节点上存在用户 nobody,要确定该用户是否存在,输入以下命令:

# id nobody

uid=99(nobody) gid=99(nobody)groups=99(nobody)

 

如果该命令显示了 nobody 用户的信息,则无需创建该用户。如果用户 nobody 不存在,则输入以下命令进行创建:

# /usr/sbin/useradd nobody

 

1.4 禁用防火墙和SELNUX(所有节点)

 

关闭防火墙:

Service iptables status

Service iptables stop

chkconfig iptables off

chkconfig iptables –list

 

 

设置/etc/selinux/config 文件,将SELINUX设置为disabled。

 

[root@rac1 ~]# cat /etc/selinux/config

 

# This file controls the state of SELinux onthe system.

# SELINUX= can take one of these threevalues:

#    enforcing - SELinux security policy is enforced.

#    permissive - SELinux prints warnings instead of enforcing.

#    disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these twovalues:

#    targeted - Targeted processes are protected,

#    mls - Multi Level Security protection.

SELINUXTYPE=targeted

1.5 配置时间同步

在11gR2中,RAC在安装的时候,时间同步可以用两种方式来实现:

(1)  NTP

(2)  CTSS。 

 

当安装程序发现 NTP 协议处于非活动状态时,安装集群时间同步服务将以活动模式自动进行安装并通过所有节点的时间。如果发现配置了 NTP,则以观察者模式启动集群时间同步服务,OracleClusterware 不会在集群中进行活动的时间同步。

Oracle 集群时间同步服务 (ctssd) 旨在为那些 OracleRAC 数据库无法访问 NTP 服务的组织提供服务。目前建议配置NTP。

1.5.1 配置CTSS

使用集群时间同步服务在集群中提供同步服务,需要卸载网络时间协议 (NTP) 及其配置。

要停用 NTP 服务,必须停止当前的 ntpd 服务,从初始化序列中禁用该服务,并删除 ntp.conf 文件。

要在Linux 上完成这些步骤,以 root 用户身份在两个 Oracle RAC 节点上运行以下命令:

 

[root@rac1 ~]# /sbin/service ntpd stop

Shutting down ntpd:                                        [ OK  ]

[root@rac1 ~]# chkconfig ntpd off

[root@rac1 ~]# mv /etc/ntp.conf/etc/ntp.conf.original

[root@rac1 ~]# chkconfig ntpd --list

ntpd            0:off   1:off  2:off   3:off   4:off  5:off   6:off

 

[root@rac2 ~]# /sbin/service ntpd stop

Shutting down ntpd:                                        [  OK  ]

[root@rac2 ~]# chkconfig ntpd off

[root@rac2 ~]# mv /etc/ntp.conf/etc/ntp.conf.original

[root@rac2 ~]# chkconfig ntpd --list

ntpd            0:off   1:off  2:off   3:off   4:off  5:off   6:off

 

还要删除以下文件:

rm /var/run/ntpd.pid

此文件保存了 NTP 后台程序的 pid。

 

 

在安装后,要确认 ctssd 处于活动状态,用grid所有者输入以下命令:

[grid@racnode1 ~]$ crsctl check ctss

CRS-4701: The Cluster Time Synchronization Serviceis in Active mode.

CRS-4702: Offset (in msec): 0

 

1.5.2 配置NTP(Network Time Protocol)

具体参考:

Linux 时间同步配置

http://www.cndba.cn/Dave/article/702

 

这里测试使用CTSS来配置同步。

 

 

1.6 创建目录结构(所有节点)

mkdir -p /u01/app/grid/11.2.0

chown -R grid:oinstall /u01

 

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

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

chmod -R 775 /u01

 

1.7 配置环境变量

1.7.1 Grid用户

修改grid用户的.bash_profile.注意每个节点的不同内容:

export ORACLE_SID=+ASM1

#export ORACLE_SID=+ASM2

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/grid/11.2.0

exportPATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin/:.

export TEMP=/tmp

export TMP=/tmp

export TMPDIR=/tmp

umask 022

 

1.7.2 Oracle 用户

修改oracle 用户的.bash_profile,注意每个节点的不同内容:

ORACLE_SID=dave1;export ORACLE_SID

#ORACLE_SID=dave2;export ORACLE_SID

ORACLE_UNQNAME=dave;export ORACLE_UNQNAME

JAVA_HOME=/usr/local/java; export JAVA_HOME

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/11.2.0/db_1;export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM

NLS_DATE_FORMAT="YYYY:MM:DD HH24:MI:SS";export NLS_DATE_FORMAT

NLS_LANG=american_america.ZHS16GBK; exportNLS_LANG

TNS_ADMIN=$ORACLE_HOME/network/admin; exportTNS_ADMIN

ORA_NLS11=$ORACLE_HOME/nls/data; exportORA_NLS11

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/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

THREADS_FLAG=native; export THREADS_FLAG

export TEMP=/tmp

export TMPDIR=/tmp

#---------------------------------------------------

# UMASK

#---------------------------------------------------

# Set the default file mode creation mask

# (umask) to 022 to ensure that the userperforming

# the Oracle software installation createsfiles

# with 644 permissions.

#---------------------------------------------------

umask 022 

 

 

1.8 为安装用户设置资源限制

1.8.1 修改/etc/security/limits.conf

要改善 Linux 系统上的软件性能,必须对 Oracle 软件所有者用户(grid、oracle)增加以下资源限制:

Shell 限制

limits.conf 中的条目

硬限制

打开文件描述符的最大数

nofile

65536

可用于单个用户的最大进程数

nproc

16384

进程堆栈段的最大大小

stack

10240

 

以 root 用户身份,在每个 Oracle RAC 节点上,在 /etc/security/limits.conf 文件中添加如下内容,或者执行执行如下命令:

 

[root@rac1 ~]# cat >> /etc/security/limits.conf <<EOF

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

EOF

 

注:红色部分一起执行

 

1.8.2 修改/etc/pam.d/login

在每个 OracleRAC 节点上,在 /etc/pam.d/login 文件中添加或编辑下面一行内容:

[root@rac1 ~]# cat >> /etc/pam.d/login <<EOF

session    required     pam_limits.so

EOF

 

注:红色部分一起执行

 

1.8.3 shell 的限制

对默认的 shell 启动文件进行以下更改,以便更改所有 Oracle 安装所有者的 ulimit 设置:

 

(1)对于 Bourne、Bash 或 Korn shell,通过运行以下命令将以下行添加到 /etc/profile 文件:

[root@rac1 ~]# cat >> /etc/profile <<EOF

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

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

        ulimit-p 16384

        ulimit-n 65536

    else

        ulimit-u 16384 -n 65536

    fi

    umask022

fi

EOF

 

注:红色部分一起执行

 

(2)对于 C shell(csh 或 tcsh),通过运行以下命令将以下行添加到 /etc/csh.login 文件:

[root@racnode1 ~]# cat >> /etc/csh.login <<EOF

if ( /$USER == "oracle" || /$USER =="grid" ) then

    limit maxproc 16384

    limit descriptors 65536

endif

EOF

 

注:红色部分一起执行

 

 

Dave备注:

    在Oracle Linux 6平台下安装Oracle,可以使用Preinstal包,该包会完成相关的参数修改等操作,会大大简化我们安装数据库的时间,详细内容参考:

Oracle Linux6 下 Oracle RDBMS Server 11gR2 Preinstall RPM 包说明

http://www.cndba.cn/Dave/article/1316

 

1.9 存储规划

1.9.1 盘区划分

使用Openfiler 作为共享,使用iscsi进行连接,使用udev 进行映射。

 

冗余策略

卷划分及大小说明

OCRVOTING

Ocrvoting01

1G

Ocrvoting02

1G

Ocrvoting03

1G

ARCH

Arch01

5G

Arch02

5G

DATAFILE

Data01

5G

Data02

5G

Data03

5G

Data04

5G

Data05

5G

FRA

Fra01

5G

Fra02

5G

Fra03

5G

 

 

注意这里需要在存储上进行划分,每个分区一个映射。所以这里需要在存储上划分13个分区。 这样是为了保证scsi_id的唯一性。

 

根据官网的要求,11g中每个OCR和vote disk 至少需要300M空间。在ASM 的冗余级别中:

external >= 1

normal >=3

high >=5

 

所以如果我们选择normal,那么至少需要3个设备,每个设备至少600M。

 

 

1.9.2 配置ISCSI(所有节点执行)

[root@rac1 etc]# iscsiadm -m discovery-t sendtargets -p 192.168.1.2

192.168.1.2:3260,1 asm.tianlesoftware.com

192.168.1.3:3260,1 asm.tianlesoftware.com

192.168.1.2:3260,1 filesystem

192.168.1.3:3260,1 filesystem

 

 

--手工登陆:

[root@rac1 etc]# iscsiadm -m node -Tasm.tianlesoftware.com -p 192.168.1.2 -l

Logging in to [iface: default, target:asm.tianlesoftware.com, portal: 192.168.1.2,3260]

Login to [iface: default, target:asm.tianlesoftware.com, portal: 192.168.1.2,3260] successful.

 

 

--配置自动登陆:

[root@rac1 etc]# iscsiadm -m node -Tasm.tianlesoftware.com -p 192.168.1.2 --op update -n node.startup -v automatic

 

--停止ISCSI

[root@rac2 /]# service iscsi stop

[root@rac2 /]# service iscsid stop

 

 

--验证:

[root@rac1 etc]# netstat -anp |grep 3260

tcp       0      0 192.168.1.62:33454          192.168.1.2:3260            ESTABLISHED 6702/iscsid  

 

 

1.9.3 格式化分区

对分区进行格式化:

 

[root@rac2 ~]# fdisk /dev/sdq

Device contains neither a valid DOSpartition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with diskidentifier 0xd5a3f562.

Changes will remain in memory only, untilyou decide to write them.

After that, of course, the previous contentwon't be recoverable.

 

Warning: invalid flag 0x0000 of partitiontable 4 will be corrected by w(rite)

 

WARNING: DOS-compatible mode is deprecated.It's strongly recommended to

        switch off the mode (command 'c') and change display units to

        sectors (command 'u').

 

Command (m for help): n

Command action

  e   extended

  p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-1018, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G}(1-1018, default 1018):

Using default value 1018

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

[root@rac2 ~]#

 

1.9.4 使用UDEV 进行持久化

参考MOS:

How To Setup UDEV Rules For RAC OCR AndVoting Devices On SLES10, RHEL5, OEL5, OL5 [ID 414897.1]

 

Oracle Linux配置 UDEV SCSI Rules 说明

http://www.cndba.cn/Dave/article/934

 

How to use udev for Oracle ASM in OracleLinux 6

http://www.dbform.com/html/2011/1708.html

 

 

--使用如下shell脚本获取scsi id:

[root@rac1 u01]# cat get_scsiid.sh

#!/bin/sh                          

echo "---------begining------------"

 

echo "---echo 4194MB---"

echo "/dev/sdb:"

/sbin/scsi_id -g -u /dev/sdb

echo "/dev/sdc:"

/sbin/scsi_id -g -u /dev/sdc

echo "/dev/sdd:"

/sbin/scsi_id -g -u /dev/sdd

echo "/dev/sde:"

/sbin/scsi_id -g -u /dev/sde

echo "/dev/sdf:"

/sbin/scsi_id -g -u /dev/sdf

echo "/dev/sdh:"

/sbin/scsi_id -g -u /dev/sdh

 

echo "---echo 5268MB---"   

echo "/dev/sdk:"                                       

/sbin/scsi_id -g -u /dev/sdk

echo "/dev/sdl:"

/sbin/scsi_id -g -u /dev/sdl

echo "/dev/sdm:"

/sbin/scsi_id -g -u /dev/sdm

echo "/dev/sdj:"

/sbin/scsi_id -g -u /dev/sdj

echo "/dev/sdn:"

/sbin/scsi_id -g -u /dev/sdn

echo "/dev/sdp:"

/sbin/scsi_id -g -u /dev/sdp

echo "/dev/sdr:"

/sbin/scsi_id -g -u /dev/sdr

echo "/dev/sdq:"

/sbin/scsi_id -g -u /dev/sdq

echo "/dev/sdo:"

/sbin/scsi_id -g -u /dev/sdo

echo "/dev/sds:"

/sbin/scsi_id -g -u /dev/sds

echo "/dev/sdg:"

/sbin/scsi_id -g -u /dev/sdg

echo "/dev/sdi:"

/sbin/scsi_id -g -u /dev/sdi

echo "/dev/sdu:"

/sbin/scsi_id -g -u /dev/sdu

echo "/dev/sdw:"

/sbin/scsi_id -g -u /dev/sdw

 

echo "---echo 234MB---"  

echo "/dev/sdt:"                                         

/sbin/scsi_id -g -u /dev/sdt

echo "/dev/sdv:"

/sbin/scsi_id -g -u /dev/sdv

echo "/dev/sdx:"

/sbin/scsi_id -g -u /dev/sdx

echo "/dev/sdy:"

/sbin/scsi_id -g -u /dev/sdy

echo "/dev/sdz:"

/sbin/scsi_id -g -u /dev/sdz

echo "/dev/sdaa:"

/sbin/scsi_id -g -u /dev/sdaa

 

echo"----------end------------"  

[root@rac1 u01]#

 

 

或者:

for iin c d e f g h i j k l m n o p ;

do

echo"sd$i" "`scsi_id -g -u -s /block/sd$i` ";

done

 

for iin b c d e f g h i j k ;

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\""

done

 

 

从输出结果中过滤后需要的结果如下:

 

---FRA 4194MB---

/dev/sdb:

14f504e46494c45527634436445432d567646522d70667244

/dev/sdc:

14f504e46494c45526852356f6c6c2d4241306e2d4f303739

/dev/sde:

14f504e46494c455238767444364e2d7530454f2d574a324d

 

 

---ARCH5268MB---

/dev/sdk:

14f504e46494c45523369626957672d734941712d31515456

/dev/sdl:

14f504e46494c455272427a76586a2d756647582d6d524252

 

---DATAFILE5268MB---

/dev/sdm:

14f504e46494c45526e5a445a74332d4273346f2d71357243

/dev/sdr:

14f504e46494c45524f6c386759382d4635314f2d4c336965

/dev/sdq:

14f504e46494c45524d62483162502d6c4738562d78793269

/dev/sds:

14f504e46494c45525862523154342d717754332d38696b4e

/dev/sdg:

14f504e46494c4552623872364b662d756d7a4d2d6641746c

 

---OCRVOTING1G---

/dev/sdt:

14f504e46494c455234664f31577a2d4d4c59622d58536a48

/dev/sdv:

14f504e46494c45523473564a4d6f2d445a6a652d5471414e

/dev/sdx:

14f504e46494c45524570393234322d717064522d4656397a

 

 

#添加记录到/etc/scsi_id.config

编辑/etc/scsi_id.config文件,如果该文件不存在,则创建该文件,添加如下行:

[root@rac1 dev]#echo "options=--whitelisted --replace-whitespace"  >> /etc/scsi_id.config

 

创建rules文件:

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

 

添加如下内容:

#for ocrvoting

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c455234664f31577a2d4d4c59622d58536a48",NAME="ocrvoting1", OWNER="grid",GROUP="asmadmin", MODE="0660"

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45523473564a4d6f2d445a6a652d5471414e",NAME="ocrvoting2", OWNER="grid",GROUP="asmadmin", MODE="0660"

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name", RESULT=="14f504e46494c45524570393234322d717064522d4656397a",NAME="ocrvoting3", OWNER="grid",GROUP="asmadmin", MODE="0660"

 

                                     

#for datafile

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45526e5a445a74332d4273346f2d71357243",NAME="data01", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name", RESULT=="14f504e46494c45524f6c386759382d4635314f2d4c336965",NAME="data02", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45524d62483162502d6c4738562d78793269",NAME="data03", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45525862523154342d717754332d38696b4e",NAME="data04", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c4552623872364b662d756d7a4d2d6641746c",NAME="data05", OWNER="grid", GROUP="asmadmin",MODE="0660"

 

#for fra

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45527634436445432d567646522d70667244",NAME="fra01", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45526852356f6c6c2d4241306e2d4f303739",NAME="fra02", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*", BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="14f504e46494c455238767444364e2d7530454f2d574a324d",NAME="fra03", OWNER="grid", GROUP="asmadmin",MODE="0660"

 

 

#for arch

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45523369626957672d734941712d31515456",NAME="arch01", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="14f504e46494c455272427a76586a2d756647582d6d524252",NAME="arch02", OWNER="grid", GROUP="asmadmin",MODE="0660"

 

 

重启UDEV:

# /sbin/start_udev

 

验证:

[root@rac1 dev]# ls -l /dev/arch*

brw-rw---- 1 grid asmadmin 8, 177 Oct 1010:22 /dev/arch01

brw-rw---- 1 grid asmadmin 8, 145 Oct 1010:22 /dev/arch02

[root@rac1 dev]# ls -l /dev/fra*

brw-rw---- 1 grid asmadmin 8, 33 Oct 1010:19 /dev/fra01

brw-rw---- 1 grid asmadmin 8, 65 Oct 1010:19 /dev/fra02

[root@rac1 dev]# ls -l /dev/data*

brw-rw---- 1 grid asmadmin  8, 225 Oct 10 10:19 /dev/data01

brw-rw---- 1 grid asmadmin 65,   1 Oct 10 10:19 /dev/data02

brw-rw---- 1 grid asmadmin 65,  17 Oct 10 10:19 /dev/data03

brw-rw---- 1 grid asmadmin 65,  49 Oct 10 10:19 /dev/data04

brw-rw---- 1 grid asmadmin  8, 113 Oct 10 10:19 /dev/data05

[root@rac1 dev]# ls -l /dev/ocr*

brw-rw---- 1 grid asmadmin 65,  97 Oct 10 10:19 /dev/ocrvoting1

brw-rw---- 1 grid asmadmin 65, 129 Oct 1010:19 /dev/ocrvoting2

brw-rw---- 1 grid asmadmin 65, 145 Oct 1010:19 /dev/ocrvoting3

 

使用X manager 连接到节点1上,设置DISPLAY。

 

注:

这里强调顺序是节点1,因为在节点2上执行,最后生成的服务名看起来会很别扭,当然服务名最后也是可以修改的,具体怎么别扭,好奇的同学可以自己实验一下。

 

 

Export DISPLAT=192.168.1.1:0.0

 

切到grid用户,然后开始安装clusterware:

 

 

 

 

 

 

 

 

 

 

 

注意:在11gr2中

external >= 1

normal >=3

high >=5

 

 

 

 

指定$ORACLE_BASE 和 $GRID_BASE

 

 

 

解决依赖包后重新安装:

 

 

 

在65%的地方很容易卡住,等很长时间。注意检查防火墙状态。

 

 

提示运行root.sh,11.2.0.1 版有个bug,解决方法如下:

Oracle 11g RAC ohasd failed tostart at /u01/app/11.2.0/grid/crs/install/rootcrs.pl line 443 解决方法

http://www.cndba.cn/Dave/article/464

 

遇到一点小插曲:

Oracle RAC 第二节点 root.sh 报错 Timed out waiting for the CRS stack to start

http://blog.csdn.net/tianlesoftware/article/details/8095122

 

 

安装完成后验证:

[grid@rac1 u01]$ crs_stat.sh

Name                           Target     State     Host     

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

ora.LISTENER.lsnr              ONLINE     ONLINE    rac1      

ora.LISTENER_SCAN1.lsnr        ONLINE     ONLINE    rac1     

ora.OCRVOTING.dg               ONLINE     ONLINE    rac1     

ora.asm                        ONLINE     ONLINE    rac1     

ora.eons                       ONLINE     ONLINE    rac1     

ora.gsd                        OFFLINE    OFFLINE             

ora.net1.network               ONLINE     ONLINE    rac1     

ora.oc4j                       OFFLINE    OFFLINE             

ora.ons                        ONLINE     ONLINE    rac1     

ora.rac1.ASM1.asm              ONLINE     ONLINE    rac1     

ora.rac1.LISTENER_RAC1.lsnr    ONLINE    ONLINE     rac1     

ora.rac1.gsd                   OFFLINE    OFFLINE             

ora.rac1.ons                   ONLINE     ONLINE    rac1     

ora.rac1.vip                   ONLINE     ONLINE    rac1     

ora.rac2.ASM2.asm              ONLINE     ONLINE    rac2     

ora.rac2.LISTENER_RAC2.lsnr    ONLINE    ONLINE     rac2     

ora.rac2.gsd                   OFFLINE    OFFLINE             

ora.rac2.ons                   ONLINE     ONLINE    rac2     

ora.rac2.vip                   ONLINE     ONLINE    rac2     

ora.scan1.vip                  ONLINE     ONLINE    rac1     

 

 

因为我们使用CTSS来同步的,验证CTSS:

[grid@rac1 u01]$ crsctl check ctss

CRS-4701: The Cluster Time SynchronizationService is in Active mode.

CRS-4702: Offset (in msec): 0

 

至此,GI 安装结束。

用oracle 用户,连上节点1,进入Oracle 的安装目录,安装Oracle软件,注意这里只安装软件。

 

1.  Install databae software only

2.  Select all RAC nodes

3.  设置SSH

 

4.  选择语言

5.  选择Enterprise Edition

6.  选择Oracle 安装目录

7.  选择用户组

8.  开始安装

9.  执行root

10.执行脚本,执行完安装结束。

 

四.创建ASM 磁盘组

在安装Clusterware 的时候,会创建ASM 实例,但是它只创建了一个CRS 组来安装OCR 和Voting Disk。 在我们继续安装Oracle 数据库之前,我们需要创建一个DATA 和FRA 的ASM 磁盘组来存放这些文件。

  用grid用户运行asmca(ASMConfiguration Assistant)命令就可以弹出创建窗口。

      

  在窗口中创建完DATA 和 FRA 组后,退出窗口即可。

在节点1用Oracle 用户运行dbca,创建实例。

 

1.  选择RAC 集群

 

2.  Create a database

3.  选择类型:事务还是数据仓库

4.  选择Configuration Type:Admin-Managed

5.  设置实例名: dave

6.  选择所有节点

7.  配置Enterprise Manager 和 Automatic MaintenanceTasks

8.  设置用户密码

9.  设置数据文件存放位置: DATA

10.设置FRA 和归档

11.设置内存,字符集等

12.开始安装

 

 

6.1 节点1 配置 

6.1.1修改Listener.ora文件:

LISTENER_NODE1=  

(DESCRIPTION=  

 (ADDRESS_LIST=  

  (ADDRESS= (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)(IP=FIRST))  

  (ADDRESS= (PROTOCOL = TCP)(HOST = rac1-public)(PORT = 1521)(IP=FIRST))

 )  

也可以使用netca工具来配置。

 

6.1.2 启动Listener:

$ lsnrctl startLISTENER_NODE1

 

6.1.3修改Tnsnames.ora文件,添加如下内容:

NODE1_LOCAL=

 (ADDRESS =(PROTOCOL = TCP)(HOST= rac1-vip)(PORT = 1521))     

 

测试:

$ tnsping node1_local

 

6.1.4 设置node1的local_listener参数

sql > alter systemset LOCAL_LISTENER='node1_local' scope=both sid='dave1';

 

 

6.2 节点2 配置

6.2.1修改Listener.ora文件

LISTENER_NODE2=   

(DESCRIPTION=  

 (ADDRESS_LIST =           

(ADDRESS=(PROTOCOL=TCP)(HOST= rac2-public)(PORT=1521)(IP=FIRST))  

(ADDRESS=(PROTOCOL=TCP)(HOST= rac2-vip)(PORT=1521)(IP=FIRST))  

 )  

)

 

6.2.2启动Listener

$ lsnrctl startLISTENER_NODE2

 

6.2.3修改Tnsnames.ora文件

NODE2_LOCAL= 

   (ADDRESS= (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521)) 

 

验证:

$ tnsping node2_local

 

6.2.4设置local_listener 参数

sql > alter systemset LOCAL_LISTENER='node2_local' scope=both sid='dave2' ;

 

 

6.3 在node1和node2的 tnsnames.ora 文件添加如下内容

 

NODE_REMOTE =

(DESCRIPTION=  

 (ADDRESS_LIST=  

  (ADDRESS= (PROTOCOL = TCP)(HOST=vip-node1)(PORT = 1521))  

  (ADDRESS= (PROTOCOL = TCP)(HOST=vip-node2)(PORT = 1521))   

 )  

)

 

测试:

$ tnsping node_remote

 

6.4 在所有节点设置remotelistener

sql> alter systemset REMOTE_LISTENER='node_remote' scope=both;

 

 

6.5 进行TAF测试

 

在客户端设置的tnsnames.ora 设置TAF

RACTAF=

(DESCRIPTION = 

 (ADDRESS_LIST =

  (LOAD_BALANCE= yes) 

   (FAILOVER=ON) 

  (ADDRESS= (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)) 

  (ADDRESS= (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521)) 

 )

 (CONNECT_DATA= 

   (SERVICE_NAME= dave) 

   (failover_mode=(type=select)(method=basic)) 

    ) 

  )

 

local_listener与 remote_listener 参数说明

http://www.cndba.cn/Dave/article/1434

 

 

 

 

 

 

 

 

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

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

QQ:492913789

Email:[email protected]

Blog:  http://www.cndba.cn/dave

Weibo:    http://weibo.com/tianlesoftware

Twitter:  http://twitter.com/tianlesoftware

Facebook:http://www.facebook.com/tianlesoftware

Linkedin:http://cn.linkedin.com/in/tianlesoftware

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tianlesoftware/article/details/8212349

智能推荐

攻防世界_难度8_happy_puzzle_攻防世界困难模式攻略图文-程序员宅基地

文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文

达梦数据库的导出(备份)、导入_达梦数据库导入导出-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作  导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释:   cwy_init/init_123..._达梦数据库导入导出

js引入kindeditor富文本编辑器的使用_kindeditor.js-程序员宅基地

文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js

STM32学习过程记录11——基于STM32G431CBU6硬件SPI+DMA的高效WS2812B控制方法-程序员宅基地

文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6

计算机网络-数据链路层_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输

软件测试工程师移民加拿大_无证移民,未受过软件工程师的教育(第1部分)-程序员宅基地

文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...

随便推点

Thinkpad X250 secure boot failed 启动失败问题解决_安装完系统提示secureboot failure-程序员宅基地

文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure

C++如何做字符串分割(5种方法)_c++ 字符串分割-程序员宅基地

文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割

2013第四届蓝桥杯 C/C++本科A组 真题答案解析_2013年第四届c a组蓝桥杯省赛真题解答-程序员宅基地

文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答

基于供需算法优化的核极限学习机(KELM)分类算法-程序员宅基地

文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。

metasploitable2渗透测试_metasploitable2怎么进入-程序员宅基地

文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入

Python学习之路:从入门到精通的指南_python人工智能开发从入门到精通pdf-程序员宅基地

文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf