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

Mogdb 一主两从搭建实操

原创 向前龙 2021-11-29
967

一、环境准备:

系统:centos7.6
IP:192.168.254.21/192.168.254.22/192.168.254.23
Mogdb:

在三台
1,修改/etc/selinux/config文件中的“SELINUX”值为“disabled”。

a. 使用VIM打开config文件。
vim /etc/selinux/config
b. 修改“SELINUX”的值“disabled”,执行:wq保存并退出修改。
SELINUX=disabled
c.setenforce 0  或者 reboot

2,关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

3,设置时区和时间

cp /usr/share/zoneinfo/Asia/$时区 /etc/localtime
例如:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
使用date查看当前时间是否一致,不一致的话,使用date -s ‘时间...’统一时间,或者ntpdate(详见时间设置的方式:https://www.cnblogs.com/zhubiao/p/9768209.html )。

4,关闭swap交换内存(可选)

swapoff -a

5,设置网卡MTU值
将各数据库节点的网卡MTU值设置为相同大小。对于x86,MTU值推荐1500;对于ARM,MTU值推荐8192。
格式:ifconfig 网卡编号 mtu 值

6,关闭RemoveIPC
在各数据库节点上,关闭RemoveIPC。CentOS操作系统无该参数,可以跳过该步骤。

操作步骤
6.1,修改/etc/systemd/logind.conf文件中的“RemoveIPC”值为“no”。

a. 使用VIM打开logind.conf文件。
	vim  /etc/systemd/logind.conf
b. 修改“RemoveIPC”值为“no”。
	RemoveIPC=no

6.2,修改/usr/lib/systemd/system/systemd-logind.service文件中的“RemoveIPC”值为“no”。

a. 使用VIM打开systemd-logind.service文件。
	vim /usr/lib/systemd/system/systemd-logind.service
b. 修改“RemoveIPC”值为“no”。
	RemoveIPC=no
	重新加载配置参数。

systemctl daemon-reload
systemctl restart systemd-logind

检查修改是否生效。

loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC

在其他主机上重复

7,设置root用户远程登录
7.1,修改PermitRootLogin配置,允许用户远程登录。
vim /etc/ssh/sshd_config
7.1.1, 将“PermitRootLogin”改为“yes”。
7.1.2, 注释掉Banner所在行
#Banner XXXX
7.2,重启服务
systemctl restart sshd.service
7.3, 以root身份重新在192.168.254.21、192.168.254.22、192.168.254.23之间相互登录一下。
例如:在192.168.254.21上
[root@localhost ~]# ssh root@192.168.254.22
[root@localhost ~]# ssh root@192.168.254.23

二、安装MogDB

安装MogDB前需要创建XML文件。XML文件包含部署MogDB的服务器信息、安装路径、IP地址以及端口号等。用于告知MogDB如何部署。用户需根据不同场配置对应的XML文件。

参数解释:
clusterName MogDB名称。
nodeNames MogDB中主机名称。
backIp1s 主机在后端存储网络中的IP地址(内网IP)。所有MogDB主机使用后端存储网络通讯。
gaussdbAppPath
MogDB程序安装目录。此目录应满足如下要求:
- 磁盘空间>1GB
- 与数据库所需其它路径相互独立,没有包含关系。
gaussdbLogPath
MogDB运行日志和操作日志存储目录。此目录应满足如下要求:
- 磁盘空间建议根据主机上的数据库节点数规划。数据库节点预留1GB空间的基础上,再适当预留冗余空间。
- 与MogDB所需其它路径相互独立,没有包含关系。
此路径可选。不指定的情况下,MogDB安装时会默认指定“$GAUSSLOG/安装用户名”作为日志目录。
tmpdbPath
数据库临时文件存放目录。
若不配置tmpdbPath,默认存放在/opt/mogdb/tools/perfadm_db目录下。
**gaussdbToolPath **
MogDB系统工具目录,主要用于存放互信工具等。此目录应满足如下要求:
- 磁盘空间>100MB
- 固定目录,与数据库所需其它目录相互独立,没有包含关系。
此目录可选。不指定的情况下,MogDB安装时会默认指定“/opt/mogdb/tools”作为数据库系统工具目录。
corePath MogDB core文件的指定目录。
clusterType
MogDB类型,MogDB拓扑类型;可选字段。
“single-inst”表示单机一主多备部署形态。

在192.168.254.21/22/23上面建立文件夹:
[root@localhost ~]# mkdir /mogdb/{log,tools,corefile,etc,data} -p

设置hostname
[root@localhost node1]# hostnamectl set-hostname node1
[root@localhost node2]# hostnamectl set-hostname node2
[root@localhost node3]# hostnamectl set-hostname node3

Centos需要安装python3(这里如果是centos7.6 python版本只能是3.6.x)
[root@localhost mogdb]# wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
[root@localhost mogdb]# mkdir -p /usr/local/python3
[root@localhost mogdb]# tar -zxvf Python-3.6.5.tgz
[root@localhost mogdb]# cd Python-3.6.5
[root@localhost Python-3.6.5]# ./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC && make && make install
[root@localhost Python-3.6.5]# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@localhost Python-3.6.5]# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
[root@node1 Python-3.6.5]# cp libpython3.6m.so.1.0 /usr/lib64

选择三台中的任意主机(此处是node3):
[root@node3 ~]# vim /mogdb/etc/mogdb_clusterconfig.xml

<?xml version="2.0" encoding="UTF-8"?> 
<ROOT> 
    <!-- MogDB整体信息 --> 
    <CLUSTER> 
        <PARAM name="clusterName" value="dbCluster" /> 
        <PARAM name="nodeNames" value="node1,node2,node3" /> 
        <PARAM name="backIp1s" value="192.168.254.21,192.168.254.22, 192.168.254.23"/> 
        <PARAM name="gaussdbAppPath" value="/usr/local/mogdb/app" /> 
        <PARAM name="gaussdbLogPath" value="/mogdb/log/mogdb" /> 
        <PARAM name="gaussdbToolPath" value="/mogdb/tools" /> 
        <PARAM name="corePath" value="/mogdb/corefile"/> 
        <PARAM name="clusterType" value="single-inst"/> 
    </CLUSTER> 
    <!-- 每台服务器上的节点部署信息 --> 
    <DEVICELIST> 
        <!-- node1上的节点部署信息 --> 
        <DEVICE sn="1000001"> 
            <PARAM name="name" value="node1"/> 
            <PARAM name="azName" value="AZ1"/> 
            <PARAM name="azPriority" value="1"/> 
            <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
            <PARAM name="backIp1" value="192.168.254.21"/> 
            <PARAM name="sshIp1" value="192.168.254.21"/> 
             
        <!--dbnode--> 
        <PARAM name="dataNum" value="1"/> 
        <PARAM name="dataPortBase" value="26000"/> 
        <PARAM name="dataNode1" value="/mogdb/data/db1,node2,/mogdb/data/db1, node3,/mogdb/data/db1"/> 
        </DEVICE> 
 
        <!-- node2上的节点部署信息,其中“name”的值配置为主机名称 --> 
        <DEVICE sn="1000002"> 
            <PARAM name="name" value="node2"/> 
            <PARAM name="azName" value="AZ1"/> 
            <PARAM name="azPriority" value="1"/> 
            <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
            <PARAM name="backIp1" value="192.168.254.22"/> 
            <PARAM name="sshIp1" value="192.168.254.22"/> 
    </DEVICE> 
        <!--node3上的节点部署信息,其中“name”的值配置为主机名称 --> 
        <DEVICE sn="1000003"> 
            <PARAM name="name" value="node3"/> 
            <PARAM name="azName" value="AZ1"/> 
            <PARAM name="azPriority" value="1"/> 
            <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
            <PARAM name="backIp1" value="192.168.254.23"/> 
            <PARAM name="sshIp1" value="192.168.254.23"/> 
    </DEVICE> 
    </DEVICELIST> 
</ROOT>

下载mogdb安装包: https://www.mogdb.io/download

右键下载,复制链接,
[root@node3 src]# mkdir -p /opt/software/mogdb
[root@node3 src]# chmod 755 -R /opt/software
[root@node3 src]# cd /opt/software/mogdb
[root@node3 src]# wget https://cdn-mogdb.enmotech.com/mogdb-media/2.0.1/MogDB-2.0.1-CentOS-all-x86_64.tar
[root@node3 src]# yum install -y bzip2 libaio-devel flex bison ncurses-devel glibc-devel libxml2-devel patch redhat-lsb-core unzip gcc gcc-c++ perl openssl-devel libffi-devel libtool zlib-devel
[root@node3 mogdb]# tar -xf MogDB-2.0.1-CentOS-all-x86_64.tar
[root@node3 mogdb]# tar -xvf MogDB-2.0.1-CentOS-all-x86_64.tar
[root@node3 mogdb]# tar -xvf MogDB-2.0.1-CentOS-64bit-om.tar.gz
[root@node3 mogdb]# tar -xf MogDB-2.0.1-CentOS-64bit.tar.bz2

在node3操作,初始化脚本
[root@node3 mogdb]#/opt/software/mogdb/script/gs_preinstall -U omm -G dbgrp -X /mogdb/etc/mogdb_clusterconfig.xml

在三台机器上执行
[root@allnode ~]# chown -R omm:dbgrp /mogdb/
cd /opt/software/mogdb/script
chmod -R 755 /opt/software/mogdb/script
chown -R omm:dbgrp /opt/software/mogdb/script

在node3操作:
[omm@node3 ~]$ /opt/software/mogdb/script/gs_install -X /mogdb/etc/mogdb_clusterconfig.xml --gsinit-parameter="–locale=en_US.UTF-8" --gsinit-parameter="–encoding=UTF-8"

(输入数据库密码…)
image.png

登录数据库:
[omm@node3 ~]$ gsql -d postgres -p 26000 -r
gsql ((MogDB 2.0.1 build f892ccb7) compiled at 2021-07-09 16:12:59 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type “help” for help.

postgres=# \copyright
MogDB Database Management System
Copyright © Yunhe Enmo (Beijing) Information Technology Co., Ltd. Copyright 2020 , All rights reserved.

查看目前状态:
[omm@node3 ~]$ gs_om -t status --detail
image.png

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

评论