一、环境准备
| 节点类别 | 主机名 | IP | 端口 |
|---|---|---|---|
| 主节点 | ptkmog1 | 192.168.3.63 | 15400 |
| 备节点1 | ptkmog2 | 192.168.3.64 | 15400 |
| 备节点2 | ptkmog3 | 192.168.3.65 | 15400 |
二、关闭防火墙和透明大页
1、修改操作系统配置
1) 关闭 SELINUX
修改 /etc/selinux/config文件中的“SELINUX”值为“disabled”
2) 关闭防火墙并禁止开机重启
systemctl disable firewalld.service
systemctl stop firewalld.service
3) 修改主机名
在每个服务器节点修改hostname,以主机为例:
hostnamectl set-hostname ptkmog1
另外两台备机分别设置为ptkmog2和ptkmog3
4) 关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
三、安装操作系统依赖包
3.1配置yum,安装系统包
mount /dev/cdrom /media/cdrom
vi /etc/yum.repos.d/oracle.repo
[Server]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=file:///media/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
yum install -y bzip2 libaio-devel flex bison ncurses-devel glibc-devel libxml2-devel patch redhat-lsb-core unzip gcc gcc-c++ perl openssl-devel libffi-devel libtool zlib-devel
yum install -y libaio-devel gcc gcc-c++ zlib-devel expect
3.2安装Python3(每个节点)root执行
# 解压并安装python3
[root@mogdb1 ~]# cd /enmo/soft
[root@mogdb1 soft]# tar -zxvf python3-rpm.tar.gz
# 配置yum源
[root@mogdb1 ~]# cat > /etc/yum.repos.d/enmo.repo << EOF
[Server]
name=Server
baseurl=file:///media/cdrom
enabled=yes
gpgcheck=0
[python3]
name=python3
baseurl=file:///enmo/soft/python3-rpm
enabled=yes
gpgcheck=0
EOF
# 执行yum安装
[root@mogdb1 ~]# yum clean all
[root@mogdb1 ~]# yum install python3 python3-devel -y
# 修改软链接
[root@mogdb1 ~]# rm -f /usr/bin/python
[root@mogdb1 ~]# ln -s /usr/bin/python3 /usr/bin/python
# 查看版本,确认安装成功
[root@mogdb1 ~]# python -V
Python 3.6.8
# 全词匹配替换,python3安装后’yum’命令执行会报错,需要修改以下配置
[root@mogdb1 ~]# sed -i "s:\<python\>:python2:g" /usr/bin/yum
[root@mogdb1 ~]# sed -i "s:\<python\>:python2:g" /usr/libexec/urlgrabber-ext-down
四、ptk安装(每个节点)root执行
[root@ptkmog1 ptk]# pwd
/opt/ptk
[root@ptkmog1 ptk]# wget https://cdn-mogdb.enmotech.com/ptk/latest/ptk_linux_x86_64.tar.gz
[root@ptkmog1 ptk]# tar xf ptk_linux_x86_64.tar.gz
[root@ptkmog1 ptk]# ls -l
[root@ptkmog1 opt]# ll
total 136040
-rw-r--r--. 1 root root 775 Apr 16 19:37 config.yaml
drwx------. 7 omm omm 63 Apr 16 19:38 mogdb
-rw-r--r--. 1 root root 139264406 Oct 11 2022 MogDB-3.0.1-CentOS-x86_64.tar.gz
drwxr-xr-x. 3 root root 110 Apr 16 16:52 ptk
[root@ptkmog1 opt]# ptk -v
PTK Version: v0.7.0 release
Go Version: go1.19.4
Build Date: 2023-04-14T23:27:12
Git Hash: 3bd0bad
[root@ptkmog1 opt]#
五、安装mogdb(仅主节点)root执行:
5.1 准备配置文件
global:
cluster_name: mogdb_cluster
user: omm
group: omm
base_dir: /opt/mogdb
db_servers:
- host: 192.168.3.63
db_port: 15400
role: primary
ssh_option:
port: 22
user: root
password: pTk6ZGFmMTk1Yjg8QD1CPUU/QnJ1VjhaVEliZEtvT0pXcnhEQk5WN2pnUHFDeXp3bGs1T09mSkRUdWtva00=
- host: 192.168.3.64
db_port: 15400
role: standby
ssh_option:
port: 22
user: root
password: pTk6ZGFmMTk1Yjg8QD1CPUU/QmVUTTJiUF9GT3BjNUN6bDc2QUNhWnlMOHkwRkRseE9NbWZFcjdTaVd2NkE=
- host: 192.168.3.65
db_port: 15400
role: standby
ssh_option:
port: 22
user: root
password: pTk6ZGFmMTk1Yjg8QD1CPUU/QmFqODVlNk9FMmFfaUxsQ3d0dmlZNkEtSU55dktHbjJOZDBXWUFheU9RTU0=
#####注意配置文件中的主机名和ip
5.2 检查环境
[root@ptkmog1 opt]# ptk checkos -f config.yaml
INFO[2023-04-16T19:32:19.704] prechecking dependent tools...
INFO[2023-04-16T19:32:19.855] [192.168.3.63][omm] kernel version: 3.10.0-957.el7.x86_64
INFO[2023-04-16T19:32:19.862] [192.168.3.64][omm] kernel version: 3.10.0-957.el7.x86_64
INFO[2023-04-16T19:32:19.863] [192.168.3.65][omm] kernel version: 3.10.0-957.el7.x86_64
INFO[2023-04-16T19:32:19.866] [192.168.3.63][omm] timezone: +0800
INFO[2023-04-16T19:32:26.231] time elapsed: 6s
# 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 | Warning
A6.Check_SysCtl_Parameter | Warning
A7.Check_FileSystem_Configure | OK
A8.Check_Disk_Configure | OK
A9.Check_BlockDev_Configure | Warning
A9.Check_Logical_Block | OK
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_Status | OK
A14.Check_THP_Status | OK
A15.Check_Dependent_Package | OK
A16.Check_CPU_Instruction_Set | OK
A17.Check_Port | OK
A18.Check_Selinux | OK
A19.Check_User_Ulimit | OK
Total count 22, abnormal count 0, warning count 4
确保输出的检查结果均为 OK 或者 Warning 。
如果有 Abnormal 的检查项出现,PTK默认会自动生成一个 root_fix_os 前缀的 Shell 脚本,您可以通过执行该 Shell 脚本来尝试自动修复异常的检查项。
大部分情况下都是可以自动修复的,如果出现特殊情况,PTK 没有兼容到,需您根据日志提示手动修正。
5.3 执行安装
[root@ptkmog1 opt]# ptk install -f config.yaml --pkg ./MogDB-3.0.1-CentOS-x86_64.tar.gz
INFO[2023-04-16T19:37:30.183] PTK Version: 0.7.0 release
INFO[2023-04-16T19:39:54.015] standbys build success
INFO[2023-04-16T19:39:54.015] launch db success
INFO[2023-04-16T19:39:54.015] clear temp dirs ...
INFO[2023-04-16T19:39:54.040] clear temp dirs success
INFO[2023-04-16T19:39:54.040] time elapsed: 2m18s
cluste_name | host | user | port | status | message
----------------+--------------+------+-------+---------------+----------
mogdb_cluster | 192.168.3.63 | omm | 15400 | start_success | success
| 192.168.3.64 | omm | 15400 | start_success | success
| 192.168.3.65 | omm | 15400 | start_success | success
六、安装验证
安装完成后,可使用omm用户通过“gsql -d postgres -p 26000 -r”命令连接MogDB数据库,其中“-p 26000”为数据库端口号,请根据实际情况替换。键入“\copyright”可查看版权信息
bash: gsql: command not found...
[root@ptkmog1 opt]# su - omm
[omm@ptkmog1 ~]$ gsql -d postgres -p 15400 -r
gsql ((MogDB 3.0.1 build 1a363ea9) compiled at 2022-08-05 17:31:04 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
MogDB=# \copyright
MogDB Database Management System
Copyright (c) Yunhe Enmo (Beijing) Information Technology Co., Ltd. Copyright 2020 , All rights reserved.
MogDB=# \q
七、状态检查
[root@ptkmog1 ~]# ptk cluster status --all
==================== cluster: "mogdb_cluster" status ====================
[ Cluster State ]
cluster_name : mogdb_cluster
cluster_state : Normal
database_version : MogDB 3.0.1 (build 1a363ea9)
[ Datanode State ]
cluster_name | id | ip | port | user | nodename | db_role | state | upstream
----------------+------+--------------+-------+------+----------+---------+--------+-----------
mogdb_cluster | 6001 | 192.168.3.63 | 15400 | omm | dn_6001 | primary | Normal | -
| 6002 | 192.168.3.64 | 15400 | omm | dn_6002 | standby | Normal | -
| 6003 | 192.168.3.65 | 15400 | omm | dn_6003 | standby | Normal | -
[root@ptkmog1 ~]#
八、 安装遇到的问题
8.1 少包 numactl
下载的地址
https://centos.pkgs.org/7/centos-x86_64/numactl-2.0.12-5.el7.x86_64.rpm.html
[root@ptkmog1 opt]# ls
config.yaml MogDB-3.0.1-CentOS-x86_64.tar.gz ptk rh root_fix_os.2023.0416.181908.sh
[root@ptkmog1 opt]# bash root_fix_os.2023.0416.181908.sh
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package numactl.x86_64 0:2.0.9-7.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================================================================================================================
Installing:
numactl x86_64 2.0.9-7.el7 Server 66 k
Transaction Summary
============================================================================================================================================================================================================================================================================================================
Install 1 Package
Total download size: 66 k
Installed size: 141 k
Downloading packages:
Error downloading packages:
numactl-2.0.9-7.el7.x86_64: [Errno 256] No more mirrors to try.
8.2 配置文件 密码加密
[root@ptkmog2 ~]# ptk encrypt 123123
123123: pTk6ZGFmMTk1Yjg8QD1CPUU/QmVUTTJiUF9GT3BjNUN6bDc2QUNhWnlMOHkwRkRseE9NbWZFcjdTaVd2NkE=
[root@ptkmog2 ~]#
九、升级(每个节点)omm执行
su - omm
gs_ctl stop
mkdir -p /opt/mogdb304
tar -xvf MogDB-3.0.4-CentOS-x86_64.tar.gz -C /opt/mogdb304/
[omm@ptkmog3 opt]$ cd mogdb304/
[omm@ptkmog3 mogdb304]$ ll
total 138032
-rw-------. 1 omm omm 65 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-cm.sha256
-rw-------. 1 omm omm 6416169 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-cm.tar.gz
-rw-------. 1 omm omm 5077926 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-Libpq.tar.gz
-rw-------. 1 omm omm 65 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-om.sha256
-rw-------. 1 omm omm 14167831 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-om.tar.gz
-rw-------. 1 omm omm 65 Mar 3 19:09 MogDB-3.0.4-CentOS-64bit.sha256
-rw-------. 1 omm omm 107212757 Mar 3 19:09 MogDB-3.0.4-CentOS-64bit.tar.gz
-rw-------. 1 omm omm 8034026 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-tools.tar.gz
-rw-------. 1 omm omm 65 Mar 3 19:10 upgrade_sql.sha256
-rw-------. 1 omm omm 410646 Mar 3 19:10 upgrade_sql.tar.gz
drwxr-xr-x. 2 root root 6 Jun 18 2018 rh
[omm@ptkmog3 opt]$ cd mogdb304
[omm@ptkmog3 mogdb304]$ ll
total 138032
-rw-------. 1 omm omm 65 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-cm.sha256
-rw-------. 1 omm omm 6416169 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-cm.tar.gz
-rw-------. 1 omm omm 5077926 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-Libpq.tar.gz
-rw-------. 1 omm omm 65 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-om.sha256
-rw-------. 1 omm omm 14167831 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-om.tar.gz
-rw-------. 1 omm omm 65 Mar 3 19:09 MogDB-3.0.4-CentOS-64bit.sha256
-rw-------. 1 omm omm 107212757 Mar 3 19:09 MogDB-3.0.4-CentOS-64bit.tar.gz
-rw-------. 1 omm omm 8034026 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-tools.tar.gz
-rw-------. 1 omm omm 65 Mar 3 19:10 upgrade_sql.sha256
-rw-------. 1 omm omm 410646 Mar 3 19:10 upgrade_sql.tar.gz
[omm@ptkmog3 mogdb304]$
[omm@ptkmog3 mogdb304]$
[omm@ptkmog3 mogdb304]$
[omm@ptkmog3 mogdb304]$ tar -xvf MogDB-3.0.4-CentOS-64bit.tar.gz
./bin/
./bin/kadmind
./bin/mogdb
./bin/cluster_guc.conf
./bin/retry_errcodes.conf
./bin/pg_recvlogical
./bin/gs_dbmind
./bin/encrypt
./bin/gs_ctl
./bin/gsql
./simpleInstall/finance.sql
./simpleInstall/install.sh
./version.cfg
[omm@ptkmog3 mogdb304]$
[omm@ptkmog3 mogdb304]$
[omm@ptkmog3 mogdb304]$ ll
total 138048
drwx------. 3 omm omm 4096 Mar 3 18:07 bin
drwx------. 3 omm omm 22 Mar 3 18:07 etc
drwx------. 3 omm omm 24 Mar 3 18:07 include
drwx------. 4 omm omm 95 Mar 3 18:07 jre
drwx------. 5 omm omm 4096 Mar 3 18:07 lib
-rw-------. 1 omm omm 65 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-cm.sha256
-rw-------. 1 omm omm 6416169 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-cm.tar.gz
-rw-------. 1 omm omm 5077926 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-Libpq.tar.gz
-rw-------. 1 omm omm 65 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-om.sha256
-rw-------. 1 omm omm 14167831 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-om.tar.gz
-rw-------. 1 omm omm 65 Mar 3 19:09 MogDB-3.0.4-CentOS-64bit.sha256
-rw-------. 1 omm omm 107212757 Mar 3 19:09 MogDB-3.0.4-CentOS-64bit.tar.gz
-rw-------. 1 omm omm 8034026 Mar 3 19:10 MogDB-3.0.4-CentOS-64bit-tools.tar.gz
drwx------. 5 omm omm 53 Mar 3 18:07 share
drwx------. 2 omm omm 78 Mar 3 18:07 simpleInstall
-rw-------. 1 omm omm 65 Mar 3 19:10 upgrade_sql.sha256
-rw-------. 1 omm omm 410646 Mar 3 19:10 upgrade_sql.tar.gz
-rw-------. 1 omm omm 28 Mar 3 18:07 version.cfg
[omm@ptkmog3 mogdb304]$
[root@ptkmog3 ~]# cd /opt/mogdb/app/
[root@ptkmog3 app]# ll
total 16
drwxr-xr-x. 3 omm omm 4096 Apr 16 19:39 bin
drwxr-xr-x. 3 omm omm 22 Aug 5 2022 etc
drwxr-xr-x. 3 omm omm 24 Aug 5 2022 include
drwxr-xr-x. 4 omm omm 95 Aug 5 2022 jre
drwxr-xr-x. 5 omm omm 4096 Aug 5 2022 lib
drwx------. 2 omm omm 126 Apr 16 19:39 logs
drwxr-xr-x. 5 omm omm 53 Aug 5 2022 share
drwxr-xr-x. 2 omm omm 78 Aug 5 2022 simpleInstall
-rw-r--r--. 1 omm omm 28 Aug 5 2022 version.cfg
[root@ptkmog3 app]# mv bin/ bin_304
[root@ptkmog3 app]# mv lib/ lib_304
[root@ptkmog3 app]# ll
total 16
drwxr-xr-x. 3 omm omm 4096 Apr 16 19:39 bin_304
drwxr-xr-x. 3 omm omm 22 Aug 5 2022 etc
drwxr-xr-x. 3 omm omm 24 Aug 5 2022 include
drwxr-xr-x. 4 omm omm 95 Aug 5 2022 jre
drwxr-xr-x. 5 omm omm 4096 Aug 5 2022 lib_304
drwx------. 2 omm omm 126 Apr 16 19:39 logs
drwxr-xr-x. 5 omm omm 53 Aug 5 2022 share
drwxr-xr-x. 2 omm omm 78 Aug 5 2022 simpleInstall
-rw-r--r--. 1 omm omm 28 Aug 5 2022 version.cfg
[root@ptkmog3 app]# cp -r /opt/mogdb304/bin/ .
[omm@mogdb1 db]$ cp -r /opt/mogdb304/lib/ .
[omm@mogdb1 db]$ ls -lht
[omm@mogdb1 db]$ cp bin_304/cluster_static_config bin/
[omm@mogdb1 db]$ cp bin_304/upgrade_version bin/
[omm@ptkmog1 app]$ gs_ctl start
[root@ptkmog3 om]#
[root@ptkmog3 om]# pwd
/opt/mogdb/app/share/sslcert/om
[root@ptkmog3 om]#
十、 升级遇到问题
注: 用gs_ctl滚动升级,先升级备库,后升主库。升级之后 ,发现处于 Need repair(WAL segment removed) 状态。
[root@ptkmog1 opt]# ptk cluster status --all
==================== cluster: "mogdb_cluster" status ====================
[ Cluster State ]
cluster_name : mogdb_cluster
cluster_state : MultiPrimary
database_version : MogDB 3.0.1 (build 1a363ea9)
[ Datanode State ]
cluster_name | id | ip | port | user | nodename | db_role | state | upstream
----------------+------+--------------+-------+------+----------+---------+----------------------------------+-----------
mogdb_cluster | 6001 | 192.168.3.63 | 15400 | omm | dn_6001 | primary | Normal | -
| 6002 | 192.168.3.64 | 15400 | omm | dn_6002 | standby | Normal | -
| 6003 | 192.168.3.65 | 15400 | omm | dn_6003 | standby | Need repair(WAL segment removed) | -
[omm@ptkmog2 ~]$ gs_ctl build -D /opt/mogdb/data
[2023-04-17 17:54:48.325][29379][][gs_ctl]: gs_ctl incremental build ,datadir is /opt/mogdb/data
[2023-04-17 17:54:48.333][29379][][gs_ctl]: The local server run as Primary,build cannot be executed.
[omm@ptkmog2 ~]$ gs_ctl stop
[2023-04-17 17:55:03.255][29396][][gs_ctl]: gs_ctl stopped ,datadir is /opt/mogdb/data
waiting for server to shut down.............. done
server stopped
[omm@ptkmog2 ~]$ gs_ctl build -D /opt/mogdb/data
[2023-04-17 17:58:50.439][30229][][gs_ctl]: gs_ctl incremental build ,datadir is /opt/mogdb/data
waiting for server to shut down.... done
server stopped
[2023-04-17 17:58:51.451][30229][][gs_ctl]: fopen build pid file "/opt/mogdb/data/gs_build.pid" success
[2023-04-17 17:58:51.451][30229][][gs_ctl]: fprintf build pid file "/opt/mogdb/data/gs_build.pid" success
[2023-04-17 17:58:51.452][30229][][gs_ctl]: fsync build pid file "/opt/mogdb/data/gs_build.pid" success
[2023-04-17 17:58:51.456][30229][dn_6001][gs_ctl]: build try host(192.168.3.63) port(15401) success
[2023-04-17 17:58:51.457][30229][dn_6001][gs_rewind]: set gaussdb state file when incremental build:db state(BUILDING_STATE), server mode(STANDBY_MODE), build mode(INC_BUILD).
[2023-04-17 17:58:51.460][30229][dn_6001][gs_rewind]: connected to server: host=192.168.3.63 port=15401 dbname=postgres application_name=gs_rewind connect_timeout=5 rw_timeout=600
[2023-04-17 17:58:51.464][30229][dn_6001][gs_rewind]: connect to primary success
[2023-04-17 17:58:51.465][30229][dn_6001][gs_rewind]: get pg_control success
[2023-04-17 17:58:51.465][30229][dn_6001][gs_rewind]: target server was interrupted in mode 2.
[2023-04-17 17:58:51.465][30229][dn_6001][gs_rewind]: sanityChecks success
[2023-04-17 17:58:51.465][30229][dn_6001][gs_rewind]: find last checkpoint at 0/58DC120 and checkpoint redo at 0/58DC120 from source control file
[2023-04-17 17:58:51.465][30229][dn_6001][gs_rewind]: find last checkpoint at 0/58DBE90 and checkpoint redo at 0/58DBE90 from target control file
[2023-04-17 17:58:51.473][30229][dn_6001][gs_rewind]: find max lsn success, find max lsn rec (0/58DBE90) success.
[2023-04-17 17:58:51.480][30229][dn_6001][gs_rewind]: build try host(192.168.3.63) port(15401) success
[2023-04-17 17:58:51.480][30229][dn_6001][gs_rewind]: request lsn is 0/58DBE90 and its crc(source, target):[486014188, 4082598053]
[2023-04-17 17:58:51.483][30229][dn_6001][gs_rewind]: build try host(192.168.3.63) port(15401) success
[2023-04-17 20:05:33.399][6481][dn_6001][gs_ctl]: done
[2023-04-17 20:05:33.399][6481][dn_6001][gs_ctl]: server started (/opt/mogdb/data)
[2023-04-17 20:05:33.399][6481][dn_6001][gs_ctl]: fopen build pid file "/opt/mogdb/data/gs_build.pid" success
[2023-04-17 20:05:33.399][6481][dn_6001][gs_ctl]: fprintf build pid file "/opt/mogdb/data/gs_build.pid" success
[2023-04-17 20:05:33.416][6481][dn_6001][gs_ctl]: fsync build pid file "/opt/mogdb/data/gs_build.pid" success
[omm@ptkmog2 ~]$
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




