暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

MogDB学习笔记-环境准备及单实例安装

1212

写在前面

近两年随着国产数据库的迅猛发展,伴随着项目中很多客户都在搞信创,我自己也学习了两个国产数据库,TidB和OceanBase,之前是一直从事Oracle和Mysql的dba,Tidb和Oceanbase也都是高度兼容Mysql协议,学习起来还是比较好入手,至于PG派系因为项目中没有用到所以一直是一个空白,趁着墨天轮举办这次正文活动,也慢慢了解一下PG派系。

安装前的了解

我在学习一个新数据库之前会大致了解一下数据库的大致概念,并且与我以前的知识体系做一个对比理解。比如这个数据库属于传统的数据库还是分布式数据库,高可用是share disk 还是share nothing,内存的管理方式、数据的存储方式,高可用和灾备架构。

以下是我对MogDB的粗浅了解,初次学习欢迎大家指正。

  1. MogDB是一个传统的关系型数据库;
  2. 在存储上支持行列混合存储,这样对HTAP有了一定的支持。另外还支持MOT基于内存的存储引擎;
  3. 灾备是用了主从复制结构,与Oracle类似,支持最大性能模式、最大可用模式、最打性能模式。
  4. 关于数据库对象的话表、视图、存储过程、物化视图、函数、触发器、自治事务、资源管理器、分区等都支持。
  5. 在一些特性上像闪回、物理备份、逻辑备份、慢查询、WDR(类似于oracle的AWR)、数据库审计、Hint也都支持。
  6. 高可用方案MogHA,应该类似于Mysql的MGR。
  7. 当然还有很多,就在学习中慢慢体会吧

环境准备

环境要求请参考:

https://docs.mogdb.io/zh/mogdb/v3.0/environment-requirement

我使用的操作系统是CentOS7进行安装,下载地址:

http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/

虚拟机环境如下

IP

10.80.9.250

内存

4G

磁盘大小

40G

安装Centos7

使用虚拟机安装centos7,我使用的是Oracle VM virtualBx

选择 Install CentOS 7

选择英文,continue

配置时区、添加安装包、配置ip等,此处也可以不进行设置,系统装完以后可以在设置和安装

设置root密码和创建用户,我一般不在安装的时候创建用户,只是修改一下root密码

安装完成后reboot

使用root登录操作系统

配置环境

  1. 配置hostname

[root@mogdb ~]# hostnamectl set-hotname mogdb

  1. 配置IP地址

[root@mogdb ~]# nmcli connection modify enp0s3 ipv4.addresses 10.80.9.250/24 ipv4.gateway 10.80.0.1 ipv4.method manual autoconnect yes

  1. 配置yum源

挂载磁盘镜像

[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

  1. 关闭防火墙

[root@mogdb ~]# systemctl status firewalld.service

[root@mogdb ~]# systemctl stop firewalld.service

[root@mogdb ~]# systemctl status firewalld.service

[root@mogdb ~]# systemctl disable firewalld.service

  1. 关闭seLinux

[root@mogdb ~]# vi /etc/selinux/config

修改“SELINUX”的值“disabled”

需要重启生效,也可以临时生效

[root@mogdb ~]# setenforce 0

  1. 设置网卡MTU值

[root@mogdb ~]# ifconfig enp0s3 mtu 8192

  1. 其他环境配置请参考官方文档

https://docs.mogdb.io/zh/mogdb/v3.0/os-configuration

其他的我暂时没有设置,先安装试一下

  1. 安装MogDB用到的依赖包

yum install libaio-devel

yum install flex

yum install bison

yum install ncurses-devel

yum install glibc-devel

yum install patch

yum install redhat-lsb-core

yum install readline-devel

yum install libnsl(centos不需要)

yum install openSSH

yum install expect

开始安装

安装pkt

官方手册:https://docs.mogdb.io/zh/ptk/v0.2/install

我这里选择的是离线安装

  1. 上传pkt安装包,

E:\软件工具\开发相关\MogDb>sftp root@10.80.9.250:/home/mogdb/

The authenticity of host '10.80.9.250 (10.80.9.250)' can't be established.

ECDSA key fingerprint is SHA256:6G1wBa7o1K/1wL50slhR/P24QM+mG7ZY9YvgY6xh9ME.

Are you sure you want to continue connecting (yes/no/[fingerprint])?

Warning: Permanently added '10.80.9.250' (ECDSA) to the list of known hosts.

root@10.80.9.250's password:

Connected to 10.80.9.250.

Changing to: /home/mogdb/

sftp> put ptk_linux_x86_64.tar.gz

Uploading ptk_linux_x86_64.tar.gz to /home/mogdb/ptk_linux_x86_64.tar.gz

ptk_linux_x86_64.tar.gz 100% 4858KB 21.9MB/s 00:00

  1. 切换用户并解压(root用户)

[root@mogdb soft]# tar -zxvf ptk_linux_x86_64.tar.gz

[root@mogdb ~]# mkdir -p $HOME/.ptk/bin/

cp /soft/ptk $HOME/.ptk/bin/

  1. 修改环境变量(root用户)

[root@mogdb ~]# vi /etc/profile

增加以下两行

PATH=$PATH:$HOME/.ptk/bin/

export PATH


[root@mogdb ~]# source /etc/profile

  1. 配置yaml文件(root用户)

[root@mogdb ~]# mkdir -p /opt/mogdb

[root@mogdb ~]# vi config.yaml


global:

cluster_name: mogdb1

user: omm

group: omm

base_dir: /opt/mogdb

db_servers:

- host: 10.80.9.250

db_port: 26000

  1. 安装前检查(root用户)

[root@mogdb ~]# ptk checkos -f config.yaml

安装失败,失败信息如下

[root@mogdb soft]# ptk checkos -f config.yaml

INFO[2022-08-04T13:07:56.180] prechecking dependent tools...

INFO[2022-08-04T13:07:56.213] platform: centos_7_64bit host=10.80.9.250

INFO[2022-08-04T13:07:56.220] kernel version: 3.10.0-1160.71.1.el7.x86_64 host=10.80.9.250

INFO[2022-08-04T13:07:56.285] locale: LANG=en_US.UTF-8 host=10.80.9.250

INFO[2022-08-04T13:07:56.296] timezone: +0800 host=10.80.9.250

INFO[2022-08-04T13:07:56.307] swap memory 3145724kB, total memory 4045232kB host=10.80.9.250

WARN[2022-08-04T13:07:56.315] net.ipv4.tcp_keepalive_time=7200, expect 30 host=10.80.9.250

WARN[2022-08-04T13:07:56.324] net.ipv4.tcp_retries1=3, expect 5 host=10.80.9.250

WARN[2022-08-04T13:07:56.365] net.ipv4.tcp_keepalive_intvl=75, expect 30 host=10.80.9.250

WARN[2022-08-04T13:07:56.388] net.ipv4.tcp_max_syn_backlog=128, expect 65535 host=10.80.9.250

WARN[2022-08-04T13:07:56.395] net.ipv4.tcp_tw_reuse=0, expect 1 host=10.80.9.250

WARN[2022-08-04T13:07:56.404] net.ipv4.tcp_tw_recycle=0, expect 1 host=10.80.9.250

WARN[2022-08-04T13:07:56.413] net.core.netdev_max_backlog=1000, expect 65535 host=10.80.9.250

WARN[2022-08-04T13:07:56.421] net.core.wmem_default=212992, expect 21299200 host=10.80.9.250

WARN[2022-08-04T13:07:56.439] net.ipv4.tcp_rmem=4096 87380 6291456, expect 8192 250000 16777216 host=10.80.9.250

WARN[2022-08-04T13:07:56.449] net.ipv4.tcp_wmem=4096 16384 4194304, expect 8192 250000 16777216 host=10.80.9.250

WARN[2022-08-04T13:07:56.458] net.ipv4.tcp_syn_retries=6, expect 5 host=10.80.9.250

WARN[2022-08-04T13:07:56.474] net.ipv4.tcp_retries2=15, expect 12 host=10.80.9.250

WARN[2022-08-04T13:07:56.494] vm.min_free_kbytes=67584, expect 202261 host=10.80.9.250

WARN[2022-08-04T13:07:56.518] net.core.rmem_max=212992, expect 21299200 host=10.80.9.250

WARN[2022-08-04T13:07:56.526] net.core.rmem_default=212992, expect 21299200 host=10.80.9.250

WARN[2022-08-04T13:07:56.535] kernel.sem=250 32000 32 128, expect 250 6400000 1000 25600 host=10.80.9.250

WARN[2022-08-04T13:07:56.562] net.core.somaxconn=128, expect 65535 host=10.80.9.250

WARN[2022-08-04T13:07:56.571] net.core.wmem_max=212992, expect 21299200 host=10.80.9.250

INFO[2022-08-04T13:07:56.571] check kernel.core_pattern host=10.80.9.250

INFO[2022-08-04T13:07:56.586] check removeIPC value host=10.80.9.250

WARN[2022-08-04T13:07:56.694] device(/dev/sda) readahead value=8192, expect 16384. host=10.80.9.250

WARN[2022-08-04T13:07:56.752] device(dm-0) 'IO Request'=128, expect 256 host=10.80.9.250

WARN[2022-08-04T13:07:56.753] device(dm-1) 'IO Request'=128, expect 256 host=10.80.9.250

WARN[2022-08-04T13:07:56.753] device(sda) 'IO Request'=128, expect 256 host=10.80.9.250

WARN[2022-08-04T13:07:56.753] device(sr0) 'IO Request'=128, expect 256 host=10.80.9.250

[host 10.80.9.250]: not found package: numactl

INFO[2022-08-04T13:08:04.115] check port 26000 host=10.80.9.250

INFO[2022-08-04T13:08:04.267] port 26000 is free host=10.80.9.250

INFO[2022-08-04T13:08:04.268] write fix os script to root_fix_os.2022.0804.130804.sh successfully

INFO[2022-08-04T13:08:04.268] all checkers finished

# Check Results

Item | Level

------------------------------------+-----------

A1.Check_OS_Version | OK

A2.Check_Kernel_Version | OK

A3.Check_Unicode | OK

A4.Check_TimeZone | OK

A5.Check_Swap_Memory_Configure | OK

A6.Check_SysCtl_Parameter | Abnormal

A7.Check_FileSystem_Configure | OK

A8.Check_Disk_Configure | OK

A9.Check_Logical_Block | OK

A9.Check_BlockDev_Configure | Warning

A10.Check_IO_Request | Warning

A10.Check_Asynchronous_IO_Request | OK

A10.Check_IO_Configure | OK

A11.Check_Network_Configure | OK

A12.Check_Time_Consistency | OK

A13.Check_Firewall_Service | OK

A14.Check_THP_Service | OK

A15.Check_Dependent_Package | Abnormal

A16.Check_CPU_Instruction_Set | Abnormal

A17.Check_Port | OK

Total count 20, abnormal count 3, warning count 2

Failed to check os, can’t perform installation unless fix all the abnormal items

You can use 'ptk checkos -i ITEM --detail' to see detail message

Please check root_fix_os.[TIMESTAMP].sh for commands to resolve.

其中需要关注level级别为Abnormal的错误项

通过输出可以看到MogDB提供了一个修复脚本 root_fix_os.2022.0804.130804.sh,先执行一下看看,可以看到这个脚本安装了一个rpm包

再次执行检查

还有一个中断项

A16.Check_CPU_Instruction_Set | Abnormal

然后仍然提供了一个脚本

执行ptk checkos -i A16 --detail查看检查详细信息

我的虚拟机不支持

bmi2指令集(CentOS)

执行lscpu | grep bmi2命令查看是否支持bmi2指令集

先不管了一会跳过这个检查试一下

  1. 安装Mogdb(root)

[root@mogdb soft]# ptk install -f config.yaml --pkg ./MogDB-3.0.0-CentOS-x86_64.tar.gz --skip-check-os

整个安装过程比较简单,只需要确认集群拓扑文件是否正确 Y,输入复杂密码就成功了

输入ptk ls检查查看安装的实例信息

访问数据库

su - omm

[root@mogdb soft]# su - omm

[omm@mogdb ~]$ gsql -d postgres -p 26000

最后

安装成功了,开启Mogdb的学习之旅吧

最后修改时间:2022-08-04 17:22:14
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论