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

RAC新增计算节点

Joyce漫谈DB 2021-04-19
748

1. 背景

某项目现场推售硬件扩容,需要增加现网rac的存储节点和计算节点(oracle 11.2.0.4),存储节点那边较为简单,主要是数据rebalance的时间长,且占用io。这里简单介绍下:

(1)存储节点创建pv,vg,lv

(2)ise_create添加加速盘,并设置ise和iSCSI target开机自启,targetcli ls查看磁盘映射状态

(3)各个计算节点识别target,iscsi_discovery,iscsiadm,scan_ise_disk

(4)计算节点查看多路径信息,multipath -ll,确认添加成功

(5)选择任一计算节点,添加failgroup,

alter diskgroup DATA01 add failgroup FG_DATA14 disk dev/mapper/asm-cachedisk411 failgroup FG_DATA14 disk dev/mapper/asm-cachedisk421;

(6)rebalance asm数据

alter diskgroup DATA01 rebalance power 1;

(7)查询同步状态,塞拉利昂2T多的数据,以power 1,rebalance了20小时左右

select * from v$asm_operation;


主要介绍下增加计算节点:

2. 前期准备

主机名

公网ip

私网ip

虚拟ip

scanip

备注

rac1

10.45.53.30

10.0.10.1

10.45.53.34

10.45.53.36

节点1

rac2

10.45.53.31

10.0.10.2

10.45.53.35


节点2

myhost53

10.45.53.53

10.0.10.3

10.45.53.52


新节点

(1)按照集成标准文档初始化节点3,安装rpm包等

(2)增加节点3的私网网卡

保证网卡名与现有两个节点的网卡名相同,配置私网网卡和地址(我用的是虚拟机的网卡,添加网卡后,默认的网卡名是ens256,需要看下配置/etc/udev/rules.d/70-persistent-net.rules,重启下udev,systemctl restart systemd-udev-trigger.service命名网卡为eno1,保证和现网网卡名一致,否则cssd无法启动)

grid@myhost53[/etc/sysconfig/network-scripts]$ cat ifcfg-eno1

BOOTPROTO=static

DEVICE=eno1

ONBOOT=yes

IPADDR=10.0.10.3

PREFIX=24

GATEWAY=10.0.10.254

HWADDR=00:50:56:80:14:e3

(3)节点3识别共享磁盘

iscsi_discovery,iscsiadm,scan_ise_disk等,检查multipath -ll(我用的虚拟机的磁盘,用的是udev,需要配置/etc/udev/rules.d/99-oracle-asmdevices.rules)

(4)修改现有节点的/etc/hosts

增加节点3的public ip,private ip和virtual ip,并配置节点3的/etc/hosts

cat etc/hosts

#pubilc IP --bond0

10.45.53.30 rac1

10.45.53.31 rac2

#private --bond1

10.0.10.1       rac1-priv

10.0.10.2       rac2-priv

#virtual IP --bond0

10.45.53.34  rac1-vip

10.45.53.35  rac2-vip

#scan-ip,oracle rac service --bond0

10.45.53.36  rac-cluster-scan

#node3

10.45.53.53 myhost53

10.0.10.3       myhost53-priv

10.45.53.52  myhost53-vip

(5)节点3创建oinstall和dba组,保证gid与现有节点相同

(6)节点3创建grid和oracle用户(我这里是oraclerac用户),保证uid与现有节点相同

(7)节点3修改grid和oracle密码,保证密码与现有节点相同

(8)节点3配置grid和oracle的.bash_profile

grid:

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

umask 022

export ORACLE_BASE=/u01/app/grid/grid

export ORACLE_HOME=/u01/app/grid/product

export ORACLE_SID=+ASM3

export GRID_HOME=/u01/app/grid/product

export PATH=.:${PATH}:$ORACLE_HOME/bin:$GRID_HOME/bin:$GRID_HOME/OPatch

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

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:

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


oracle:

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.1.0

export ORACLE_SID=test3

export GRID_HOME=/u01/app/grid/product

export PATH=.:${PATH}:$ORACLE_HOME/bin:$GRID_HOME/bin:$GRID_HOME/OPatch:$ORACLE_HOME/OPatch

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

export TNS_ADMIN=$ORACLE_HOME/network/admin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:

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

umask 022

(9)创建grid和oracle软件所在目录

mkdir -p u01/app/grid/

mkdir -p /u01/app/oracle

mkdir -p /u01/app/grid/grid

chown -R grid:oinstall /u01

chmod -R 775 /u01

(10)配置limits.conf

# oraclerac

oraclerac soft nproc 2047

oraclerac hard nproc 16384

oraclerac soft nofile 1024

oraclerac hard nofile 65536

oraclerac soft stack 10240

# grid

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

grid soft stack 10240

(11)将现有节点/u01/app/grid/product/cv/rpm/cvuqdisk-1.0.10-1.rpm传到节点3的/soft下,安装此rpm包

(12)配置新节点和现有节点的grid和oracle用户无密码ssh(不会影响现网)

节点1执行:

su - oraclerac

$ORACLE_HOME/oui/bin/runSSHSetup.sh -user oraclerac -hosts 'rac1  rac2 myhost53' -advanced -exverify

su - grid

$ORACLE_HOME/oui/bin/runSSHSetup.sh -user grid -hosts 'rac1 rac2 myhost53' -advanced -exverify

从新节点ssh测试

(13)验证对等性

节点1:

su - grid

cluvfy comp nodecon -n rac1,rac2,myhost53

(14)手动备份ocr

/u01/app/grid/product/bin/ocrconfig -manualbackup

ocr保存了rac中节点列表、实例和节点的关联、以及rac各种资源(VIP、监听等)信息

3. 添加grid软件

在原有的某一节点执行addnode,11g和12c,18c,19c的方式有所不同

11g:

addNode.sh位于$ORACLE_HOME/oui/bin下,似乎不能图形化加节点,只能静默加,但是一般都不会完全满足安装的先决条件,需要在执行addNode.sh之前,将IGNORE_PREADDNODE_CHECKS设为Y,跳过预检查

export IGNORE_PREADDNODE_CHECKS=Y

./addNode.sh "CLUSTER_NEW_NODES={myhost53}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={myhost53-vip}" "CLUSTER_NEW_PRIVATE_NODE_NAMES={myhost53-priv}" "CLUSTER_NEW_NODE_ROLES={hub}"

最后在新节点执行root.sh,执行此脚本时有可能碰到各种问题,比如上文提到的私网网卡名不一致会导致cssd进程无法启动

/u01/app/oraInventory/orainstRoot.sh

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


12c:

12c的ORACLE_HOME下面新增了addnode目录,可以图形化起addnode.sh,比较直观方便

最后执行

/u01/app/oraInventory/orainstRoot.sh

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

此时新节点已经有ASM3实例在运行

4. 添加oracle软件

同样的方法,在原有的某一节点执行addnode,11g和12c,18c,19c的方式有所不同

由于grid执行后,新节点的/u01/app/grid/oraInventory目录不为空,此时需要删除目录下的文件,否则报错

cd /u01/app/grid/oraInventory

rm -rf *

11g:

addNode.sh位于$ORACLE_HOME/oui/bin下,似乎不能图形化加节点,只能静默加,但是一般都不会完全满足安装的先决条件,需要在执行addNode.sh之前,将IGNORE_PREADDNODE_CHECKS设为Y,跳过预检查

export IGNORE_PREADDNODE_CHECKS=Y

./addNode.sh "CLUSTER_NEW_NODES={myhost53}"

最后在新节点执行root.sh,此脚本比较简单

/u01/app/oracle/product/12.1.0/root.sh


12c:

12c的ORACLE_HOME下面新增了addnode目录,可以图形化起addnode.sh,比较直观方便

最后在新节点执行/u01/app/oracle/product/12.1.0/root.sh,执行完毕后,会有个提示如下

5. dbca添加实例

11g和12c都能用图形化来添加instance,静默方式如下(在现有节点执行):

dbca -silent -addInstance -nodeName myhost53 -gdbName test -instanceName test3 -sysDBAUserName sys -sysDBAPassword Oracle_123

添加instance的过程中,会在新节点的test3实例中添加redo和undo,并起实例,由于我的asm盘满了,dbca过程中显示成功但是日志报如下错误

清理了asm盘后,执行deleteInstance,将实例信息从集群中删除

dbca -silent -deleteInstance -nodeName myhost53 -gdbName test -instanceName test3 -sysDBAUserName sys -sysDBAPassword Oracle_123

再重新执行addInstance


图形化方式如下:

6. 修改service,使得新加实例可以参加负载均衡

当前服务只能识别test1和test2两个实例,需要添加新节点的实例

srvctl modify service -d test -s srv_test -n -i test1,test2,test3

启动test3实例的服务

srvctl start service -d test -s srv_test  -i test3

olsnodes -s

olsnodes -n

7. 测试负载均衡

for i in `seq 1 10`; do sqlplus -s test/test@10.45.53.36:1522/test @2.sql; done

cat 2.sql

show parameter instance_name;

exit;

8. 备注

11gR2 RAC 添加节点不会影响现网的业务,主要分3个阶段:

(1)第一阶段主要工作是复制GIRD HOME到新节点,配置GRID,并且启动GRID,同时更新OCR信息,更新inventory信息。

(2)第二阶段主要工作是复制RDBMS HOME到新节点,更新inventory信息。

(3)第三阶段主要工作是DBCA创建新的数据库实例(包括创建undo 表空间,redo log,初始化参数等),更新OCR信息(包括注册新的数据库实例等)


但似乎asm只能跑在两个节点

oraclerac@rac1[/home/oraclerac]$crsctl stat res -t

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

Name           Target  State        Server                   State details

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

Local Resources

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

ora.ASMNET1LSNR_ASM.lsnr

             ONLINE  ONLINE       myhost53                 STABLE

             ONLINE  ONLINE       rac1                     STABLE

             ONLINE  ONLINE       rac2                     STABLE

ora.DATA.dg

             ONLINE  ONLINE       myhost53                 STABLE

             ONLINE  ONLINE       rac1                     STABLE

             OFFLINE OFFLINE      rac2                     STABLE

ora.LISTENER.lsnr

             ONLINE  ONLINE       myhost53                 STABLE

             ONLINE  ONLINE       rac1                     STABLE

             ONLINE  ONLINE       rac2                     STABLE

ora.chad

             ONLINE  ONLINE       myhost53                 STABLE

             ONLINE  ONLINE       rac1                     STABLE

             ONLINE  ONLINE       rac2                     STABLE

ora.net1.network

             ONLINE  ONLINE       myhost53                 STABLE

             ONLINE  ONLINE       rac1                     STABLE

             ONLINE  ONLINE       rac2                     STABLE

ora.ons

             ONLINE  ONLINE       myhost53                 STABLE

             ONLINE  ONLINE       rac1                     STABLE

             ONLINE  ONLINE       rac2                     STABLE

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

Cluster Resources

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

ora.LISTENER_SCAN1.lsnr

    1        ONLINE  ONLINE       myhost53                 STABLE

ora.LISTENER_SCAN2.lsnr

    1        ONLINE  ONLINE       rac2                     STABLE

ora.MGMTLSNR

    1        ONLINE  ONLINE       rac1                     169.254.115.81 10.0.

                                                           10.1,STABLE

ora.asm

    1        ONLINE  ONLINE       rac1                     Started,STABLE

    2        ONLINE  ONLINE       myhost53                 Started,STABLE

ora.cvu

    1        ONLINE  ONLINE       rac1                     STABLE

ora.mgmtdb

    1        ONLINE  ONLINE       rac1                     Open,STABLE

ora.myhost53.vip

    1        ONLINE  ONLINE       myhost53                 STABLE

ora.onenode.db

    1        ONLINE  ONLINE       rac1                     Open,HOME=/u01/app/o

                                                           racle/product/12.1.0

                                                           ,STABLE

ora.onenode.srv_onenode.svc

    1        ONLINE  ONLINE       rac1                     STABLE

ora.qosmserver

    1        ONLINE  ONLINE       rac1                     STABLE

ora.rac1.vip

    1        ONLINE  ONLINE       rac1                     STABLE

ora.rac2.vip

    1        ONLINE  ONLINE       rac2                     STABLE

ora.scan1.vip

    1        ONLINE  ONLINE       myhost53                 STABLE

ora.scan2.vip

    1        ONLINE  ONLINE       rac2                     STABLE

ora.test.db

    1        ONLINE  ONLINE       rac1                     Open,HOME=/u01/app/o

                                                           racle/product/12.1.0

                                                           ,STABLE

    2        ONLINE  ONLINE       rac2                     Open,HOME=/u01/app/o

                                                           racle/product/12.1.0

                                                           ,STABLE

    3        ONLINE  ONLINE       myhost53                 Open,HOME=/u01/app/o

                                                           racle/product/12.1.0

                                                           ,STABLE

ora.test.srv_test.svc

    1        ONLINE  ONLINE       rac1                     STABLE

    2        ONLINE  ONLINE       rac2                     STABLE

    3        ONLINE  ONLINE       myhost53                 STABLE

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

9. 删除现有节点的方式与添加节点的步骤相反

文章转载自Joyce漫谈DB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论