ITPub博客

首页 > 数据库 > Oracle > 11.2.0.4 RAC生产环境删除故障节点与增加新服务节点

11.2.0.4 RAC生产环境删除故障节点与增加新服务节点

原创 Oracle 作者:lovehewenyu 时间:2021-01-03 18:56:06 0 删除 编辑

11.2.0.4 RAC生产环境删除节点与增加节点

场景:反欺诈业务系统为DB为双活RAC,其中一个服务器硬件损坏且无法修复。导致业务系统发生故障转移,单节点RAC虽仍可以保证业务的系统正常运行。但是单节点风险依然存在,经团队讨论抽调一台服务器加入RAC中替换故障节点,进而恢复双活的RAC结构。

具体解决方案评估与计划思路如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.解决方案
1.1 尽快恢复双活的RAC
1.2 删除故障节点残留RAC节点信息,加入新服务器成为替代故障节点的服务器
1.3 应用测试
2.风险评估
1.1 单节点运行风险与运行时间评估
1.2 删除故障节点2是否影响整个RAC风险评估
1.3 加入新节点是否影响整个RAC风险评估
1.4 应用测试与使用风险评估
3.测试
3.1 删除残留配置信息
3.2 加入新节点对RAC影响
4.执行
备注:工作计划内容:存储,服务器,网络,GI,DB,其他软件,应用测试等等工作

RAC添加删除节点

1、配置文件检查(新增节点配置与现运行节点配置一致)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/etc/hosts
/etc/fstab
/etc/group
/etc/security/limits .conf
/etc/security/limits .d /90-nproc .conf
/etc/selinux/config 
/etc/pam .d /login
/etc/sysctl .conf
/etc/profile
/etc/mulitipath .conf
/etc/udev/rules .d/*
/etc/default/grub
/home/grid/ .bash_profile
/home/oracle/ .bash_profile
$ORACLE_HOME /network/admin/ *(grid 用户)
$ORACLE_HOME /network/admin/ *(oracle用户)
/etc/sysconfig/network-scripts/ *

2、环境检查

1
2
3
4
5
$ORACLE_HOME /OPatch/opatch  lspatches
df  -h
crsctl stat res -t(grid用户执行)
ps  -ef | grep  lsnr
crontab  -l(所有用户)

3、删除节点2(node2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
3.1 备份ocr(保留节点执行)
#查看OCR备份
[root@node2 bin] # ./ocrconfig -showbackup
#手动备份OCR
[root@node2 bin] # ./ocrconfig -manualbackup
#如需查看OCR内容,可转储OCR备份文件
[root@node2 bin] # ./ocrdump -backupfile OCR_backup_file_name
#默认文件名OCRDUMPFILE
 
3.2 删除实例
3.2.1 检查数据库参数设置
[grid@node2 ~]$ srvctl config database -d racdb
3.2.2 关闭删除节点实例
#检查实例对应的thread
SQL>  select  instance_name ,THREAD # from gv$instance;
INSTANCE_NAME       THREAD #
---------------- ----------
racdb1                     1
racdb2                     2 <=故障节点
[grid@node2 ~]$ srvctl stop instance -d racdb -i racdb2
3.2.3 保留节点执行disable thread 命令
SQL> alter database disable thread 2;
Database altered.
3.2.4 保留节点oracle用户执行dbca静默方式删除实例
[oracle@node1 ~]$ dbca -silent -deleteInstance -nodeList node2 -gdbName racdb -instanceName racdb2 -sysDBAUserName sys -sysDBAPassword oracle
3.2.5 检查删除后的资源状态并确认删除成功
[grid@node2 ~]$  crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
...                                                                   
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
...                                   
ora.racdb.db
       1        ONLINE  ONLINE       node1                    Open                <=node2故障节点实例已删除
...
#也可以使用srvctl命令来查看当前RAC的实例情况             •
[grid@node2 ~]$ srvctl config database -d racdb
...
Database instances: racdb1 <=node2故障节点实例已删除
...
3.3 删除oracle软件
3.3.1 停止删除节点监听(保留节点执行)
[grid@node1 ~]$ srvctl status listener
[grid@node1 ~]$ srvctl stop listener -l listener -n node2
[grid@node1 ~]$ srvctl disable listener -l listener -n node2
[grid@node1 ~]$ srvctl status listener
[grid@node1 ~]$ srvctl stop vip -n node2 
3.3.2 更新节点清单(保留节点,oracle用户执行)[oracle@node1 ~]$ $ORACLE_HOME /oui/bin/runInstaller  -updateNodeList ORACLE_HOME=$ORACLE_HOME  "CLUSTER_NODES={node1}"
3.4 从clusters删除节点
3.4.1 查看运行状态(保留节点,root执行)
[root@node1 ~] # cd /u01/app/grid/11.2.0/bin/
[root@node1 bin] # ./olsnodes -s -t
node1 Active Unpinned
node2 Active Unpinned
注:如果状态为Inactive为异常,官网建议执行. /crsctl  unpin css
3.4.2 停止删除节点集群(删除节点,root执行)
[root@node2 bin] # cd /u01/app/grid/11.2.0/bin/
[root@node2 bin] # ./crsctl stop crs
#故障节点2的CRS已经down无需STOP
3.4.3 检查集群资源
[root@node1 bin] # ./crsctl stat res -t   
注:只剩一个节点
3.4.4 删除节点(保留节点,root执行)
[root@node1 bin] # cd /u01/app/grid/11.2.0/bin/
[root@node1 bin] # ./crsctl delete node -n node2
CRS-4661: Node node2 successfully deleted.
3.4.5 更新节点信息(保留节点,grid执行)
[grid@node1 ~]$ $ORACLE_HOME /oui/bin/runInstaller  -updateNodeList ORACLE_HOME=$ORACLE_HOME  "CLUSTER_NODES={node1}"  CRS=TRUE -silent
注:CLUSTER_NODES={node1}要包含所有保留节点的主机名,逗号隔开
3.4.6 检查集群资源信息(保留节点)
[grid@node1 ~]$  cd  /u01/oraInventory/
[grid@node1 oraInventory]$  more  ContentsXML /inventory .xml 
<!--?xml version= "1.0"  standalone= "yes"  ?-->
<!-- Copyright (c) 1999, 2013, Oracle and /or  its affiliates.
All rights reserved. -->
<!-- Do not modify the contents of this  file  by hand. -->
<inventory>
<version_info>
    <saved_with>11.2.0.4.0< /saved_with >
    <minimum_ver>2.1.0.6.0< /minimum_ver >
< /version_info >
<home_list>
<home name= "ora11g_gridinfrahome1"  loc= " u01=" " app=" " grid=" " 11.2.0"  type = "O"   idx= "1"   crs= "true" >
    <node_list>
       <node name= "node1" >   <=节点信息
    < /node  name= "node1" >< /node_list >
 
<home name= "oradb11g_home1"  loc= " u01=" " oracle=" " product=" " 11.2.0=" " db_1"  type = "O"   idx= "2" >
    <node_list>
       <node name= "node1" >
    < /node  name= "node1" >< /node_list >
 
< /home  name= "oradb11g_home1"  loc= "></home name=" ora11g_gridinfrahome1 " loc=" >< /home_list >
<compositehome_list>
< /compositehome_list >
< /inventory
3.4.7 集群节点删除完毕
至此集群2节点删除完毕。

4、新增服务器按节点1安装系统与各种配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
4.1 系统管理员重装系统
相同系统版本与补丁,安全基线等;更改主机名,配置网卡、多路径存储等
4.2 按第一章中备份的内容恢复相关配置文件
1、 /etc/hosts
2、 /etc/fstab
3、 /etc/security/limits .conf
4、 /etc/security/limits .d /90-nproc .conf
5、 /etc/selinux/config
6、 /etc/pam .d /login
7、 /etc/sysctl .conf
8、 /etc/default/grub
9、 /etc/profile
10、创建grid和oracle用户(具体根据实际情况修改)
/usr/sbin/groupadd   -g  1000 oinstall
/usr/sbin/groupadd   -g  1300 dba
/usr/sbin/groupadd   -g  1301 oper
/usr/sbin/groupadd   -g  1201  asmdba
/usr/sbin/groupadd   -g  1200  asmadmin
/usr/sbin/groupadd   -g  1202  asmoper
/usr/sbin/useradd   -u  1100  -g  oinstall  -G  asmadmin,asmdba,asmoper  grid
/usr/sbin/useradd   -u  1101  -g  oinstall  -G  dba,asmdba,oper  oracle
passwd  oracle
passwd  grid
11、 /home/grid/ .bash_profile
12、 /home/oracle/ .bash_profile
13、配置udev文件 /etc/udev/rules .d/*
14、配置本地yum源,安装lib包
15、根据1节点创建目录并授权(具体根据实际情况)
mkdir   -p   /u01/grid
mkdir   -p   /u01/app/grid/11 .2.0
chown   -R  grid:oinstall   /u01
mkdir   -p   /u01/oraInventory
chown   -R  grid:oinstall   /u01/oraInventory
mkdir   -p   /u01/oracle
chown   -R  oracle:oinstall   /u01/oracle
chmod   -R  775  /u01
重启服务器。

5、集群软件增加节点(保留节点,grid执行)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
5.1 grid用户建立互信
新增节点执行:
[grid@node2 ~]$  mkdir   ~/. ssh
[grid@node2 ~]$  ssh -keygen  -t rsa
[grid@node2 ~]$  ssh -keygen  -t dsa
保留节点执行:
[grid@node1 ~]$  cp  -r ~/. ssh  ~/.ssh_bak
[grid@node1 ~]$  ssh   node2   cat   ~/. ssh /id_rsa .pub  >>   ~/. ssh /authorized_keys 
[grid@node1 ~]$  ssh   node2   cat   ~/. ssh /id_dsa .pub  >>   ~/. ssh /authorized_keys
[grid@node1 ~]$  scp   ~/. ssh /authorized_keys   node2:~/. ssh /authorized_keys
注:由于保留节点中有源剔除节点的信息,会报错,将 /home/grid/ . ssh /known_hosts 中删除节点主机的相关的删除
所有节点验证:
[grid@node2 ~]$  ssh  node1  date ; ssh  node2  date ; ssh  node1-priv  date ; ssh  node2-priv  date ;
增加集群软件前验证
  检测集群和新加节点(node1,grid用户)
#检测node2的连通性及共享存储访问
$ cluvfy stage -post hwos -n node2 -verbose
#比较节点1和节点2属性
$ cluvfy comp peer -refnode node1 -n node2 -verbose
#检测集群和新加节点完整性
$ cluvfy stage -pre nodeadd -n node2  -fixup -verbose
5.2 增加集群软件
[grid@node1 ~]$  export  IGNORE_PREADDNODE_CHECKS=Y
[grid@node1 ~]$ $ORACLE_HOME /oui/bin/addNode .sh  "CLUSTER_NEW_NODES={node2}"  "CLUSTER_NEW_VIRTUAL_HOSTNAMES={node2-vip}"  "CLUSTER_NEW_PRIVATE_NODE_NAMES={node2-priv}"
#PRKC-1025 error;解决办法Increase JRE_MEMORY_OPTIONS=" -mx1024m"
[root@node2 ~] # /u01/oraInventory/orainstRoot.sh
[root@node2 ~] # /u01/app/grid/11.2.0/root.sh
注:redhat 7上有个bug,需做如下处理
[root@node2 ~] # touch /usr/lib/systemd/system/ohas.service
[root@node2 ~] # vi /usr/lib/systemd/system/ohas.service
[root@node2 ~] # systemctl daemon-reload
[root@node2 ~] # systemctl enable ohas.service
Created  symlink  from  /etc/systemd/system/multi-user .target.wants /ohas .service to  /usr/lib/systemd/system/ohas .service.
[root@node2 ~] # systemctl start ohas.service

6、增加数据库节点(保留节点,oracle用户执行)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
6.1 oracle用户建立互信
新增节点执行:
[oracle@node2 ~]$  mkdir   ~/. ssh
[oracle @node2 ~]$  ssh -keygen  -t rsa
[oracle @node2 ~]$  ssh -keygen  -t dsa
保留节点执行:
[oracle @node1 ~]$  cp  -r ~/. ssh  ~/.ssh_bak
[oracle @node1 ~]$  ssh   node2   cat   ~/. ssh /id_rsa .pub  >>   ~/. ssh /authorized_keys 
[oracle @node1 ~]$  ssh   node2   cat   ~/. ssh /id_dsa .pub  >>   ~/. ssh /authorized_keys
[oracle @node1 ~]$  scp   ~/. ssh /authorized_keys   node2:~/. ssh /authorized_keys
注:由于保留节点中有源剔除节点的信息,会报错,将 /home/oracle/ . ssh /known_hosts 中删除节点主机的相关的删除
所有节点验证:
[oracle @node2 ~]$  ssh  node1  date ; ssh  node2  date ; ssh  node1-priv  date ; ssh  node2-priv  date ;
6.2 增加数据库节点
[oracle@node1 ~]$ $ORACLE_HOME /oui/bin/addNode .sh -silent  "CLUSTER_NEW_NODES={node2}"
[root@node2 ~] # /u01/oracle/product/11.2.0/db_1/root.sh

7、数据库增加实例(保留节点,oracle用户执行)

[oracle@node1 ~]$ dbca -silent -addInstance -nodeList node2 -gdbName racdb -instanceName racdb2 -sysDBAUserName sys -sysDBAPassword oracle

8、检查集群状态

[grid@node1 ~]$ crsctl stat res -t


附表:

addNode.sh执行过程中,会使用java迁移grid下的软件,其中JRE_MEMORY_OPTIONS默认值一般过小,迁移过程中可适当增大。

报错: java.lang.OutOfMemoryError: Java heap space 

参考:Addnode.sh or Fresh Install Fails With PRKC-1025 and Java.Lang.OutOfMemoryError (Doc ID 1085893.1)


########################################################################################

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

QQ:14040928 E-mail:dbadoudou@163.com

本文链接: http://blog.itpub.net/26442936/viewspace-2747126/

########################################################################################

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26442936/viewspace-2747126/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
10年老鸟,Oracle,Mysql,EMC 存储,NBU备份。微信/电话 18211103995

注册时间:2012-02-03

  • 博文量
    275
  • 访问量
    1356790