前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MogDB/openGauss 手动部署(非OM工具)单机、主备、主备级联架构

MogDB/openGauss 手动部署(非OM工具)单机、主备、主备级联架构

作者头像
数据和云
发布2021-07-30 15:39:30
发布2021-07-30 15:39:30
1.3K00
代码可运行
举报
文章被收录于专栏:数据和云数据和云
运行总次数:0
代码可运行

一、前期准备

1. 关闭防火墙,selinux

代码语言:javascript
代码运行次数:0
运行
复制
systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce=0
sed -i '/^SELINUX=/c'SELINUX=disabled /etc/selinux/config

2. 安装依赖包

代码语言:javascript
代码运行次数:0
运行
复制
yum install libaio-devel -y

3. 创建相关目录、用户、组

代码语言:javascript
代码运行次数:0
运行
复制
groupadd dbgrp -g 2000
useradd omm -g 2000 -u 2000
echo "Enmo@123" | passwd --stdin omm
mkdir -p /opt/mogdb/software
chown -R omm:dbgrp /opt/

4. 上传并解压二进制文件

代码语言:javascript
代码运行次数:0
运行
复制
[root@mogdb-kernel-0001 software]# pwd
/opt/mogdb/software
[root@mogdb-kernel-0001 software]# ls -lrt
total 90236
-r-------- 1 root root 92401412 Jun 13 06:14 MogDB-2.0.0-openEuler-64bit.tar.bz2
chown omm:dbgrp MogDB-2.0.0-openEuler-64bit.tar.bz2 
su - omm
cd /opt/mogdb/software/
tar -xf MogDB-2.0.0-openEuler-64bit.tar.bz2

二、初始化数据库(单机)

1. 配置环境变量

代码语言:javascript
代码运行次数:0
运行
复制
echo "export GAUSSHOME=/opt/mogdb/software"  >> /home/omm/.bashrc && \
echo "export PATH=\$GAUSSHOME/bin:\$PATH " >> /home/omm/.bashrc && \
echo "export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$LD_LIBRARY_PATH" >> /home/omm/.bashrc
source /home/omm/.bashrc

2. init数据库

代码语言:javascript
代码运行次数:0
运行
复制
bin/gs_initdb --pgdata=/opt/mogdb/data --nodename=primary --pwpasswd=Enmo@123 --encoding=UTF-8 --locale=en_US.UTF-8

3. 修改初始化参数

代码语言:javascript
代码运行次数:0
运行
复制
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

4. 启动数据库

代码语言:javascript
代码运行次数:0
运行
复制
gs_ctl start -D /opt/mogdb/data

至此单机安装完成

三、主备安装

1. 主库操作

  • 配置连接通道
代码语言:javascript
代码运行次数:0
运行
复制
echo "replconninfo1='localhost=172.16.0.106 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.245 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004'	
" >> /opt/mogdb/data/postgresql.conf

localhost为主库IP,remotehost为备库IP

  • 将主库以primary方式启动
代码语言:javascript
代码运行次数:0
运行
复制
gs_ctl restart -D /opt/mogdb/data/ -M primary

2. 备库操作

  • 前期准备工作如上(一)
  • 配置环境变量
代码语言:javascript
代码运行次数:0
运行
复制
echo "export GAUSSHOME=/opt/mogdb/software"  >> /home/omm/.bashrc && \
echo "export PATH=\$GAUSSHOME/bin:\$PATH " >> /home/omm/.bashrc && \
echo "export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$LD_LIBRARY_PATH" >> /home/omm/.bashrc
source /home/omm/.bashrc
- 将主库的配置文件传到备库
scp /opt/mogdb/data/pg_hba.conf /opt/mogdb/data/postgresql.conf 172.16.0.245:/opt/mogdb/data/
  • 配置连接通道,将localhost和remotehost对调. sed -i “/^replconninfo1/creplconninfo1=‘localhost=172.16.0.245 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.106 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004’” /opt/mogdb/data/postgresql.conf

localhost为备库IP,remotehost为主库IP

  • 构建主备关系
代码语言:javascript
代码运行次数:0
运行
复制
gs_ctl build -D /opt/mogdb/data/ -b full -M standby
  • 查询主备状态
    • 主库
代码语言:javascript
代码运行次数:0
运行
复制
[omm@mogdb-kernel-0001 data]$ gs_ctl query -D /opt/mogdb/data/    
[2021-06-13 07:51:41.119][159054][][gs_ctl]: gs_ctl query ,datadir is /opt/mogdb/data 
 HA state:           
        local_role                     : Primary
        static_connections             : 1
        db_state                       : Normal
        detail_information             : Normal

 Senders info:       
        sender_pid                     : 159041
        local_role                     : Primary
        peer_role                      : Standby
        peer_state                     : Normal
        state                          : Streaming
        sender_sent_location           : 0/14000258
        sender_write_location          : 0/14000258
        sender_flush_location          : 0/14000258
        sender_replay_location         : 0/14000258
        receiver_received_location     : 0/14000258
        receiver_write_location        : 0/14000258
        receiver_flush_location        : 0/14000258
        receiver_replay_location       : 0/14000258
        sync_percent                   : 100%
        sync_state                     : Sync
        sync_priority                  : 1
        sync_most_available            : Off
        channel                        : 172.16.0.106:26001-->172.16.0.245:60856

 Receiver info:      
No information
  • 备库
代码语言:javascript
代码运行次数:0
运行
复制
[omm@mogdb-kernel-0002 data]$ gs_ctl query -D /opt/mogdb/data/                  
[2021-06-13 07:51:32.743][123204][][gs_ctl]: gs_ctl query ,datadir is /opt/mogdb/data 
 HA state:           
        local_role                     : Standby
        static_connections             : 1
        db_state                       : Normal
        detail_information             : Normal

 Senders info:       
No information 
 Receiver info:      
        receiver_pid                   : 123194
        local_role                     : Standby
        peer_role                      : Primary
        peer_state                     : Normal
        state                          : Normal
        sender_sent_location           : 0/14000140
        sender_write_location          : 0/14000140
        sender_flush_location          : 0/14000140
        sender_replay_location         : 0/14000140
        receiver_received_location     : 0/14000140
        receiver_write_location        : 0/14000140
        receiver_flush_location        : 0/14000140
        receiver_replay_location       : 0/14000140
        sync_percent                   : 100%
        channel                        : 172.16.0.245:60856<--172.16.0.106:26001  

至此主备已安装完成。

四、主备级联安装

1. 主备安装如上(一,二,三)

2. 添加复制通道

  • 主库操作 gsql -d postgres -p26000 -c “alter system set replconninfo2 to ‘localhost=172.16.0.106 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.127 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004 iscascade=true’;”
  • 备库操作 gsql -d postgres -p26000 -c “alter system set replconninfo2 to ‘localhost=172.16.0.245 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.127 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004 iscascade=true’;”

3. 级联库操作

  • 前期准备工作如上(一)
  • 配置环境变量
代码语言:javascript
代码运行次数:0
运行
复制
echo "export GAUSSHOME=/opt/mogdb/software"  >> /home/omm/.bashrc && \
echo "export PATH=\$GAUSSHOME/bin:\$PATH " >> /home/omm/.bashrc && \
echo "export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$LD_LIBRARY_PATH" >> /home/omm/.bashrc
source /home/omm/.bashrc
  • 将备库的配置文件传到备库
代码语言:javascript
代码运行次数:0
运行
复制
scp /opt/mogdb/data/pg_hba.conf /opt/mogdb/data/postgresql.conf 172.16.0.245:/opt/mogdb/data/
  • 配置连接通道
代码语言:javascript
代码运行次数:0
运行
复制
sed -i "/^replconninfo1/creplconninfo1='localhost=172.16.0.127 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.106 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004'" /opt/mogdb/data/postgresql.conf
sed -i "/replconninfo2/creplconninfo2='localhost=172.16.0.127 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.245 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004'" /opt/mogdb/data/postgresql.conf

localhost为级联IP,remotehost为主库IP和备库IP。

  • 构建主备关系
代码语言:javascript
代码运行次数:0
运行
复制
gs_ctl build -D /opt/mogdb/data/ -b full -M cascade_standby

4.查看主备级联状态

  • 主库
代码语言:javascript
代码运行次数:0
运行
复制
[omm@mogdb-kernel-0001 ~]$ gs_ctl query -D /opt/mogdb/data
[2021-06-13 08:37:03.281][207069][][gs_ctl]: gs_ctl query ,datadir is /opt/mogdb/data 
 HA state:           
        local_role                     : Primary
        static_connections             : 2
        db_state                       : Normal
        detail_information             : Normal

 Senders info:       
        sender_pid                     : 206143
        local_role                     : Primary
        peer_role                      : Standby
        peer_state                     : Normal
        state                          : Streaming
        sender_sent_location           : 0/1A000140
        sender_write_location          : 0/1A000140
        sender_flush_location          : 0/1A000140
        sender_replay_location         : 0/1A000140
        receiver_received_location     : 0/1A000140
        receiver_write_location        : 0/1A000140
        receiver_flush_location        : 0/1A000140
        receiver_replay_location       : 0/1A000140
        sync_percent                   : 100%
        sync_state                     : Sync
        sync_priority                  : 1
        sync_most_available            : Off
        channel                        : 172.16.0.106:26001-->172.16.0.245:34586

 Receiver info:      
No information
  • 备库
代码语言:javascript
代码运行次数:0
运行
复制

  [omm@mogdb-kernel-0002 ~]$ gs_ctl query -D /opt/mogdb/data
[2021-06-13 08:37:09.128][147065][][gs_ctl]: gs_ctl query ,datadir is /opt/mogdb/data 
 HA state:           
        local_role                     : Standby
        static_connections             : 2
        db_state                       : Normal
        detail_information             : Normal

 Senders info:       
        sender_pid                     : 147043
        local_role                     : Standby
        peer_role                      : Cascade Standby
        peer_state                     : Normal
        state                          : Streaming
        sender_sent_location           : 0/1A000140
        sender_write_location          : 0/1A000140
        sender_flush_location          : 0/1A000140
        sender_replay_location         : 0/1A000140
        receiver_received_location     : 0/1A000140
        receiver_write_location        : 0/1A000140
        receiver_flush_location        : 0/1A000140
        receiver_replay_location       : 0/1A000140
        sync_percent                   : 100%
        sync_state                     : Async
        sync_priority                  : 0
        sync_most_available            : Off
        channel                        : 172.16.0.245:26001-->172.16.0.127:49110

 Receiver info:      
        receiver_pid                   : 146771
        local_role                     : Standby
        peer_role                      : Primary
        peer_state                     : Normal
        state                          : Normal
        sender_sent_location           : 0/1A000140
        sender_write_location          : 0/1A000140
        sender_flush_location          : 0/1A000140
        sender_replay_location         : 0/1A000140
        receiver_received_location     : 0/1A000140
        receiver_write_location        : 0/1A000140
        receiver_flush_location        : 0/1A000140
        receiver_replay_location       : 0/1A000140
        sync_percent                   : 100%
        channel                        : 172.16.0.245:34586<--172.16.0.106:26001
  • 级联库
代码语言:javascript
代码运行次数:0
运行
复制
[omm@mogdb-kernel-0003 data]$ gs_ctl query -D /opt/mogdb/data
[2021-06-13 08:36:56.223][273241][][gs_ctl]: gs_ctl query ,datadir is /opt/mogdb/data 
 HA state:           
        local_role                     : Cascade Standby
        static_connections             : 2
        db_state                       : Normal
        detail_information             : Normal

 Senders info:       
No information 
 Receiver info:      
        receiver_pid                   : 273237
        local_role                     : Cascade Standby
        peer_role                      : Standby
        peer_state                     : Normal
        state                          : Normal
        sender_sent_location           : 0/1A000140
        sender_write_location          : 0/1A000140
        sender_flush_location          : 0/1A000140
        sender_replay_location         : 0/1A000140
        receiver_received_location     : 0/1A000140
        receiver_write_location        : 0/1A000140
        receiver_flush_location        : 0/1A000140
        receiver_replay_location       : 0/1A000140
        sync_percent                   : 100%
        channel                        : 172.16.0.127:49110<--172.16.0.245:26001

至此主备级联安装完成

注:本文源自墨天轮”我的国产数据库之路“的征文,原文链接:https://www.modb.pro/db/70779

关于作者

李宏达,openGauss开源社区commiter,目前主要从事Oracle,openGauss,云服务相关工作。现拥有Oracle OCP,OceanBase OBCA,openGauss OGCA,PostgreSQL PGCA,华为云HCIP(Solutions Architect)认证。

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据和云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前期准备
    • 1. 关闭防火墙,selinux
    • 2. 安装依赖包
    • 3. 创建相关目录、用户、组
    • 4. 上传并解压二进制文件
  • 二、初始化数据库(单机)
    • 1. 配置环境变量
    • 2. init数据库
    • 3. 修改初始化参数
    • 4. 启动数据库
  • 三、主备安装
    • 1. 主库操作
    • 2. 备库操作
  • 四、主备级联安装
    • 1. 主备安装如上(一,二,三)
    • 2. 添加复制通道
    • 3. 级联库操作
    • 4.查看主备级联状态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档