写在前面
本来已经开始慢慢进入MogDB的世界,突然出现一个小插曲,由于我上一个主从环境是按照手动安装模式安装的,我在后续学习过程中发现很多命令都是通过gs_om。手动安装没有这个可执行程序,就从别的包里找了一个,发现不可用,咨询官方大大说手动安装命令不支持gs_om,建议使用PKT的方式安装主从,好吧,撸起袖子重新干,重新安装虚拟机,MogDB踩的第一坑。
建议把gs_om从安装包中独立出来,可以独立部署使用,毕竟是一个出现频率比较高的管理工具,毕竟官网有这么一句话(在某些安装程序尚未支持的操作系统上,安装程序(比如OM)会报操作系统不支持的错误,此时可以通过手动方式安装MogDB)。
环境规划
NODE1(主库) | NODE2(从库) | |
Hostname | pkt_mogdb1 | pkt_mogdb2 |
IP | 10.80.9.249 | 10.80.9.250 |
磁盘 | 20G | 20G |
内存 | 2G | 2G |
安装Centos7
详见我的第一篇笔记https://www.modb.pro/db/452286,此处略
配置环境
此步骤需要在node1、node2都需要执行
- 配置hostname
Node1
hostnamectl set-hostname pkt_mogdb1 |
Node2
hostnamectl set-hostname pkt_mogdb2 |
- 配置IP地址
Node1
nmcli connection modify enp0s3 ipv4.addresses 10.80.9.249/24 ipv4.gateway 10.80.0.1 ipv4.method manual autoconnect yes |
Node2
nmcli connection modify enp0s3 ipv4.addresses 10.80.9.250/24 ipv4.gateway 10.80.0.1 ipv4.method manual autoconnect yes |
三、配置yum源 node1、node2都要执行
挂载磁盘镜像
[root@mogdb ~]# mount /dev/cdrom /mnt |
编辑yum文件
[root@mogdb ~]# cd /etc/yum.repos.d/ [root@mogdb ~]# cp CentOS-Base.repo local.repo [root@mogdb ~]# vi local.repo |
[local] name=local #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra baseurl=file:///mnt gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 |
[root@mogdb ~]# yum repolist all |
- 安装依赖包
由于安装操作系统的时候使用了极简安装,因此很多管理包也不存在,导致很多管理命令无法执行,先安装以下三个yum组
yum group install "System Administration Tools" \ --setopt=group_package_types=mandatory,default,optional yum group install "System Management" \ --setopt=group_package_types=mandatory,default,optional yum group install "Basic Web Server" |
安装MogDB的依赖包
yum install libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel expect openSSH |
四、关闭防火墙
[root@mogdb ~]# systemctl status firewalld.service [root@mogdb ~]# systemctl stop firewalld.service [root@mogdb ~]# systemctl status firewalld.service [root@mogdb ~]# systemctl disable firewalld.service |
五、关闭seLinux
[root@mogdb ~]# vi /etc/selinux/config |
修改“SELINUX”的值“disabled”
需要重启生效,也可以临时生效
[root@mogdb ~]# setenforce 0 |
六、设置网卡MTU值
[root@mogdb ~]# ifconfig enp0s3 mtu 8192 |
七、其他环境配置请参考官方文档
https://docs.mogdb.io/zh/mogdb/v3.0/os-configuration
其他的我暂时没有设置,先安装试一下
八、上传软件包并解压
[root@mogdb1 software]# mkdir -p /opt/mogdb/data [root@mogdb1 software]# mkdir -p /opt/mogdb/software [root@mogdb1 software]# pwd /opt/mogdb/software [root@mogdb1 software]# ll -rw-r--r--. 1 root root 139152523 Aug 8 17:27 MogDB-3.0.0-CentOS-x86_64.tar.gz -rw-r--r--. 1 root root 4974994 Aug 8 17:27 ptk_linux_x86_64.tar.gz |
- 解压ptk
[root@localhost software]# tar -zxvf ptk_linux_x86_64.tar.gz |
安装
- 编辑安装概要文件
[root@localhost software]# cat config.yaml global: cluster_name: mogdb_cluster1 user: omm group: omm #MogDB会默认在base_dir指定的路径下面再创建一个data文件夹 base_dir: /opt/mogdb/data db_servers: - host: 10.80.9.249 db_port: 26000 role: primary ssh_option: port: 22 user: root password: password - host: 10.80.9.250 db_port: 26000 role: standby ssh_option: port: 22 user: root password: password |
注意:配置文件中的密码不允许是明文,需要使用ptk工具转换成密文代替,生成密文的命令如下:
[root@localhost software]# ./ptk encrypt password password: pTk6NGM1YjMzZjE8RDxEPUM/QmU5NXp4R3Uxd3NMbXpQU3VoanZ5WEZCUXV0UEJLZU5Rc0RlemloLUJCSG8= |
把打印出的password替换到文件中
[root@localhost software]# cat config.yaml global: cluster_name: mogdb_cluster1 user: omm group: omm base_dir: /opt/mogdb/data db_servers: - host: 10.80.9.249 db_port: 26000 role: primary ssh_option: port: 22 user: root password: pTk6NGM1YjMzZjE8RDxEPUM/QmU5NXp4R3Uxd3NMbXpQU3VoanZ5WEZCUXV0UEJLZU5Rc0RlemloLUJCSG8= - host: 10.80.9.250 db_port: 26000 role: standby ssh_option: port: 22 user: root password: pTk6NGM1YjMzZjE8RDxEPUM/QmU5NXp4R3Uxd3NMbXpQU3VoanZ5WEZCUXV0UEJLZU5Rc0RlemloLUJCSG8= |
- 检查操作系统
此步骤会报错,主要关注lever级别是Abnormal。检查会生成一个修复脚本,执行脚本就可以了
按照提示执行root_fix_os.....sh,以下是脚本内容
#!/usr/bin/env bash local_ips=$(ip addr | grep 'inet' | grep -v 'inet6\|127.0.0.1' | grep -v grep | awk -F '/' '{print $1}' | awk '{print $2}') # fix suggestions for host: 10.80.9.249 for ip in ${local_ips}; do if [[ "${ip}" == "10.80.9.249" ]]; then # item Check_THP_Service [ -f /sys/kernel/mm/transparent_hugepage/enabled ] && echo 'never' | sudo tee /sys/kernel/mm/transparent_hugepage/enabled # item Check_Dependent_Package yum install -y numactl exit 0 fi done |
需要把脚本复制到从库环境执行,注意要修改IP地址
再次检查
还有一个中断项
A16.Check_CPU_Instruction_Set | Abnormal
然后仍然提供了一个脚本
执行ptk checkos -i A16 --detail查看检查详细信息
我的虚拟机不支持
bmi2指令集(CentOS) | 执行lscpu | grep bmi2命令查看是否支持bmi2指令集 |
我搭建主从就是因为这个检查项没有通过,所以决定使用手动安装,但是发现用不了gs_om,呜呼哀哉。
- 安装Mogdb
因为cpu指令检查不通过,跳过系统检查
[root@mogdb soft]# ptk install -f config.yaml --pkg ./MogDB-3.0.0-CentOS-x86_64.tar.gz --skip-check-os |
安装会让你再次确认概要文件有没有问题,如果没有问题输入Y继续
接下来输入db密码
我输入的是P@ssw0rd,怕忘了记录一下
输出以下界面表示安装成功
- 主备库分别连接数据库
连接成功
- 检查主备库信息
- 试一下让我重新安装的gs_om命令
[omm@pkt_mogdb1 data]$ gs_om --help |
报错提示/usr/bin/env: python3: No such file or directory。看来需要安装python3的包
yum install python3 |
查看MogDB运行信息,看一查看那个节点运行的是主节点,那个节点是从节点,这次安装期待的就是这一点了,拨开云雾见青天。
gs_om -t status --detail |
最后
大功告成,继续学习吧。从重新安装到记录笔记也用了一下午的时间。