一、环境准备
节点类别 | 主机名 | 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
TA的专栏
目录