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

磐维数据库2.0系列:om及ptk安装

原创 #5z# 2024-01-05
2481

磐维数据库,简称"PanWeiDB"。是中国移动信息技术中心首个基于中国本土开源数据库打造的面向ICT基础设施的自研数据库产品。其产品内核能力基于华为openGauss开源软件,并进一步提升了系统稳定性。

磐维数据库2.0也同时支持python脚本的om组件安装方式以及go语言的ptk组件安装方式,本文将介绍这两种安装方式。

一、om方式安装

1.上传安装包

# mkdir -p /database/panweidb/soft

将安装包存上传至/database/panweidb/soft 目录下

2.主节点解压安装包

例如BC Linux for euler 21.10,执行以下操作:

# tar -xf 'PanWeiDB-2.0.0_Build0(03b85d1)-bclinux_euler21.10-x86_64-no_mot.tar' # tar -xf 'PanWeiDB-2.0.0_Build0(03b85d1)-bclinux-64bit-om.tar.gz'

需要解压两次

3.准备xml文件

单节点的配置文件参考如下:

# vi /database/panweidb/soft/panweidb1m.xml <?xml version="1.0" encoding="utf-8"?> <ROOT> <CLUSTER> <PARAM name="clusterName" value="panweidb" /> <PARAM name="nodeNames" value="hostname1"/> <PARAM name="gaussdbAppPath" value="/database/panweidb/app" /> <PARAM name="gaussdbLogPath" value="/database/panweidb/log" /> <PARAM name="tmpMppdbPath" value="/database/panweidb/tmp"/> <PARAM name="gaussdbToolPath" value="/database/panweidb/tool" /> <PARAM name="corePath" value="/database/panweidb/corefile"/> <PARAM name="backIp1s" value="10.x.x.1"/> </CLUSTER> <DEVICELIST> <DEVICE sn="hostname1"> <PARAM name="name" value="hostname1"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="10.x.x.1"/> <PARAM name="sshIp1" value="10.x.x.1"/> <PARAM name="dataNum" value="1"/> <PARAM name="dataPortBase" value="17700"/> <PARAM name="dataNode1" value="/database/panweidb/data"/> </DEVICE> </DEVICELIST> </ROOT>

一主一备两节点的配置文件参考如下:

# vi /database/panweidb/soft/panweidb1m1s.xml <?xml version="1.0" encoding="utf-8"?> <ROOT> <CLUSTER> <PARAM name="clusterName" value="panweidb" /> <PARAM name="nodeNames" value="hostname1,hostname2,hostname3"/> <PARAM name="gaussdbAppPath" value="/database/panweidb/app" /> <PARAM name="gaussdbLogPath" value="/database/panweidb/log" /> <PARAM name="tmpMppdbPath" value="/database/panweidb/tmp"/> <PARAM name="gaussdbToolPath" value="/database/panweidb/tool" /> <PARAM name="corePath" value="/database/panweidb/corefile"/> <PARAM name="backIp1s" value="10.x.x.1,10.x.x.2"/> </CLUSTER> <DEVICELIST> <DEVICE sn="hostname1"> <PARAM name="name" value="hostname1"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="10.x.x.1"/> <PARAM name="sshIp1" value="10.x.x.1"/> <PARAM name="cmsNum" value="1"/> <PARAM name="cmServerPortBase" value="18800"/> <PARAM name="cmServerListenIp1" value="10.x.x.1,10.x.x.2"/> <PARAM name="cmServerHaIp1" value="10.x.x.1,10.x.x.2"/> <PARAM name="cmServerlevel" value="1"/> <PARAM name="cmServerRelation" value="hostname1,hostname2"/> <PARAM name="cmDir" value="/database/panweidb/cm"/> <PARAM name="dataNum" value="1"/> <PARAM name="dataPortBase" value="17700"/> <PARAM name="dataNode1" value="/database/panweidb/data,hostname2,/database/panweidb/data"/> <PARAM name="dataNode1_syncNum" value="1"/> </DEVICE> <DEVICE sn="hostname2"> <PARAM name="name" value="hostname2"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="10.x.x.2"/> <PARAM name="sshIp1" value="10.x.x.2"/> <PARAM name="cmServerPortStandby" value="18800"/> <PARAM name="cmDir" value="/database/panweidb/cm"/> </DEVICE> </DEVICELIST> </ROOT>

一主两备三节点的配置文件参考如下:

# vi /database/panweidb/soft/panweidb1m2s.xml <?xml version="1.0" encoding="utf-8"?> <ROOT> <CLUSTER> <PARAM name="clusterName" value="panweidb" /> <PARAM name="nodeNames" value="hostname1,hostname2,hostname3"/> <PARAM name="gaussdbAppPath" value="/database/panweidb/app" /> <PARAM name="gaussdbLogPath" value="/database/panweidb/log" /> <PARAM name="tmpMppdbPath" value="/database/panweidb/tmp"/> <PARAM name="gaussdbToolPath" value="/database/panweidb/tool" /> <PARAM name="corePath" value="/database/panweidb/corefile"/> <PARAM name="backIp1s" value="10.x.x.1,10.x.x.2,10.x.x.3"/> </CLUSTER> <DEVICELIST> <DEVICE sn="hostname1"> <PARAM name="name" value="hostname1"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="10.x.x.1"/> <PARAM name="sshIp1" value="10.x.x.1"/> <PARAM name="cmsNum" value="1"/> <PARAM name="cmServerPortBase" value="18800"/> <PARAM name="cmServerListenIp1" value="10.x.x.1,10.x.x.2,10.x.x.3"/> <PARAM name="cmServerHaIp1" value="10.x.x.1,10.x.x.2,10.x.x.3"/> <PARAM name="cmServerlevel" value="1"/> <PARAM name="cmServerRelation" value="hostname1,hostname2,hostname3"/> <PARAM name="cmDir" value="/database/panweidb/cm"/> <PARAM name="dataNum" value="1"/> <PARAM name="dataPortBase" value="17700"/> <PARAM name="dataNode1" value="/database/panweidb/data,hostname2,/database/panweidb/data,hostname3,/database/panweidb/data"/> <PARAM name="dataNode1_syncNum" value="1"/> </DEVICE> <DEVICE sn="hostname2"> <PARAM name="name" value="hostname2"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="10.x.x.2"/> <PARAM name="sshIp1" value="10.x.x.2"/> <PARAM name="cmServerPortStandby" value="18800"/> <PARAM name="cmDir" value="/database/panweidb/cm"/> </DEVICE> <DEVICE sn="hostname3"> <PARAM name="name" value="hostname3"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="10.x.x.3"/> <PARAM name="sshIp1" value="10.x.x.3"/> <PARAM name="cmServerPortStandby" value="18800"/> <PARAM name="cmDir" value="/database/panweidb/cm"/> </DEVICE> </DEVICELIST> </ROOT>

4.目录授权(第一次)

# chown -R omm:dbgrp /database/panweidb # chmod -R 755 /database/panweidb

5.预安装

# cd /database/panweidb/soft/script

单节点部署执行:

# ./gs_preinstall -U omm -G dbgrp -X /database/panweidb/soft/panweidb1m.xml

两节点部署执行:

# ./gs_preinstall -U omm -G dbgrp -X /database/panweidb/soft/panweidb1m1s.xml

三节点部署执行:

# ./gs_preinstall -U omm -G dbgrp -X /database/panweidb/soft/panweidb1m2s.xml

6.目录授权(第二次)

# chown -R omm:dbgrp /database/panweidb # chmod -R 755 /database/panweidb

7.使用omm用户安装

# su - omm

单节点部署执行:

$ gs_install -X /database/panweidb/soft/panweidb1m.xml \ --gsinit-parameter="--encoding=UTF8" \ --gsinit-parameter="--lc-collate=C" \ --gsinit-parameter="--lc-ctype=C" \ --gsinit-parameter="--dbcompatibility=PG"

两节点部署执行:

$ gs_install -X /database/panweidb/soft/panweidb1m1s.xml \ --gsinit-parameter="--encoding=UTF8" \ --gsinit-parameter="--lc-collate=C" \ --gsinit-parameter="--lc-ctype=C" \ --gsinit-parameter="--dbcompatibility=PG"

三节点部署执行:

$ gs_install -X /database/panweidb/soft/panweidb1m2s.xml \ --gsinit-parameter="--encoding=UTF8" \ --gsinit-parameter="--lc-collate=C" \ --gsinit-parameter="--lc-ctype=C" \ --gsinit-parameter="--dbcompatibility=PG"

注意:数据库兼容性只能全局设置,后续不可更改,create database时也不允许设置dbcompatibility,需要提前确认好数据库兼容性。

8.查看集群状态

$ gs_om -t status –detail

9.设置数据库参数

根据业务合理设置数据库参数

二、ptk方式安装

1.上传ptk及数据库安装包

# mkdir -p /database/panweidb/{soft,ptk}

将ptk及数据库安装包上传到/database/panweidb/soft下

注意:ptk版本请使用1.1.5或以上版本

2.解压ptk安装包

# cd /database/panweidb/soft # tar -xf ptk_linux_x86_64.tar.gz -C /database/panweidb/ptk/

ptk解压后,scp传输到各节点,以便下一步进行环境检查。

3.检查环境

# cd /database/panweidb/ptk/ # ./ptk checkos

检查是否有abnormal项,如果有不满足要求,当前目录会生成root_fix_os.xxx.sh,可以查看该文件后执行脚本进行修复。

注意:其他节点也需要参考该脚本文件进行检查修复。

4.准备ptk配置文件

单节点的配置文件参考如下:

# vi /database/panweidb/ptk/config.yaml global: cluster_name: "panweidb" user: "omm" group: "dbgrp" db_password: "xxx" db_port: 17700 base_dir: "/database/panweidb" log_dir: "/database/panweidb/log/omm" gs_initdb_opts: - "--encoding=UTF-8" - "--lc-collate=C" - "--lc-ctype=C" - "--dbcompatibility=PG" ssh_option: port: 22 user: omm password: "xxx" db_servers: - host: 10.x.x.1 role: primary az_name: "AZ1" az_priority: 1

注意需要替换实际的ip地址,配置文件中的密码可以通过以下方式进行加密:

# ptk encrypt 'xxx'

三节点(一主两备)配置文件参考如下

# vi /database/panweidb/ptk/config.yaml global: cluster_name: "panweidb" user: "omm" group: "dbgrp" db_password: "xxx" db_port: 17700 base_dir: "/database/panweidb" log_dir: "/database/panweidb/log/omm" cm_option: dir: "/database/panweidb/cm" cm_server_port: 18800 cm_server_conf: enable_ssl: off cm_agent_conf: enable_ssl: off gs_initdb_opts: - "--encoding=UTF-8" - "--lc-collate=C" - "--lc-ctype=C" - "--dbcompatibility=PG" ssh_option: port: 22 user: omm password: "xxx" db_servers: - host: 10.x.x.1 role: primary az_name: "AZ1" az_priority: 1 db_conf: synchronous_standby_names: 'dn_6002' - host: 10.x.x.2 role: standby az_name: "AZ1" az_priority: 1 db_conf: synchronous_standby_names: 'dn_6001' - host: 10.x.x.3 role: standby az_name: "AZ1" az_priority: 1 db_conf: synchronous_standby_names: 'ANY 2(dn_6001,dn_6002)' cm_servers: - host: 10.x.x.1 port: 18800 role: "" - host: 10.x.x.2 port: 18800 role: "" - host: 10.x.x.3 port: 18800 role: ""

注意需要替换实际的ip地址,数据库兼容性只能一次设置后续不可更改,create database时也不允许设置dbcompatibility,需要提前确认好数据库兼容性。

5.授权

在所有节点执行如下操作:

# chown -R omm: /database/ # chmod 755 /database/

6.主节点使用omm用户安装数据库

$ cd /database/panweidb/ptk/ $ ./ptk install --file=/database/panweidb/ptk/config.yaml \ --skip-check-os --skip-check-distro --skip-create-user \ --pkg=/database/panweidb/soft/'PanWeiDB-2.0.0_Build0(03b85d1)-bclinux_euler21.10-x86_64-no_mot.tar'

如果需要卸载重装,卸载命令如下:

$ /database/panweidb/ptk/ptk uninstall --name=panweidb

7.动态库拷贝

在所有节点omm用户执行如下操作:

$ cd /database/panweidb/tool/script/ $ python3 -c "from gspylib.common.copy_python_lib import copy_lib;copy_lib()"

8.查看集群状态

$ gs_om -t status –detail

9.设置数据库参数

根据业务合理设置数据库参数

三、配置VIP

2.0支持通过回调脚本方式在主备切换场景下自动切换VIP。cm_agent在本地数据库角色发生切换为主库时,通过回调脚本或配置参数的形式,绑定VIP地址;当本节点数据库角色切换为备机时,主动解除VIP地址绑定。

1.配置omm用户的sudo权限

# visudo

尾部增加如下一行

omm ALL=(ALL:ALL) NOPASSWD:/sbin/ip,/usr/sbin/arping

注意:ip和arping命令需要结合实际操作系统路径进行修改

2.omm用户测试sudo权限

sudo ip addr add 10.x.x.x/24 brd 10.x.x.255 dev bond1 label bond1:1 sudo arping -q -A -c 1 -I bond1 10.x.x.x sudo ip addr del 10.x.x.x/24 dev bond1 label bond1:1

3.omm用户修改回调脚本

$ vi /database/panweidb/cm/cm_agent/cm_callback.sh

修改如下几处

VIP=10.x.x.x # vip 地址 VIPBRD=10.x.x.255 # 广播地址 VIPNETMASKBIT=24 # 掩码 VIPDEV=bond1 # 网络接口名称

设置权限

$ chmod u+x /database/panweidb/cm/cm_agent/cm_callback.sh

4.修改cm_agent.conf脚本

$ vi /database/panweidb/cm/cm_agent/cm_agent.conf

修改callback_bin_path变量:

callback_bin_path = /database/panweidb/cm/cm_agent/cm_callback.sh

5.重启集群进行验证

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

评论