【openGauss】使用Oracle VM VirtualBOX安装openEuler操作系统并手动安装MogDB主备
前言
本文参考MogDB官方安装文档中的“手动安装”https://docs.mogdb.io/zh/mogdb/v3.0/manual-installation,
使用Oracle VM VirtualBOX虚拟机软件,安装两台openEuler操作系统的虚拟机,并安装MogDB一主一备环境
先说我遇到的坑
- 在虚拟机硬件配置中,默认是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.
-
Oracle VM VirtualBOX这款虚拟机软件,不像vmware一样在安装完操作系统后会自动修改启动顺序,所以安装完操作系统后,点重启,又会进入操作系统安装界面,需要在重启时把安装光盘卸掉
-
虚拟机需要添加两个网卡,一个仅主机,一个网络地址转换
-
在操作系统内,可能需要手动启动网卡连接,否则获取不到ip,需要确保两张网卡都处于连接状态
先运行
nmcli
如果发现有disconnect的网卡,则需要执行下列命令开启对应的网卡,比如要开启名称为"enp0s8"的网卡
nmcli device connect "enp0s8"
- 固定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这个文件也要进行修改。
- 当机器性能不足的情况下,根据官方文档中执行数据库重启操作时,可能会卡很久,因此建议前面的主库先不要启动
- 在执行官方文档中的"将主库的配置文件传到备库"时,是需要输入yes确认和输入密码的,如果前面都是按文档复制粘贴操作,那么密码为 Enmo@123
- 在安装中可能会遇到各种未知问题,由于Oracle VM VirtualBOX这个软件可以直接克隆虚拟机,因此可以在一些需要耗时比较长或者操作比较麻烦的步骤完成后(比如刚刚安装完操作系统重启后),及时做个克隆,以防后面操作失误又得重头开始
开始写流水账
一、介质准备
- 下载并安装Oracle VM VirtualBOX,注意下载对应操作系统的(这个软件的安装步骤我就不写了,反正一路下一步就好了)
https://www.virtualbox.org/wiki/Downloads - 下载操作系统镜像,此处使用的是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 - 下载数据库安装包,此处使用的是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母机模板
- 打开已安装的Oracle VM VirtualBox软件,点击控制-新建
- 输入虚拟机名称,选择操作系统类型为Linux,版本为Other Linux (64-bit),点击下一步
- 设置内存大小为2048MB,点下一步
- 选择现在创建虚拟硬盘,点创建
- 选择VDI,点下一步
- 选择动态分配,点下一步
- 选择20GB(8GB其实也能装,不过建议大点),点击创建
- 选中虚拟机,点击设置
- 切换到系统,把cpu改成4个(至少2个)
- 切换到存储,点击“没有盘片”,再点击最右边的光盘图标,选择虚拟盘
- 选择下载好的系统镜像
- 切换到网络,网卡1启用,连接方式改为“仅主机(Host-Only)网络
- 网卡2启用,连接方式改为"网络地址转换(NAT)",点击OK退出设置界面
- 点击启动
- 选第一个,回车
- 选择中文,点继续
- 点击安装目的地,点击完成
- 点击根密码,输入两次密码,点击完成
- 点击开始安装,然后等
- 安装完成后,点击左下角的重启系统
- 在启动前,迅速点击"设备-分配光驱-移除虚拟盘"
- 启动后,输入用户名root,回车,输入密码,回车
- 输入nmcli 回车,找到显示为disconnect的网卡名称
- 根据以上disconnect的网卡名称,执行以下命令启用网卡
nmcli device connect "enp0s3"
nmcli device connect "enp0s8"
再次执行 nmcli,得到enp0s3的ip,此时可以改用其他ssh连接工具方便操作,比如xshell
25. 修改网卡配置文件,把ONBOOT参数的值改为yes,并保存
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
两个网卡文件都要改
vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
- 执行以下命令安装相关依赖和常用工具
yum install -y tar vim libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel libnsl openssh net-tools
27. 执行以下命令关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce=0
sed -i '/^SELINUX=/c'SELINUX=disabled /etc/selinux/config
- 点击控制-正常关机
三、创建数据库母机模板
- 鼠标右键选择虚拟机,点击复制
- 改个名称,点下一步
- 选择完全复制,点下一步
- 等待复制完成(此处彩蛋为克隆羊多莉~)
- 选择复制出来的虚拟机,点击启动
- 输入用户名密码进入,得到ip,此时可以使用其他工具进行ssh连接
- 创建相关用户、组、目录
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
- 上传安装包并解压
上传 MogDB-3.0.0-openEuler-64bit.tar.bz2 至 /opt/mogdb/software
(不要问我怎么上传,自己去搜...)
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
- 配置环境变量
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
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
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
12. 点击控制-正常关机
四、创建数据库主备
- 选择刚刚创建的数据库母机模板,再执行一次 "三.1~三.6" ,新的机器作为主机
- 再执行一次 "四.1",新的机器作为备机
- 主机执行下面的命令,注意修改两处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
4.在主机执行,复制主机配置文件到备机
scp /opt/mogdb/data/pg_hba.conf /opt/mogdb/data/postgresql.conf 192.168.56.114:/opt/mogdb/data/
输入yes 回车
输入密码 Enmo@123 回车
如图所示,配置文件已经复制到了备机
- 启动主库(注意此处和官方文档不一样,我这里是启动,而非重启)
gs_ctl start -D /opt/mogdb/data/ -M primary
6. 切换到备机,修改备库配置文件
vi /opt/mogdb/data/postgresql.conf
直接翻到最下,对调两个ip
7. 启动备库
gs_ctl build -D /opt/mogdb/data/ -b full -M standby
五、验证主备库同步
1.在主机上本地连接主库
gsql -d postgres -p 26000
2. 创建用户并授权
create user mogdb with login password "Enmo@123" ;
grant all privileges to mogdb;
ALTER USER mogdb MONADMIN;
\q
3. 使用该用户远程连接备库
gsql -d postgres -h 192.168.56.114 -U mogdb -p 26000 -W Enmo@123
成功连接,说明备库自动同步创建了该用户,至此,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
- 本文作者: DarkAthena
- 本文链接: https://www.darkathena.top/archives/mogdb-primary-standby-install
- 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
posted on 2022-05-19 02:33 DarkAthena 阅读(151) 评论(0) 编辑 收藏 举报