暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle12c RAC 搭建及配置

Oracle12c RAC 搭建及配置



注意:这篇文章只是为了向大家展示 12c GI/RAC 的安装过程,仅以测试为目的。如果您希望以此文档作为您的生产系统环境安装文档,请参考官方文档进行充分的测试并根据需要进行修改。



本次安装12c需注意几点地方:


  1. 配置集群时有标准集群和Flex cluster选择方式,其中Flex cluster是12c的特性,Flex cluster最主要的特性是集群中的节点被分为了 hub node 和 leaf node。其中 hub node 和之前传统的集群节点没有太大的区别,leaf node相当于传统集群的延伸。
  2. 创建Flex cluster集群网卡接口选择时,会选择 ASM & Private,作用是在节点之间传

递 ASM 的元数据(meta data),由于 ASM 的元数据数据量很小,所以,对于大部分的系统可以选择集群的私网和ASM 使用相同的网络。

3、创建集群时会创建 management 数据库,这又是12c的一个特性,用于存放 CHM(集群监控工具) 产生的统计信息,这个数据库被称为 GI management Repository(a.k.a management DB). 当然,这个小型的数据库可以和 OCR&VOTE存放在相同的位置(磁盘组),建议使用过程中创建这个小的 DB 以便能够很好地管理 chm 的数据。



一、修改系统主机名

[root@ypwnode1 ~]# cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=ypwnode1

[root@ypwnode2 ~]# cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=ypwnode2

  1. 关闭系统防火墙和Selinux

# 防火墙

[root@ypwnode1 ~]# service iptables stop

[root@ypwnode1 ~]# chkconfig iptables off

[root@ypwnode2 ~]# service iptables stop

[root@ypwnode2 ~]# chkconfig iptables off

# Selinux

[root@ypwnode1 ~]#

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

[root@ypwnode2 ~]#

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

[root@ypwnode1 ~]# getenforce

Disabled

[root@ypwnode2 ~]# getenforce

Disabled

三、配置ntp时钟同步(node1和node2均按照此方法配置)

[root@ypwnode1 ~]# mv /etc/ntp.conf /etc/ntp.conf_bak

[root@ypwnode1 ~]# vi /etc/ntp.conf

server 120.25.115.20 # 时钟服务器目标端

server 127.127.1.0    # local clock

fudge 127.127.1.0     stratum 10

[root@ypwnode1 ~]# service ntpd restart

[root@ypwnode1 ~]# chkconfig ntpd on

四、挂载存储(ISCSI+Openfiler)

# node1和node2均按照此方法配置

[root@ypwnode1 ~]# yum -y install *iscsi*

[root@ypwnode1 ~]# chkconfig iscsi on

# 扫描目标磁盘

[root@ypwnode1 ~]#

iscsiadm --mode discovery --type sendtargets --portal 192.168.1.100

# 登录节点

[root@ypwnode1 ~]#

iscsiadm --mode node --targetname yangpingwei –portal 192.168.1.100:3260 --login

# 查看从存储划分过来的硬盘(lun+块设备)

五、配置磁盘路径(multipath+udev)

  1. 磁盘组规划

磁盘组名称

磁盘路径

大小

冗余策略

OCR

/dev/mapper/asm_ocr1

5G

Normal

/dev/mapper/asm_ocr2

5G

Normal

/dev/mapper/asm_ocr3

5G

Normal

MGMT

dev/mapper/asm_data1

30G

external

dev/mapper/asm_data2

10G

external

dev/mapper/asm_data3

10

external

DATA+ARCH

dev/mapper/asm_data4

12G

Flex

dev/mapper/asm_data5

12G

Flex

dev/mapper/asm_data6

12G

Flex

2、安装配置multipath(node1和node2均按照此方法配置)

[root@ypwnode1 ~]# yum -y install *multipath*

[root@ypwnode1 ~]# chkconfig multipathd on

[root@ypwnode1 ~]# service multipathd restart

[root@ypwnode1 ~]# multipath -a /dev/sdb

[root@ypwnode1 ~]# multipath -a /dev/sdc

[root@ypwnode1 ~]# multipath -a /dev/sdd

[root@ypwnode1 ~]# multipath -a /dev/sde

[root@ypwnode1 ~]# multipath -a /dev/sdf

[root@ypwnode1 ~]# multipath -a /dev/sdh

[root@ypwnode1 ~]# multipath -a /dev/sdi

[root@ypwnode1 ~]# multipath -a /dev/sdj

[root@ypwnode1 ~]# cat /etc/multipath.conf

#此部分文件部署时默认不用修改

defaults {

user_friendly_names yes

find_multipaths yes

}

#此部分文件部署时根据实际情修改

blacklist {

devnode "sda"

}

#此部分文件部署时根据实际情修改

multipaths {

multipath {

wwid 14f504e46494c4552456d6b78576f2d484364542d71464c32

alias asm_ocr1

path_grouping_policy multibus

path_selector "round-robin 0"

failback manual

rr_weight priorities

no_path_retry 5

}

multipath {

wwid 14f504e46494c4552514b367871372d73546b352d486e7273

alias asm_ocr2

path_grouping_policy multibus

path_selector "round-robin 0"

failback manual

rr_weight priorities

no_path_retry 5

}

multipath {

wwid 14f504e46494c45527163455038652d564a734c2d4b726771

alias asm_ocr3

path_grouping_policy multibus

path_selector "round-robin 0"

failback manual

rr_weight priorities

no_path_retry 5

}

multipath {

wwid 14f504e46494c45524275394941672d6644314a2d7969636c

alias asm_data1

path_grouping_policy multibus

path_selector "round-robin 0"

failback manual

rr_weight priorities

no_path_retry 5

}

multipath {

wwid 14f504e46494c4552554c7a5564512d523947532d75726e73

alias asm_data2

path_grouping_policy multibus

path_selector "round-robin 0"

failback manual

rr_weight priorities

no_path_retry 5

}

multipath {

wwid 14f504e46494c45527563565531562d74744b4a2d3169344e

alias asm_data3

path_grouping_policy multibus

path_selector "round-robin 0"

failback manual

rr_weight priorities

no_path_retry 5

}

multipath {

wwid 14f504e46494c45526f4e4f3356732d71585a732d73626a69

alias asm_data4

path_grouping_policy multibus

path_selector "round-robin 0"

failback manual

rr_weight priorities

no_path_retry 5

}

multipath {

wwid 14f504e46494c45527464434a52462d473941412d4f7a3378

alias asm_data5

path_grouping_policy multibus

path_selector "round-robin 0"

failback manual

rr_weight priorities

no_path_retry 5

}

multipath {

wwid 14f504e46494c45523439386536682d644d377a2d696e566e

alias asm_data6

path_grouping_policy multibus

path_selector "round-robin 0"

failback manual

rr_weight priorities

no_path_retry 5

}

}

[root@ypwnode1 ~]# multipath -F

[root@ypwnode1 ~]# multipath -v2

[root@ypwnode1 ~]# multipath -v3

[root@ypwnode1 ~]# multipath -ll

3、配置Udev绑定磁盘权限和所有者

[root@ypwnode1 ~]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules

# node1、node2均按此方法配置

ENV{DM_NAME}=="asm_ocr1", OWNER:="grid", GROUP:="asmadmin", MODE:="660"

ENV{DM_NAME}=="asm_ocr2", OWNER:="grid", GROUP:="asmadmin", MODE:="660"

ENV{DM_NAME}=="asm_ocr3", OWNER:="grid", GROUP:="asmadmin", MODE:="660"

ENV{DM_NAME}=="asm_data1", OWNER:="grid", GROUP:="asmadmin", MODE:="660"

ENV{DM_NAME}=="asm_data2", OWNER:="grid", GROUP:="asmadmin", MODE:="660"

ENV{DM_NAME}=="asm_data3", OWNER:="grid", GROUP:="asmadmin", MODE:="660"

ENV{DM_NAME}=="asm_data4", OWNER:="grid", GROUP:="asmadmin", MODE:="660"

ENV{DM_NAME}=="asm_data5", OWNER:="grid", GROUP:="asmadmin", MODE:="660"

ENV{DM_NAME}=="asm_data6", OWNER:="grid", GROUP:="asmadmin", MODE:="660"

重新加载udev配置文件,使文件生效

[root@ypwnode1 ~]# /sbin/udevadm control --reload

[root@ypwnode1 ~]# /sbin/udevadm trigger --type=devices --action=change

[root@ypwnode1 ~]# udevadm trigger

[root@ypwnode1 ~]# ll /dev/dm*

brw-rw---- 1 grid asmadmin 251, 0 10月 22 02:10 /dev/dm-0

brw-rw---- 1 grid asmadmin 251, 1 10月 22 02:10 /dev/dm-1

brw-rw---- 1 grid asmadmin 251, 2 10月 22 02:10 /dev/dm-2

brw-rw---- 1 grid asmadmin 251, 3 10月 22 02:10 /dev/dm-3

brw-rw---- 1 grid asmadmin 251, 4 10月 22 02:10 /dev/dm-4

brw-rw---- 1 grid asmadmin 251, 5 10月 22 02:37 /dev/dm-5

brw-rw---- 1 grid asmadmin 251, 6 10月 22 19:12 /dev/dm-6

brw-rw---- 1 grid asmadmin 251, 7 10月 22 19:12 /dev/dm-7

brw-rw---- 1 grid asmadmin 251, 8 10月 22 19:12 /dev/dm-8

六、配置物理网卡虚拟网卡和心跳网卡

1、网络IP规划

# eth0做心跳网卡,eth1和eth2做bond绑定

主机名

物理IP

虚拟IP

心跳IP

负载均衡IP

ypwnode1

192.168.1.70

192.168.1.72

1.1.1.80

192.168.1.74

ypwnode2

192.168.2.71

192.168.1.73

1.1.1.81

2、物理网卡的配置(eth1和eth2双网卡绑定)

#创建bond

[root@ypwnode1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond1

DEVICE=bond1

NM_CONTROLLED=no

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.1.70

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

USERCTL=no

BONDING_OPTS="miimon=100 mode=1"

#配置eth1网卡

[root@ypwnode1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none

NM_CONTROLLED=no

ONBOOT=yes

TYPE=Ethernet

MASTER=bond1

SLAVE=yes

USERCTL=no

MASTER=bond1

SLAVE=yes

USERCTL=no

#配置eth2网卡

[root@ypwnode1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth2

DEVICE=eth2

BOOTPROTO=none

NM_CONTROLLED=no

ONBOOT=yes

TYPE=Ethernet

MASTER=bond1

SLAVE=yes

USERCTL=no

*********************************************************************# 添加内核模块

[root@ypwnode1 ~]# vi /etc/modprobe.d/dist.conf

alias bond1 bonding

options bond1 mode=1 miimon= 100

# 设置启动时自动绑定

[root@ypwnode1 ~]# vi /etc/rc.local

ifenslave bond1 eth1 eth2

3、心跳网卡的配置(eth0)

[root@ypwnode1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

UUID=bbf0e03e-a678-4d9f-a1ed-601460ec25c6

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

IPADDR=1.1.1.80

PREFIX=24

GATEWAY=1.1.1.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0"

HWADDR=00:0C:29:0A:EE:EB

*********************************************************************

DEVICE=eth0

TYPE=Ethernet

UUID=bf17c3af-b617-47bb-b2da-61877879e2c9

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

IPADDR=1.1.1.81

PREFIX=24

GATEWAY=1.1.1.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0"

HWADDR=00:0C:29:D3:DF:22

  1. 虚拟网卡的配置

[root@ypwnode1 ~]# cd /etc/sysconfig/network-scripts

[root@ypwnode1 network-scripts]# cp -r ifcfg-bond1 ifcfg-bond1:2

[root@ypwnode1 network-scripts]# vi ifcfg-bond1:2

DEVICE=bond1:2 # node2需要修改名称

NM_CONTROLLED=no

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.1.72 # node2需要修改IP

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

USERCTL=no

BONDING_OPTS="miimon=100 mode=1"

七、配置主机解析配置文件(ypwnode1、ypwnode2配置文件相同)

[root@ypwnode1 ~]# vi /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

# ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

#Public IP

192.168.1.70 ypwnode1

192.168.1.71 ypwnode2

#Virtual IP

192.168.1.72 ypwnode1-vip

192.168.1.73 ypwnode2-vip

#Private IP

1.1.1.80 ypwnode1-priv

1.1.1.81 ypwnode2-priv

#Scan IP

192.168.1.74 ypwnode-scan

八、创建用户所属组和安装目录

/usr/sbin/groupadd -g 54321 oinstall

/usr/sbin/groupadd -g 54322 dba

/usr/sbin/groupadd -g 54323 oper

/usr/sbin/groupadd -g 54324 backupdba

/usr/sbin/groupadd -g 54325 dgdba

/usr/sbin/groupadd -g 54326 kmdba

/usr/sbin/groupadd -g 54327 asmdba

/usr/sbin/groupadd -g 54328 asmoper

/usr/sbin/groupadd -g 54329 asmadmin

/usr/sbin/groupadd -g 54330 racdba

/usr/sbin/useradd -u 54321 -g oinstall -G dba,asmdba,oper oracle

/usr/sbin/useradd -u 54322 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba grid

echo "oracle" | passwd --stdin oracle

echo "grid" | passwd --stdin grid

创建目录

mkdir -p /u01/app/12.2.0/grid

mkdir -p /u01/app/grid

mkdir -p /u01/app/oracle/product/12.2.0/dbhome_1

mkdir -p /u01/app/oraInventory

chown -R grid:oinstall /u01

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

chmod -R 775 /u01/

chown -R grid:oinstall /home/soft/grid

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

chmod -R 775 /u01/app/oraInventory

九、配置环境变量

************************************Oracle*************************************

# ypwnode1

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1

export ORACLE_SID=xamjzdb1

export ORACLE_TERM=xterm

export BASE_PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$BASE_PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

PATH=$PATH:$HOME/bin

# ypwnode2

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1

export ORACLE_SID=xamjzdb2

export ORACLE_TERM=xterm

export BASE_PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$BASE_PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

PATH=$PATH:$HOME/bin

************************************Grid*************************************

# ypwnode1

export ORACLE_SID=+ASM1

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/12.2.0/grid

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

# export DISPLAY=10.5.101.39:0.0

export TMOUT=10000000000

umask 022

# ypwnode2

export ORACLE_SID=+ASM2

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/12.2.0/grid

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

# export DISPLAY=10.5.101.39:0.0

export TMOUT=10000000000

umask 022

十、配置内核参数(ypwnode1、ypwnode2全部配置)

#Linux7里面已弃用了sysctl这个参数

[root@ypwnode1 ~]# vi /etc/sysctl.conf

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

fs.file-max = 6815744

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 1073741824

kernel.shmmax = 4398046511104

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

net.ipv4.ip_local_port_range = 9000 65500

kernel.panic_on_oops = 1

十一、设置用户limit限制(ypwnode1、ypwnode2全部配置)

[root@ypwnode1 ~]# vi /etc/security/limits.conf

# oracle

oracle soft nofile 10240

oracle hard nofile 65536

oracle soft nproc 20470

oracle hard nproc 16384

oracle soft stack 10240

oracle hard stack 32768

# grid

grid soft nofile 10240

grid hard nofile 65536

grid soft nproc 20470

grid hard nproc 16384

grid soft stack 10240

grid hard stack 32768

# 如果内存小于8G,下面大内存页配置可忽略

grid hard memlock 3145728

grid soft memlock 3145728

oracle hard memlock 3145728

oracle soft memlock 3145728

十二、修改 /etc/pam.d/login 文件(ypwnode1、ypwnode2全部配置)

[root@ypwnode1 ~]# vi /etc/pam.d/login

#添加文件末尾

session required pam_limits.so

  1. 修改/etc/profile文件(ypwnode1、ypwnode2全部配置)

[root@ypwnode1 ~]# vi /etc/profile

#添加文件末尾

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

[root@ypwnode1 ~]# source /etc/profile

十四、安装依赖包

yum -y install binutils smart compat-libstdc++-33 elfutils-libelf \

elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common \

glibc-devel xorg-x11-utils kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel \

make numactl-devel sysstat unixODBC unixODBC-devel pdksh compat-libcap1

十、配置sshd互信认证

# root用户在node1执行

#grid

/u01/app/12.2.0/grid/oui/prov/resources/scripts/sshUserSetup.sh -user grid -hosts "ypwnode1 ypwnode2 ypwnode1-priv ypwnode2-priv" -advanced -noPromptPassphrase -exverify -confirm

#Oracle

/u01/app/12.2.0/grid/oui/prov/resources/scripts/sshUserSetup.sh -user oracle -hosts "ypwnode1 ypwnode2 ypwnode1-priv ypwnode2-priv" -advanced -noPromptPassphrase -exverify -confirm

十六、安装grid网格

  1. 解压Grid安装包到节点一grid用户下ORACLE_HOME目录

[root@ypwnode1 ~]# su - grid

[grid@ypwnode1 ~]$ cd /home/soft

[grid@ypwnode1 ~]$

unzip linuxx64_12201_grid_home.zip -d /u01/app/12.2.0/grid/

2、安装前预检查

/u01/app/12.2.0/grid/runcluvfy.sh stage -pre crsinst -n ypwnode1,ypwnode2 -fixup -verbose

3、开始安装gird

# 使用grid用户登录安装

[grid@ypwnode1 ~]$ cd $ORACLE_HOME/

[grid@ypwnode1 grid]$ export LANG=en_US.UTF-8

[grid@ypwnode1 grid]$ ./gridSetup.sh

点击Next出现【INS-40912】错误,分别在两个节点执行以下命令

[root@ypwnode1 ~]# ifdown bond1:2

[root@ypwnode2 ~]# ifdown bond1:2

# 勾选以root用户身份自动执行脚本

# 勾选忽略所有

# 安装完成

# 查看集群状态

十七、创建ASM磁盘组

1、[grid@ypwnode1 ~]$ export LANG=en_US.UTF-8

2、[grid@ypwnode1 ~]$ asmca

#查看ASM磁盘组

十八、安装database

[oracle@ypwnode1 ~]$ cd /opt/database/

[oracle@ypwnode1 database]$ export LANG=en_US.UTF-8

[oracle@ypwnode1 database]$ ./runInstaller

# 以root用户分别在两个节点执行以下脚本,最后点击OK

十九、创建数据库

[oracle@ypwnode1 ~]$ export LANG=en_US.UTF-8

[oracle@ypwnode1 ~]$ dbca



# 修改数据库实例名,本次不勾选创建容器数据库

# 勾选忽略所有点击下一步

安装进度

#解锁其他用户设置SYS,SYSTEM用户密码

二十、查看实例状态

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论