写在前面
上一篇笔记记录了使用PTK装MogDB单机环境,为了方便后续学习验证,决定搭建一套主从环境,MogDB的安装可以使用容器化、PTK、OM、手动安装四种方式,其中OM是支持搭建单机实例,其他三个都可以搭建主从,因为上一篇使用PTK搭建单实例的时候,我的虚拟机不支持bmi2指令集(CentOS),最后也是跳过了系统检查才安装成功,因此决定通过手动安装的形式搭建主从。
上一篇笔记的地址:https://www.modb.pro/db/452286
环境规划
NODE1 | NODE2 | |
Hostname | mogdb1 | mogdb2 |
IP | 10.80.9.249 | 10.80.9.250 |
磁盘 | 20G | 20G |
内存 | 2G | 2G |
安装Centos7
详见我的第一篇笔记,此处略
配置环境
此步骤需要在node1、node2都需要执行
- 配置hostname
Node1
hostnamectl set-hostname mogdb1 |
Node2
hostnamectl set-hostname 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
其他的我暂时没有设置,先安装试一下
八、创建用户和组
groupadd dbgrp -g 2000 useradd omm -g 2000 -u 2000 echo "password" | passwd --stdin omm #软件目录 mkdir -p /opt/mogdb/software #数据文件目录 mkdir -p /opt/mogdb/data chown -R omm:dbgrp /opt/mogdb |
- 上传软件包并解压
[root@mogdb1 software]# pwd /opt/mogdb/software [root@mogdb1 software]# chown -R omm:dbgrp /opt/mogdb [root@mogdb1 software]# ll total 135892 -rw-r--r--. 1 omm dbgrp 139152523 Aug 5 12:44 MogDB-3.0.0-CentOS-x86_64.tar.gz [root@mogdb1 software]# su - omm |
- 解压(omm用户)
[omm@mogdb1 ~]$ cd /opt/mogdb/software/ [omm@mogdb1 software]$ tar -xf MogDB-3.0.0-CentOS-x86_64.tar.gz |
安装
- omm用户环境变量配置(主库、从库)
在.bash_profile中增加如下几行
export GAUSSHOME=/opt/mogdb/software export PATH=$GAUSSHOME/bin:$PATH export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH |
环境变量生效
source ~/.bash_profile |
- 初始化数据库(主库)
[omm@mogdb1 software]$ bin/gs_initdb --pgdata=/opt/mogdb/data --nodename=primary --pwpasswd=Enmo@123 --encoding=UTF-8 --locale=en_US.UTF-8 |
- 修改参数(主库)
echo "port=26000" >> /opt/mogdb/data/postgresql.conf echo "listen_addresses = '0.0.0.0'" >> /opt/mogdb/data/postgresql.conf echo "password_encryption_type = 0" >> /opt/mogdb/data/postgresql.conf echo "log_directory = 'pg_log'" >> /opt/mogdb/data/postgresql.conf echo "remote_read_mode=non_authentication" >> /opt/mogdb/data/postgresql.conf echo "host all all 0.0.0.0/0 md5" >> /opt/mogdb/data/pg_hba.conf echo "replconninfo1='localhost=10.80.9.249 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=10.80.9.250 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004'" >> /opt/mogdb/data/postgresql.conf |
- 启动主库
[omm@mogdb1 software]$ gs_ctl start -D /opt/mogdb/data/ -M primary |
- 修改参数(从库)
echo "port=26000" >> /opt/mogdb/data/postgresql.conf echo "listen_addresses = '0.0.0.0'" >> /opt/mogdb/data/postgresql.conf echo "password_encryption_type = 0" >> /opt/mogdb/data/postgresql.conf echo "log_directory = 'pg_log'" >> /opt/mogdb/data/postgresql.conf echo "remote_read_mode=non_authentication" >> /opt/mogdb/data/postgresql.conf echo "host all all 0.0.0.0/0 md5" >> /opt/mogdb/data/pg_hba.conf echo "replconninfo1='localhost=10.80.9.250 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=10.80.9.249 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004'" >> /opt/mogdb/data/postgresql.conf |
- 构建主备库关系(从库)
[omm@mogdb2 software]$ gs_ctl build -D /opt/mogdb/data/ -b full -M standby |
- 查询主备库状态
主库
gs_ctl query -D /opt/mogdb/data/ |
从库
gs_ctl query -D /opt/mogdb/data/ |
最后
安装成功了,接下来开始在这个中主备环境中学习验证