一、需求说明:
1写2读集群。随着业务增加,导致集群整体运行缓慢的问题。现将1写2读集群升级为1写3读集群。
数据库版本:disql V7.6.0.197
二、集群环境信息
当前的集群节点的配置信息
系统名称 软件位置 实例路径 磁盘速度 网络速度
监视器(192.168.14.71) /opt/dmdbms/bin /home/dmdata 28.2 MB/秒 128.0MB/s
主节点(192.168.14.69) /opt/dmdbms/bin /home/dmdata 79.5 MB/秒 106.7MB/s
备节点(192.168.14.70) /opt/dmdbms/bin /home/dmdata 42.6 MB/秒 106.7MB/s
备节点(192.168.14.72) /opt/dmdbms/bin /home/dmdata 42.6 MB/秒 106.7MB/s
新节点的配置信息#
备节点(192.168.14.74) /opt/dmdbms/bin /home/dmdata 129 MB/秒 129.0MB/s
三、升级操作步骤
在新机器上安装同版本数据库
将同版本数据库安装软件放在/home/dmdba/dmsoft目录下,测试key
安装数据库
74:
su – dmdba
cd /home/dmdba/dmsoft
./ DMInstall.bin -i
安装路径:/opt/dmdbms/
1. 停止业务系统,停止网闸
2. 检查数据库中是否还有会话
主库69登录
select * from v
s
e
s
s
i
o
n
s
w
h
e
r
e
s
t
a
t
e
=
′
A
C
T
V
I
E
′
;
s
e
l
e
c
t
∗
f
r
o
m
v
sessions where state='ACTVIE'; select * from v
sessionswherestate=′ACTVIE′;select∗fromvsessions;
3. 在线做备份
su - dmdba
cd /opt/dmdbms/bin
./disql SYSDBA/'""’
BACKUP DATABASE FULL TO ZWWWBAK BAKFILE ’ /home/dmdata/bak/bak****/DB_BAK_*.bak ’
4. 停止集群(确认出现shutdown successfully)
71:
su - dmdba
/etc/init.d
./DmMonitorDMMONITORCW stop
72:
/etc/init.d
./DmWatcherServiceDM72 stop
70:
/etc/init.d
./ DmWatcherServiceDM70 stop
69:
/etc/init.d
./DmWatcherServiceDM69 stop
69:
./DmServiceDM69 stop
70:
./DmServiceDM70 stop
72:
./DmServiceDM72 stop
5. 将拷贝的实例scp到74节点上的同一路径下
##登录到69节点
scp -r /home/dmdata/DAMENG dmdba@192.168.14.74:/home/dmdata/
6. 新节点74上修改配置文件dm.ini
cd /home/dmdata/DAMENG/dm.ini
vim dm.ini
INSTANCE_NAME =DM74
7. 所有节点修改配置文件dmmal.ini
cd /home/dmdata/DAMENG/
cp dmmal.ini dmmal.inibak
####所有节点做修改前cp备份dmmal.ini文件
MAL_CHECK_INTERVAL = 60
MAL_CONN_FAIL_INTERVAL = 60
[MAL_INST1]
MAL_INST_NAME = DM72
MAL_HOST = 192.168.14.72
MAL_PORT = 61141
MAL_INST_HOST = 192.168.14.72
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST2]
MAL_INST_NAME = DM70
MAL_HOST = 192.168.14.70
MAL_PORT = 61141
MAL_INST_HOST = 192.168.14.70
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST3]
MAL_INST_NAME = DM69
MAL_HOST = 192.168.14.69
MAL_PORT = 61141
MAL_INST_HOST = 192.168.14.69
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST4]
MAL_INST_NAME = DM74
MAL_HOST = 192.168.14.74
MAL_PORT = 61141
MAL_INST_HOST = 192.168.14.74
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
8. 新节点修改配置文件dmarch.ini
cd /home/dmdata/DAMENG/
cp dmarch.ini dmarch.inibk
vim /home/dmdata/DAMENG/dmarch.ini
ARCH_WAIT_APPLY=0
[ARCHIVE_TIMELY3]
ARCH_TYPE=TIMELY
ARCH_DEST=DM69
[ARCHIVE_TIMELY1]
ARCH_TYPE=TIMELY
ARCH_DEST=DM70
[ARCHIVE_TIMELY2]
ARCH_TYPE=TIMELY
ARCH_DEST=DM72
[ARCHIVE_LOCAL1]
ARCH_TYPE=LOCAL
ARCH_DEST=/home/dmdata/DAMENG/arch
ARCH_FILE_SIZE=512
ARCH_SPACE_LIMIT=102400
9. 配置svr_log
已在74上建立相同路径,不需要配置
10. 原集群所有节点添加arch配置
cd /home/dmdata/DAMENG/dmarch.ini
cp dmarch.ini dmarch.inibak
###做修改之前cp备份dmarch.ini
[ARCHIVE_REALTIEM4]
ARCH_TYPE = TIMELY
ARCH_DEST = DM74
11. 69节点生成dmwatcher.ctl文件,将其scp到其他三个节点上
###首先要对每个节点dmwatcher.ctl做备份
su - dmdba
cp /home/dmdata/DAMENG/dmwatcher.ctl /home/dmdata/DAMENG/dmwatcher.ctlbak
69:
su - dmdba
cd /opt/dmdbms/bin
./dmctlcvt TYPE=3 SRC=/home/dmdata/DAMENG/dmwatcher.ini DEST=/home/dmdata/DAMENG
scp /home/dmdata/DAMENG/dmwatcher.ctl dmdba@192.168.14.70:/home/dmdata/DAMENG/
scp /home/dmdata/DAMENG/dmwatcher.ctl dmdba@192.168.14.72:/home/dmdata/DAMENG/
scp /home/dmdata/DAMENG /dmwatcher.ctl dmdba@192.168.14.74:/home/dmdata/DAMENG/
12. 前台mount启动所有数据库
su - dmdba
cd /opt/dmdbms/bin
./dmserver /data/DAMENG/dm.ini mount
13. 配置新节点oguid及备库模式
设置OGUID:
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
sp_set_oguid(453331);
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
修改备库模式:
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
alter database standby;
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
14. 所有节点启动守护
su - dmdba
cd /opt/dmdbms/bin
./dmwatcher /data/DAMENG/dmwatcher.ini
15. 在74上配置非确认监视器dmmonitor_normal.ini
MON_DW_CONFIRM=0
MON_LOG_PATH=/home/dmdata/DAMENG/log
MON_LOG_INTERVAL=60
MON_LOG_FILE_SIZE=32
MON_LOG_SPACE_LIMIT=0
[GRP1]
MON_INST_OGUID=453332
MON_DW_IP=192.168.14.69:52141
MON_DW_IP=192.168.14.70:52141
MON_DW_IP=192.168.14.72:52141
MON_DW_IP=192.168.14.74:52141
16. 修改71非确认监视器和确认监视器
71:
cd /opt/dmdbms/bin
vim dmmonitor_normal.ini
MON_DW_CONFIRM=0
MON_LOG_PATH=/home/dmdata/DAMENG/log
MON_LOG_INTERVAL=60
MON_LOG_FILE_SIZE=32
MON_LOG_SPACE_LIMIT=0
[GRP1]
MON_INST_OGUID=453332
MON_DW_IP=192.168.14.69:52141
MON_DW_IP=192.168.14.70:52141
MON_DW_IP=192.168.14.72:52141
MON_DW_IP=192.168.14.74:52141
vim dmmonitor_auto.ini
MON_DW_CONFIRM=1
MON_LOG_PATH=/home/dmdata/DAMENG/log
MON_LOG_INTERVAL=60
MON_LOG_FILE_SIZE=32
MON_LOG_SPACE_LIMIT=0
[GRP1]
MON_INST_OGUID=453332
MON_DW_IP=192.168.14.69:52141
MON_DW_IP=192.168.14.70:52141
MON_DW_IP=192.168.14.72:52141
MON_DW_IP=192.168.14.74:52141
17. 启动监视器,看集群是否正常
71:
cd /opt/dmdbms/bin
./dmmonitor.ini /home/dmdata/dmmonitor_normal.ini
show
tip
18. 正常后退出集群,退出数据守护,退出前台mount启动的数据库
##先退出监视器
71:
Exit
##再退出守护进程
74:exit
72:exit
70:exit
69:exit
##再退出前台mount启动的数据库
69:exit
70:exit
72:exit
74:exit
19. 注册服务
登录root用户
cd /opt/dmdbms/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdata/DAMENG/dm.ini -p DM74 -m mount
./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdataDAMENG/dmwatcher.ini -p DM74
20. 修改dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
192.168.14.75=(192.168.14.70:5236,192.168.14.72:5236,192.168.14.69:5236,192.168.14.74:5236)
LOGIN_MODE=(1)
21. 启动集群
69:
cd /etc/init.d
./DmServiceDM69 start
70:
cd /etc/init.d
./DmServiceDM70 start
72:
cd /etc/init.d
./DmServiceDM72 start
74:
cd /etc/init.d
./DmServiceDM74 start
69:
cd /etc/init.d
./DmWatcherServiceDM69 start
70:
cd /etc/init.d
./DmWatcherServiceDM70 start
72:
cd /etc/init.d
./DmWatcherServiceDM72 start
74:
cd /etc/init.d
./DmWatcherServiceDM74 start
71:
cd /etc/init.d
./DmMonitorDMMONITORCW start
22. 高可用测试,测试主备切换
71:
cd /opt/dmdbams/bin
./dmmonitor /home/dmdata/dmmonitor_normal.ini
login
用户名:SYSDBA
密码:******
switchover DM74
show
switchover DM69
23. 交付应用,核查数据
https://eco.dameng.com