侧边栏壁纸
  • 累计撰写 125 篇文章
  • 累计创建 13 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

【openGauss】使用Oracle VM VirtualBOX安装openEuler操作系统并手动安装MogDB主备

DarkAthena
2022-05-18 / 0 评论 / 0 点赞 / 809 阅读 / 14575 字

前言

本文参考MogDB官方安装文档中的“手动安装”https://docs.mogdb.io/zh/mogdb/v3.0/manual-installation
使用Oracle VM VirtualBOX虚拟机软件,安装两台openEuler操作系统的虚拟机,并安装MogDB一主一备环境

先说我遇到的坑

  1. 在虚拟机硬件配置中,默认是1个cpu,操作系统是可以安装成功的,也可以正常启动,但是启动数据库时会报错,设置2个cpu后就没有报错了(我反复安装了七八次操作系统,还更换了镜像版本,使用同样的安装流程在vmware中没有报错,然后各种修改硬件配置,包括增加内存和磁盘大小,报错依旧,当时一度怀疑是虚拟机软件的问题,都打算放弃使用VirtualBOX了,抱着最后一丝希望增加了cpu数,结果成功启动了)

! ERROR: floating-point exception
! DETAIL: An invalid floating-point operation was signaled. This probably
means an out-of-range result or an invalid operation, such as division by zero.

  1. Oracle VM VirtualBOX这款虚拟机软件,不像vmware一样在安装完操作系统后会自动修改启动顺序,所以安装完操作系统后,点重启,又会进入操作系统安装界面,需要在重启时把安装光盘卸掉

  2. 虚拟机需要添加两个网卡,一个仅主机,一个网络地址转换

  3. 在操作系统内,可能需要手动启动网卡连接,否则获取不到ip,需要确保两张网卡都处于连接状态
    先运行

nmcli

如果发现有disconnect的网卡,则需要执行下列命令开启对应的网卡,比如要开启名称为"enp0s8"的网卡

nmcli device connect "enp0s8"
  1. 固定ip,并调整网卡为开机自动,要在网卡启动后,修改对应的配置文件,网卡没启动的话就找不到配置文件(此处参考openEuler官方文档https://docs.openeuler.org/zh/docs/22.03_LTS/docs/Administration/%E9%85%8D%E7%BD%AE%E7%BD%91%E7%BB%9C.html#配置静态网络

查看 /etc/sysconfig/network-scripts目录,一个网卡一个文件,比如我这里文件分别为ifcfg-enp0s3和ifcfg-enp0s8

 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

修改 ONBOOT=yes
修改 BOOTPROTO=none
增加 IPADDR=当前本机ip地址
增加 PREFIX=24

同样ifcfg-enp0s8这个文件也要进行修改。

  1. 当机器性能不足的情况下,根据官方文档中执行数据库重启操作时,可能会卡很久,因此建议前面的主库先不要启动
  2. 在执行官方文档中的"将主库的配置文件传到备库"时,是需要输入yes确认和输入密码的,如果前面都是按文档复制粘贴操作,那么密码为 Enmo@123
  3. 在安装中可能会遇到各种未知问题,由于Oracle VM VirtualBOX这个软件可以直接克隆虚拟机,因此可以在一些需要耗时比较长或者操作比较麻烦的步骤完成后(比如刚刚安装完操作系统重启后),及时做个克隆,以防后面操作失误又得重头开始

开始写流水账

一、介质准备

  1. 下载并安装Oracle VM VirtualBOX,注意下载对应操作系统的(这个软件的安装步骤我就不写了,反正一路下一步就好了)
    https://www.virtualbox.org/wiki/Downloads
  2. 下载操作系统镜像,此处使用的是openEuler-20.03-LTS-SP2-x86_64版本
    https://repo.openeuler.org/openEuler-20.03-LTS-SP2/ISO/x86_64/openEuler-20.03-LTS-SP2-x86_64-dvd.iso
  3. 下载数据库安装包,此处使用的是MogDB-3.0.0-openEuler-x86_64版本(当前该版本处于测试阶段,预计6月将会开放下载,在此之前可使用2.1.1版本)
    https://www.mogdb.io/downloads/mogdb/
    MogDB-3.0.0-openEuler-x86_64.tar
    并解压出
    MogDB-3.0.0-openEuler-64bit.tar.bz2 这个文件

二、创建openEuler母机模板

  1. 打开已安装的Oracle VM VirtualBox软件,点击控制-新建
    image-1652888977837
  2. 输入虚拟机名称,选择操作系统类型为Linux,版本为Other Linux (64-bit),点击下一步
    image-1652889040152
  3. 设置内存大小为2048MB,点下一步
    image-1652889146453
  4. 选择现在创建虚拟硬盘,点创建
    image-1652889194293
  5. 选择VDI,点下一步
    image-1652889267936
  6. 选择动态分配,点下一步
    image-1652889255286
  7. 选择20GB(8GB其实也能装,不过建议大点),点击创建
    image-1652889504257
  8. 选中虚拟机,点击设置
    image-1652889618601
  9. 切换到系统,把cpu改成4个(至少2个)
    image-1652889720407
  10. 切换到存储,点击“没有盘片”,再点击最右边的光盘图标,选择虚拟盘
    image-1652889777581
  11. 选择下载好的系统镜像
    image-1652889857863
  12. 切换到网络,网卡1启用,连接方式改为“仅主机(Host-Only)网络
    image-1652889912722
  13. 网卡2启用,连接方式改为"网络地址转换(NAT)",点击OK退出设置界面
    image-1652889983522
  14. 点击启动
    image-1652890130737
  15. 选第一个,回车
    image-1652890168045
  16. 选择中文,点继续
    image-1652890413967
    image-1652890891653
  17. 点击安装目的地,点击完成
    image-1652890909876
  18. 点击根密码,输入两次密码,点击完成
    image-1652890940670
  19. 点击开始安装,然后等
    image-1652890966443
  20. 安装完成后,点击左下角的重启系统
    image-1652891675781
  21. 在启动前,迅速点击"设备-分配光驱-移除虚拟盘"
    image-1652890693703
  22. 启动后,输入用户名root,回车,输入密码,回车
    image-1652892027698
  23. 输入nmcli 回车,找到显示为disconnect的网卡名称
    image-1652892085210
  24. 根据以上disconnect的网卡名称,执行以下命令启用网卡
nmcli device connect "enp0s3"
nmcli device connect "enp0s8"

image-1652892158292
再次执行 nmcli,得到enp0s3的ip,此时可以改用其他ssh连接工具方便操作,比如xshell
image-1652892215613
25. 修改网卡配置文件,把ONBOOT参数的值改为yes,并保存

 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

image-1652893033733
image-1652893074167
两个网卡文件都要改

 vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
  1. 执行以下命令安装相关依赖和常用工具
yum install -y tar vim libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel libnsl openssh net-tools

image-1652892361891
image-1652892632791
27. 执行以下命令关闭防火墙

systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce=0
sed -i '/^SELINUX=/c'SELINUX=disabled /etc/selinux/config

image-1652896474489

  1. 点击控制-正常关机
    image-1652891373842

三、创建数据库母机模板

  1. 鼠标右键选择虚拟机,点击复制
    image-1652891455898
  2. 改个名称,点下一步
    image-1652891496833
  3. 选择完全复制,点下一步
    image-1652891532875
  4. 等待复制完成(此处彩蛋为克隆羊多莉~)
    image-1652892686246
  5. 选择复制出来的虚拟机,点击启动
    image-1652892711871
  6. 输入用户名密码进入,得到ip,此时可以使用其他工具进行ssh连接
    image-1652892809201
    image-1652893314899
  7. 创建相关用户、组、目录
groupadd dbgrp -g 2000
useradd omm -g 2000 -u 2000
echo "Enmo@123" | passwd --stdin omm
mkdir -p /opt/mogdb/software
mkdir -p /opt/mogdb/data
chown -R omm:dbgrp /opt/mogdb
  1. 上传安装包并解压
    上传 MogDB-3.0.0-openEuler-64bit.tar.bz2 至 /opt/mogdb/software
    (不要问我怎么上传,自己去搜…)
    image-1652893777987
cd /opt/mogdb/software/
chown omm:dbgrp MogDB-3.0.0-openEuler-64bit.tar.bz2
su - omm
cd /opt/mogdb/software/
tar -xf MogDB-3.0.0-openEuler-64bit.tar.bz2
  1. 配置环境变量
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

image-1652895514365
10. 初始化数据库

cd /opt/mogdb/software
bin/gs_initdb --pgdata=/opt/mogdb/data --nodename=primary --pwpasswd=Enmo@123 --encoding=UTF-8 --locale=en_US.UTF-8

image-1652895446083
11. 修改参数

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

image-1652895602558
12. 点击控制-正常关机
image-1652891373842

四、创建数据库主备

  1. 选择刚刚创建的数据库母机模板,再执行一次 “三.1~三.6” ,新的机器作为主机
    image-1652894802184
  2. 再执行一次 “四.1”,新的机器作为备机
    image-1652894585326
  3. 主机执行下面的命令,注意修改两处ip,localhost为本机(主机),remotehost为另一台机(备机)
su - omm

echo "replconninfo1='localhost=192.168.56.113 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=192.168.56.114 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004'
" >> /opt/mogdb/data/postgresql.conf

image-1652895234087
4.在主机执行,复制主机配置文件到备机

scp /opt/mogdb/data/pg_hba.conf /opt/mogdb/data/postgresql.conf 192.168.56.114:/opt/mogdb/data/

输入yes 回车
image-1652895791315
输入密码 Enmo@123 回车
image-1652895807468
如图所示,配置文件已经复制到了备机
image-1652895828758

  1. 启动主库(注意此处和官方文档不一样,我这里是启动,而非重启)
gs_ctl start -D /opt/mogdb/data/ -M primary

image-1652896040605
6. 切换到备机,修改备库配置文件

vi /opt/mogdb/data/postgresql.conf

直接翻到最下,对调两个ip
image-1652896209122
7. 启动备库

gs_ctl build -D /opt/mogdb/data/ -b full -M standby

image-1652896546430

五、验证主备库同步

1.在主机上本地连接主库

gsql -d postgres -p 26000

image-1652896666059
2. 创建用户并授权

create user mogdb with login password "Enmo@123" ;
grant all privileges to mogdb;
ALTER USER mogdb MONADMIN;
\q

image-1652896835482
3. 使用该用户远程连接备库

gsql -d postgres -h 192.168.56.114 -U mogdb -p 26000 -W Enmo@123

image-1652896853208

成功连接,说明备库自动同步创建了该用户,至此,MogDB手动主备已安装完成。
另外,可参考我文章中最前面的坑里说到的 固定ip,把两台机器的ip固定下来,避免重启后,ip变了。
另外,由于未使用管理工具,在服务器重启后,数据库要手动启动
主机要手动执行

su - omm
gs_ctl start -D /opt/mogdb/data/ -M primary

备机要手动执行

su - omm
gs_ctl build -D /opt/mogdb/data/ -b full -M standby
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
博主关闭了所有页面的评论