墨墨导读:之前,我们分享过《抢鲜体验:openGauss 安装编译过程要点及问题解决》,本文介绍源码编译方式搭建主备的过程。

前期准备

操作系统
Centos7.6 x86_64

创建用户及组

# groupadd dbgrp -g 2000
# useradd omm -g 2000 -u 2000
# passwd omm

规划安装目录、数据目录及权限

# mkdir -p {/opt/og,/opt/ogdata}
# chown -R omm: {/opt/og,/opt/ogdata}
# chmod -R 755 /opt/og
# chmod -R 700 /opt/ogdata

注意:ogdata数据目录权限注意只能owner具有读写权限

安装依赖包

# yum install unzip gcc-c++ readline readline-devel
# yum install libaio-devel flex bison  ncurses-devel  glibc-devel patch lsb_release

下载文件
从码云下载两个文件包:

一个是opengauss-openGauss-server-master.zip本体文件
一个是编译时依赖的第三方库文件,地址如下:
https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.0.0/openGauss-third_party_binarylibs.tar.gz

下载文件放到/home/omm

# chown omm: openGauss-third_party_binarylibs.tar.gz
# chmod 755 openGauss-third_party_binarylibs.tar.gz# chown omm: opengauss-openGauss-server-master.zip
# chmod 755 opengauss-openGauss-server-master.zip

编译前准备

# su - omm$ unzip opengauss-openGauss-server-master.zip$ tar -zxvf openGauss-third_party_binarylibs.tar.gz
$ mv openGauss-third_party_binarylibs binarylibsexport CODE_BASE=/home/omm/openGauss-server
export BINARYLIBS=/home/omm/binarylibs
export GAUSSHOME=/opt/og
export GCC_PATH=$BINARYLIBS/buildtools/centos7.6_x86_64/gcc8.2/
export CC=$GCC_PATH/gcc/bin/gcc
export CXX=$GCC_PATH/gcc/bin/g++
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$GCC_PATH/gcc/lib64:$GCC_PATH/isl/lib:$GCC_PATH/mpc/lib/:$GCC_PATH/mpfr/lib/:$GCC_PATH/gmp/lib/:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$GCC_PATH/gcc/bin:$PATH

编译安装

$ cd openGauss-server/先clean一下,第一次报错可以忽略,如果重新编译需要clean
$ make clean编译release版本
$ ./configure  --prefix=/opt/og \
--3rd=/home/omm/binarylibs \
--gcc-version=8.2.0 \
--without-readline \
--without-zlib \
--enable-thread-safety \
CC=g++ CFLAGS="-O2 -g3"虚拟机推荐配置4G以上内存,这里虚拟机使用单线程编译,物理机可以增加-j参数
$ make
...
All of openGauss successfully made. Ready to install.
看到上面的提示则,make完成安装
$ make install
...
openGauss installation complete.
看到上面的提示则,安装完成查看版本
$ /opt/og/bin/gsql --version
gsql (openGauss 1.0.0 build ) compiled at 2020-07-12 20:44:07 commit 0 last mr

主库初始化

$ /opt/og/bin/gs_initdb --nodename=master_6432 \
--pgdata=/data/data_og \
--encoding=UTF-8 \
--locale=en_US.UTF-8 \
--dbcompatibility='A' \
--username=omm \
--pwpasswd=Enmotech@2020

主库配置

postgresql.conf文件增加如下配置
port=6432
listen_addresses = '0.0.0.0'
password_encryption_type = 0
remote_read_mode=non_authentication
replconninfo1 = 'localhost=MasterIPAddresses \
localport=6439 \
localservice=6432 \
remotehost=StandbyIPAddresses \
remoteport=6439 \
remoteservice=6432'

注意:上面的\是为了排版,localport与port间隔要大于1,remoteport同理。

启动主库

pg_hba.conf配置
host all all 0.0.0.0/0 md5
host    replication     repuser        MasterIP/32            md5
host    replication     repuser        StandbyIP/32            md5/opt/og/bin/gs_ctl start \
-D /opt/ogdata \
-M primary \
-l og_server.log &

创建流复制用户

$ /opt/og/bin/gsql -Uomm postgres
postgres=# create user repuser SYSADMIN REPLICATION PASSWORD 'Enmotech@2020';

注意:需要具有SYSADMIN REPLICATION权限。

备库搭建

bin文件可以直接从主库复制过来,目录及权限与主库保持一致即可

基础备份
$ /opt/og/bin/gs_basebackup --pgdata=/opt/ogdata \
--host=MasterIP \
--port=6432 \
--username=repuser \
--password

备库配置

1.对称修改postgresql.conf里的replconninfo1,将localhost与remotehost值对调。

2.设置nodename

$ /opt/og/bin/gs_guc set -D /data/data_og \
-c "pgxc_node_name='og18_6432'"

启动备库

$ /opt/og/bin/gs_ctl start \
-D /data/data_og \
-M standby \
-l og_server.log &

查询状态

分别在主备机器执行上述查询,可看到对应的角色及状体即为正常。

$ /opt/og/bin/gs_ctl query \
-D /data/data_og

如下主库节点查询状态

 HA state:local_role                     : Primarystatic_connections             : 1db_state                       : Normaldetail_information             : Normal

如下备库节点查询状态

 HA state:local_role                     : Standbystatic_connections             : 1db_state                       : Normaldetail_information             : Normal

主备测试

数据读写测试

主备正常切换

只能在备库执行

$ /opt/og/bin/gs_ctl switchover \
-D /data/data_og

双主恢复

如果查询两个库都是主,则需要恢复

1.确定降级的备库,执行服务关闭操作。

$ /opt/og/bin/gs_ctl stop \
-D /data/data_og

2.使用build命令重建

$ /opt/og/bin/gs_ctl build \
-D /data/data_og \
-b incremental

这里先选择增量模式重建,如果增量模式失败再尝试全备方式

$ /opt/og/bin/gs_ctl build \
-D /data/data_og \
-b full

墨天轮原文链接:https://www.modb.pro/db/27601(复制到浏览器中打开或者点击“阅读原文”)

推荐阅读:144页!分享珍藏已久的数据库技术年刊

视频号,新的分享时代,关注我们,看看有什么新发现?

数据和云

ID:OraNews

如有收获,请划至底部,点击“在看”,谢谢!

点击下图查看更多 ↓

云和恩墨大讲堂 | 一个分享交流的地方

长按,识别二维码,加入万人交流社群

请备注:云和恩墨大讲堂

  点个“在看”

你的喜欢会被看到❤

抢鲜体验:openGauss从源码到主备相关推荐

  1. 今晚直播丨抢鲜体验-openGauss入门

    简介 早在2019年的华为HDC大会,官方就已经正式宣布,华为将于2020年6月30日,开源其单机数据库openGauss,这一承诺准时兑现.openGauss是一款开源关系型数据库管理系统,采用木兰 ...

  2. 直播丨抢鲜体验-openGauss入门

    简介 早在2019年的华为HDC大会,官方就已经正式宣布,华为将于2020年6月30日,开源其单机数据库openGauss,这一承诺准时兑现.openGauss是一款开源关系型数据库管理系统,采用木兰 ...

  3. openGauss数据库源码解析系列文章——openGauss开发快速入门(二)

    在上一篇openGauss数据库源码解析系列文章--openGauss开发快速入门(上)中,我们介绍了openGauss的安装部署方法,本篇将具体介绍openGauss基本使用. 二. openGau ...

  4. Python 3.0 抢“鲜”体验

    Python 3.0 抢"鲜"体验 欢迎转载.打印.分发等,但不可用于商业用途,任何时候必须保留全文完整,并声明转载自恋花蝶的博客(http://blog.csdn.net/lan ...

  5. Python 3.0 抢“鲜”体验 1

    Python 3.0 抢"鲜"体验 id="alimamaifrm" style="WIDTH: 750px; HEIGHT: 110px" ...

  6. 万象优鲜生鲜配送系统源码

    万象优鲜生鲜配送系统源码 概览-查看订单销售情况.新增会员.售后情况.库存预警.数据分析图等 平台总览上面一栏可以查看订单状态并点击快速进入-待发货/售后/昨日支付订单数/库存预警/昨日交易额/昨日退 ...

  7. 驭势“AI司机”融入城市生活,服贸会抢“鲜”体验

    9月2-7日,2021年中国国际服务贸易交易会(以下简称"服贸会")在北京正式开幕. 本次交易会主题为"数字开启未来,服务促进发展",驭势科技受邀参展" ...

  8. 万象优鲜生鲜配送系统源码 团队开发

    万象优鲜生鲜配送系统源码 团队开发 小程序前端演示 系统功能展示 后台首页展示 后台商品页展示 订单页展示 商品库展示 应用页展示 渠道页展示 硬件对接页展示

  9. 仿新浪抢工长装修招标网站源码老工长装修网源码装修网站源码

    仿新浪抢工长装修招标网站源码 老工长装修网源码 装修网站源码 源码虽然不大但是没有错版,测试运行都是很正常的.希望大家能喜欢. 源码里面的配图我都没有改,很多失效的图大家可以自行去添加... 下载链接 ...

最新文章

  1. [汇编语言学习笔记][第二章寄存器]
  2. RestHighLevelClient 批量插入 elasticsearch 7.9 版本警告
  3. vs2008安装部署软件过程
  4. linux ftp下载文件_Linux系统中10个使用Wget命令下载文件示例
  5. Eclipse+jetty+maven+Struts2+Spring2+Hibernate3+annotation注册系统V1.0
  6. python的数据模型_python高级(一)—— python数据模型(特殊方法)
  7. 朝鲜黑客被指从黑市购买Oracle Solaris 0day,入侵企业网络
  8. Struts2,在Action中使用session
  9. AcWing 839. 模拟堆
  10. uni-app引入极光im
  11. fh 幅频特性曲线怎么画fl_只要有上、下限截止频率fH、fL、中频电压增益和(),就可绘出基本共射放大电路的幅频特性曲线...
  12. Java小项目(三)---汽车租赁系统(面向对象)
  13. 新概念英语第三册单词
  14. 国外LEAD赚钱提现到WMZ,附赚钱项目
  15. 京东回应显卡售后传闻;​IBM发布第一个2纳米芯片;苹果以工程师数量评估收购对象 | EA周报...
  16. 如何用好你的高端内存条?什么是XMP?
  17. ENSP—NAT综合实验
  18. 微信公众号 接口测试平台 获取自定义菜单教程
  19. 获取当前客户端ip,并且根据ip获取当前城市和天气
  20. 靶机渗透练习73-DC5

热门文章

  1. 使用devops的团队_具有DevOps心态的团队的蓝图
  2. latex ht在下一页_告诉我们在下一本出色的领导力著作中要包括的内容
  3. 某一年某一年_过去一年里有关开放式组织的5个最受欢迎的故事
  4. 把冰卖给爱斯基摩人_爱斯基摩人使用冰屋应用程序来节省资源
  5. (39)css3实现轮播图效果
  6. JavaScript求最小公倍数
  7. JSON语法之JSON 对象
  8. SLAM Cartographer(14)Global SLAM的主线业务
  9. php mysql 框架 php5.2_简单快速安装Apache+PHP+MySql服务环境(四)—— 将php版本升级到7.2...
  10. Django周总结一