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

简单到爆!MogDB安装、升级只需三步!

417

 

 

今天老杨让我帮忙提供一套MogDB环境用于安全测试,顺手简单做了一下相关测试,没想到如此简单,简直惊到我了。简单记录一下,供大家学习参考!

##如何快速部署一套MogDB环境

1、安装ptk

    [root@yashandb1 ~]# curl --proto '=https' --tlsv1.2 -sSf https://cdn-mogdb.enmotech.com/ptk/install.sh | sh
    Downloading ptk package...
    Detected shell: bash
    Shell profile: root/.bash_profile
    ptk has been added to PATH in root/.bash_profile
    open a new terminal or source root/.bash_profile to active it
    Installed path: root/.ptk/bin/ptk


       如果你的环境无法连外网,那么也可以手工安装ptk,也是非常简单的,直接下载即可(https://docs.mogdb.io/zh/ptk/v1.1/install)。

    2、检查安装环境是否符合数据库安装要求

      [root@yashandb1 ~]# ptk checkos -f config.yaml
      INFO[2024-02-20T20:12:02.251] prechecking dependent tools...
      WARN[2024-02-20T20:12:02.411] [172.20.22.146][omm] device(/dev/sdd) readahead value=8192, expect 16384.
      WARN[2024-02-20T20:12:02.411] [172.20.22.146][omm] device(/dev/sda) readahead value=8192, expect 16384.
      WARN[2024-02-20T20:12:02.411] [172.20.22.146][omm] device(/dev/sdb) readahead value=8192, expect 16384.
      WARN[2024-02-20T20:12:02.411] [172.20.22.146][omm] device(/dev/sdc) readahead value=8192, expect 16384.
      INFO[2024-02-20T20:12:02.527] [172.20.22.146][omm] check port 26000
      INFO[2024-02-20T20:12:02.550] [172.20.22.146][omm] port 26000 is free
      INFO[2024-02-20T20:12:02.561] [172.20.22.146][omm] swap memory 8257532kB, total memory 16265908kB
      WARN[2024-02-20T20:12:02.581] [172.20.22.146][omm] net.ipv4.tcp_keepalive_time=7200, expect 30
      WARN[2024-02-20T20:12:02.591] [172.20.22.146][omm] net.ipv4.tcp_rmem=4096 87380 6291456, expect 8192 250000 16777216
      WARN[2024-02-20T20:12:02.614] [172.20.22.146][omm] vm.min_free_kbytes=67584, expect 813295
      WARN[2024-02-20T20:12:02.644] [172.20.22.146][omm] net.ipv4.tcp_tw_recycle=0, expect 1
      WARN[2024-02-20T20:12:02.662] [172.20.22.146][omm] net.ipv4.tcp_syn_retries=6, expect 5
      ERRO[2024-02-20T20:12:02.671] [172.20.22.146][omm] net.core.rmem_default=212992, expect 262144
      WARN[2024-02-20T20:12:02.682] [172.20.22.146][omm] net.ipv4.tcp_retries2=15, expect 12
      ERRO[2024-02-20T20:12:02.691] [172.20.22.146][omm] net.core.wmem_max=212992, expect 1048576
      ERRO[2024-02-20T20:12:02.710] [172.20.22.146][omm] kernel.sem=250 32000 32 128, expect 250 6400000 1000 25600
      WARN[2024-02-20T20:12:02.729] [172.20.22.146][omm] net.ipv4.tcp_wmem=4096 16384 4194304, expect 8192 250000 16777216
      WARN[2024-02-20T20:12:02.738] [172.20.22.146][omm] net.ipv4.tcp_max_syn_backlog=512, expect 65535
      WARN[2024-02-20T20:12:02.748] [172.20.22.146][omm] net.core.netdev_max_backlog=1000, expect 65535
      ERRO[2024-02-20T20:12:02.757] [172.20.22.146][omm] net.core.rmem_max=212992, expect 1048576
      ERRO[2024-02-20T20:12:02.767] [172.20.22.146][omm] net.core.wmem_default=212992, expect 262144
      WARN[2024-02-20T20:12:02.776] [172.20.22.146][omm] net.ipv4.tcp_tw_reuse=0, expect 1
      WARN[2024-02-20T20:12:02.786] [172.20.22.146][omm] net.ipv4.tcp_keepalive_intvl=75, expect 30
      WARN[2024-02-20T20:12:02.796] [172.20.22.146][omm] net.core.somaxconn=128, expect 65535
      WARN[2024-02-20T20:12:02.835] [172.20.22.146][omm] net.ipv4.tcp_retries1=3, expect 5
      INFO[2024-02-20T20:12:02.854] [172.20.22.146][omm] check kernel.core_pattern
      INFO[2024-02-20T20:12:02.874] [172.20.22.146][omm] check RemoveIPC value
      INFO[2024-02-20T20:12:02.896] [172.20.22.146][omm] check KillUserProcesses value
      INFO[2024-02-20T20:12:02.960] [172.20.22.146][omm] kernel version: 3.10.0-1160.el7.x86_64
      INFO[2024-02-20T20:12:02.971] [172.20.22.146][omm] locale: LANG=en_US.UTF-8
      WARN[2024-02-20T20:12:02.982] [172.20.22.146][omm] device(sda) 'IO Request'=128, expect 256
      WARN[2024-02-20T20:12:02.983] [172.20.22.146][omm] device(sdb) 'IO Request'=128, expect 256
      WARN[2024-02-20T20:12:02.983] [172.20.22.146][omm] device(sdc) 'IO Request'=128, expect 256
      WARN[2024-02-20T20:12:02.983] [172.20.22.146][omm] device(sdd) 'IO Request'=128, expect 256
      ERRO[2024-02-20T20:12:03.039] [172.20.22.146][omm] transparent_hugepage status is 'always', expect 'never'
      INFO[2024-02-20T20:12:03.051] [172.20.22.146][omm] platform: rhel_7.9_64bit
      INFO[2024-02-20T20:12:03.062] [172.20.22.146][omm] timezone: +0800
      ERRO[2024-02-20T20:12:11.275] [172.20.22.146][omm] not found package: numactl
      INFO[2024-02-20T20:12:11.276] all checkers finished
      INFO[2024-02-20T20:12:11.276] write fix os script to root_fix_os.0220.201211.sh success
      INFO[2024-02-20T20:12:11.276] time elapsed: 9s
      # 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_BlockDev_Configure | Warning
      A9.Check_Logical_Block | OK
      A10.Check_NR_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 | Abnormal
      A15.Check_Dependent_Package | Abnormal
      A16.Check_CPU_Instruction_Set | OK
      A17.Check_Port | OK
      A18.Check_Selinux | OK
      A19.Check_User_Ulimit | OK
      Total count 22, 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 get detail message
      Please check root_fix_os.0220.201211.sh for commands to resolve.


       使用ptk在检查的过程中,无法发现有异常,运行root_fix_os 脚本即可。

        [root@yashandb1 ~]# ./root_fix_os.0220.201211.sh 
        net.core.rmem_default = 262144
        net.core.wmem_max = 1048576
        kernel.sem = 250 6400000 1000 25600
        net.core.rmem_max = 1048576
        net.core.wmem_default = 262144
        WARNING: You should reboot host to disable transparent huge pages(THP) permanently!
        Loaded plugins: product-id, search-disabled-repos, subscription-manager


        This system is not registered with an entitlement server. You can use subscription-manager to register.

        3、一条命令完成数据库安装部署

          [root@yashandb1 ~]#  ptk install -f config.yaml
          INFO[2024-02-20T20:18:47.232] PTK Version: 1.3.0 release
          INFO[2024-02-20T20:18:47.232] load config from config.yaml
          If you continue to install the software,
          you are accepting the license agreement of the software.


          [Y]: Accept and continue
          [C]: Show content of licence agreement
          [N]: Abort installation and exit


          ✔ Please enter (default: Y):
          Cluster Name: "mogdb1"
          +--------------+---------------+-------------+-------+---------+-----------------+----------+
          | az(priority) | ip | user(group) | port | role | data dir | upstream |
          +--------------+---------------+-------------+-------+---------+-----------------+----------+
          | AZ1(1) | 172.20.22.146 | omm(omm) | 26000 | primary | opt/mogdb/data | - |
          +--------------+---------------+-------------+-------+---------+-----------------+----------+
          ✔ Is cluster config correct (default=n) [y/n]: y
          INFO[2024-02-20T20:18:49.609] start check hostname ...
          INFO[2024-02-20T20:18:49.623] check hostname success
          INFO[2024-02-20T20:18:49.623] start check os ...
          INFO[2024-02-20T20:18:49.623] prechecking dependent tools...
          INFO[2024-02-20T20:18:49.740] [172.20.22.146][omm] swap memory 8257532kB, total memory 16265908kB
          INFO[2024-02-20T20:18:58.423] [172.20.22.146][omm] check port 26000
          INFO[2024-02-20T20:18:58.441] [172.20.22.146][omm] port 26000 is free
          INFO[2024-02-20T20:18:58.460] [172.20.22.146][omm] platform: rhel_7.9_64bit
          INFO[2024-02-20T20:18:58.469] [172.20.22.146][omm] kernel version: 3.10.0-1160.el7.x86_64
          WARN[2024-02-20T20:18:58.487] [172.20.22.146][omm] net.ipv4.tcp_keepalive_intvl=75, expect 30
          WARN[2024-02-20T20:18:58.504] [172.20.22.146][omm] net.core.somaxconn=128, expect 65535
          WARN[2024-02-20T20:18:58.524] [172.20.22.146][omm] net.ipv4.tcp_keepalive_time=7200, expect 30
          WARN[2024-02-20T20:18:58.535] [172.20.22.146][omm] net.ipv4.tcp_syn_retries=6, expect 5
          WARN[2024-02-20T20:18:58.545] [172.20.22.146][omm] net.core.netdev_max_backlog=1000, expect 65535
          WARN[2024-02-20T20:18:58.573] [172.20.22.146][omm] net.ipv4.tcp_tw_recycle=0, expect 1
          WARN[2024-02-20T20:18:58.583] [172.20.22.146][omm] net.ipv4.tcp_rmem=4096 87380 6291456, expect 8192 250000 16777216
          WARN[2024-02-20T20:18:58.593] [172.20.22.146][omm] net.ipv4.tcp_max_syn_backlog=512, expect 65535
          WARN[2024-02-20T20:18:58.667] [172.20.22.146][omm] vm.min_free_kbytes=67584, expect 813295
          WARN[2024-02-20T20:18:58.695] [172.20.22.146][omm] net.ipv4.tcp_tw_reuse=0, expect 1
          WARN[2024-02-20T20:18:58.715] [172.20.22.146][omm] net.ipv4.tcp_retries1=3, expect 5
          WARN[2024-02-20T20:18:58.726] [172.20.22.146][omm] net.ipv4.tcp_wmem=4096 16384 4194304, expect 8192 250000 16777216
          WARN[2024-02-20T20:18:58.758] [172.20.22.146][omm] net.ipv4.tcp_retries2=15, expect 12
          INFO[2024-02-20T20:18:58.768] [172.20.22.146][omm] check kernel.core_pattern
          INFO[2024-02-20T20:18:58.788] [172.20.22.146][omm] check RemoveIPC value
          INFO[2024-02-20T20:18:58.811] [172.20.22.146][omm] check KillUserProcesses value
          WARN[2024-02-20T20:18:58.863] [172.20.22.146][omm] device(sdc) 'IO Request'=128, expect 256
          WARN[2024-02-20T20:18:58.863] [172.20.22.146][omm] device(sdd) 'IO Request'=128, expect 256
          WARN[2024-02-20T20:18:58.863] [172.20.22.146][omm] device(sda) 'IO Request'=128, expect 256
          WARN[2024-02-20T20:18:58.863] [172.20.22.146][omm] device(sdb) 'IO Request'=128, expect 256
          INFO[2024-02-20T20:18:58.921] [172.20.22.146][omm] timezone: +0800
          WARN[2024-02-20T20:18:58.959] [172.20.22.146][omm] device(/dev/sda) readahead value=8192, expect 16384.
          WARN[2024-02-20T20:18:58.960] [172.20.22.146][omm] device(/dev/sdb) readahead value=8192, expect 16384.
          WARN[2024-02-20T20:18:58.960] [172.20.22.146][omm] device(/dev/sdc) readahead value=8192, expect 16384.
          WARN[2024-02-20T20:18:58.960] [172.20.22.146][omm] device(/dev/sdd) readahead value=8192, expect 16384.
          INFO[2024-02-20T20:18:59.005] [172.20.22.146][omm] locale: LANG=en_US.UTF-8
          INFO[2024-02-20T20:18:59.025] all checkers finished
          INFO[2024-02-20T20:18:59.025] time elapsed: 9s
          INFO[2024-02-20T20:18:59.026] check os success
          INFO[2024-02-20T20:18:59.026] start check distro ...
          INFO[2024-02-20T20:18:59.026] check distro success
          INFO[2024-02-20T20:18:59.026] start check user ...
          INFO[2024-02-20T20:18:59.038] check user success
          INFO[2024-02-20T20:18:59.038] start check port ...
          INFO[2024-02-20T20:18:59.080] check port success
          INFO[2024-02-20T20:18:59.091] [172.20.22.146][omm] create os user omm, group omm
          INFO[2024-02-20T20:18:59.197] [172.20.22.146][omm] set ulimit configs
          INFO[2024-02-20T20:18:59.205] start prepare installation package ...
          INFO[2024-02-20T20:18:59.205] no package specified, use online package: https://cdn-mogdb.enmotech.com/mogdb-media/5.0.5/CentOS_x86_64/MogDB-5.0.5-CentOS-x86_64-all.tar.gz
          INFO[2024-02-20T20:18:59.205] downloading MogDB-5.0.5-CentOS-x86_64-all.tar.gz ...
          > MogDB-5.0.5-CentOS-x86_64-a...: 129.20 MiB 131.30 MiB [------------------------------------------------------------------------------------------------------------------------->_] 98.40% 11.15 MiB p/s ETA 0s
          > MogDB-5.0.5-CentOS-x86_64-a...: 131.30 MiB 131.30 MiB [-----------------------------------------------------------------------------------------------------------------------------] 100.00% 11.31 MiB p/s 12s
          INFO[2024-02-20T20:19:11.311] installation package is ready
          INFO[2024-02-20T20:19:11.311] start validate installation package ...
          INFO[2024-02-20T20:19:15.430] db product: MogDB, version: 5.0.5, number: 92.901, commit_id: b77f1a82
          INFO[2024-02-20T20:19:15.430] validate installation package success
          INFO[2024-02-20T20:19:15.431] start complete the configuration ...
          ✔ Please enter db password (8~15 characters, 3 classes): ********
          ✔ Retype db password: ********
          INFO[2024-02-20T20:19:40.333] complete the configuration success
          INFO[2024-02-20T20:19:40.334] start distribute installation package ...
          INFO[2024-02-20T20:19:40.539] distrubite packages success
          INFO[2024-02-20T20:19:40.539] start install logic nodes ...
          INFO[2024-02-20T20:19:40.539] deploy db to omm@172.20.22.146
          INFO[2024-02-20T20:19:40.540] [172.20.22.146][omm] make user omm's dir(s): opt/mogdb
          INFO[2024-02-20T20:19:40.855] [172.20.22.146][omm] clean user omm's ipc resource
          INFO[2024-02-20T20:19:41.005] [172.20.22.146][omm] make user omm's dir(s): opt/mogdb/tool,/opt/mogdb/tool/ptk_tool/bin
          INFO[2024-02-20T20:19:41.336] [172.20.22.146][omm] extract MogDB-5.0.5-CentOS-x86_64-all.tar.gz to dir opt/mogdb/tool
          INFO[2024-02-20T20:19:43.766] [172.20.22.146][omm] extract MogDB-5.0.5-CentOS-64bit-om.tar.gz to dir opt/mogdb/tool
          INFO[2024-02-20T20:19:44.616] [172.20.22.146][omm] try to fix psutil python lib
          WARN[2024-02-20T20:19:44.649] [172.20.22.146][omm] Not found python3, skip fix psutil dynamic lib,
          please install proper python and fix it manually or reinstall by ptk
          if you don't fix this, it will cause that gs_om and cm_ctl cannot run properly, but not ptk and database
          INFO[2024-02-20T20:19:44.649] [172.20.22.146][omm] write file opt/mogdb/tool/ptk_tool/bin/README.md
          INFO[2024-02-20T20:19:44.754] [172.20.22.146][omm] write file opt/mogdb/tool/ptk_tool/bin/pscp
          INFO[2024-02-20T20:19:44.864] [172.20.22.146][omm] write file opt/mogdb/tool/ptk_tool/bin/pssh
          INFO[2024-02-20T20:19:44.971] [172.20.22.146][omm] write file opt/mogdb/tool/ptk_tool/bin/task_pool.py
          INFO[2024-02-20T20:19:45.078] [172.20.22.146][omm] make user omm's dir(s): opt/mogdb/app
          INFO[2024-02-20T20:19:45.183] [172.20.22.146][omm] extract MogDB-5.0.5-CentOS-64bit.tar.gz to dir opt/mogdb/app
          INFO[2024-02-20T20:19:51.204] [172.20.22.146][omm] change mode of opt/mogdb/app to 700
          INFO[2024-02-20T20:19:51.265] [172.20.22.146][omm] make user omm's dir(s): opt/mogdb/app/share/postgresql
          INFO[2024-02-20T20:19:51.422] [172.20.22.146][omm] copy opt/mogdb/tool/script/gspylib/etc/sql/pmk_schema.sql to opt/mogdb/app/share/postgresql if exist
          INFO[2024-02-20T20:19:51.457] [172.20.22.146][omm] copy /opt/mogdb/tool/script/gspylib/etc/sql/pmk_schema_single_inst.sql to /opt/mogdb/app/share/postgresql if exist
          INFO[2024-02-20T20:19:51.491] [172.20.22.146][omm] write file /opt/mogdb/app/bin/transfer.py
          INFO[2024-02-20T20:19:51.558] [172.20.22.146][omm] set user omm profiles
          INFO[2024-02-20T20:19:51.963] [172.20.22.146][omm] validate and try to fix ld library for gs_initdb
          INFO[2024-02-20T20:19:52.012] [172.20.22.146][omm] validate and try to fix ld library for mogdb
          INFO[2024-02-20T20:19:52.066] [172.20.22.146][omm] make user omm's dir(s): /opt/mogdb/log/gs_profile,/opt/mogdb/log/pg_log,/opt/mogdb/log/pg_audit,/opt/mogdb/log/bin,/opt/mogdb/log/pg_log/dn_6001,/opt/mogdb/log/pg_audit/dn_6001
          INFO[2024-02-20T20:19:52.960] [172.20.22.146][omm] make user omm's dir(s): /opt/mogdb/tmp
          INFO[2024-02-20T20:19:53.061] [172.20.22.146][omm] save version to upgrade_version
          INFO[2024-02-20T20:19:53.224] [172.20.22.146][omm] create file cluster_manual_start
          INFO[2024-02-20T20:19:53.262] [172.20.22.146][omm] generate cluster_static_config file
          INFO[2024-02-20T20:19:53.338] [172.20.22.146][omm] make user omm's dir(s): /opt/mogdb/data
          INFO[2024-02-20T20:19:53.446] [172.20.22.146][omm] write file /opt/mogdb/tool/.ptk_deployer
          INFO[2024-02-20T20:19:53.520] generate certification files
          INFO[2024-02-20T20:19:55.505] download certification files
          INFO[2024-02-20T20:19:56.171] certification files setup success
          INFO[2024-02-20T20:19:56.171] initialize db on omm@172.20.22.146
          INFO[2024-02-20T20:19:56.207] [172.20.22.146][omm] the database is initializing, please wait a few minutes
          INFO[2024-02-20T20:20:28.958] [172.20.22.146][omm] config postgresql.conf
          INFO[2024-02-20T20:20:29.121] [172.20.22.146][omm] config pg_hba.conf
          INFO[2024-02-20T20:20:29.195] [172.20.22.146][omm] copy ssl files to data dir
          INFO[2024-02-20T20:20:29.244] logic nodes installed success
          INFO[2024-02-20T20:20:29.244] generating ptkc ...
          INFO[2024-02-20T20:20:29.543] start build ssh trust ...
          INFO[2024-02-20T20:20:29.902] ssh trust build success
          INFO[2024-02-20T20:20:29.903] start launch db ...
          INFO[2024-02-20T20:20:29.903] [172.20.22.146][omm] start db using gs_ctl ...
          INFO[2024-02-20T20:20:29.903] [172.20.22.146][omm] the database is starting, please wait a few minutes
          INFO[2024-02-20T20:20:33.163] [172.20.22.146][omm] start db success
          INFO[2024-02-20T20:20:34.164] [172.20.22.146][omm] start alter db initial password ...
          INFO[2024-02-20T20:20:34.341] [172.20.22.146][omm] alter db password success
          INFO[2024-02-20T20:20:34.342] launch db success
          INFO[2024-02-20T20:20:34.342] clear temp dirs ...
          INFO[2024-02-20T20:20:34.402] clear temp dirs success
          INFO[2024-02-20T20:20:34.403] time elapsed: 1m46s


          cluste_name | host | user | port | status | message
          --------------+---------------+------+-------+---------------+----------
          mogdb1 | 172.20.22.146 | omm | 26000 | start_success | success





          足够简单了吧!1分46秒即可完成数据库软件安装。当然这里通过ptk去进行在线安装仍然需要链接外网,如果你的环境无法连外网,那么可以提前下载好数据库软件安装包,通过ptk进行离线安装。

            [root@yashandb1 ~]# su - omm
            [omm@yashandb1 ~]$ gsql -d postgres -p26000
            gsql ((MogDB 5.0.5 build b77f1a82) compiled at 2023-12-08 03:11:47 commit 0 last mr 1804 )
            Non-SSL connection (SSL connection is recommended when requiring high-security)
            Type "help" for help.


            MogDB=# \l+
            List of databases
            Name | Owner | Encoding | Collate | Ctype | Access privileges | Compatibility | Size | Tablespace | Description
            -----------+-------+----------+---------+-------+-------------------+---------------+-------+------------+--------------------------------------------
            postgres | omm | UTF8 | C | C | | A | 29 MB | pg_default | default administrative connection database
            template0 | omm | UTF8 | C | C | =c/omm +| A | 25 MB | pg_default | default template for new databases
            | | | | | omm=CTc/omm | | | |
            template1 | omm | UTF8 | C | C | =c/omm +| A | 25 MB | pg_default | unmodifiable empty database
            | | | | | omm=CTc/omm | | | |
            (3 rows)


            MogDB=#


            是不是非常的简单!

            接下来我再给大家演示一下如何通过ptk一键升级一套MogDB主备集群,仍然是只需要一条命令即可首先来看下我当前的这套测试环境,是MogDB 5.0.3,一主一丛架构,我们提前下载好MogDB 最新版本补丁5.0.5.

            1、检查集群环境和状态

              [root@mogdb1 ~]# ptk cluster status -n test
              [ Cluster State ]
              cluster_name : test
              cluster_state : Normal
              database_version : MogDB 5.0.3 (build 86d963ad)


              [ Datanode State ]
              cluster_name | id | ip | port | user | nodename | db_role | state | uptime | upstream
              ---------------+------+---------------+-------+------+----------+---------+--------+------------------+-----------
              test | 6001 | 172.20.22.125 | 26000 | omm | dn_6001 | primary | Normal | 21 days 23:36:47 | -
              | 6002 | 172.20.22.128 | 26000 | omm | dn_6002 | standby | Normal | 21 days 23:36:43 | -
              [root@mogdb1 ~]#
              [root@mogdb1 ~]# cd /opt/soft/
              [root@mogdb1 soft]# ls -ltr MogDB-*
              -rw-r--r-- 1 root root 137845317 Jul 28 2023 MogDB-5.0.0-CentOS-x86_64-all.tar.gz
              -rw-r--r-- 1 root root 139260078 Aug 4 2023 MogDB-3.0.3-CentOS-x86_64.tar.gz
              -rw-r--r-- 1 root root 137677267 Jan 19 15:41 MogDB-5.0.5-CentOS-x86_64-all.tar.gz
              [root@mogdb1 soft]#


              2、检查数据库是否安装插件

                [root@mogdb1 soft]# ptk cluster  -n test list-plugins
                [[log_fdw] [hstore] [file_fdw] [dist_fdw] [security_plugin] [plpgsql]]
                [[log_fdw] [hstore] [file_fdw] [dist_fdw] [security_plugin] [plpgsql] [pageinspect]]
                [[log_fdw] [dolphin] [hstore] [file_fdw] [dist_fdw] [security_plugin] [plpgsql]]
                [[log_fdw] [dolphin] [hstore] [file_fdw] [dist_fdw] [security_plugin] [plpgsql]]
                [[log_fdw] [hstore] [file_fdw] [dist_fdw] [security_plugin] [plpgsql]]
                [[log_fdw] [hstore] [file_fdw] [dist_fdw] [security_plugin] [plpgsql]]
                List of Installed Plugins:
                Plugin Name | dn_6001 | dn_6002
                ---------------+---------+----------
                postgres_fdw | Yes | Yes
                dblink | Yes | Yes


                Extension Status of Databases:
                Database | Extension(s)
                ---------------+---------------
                mdb_repo |
                postgres |
                banben_mngdb |
                datab |
                test |
                aa |



                可以看到,我这里的环境安装了2个插件,一个是postgres_fdw,另外一个是dblink插件。如果有安装插件的话,那么需要提前下载最新版本的插件软件版本。

                  [root@mogdb1 plugins]# ls -ltr
                  total 92
                  drwxr-xr-x 2 omm omm 107 Oct 22 2022 pg_trgm
                  drwxr-xr-x 2 omm omm 103 Oct 22 2022 dblink
                  drwxr-xr-x 2 omm omm 80 Oct 22 2022 pg_prewarm
                  drwxr-xr-x 2 omm omm 69 Oct 22 2022 orafce
                  drwxr-xr-x 2 omm omm 96 Oct 22 2022 pg_repack
                  drwxr-xr-x 2 omm omm 25 Oct 22 2022 wal2json
                  drwxr-xr-x 2 omm omm 297 Oct 22 2022 pg_bulkload
                  drwxr-xr-x 2 omm omm 65 Oct 22 2022 whale
                  drwxr-xr-x 2 omm omm 71 Oct 22 2022 dolphin
                  drwxr-xr-x 2 omm omm 4096 Oct 22 2022 postgis
                  -rw-r--r-- 1 omm omm 3960 Oct 22 2022 desc.json
                  -rw-r--r-- 1 root root 30167 Feb 20 16:45 dblink-1.0-5.0.5-01-CentOS-x86_64.tar.gz
                  -rw-r--r-- 1 root root 51740 Feb 20 16:45 postgres_fdw-1.0-5.0.5-01-CentOS-x86_64.tar.gz
                  [root@mogdb1 plugins]# pwd
                  /opt/soft/plugins
                  [root@mogdb1 plugins]#

                  3、准备工作就绪后,就一键升级吧

                    [root@mogdb1 ~]# ptk cluster -n test upgrade -y -p /opt/soft/MogDB-5.0.5-CentOS-x86_64-all.tar.gz --plugin-dir /opt/soft/plugins
                    INFO[2024-02-21T00:51:12.137] PTK Version: 1.3.0 release
                    INFO[2024-02-21T00:51:12.137] upgrade mode: replace
                    INFO[2024-02-21T00:51:12.141] new step recorder, current step: "start"
                    Tip:
                    The upgrade process relies on SSH.
                    Please ensure that the network is always worked
                    during the upgrade process.
                    INFO[2024-02-21T00:51:12.141] parsing package from /opt/soft/MogDB-5.0.5-CentOS-x86_64-all.tar.gz
                    INFO[2024-02-21T00:51:14.425] kernel package name: MogDB-5.0.5-CentOS-64bit.tar.gz
                    INFO[2024-02-21T00:51:14.425] package version: MogDB-5.0.5,92.901,b77f1a82
                    INFO[2024-02-21T00:51:14.425] check db version
                    INFO[2024-02-21T00:51:14.518] big upgrade: true
                    INFO[2024-02-21T00:51:14.518] current version: 5.0.3, target version: 5.0.5
                    INFO[2024-02-21T00:51:14.519] current number: 92.900, target number: 92.901
                    INFO[2024-02-21T00:51:14.621] version is ok
                    INFO[2024-02-21T00:51:14.622] prepare all upgrade sql
                    INFO[2024-02-21T00:51:15.353] extract upgrade_sql.tar.gz successfully
                    WARN[2024-02-21T00:51:15.353] no sql file found for upgrade maindb
                    WARN[2024-02-21T00:51:15.353] no sql file found for upgrade otherdb
                    WARN[2024-02-21T00:51:15.354] no sql file found for rollback maindb
                    WARN[2024-02-21T00:51:15.354] no sql file found for rollback otherdb
                    INFO[2024-02-21T00:51:15.405] check cluster status
                    INFO[2024-02-21T00:51:15.555] cluster state is ok
                    INFO[2024-02-21T00:51:15.556] check db config: enable_stream_replication
                    INFO[2024-02-21T00:51:15.609] config is ok: enable_stream_replication=on
                    INFO[2024-02-21T00:51:15.609] create remote temporary upgrade directory
                    INFO[2024-02-21T00:51:15.650] set cluster to read-only
                    INFO[2024-02-21T00:51:15.687] begin: wait_xlog_sync
                    INFO[2024-02-21T00:51:15.687] check disk size
                    INFO[2024-02-21T00:51:16.409] check and wait xlog sync
                    INFO[2024-02-21T00:51:16.460] finished: wait_xlog_sync
                    INFO[2024-02-21T00:51:16.460] begin: backup_old_files
                    INFO[2024-02-21T00:51:16.460] backup old app and tool
                    INFO[2024-02-21T00:51:38.395] finished: backup_old_files
                    INFO[2024-02-21T00:51:38.396] begin: exec_pre_sql
                    INFO[2024-02-21T00:51:38.396] set cluster to read-write
                    INFO[2024-02-21T00:51:38.481] [retry: 1] check cluster status
                    INFO[2024-02-21T00:51:38.630] cluster status is normal
                    INFO[2024-02-21T00:51:38.630] set upgrade_mode to 2
                    INFO[2024-02-21T00:51:38.660] execute rollback sql
                    INFO[2024-02-21T00:51:38.661] execute rollback sql on maindb
                    INFO[2024-02-21T00:51:38.823] execute rollback sql on otherdb: [template1 template0 mdb_repo banben_mngdb datab test aa]
                    INFO[2024-02-21T00:51:39.214] execute upgrade sql
                    INFO[2024-02-21T00:51:39.214] execute upgrade sql on maindb
                    INFO[2024-02-21T00:51:39.367] execute upgrade sql on otherdb: [template1 template0 mdb_repo banben_mngdb datab test aa]
                    INFO[2024-02-21T00:51:39.729] execute checkpoint
                    INFO[2024-02-21T00:51:40.080] finished: exec_pre_sql
                    INFO[2024-02-21T00:51:40.080] begin: stop_datanode
                    INFO[2024-02-21T00:51:40.080] stop all datanodes
                    INFO[2024-02-21T00:51:40.100] operation: stop
                    INFO[2024-02-21T00:51:40.101] ========================================
                    INFO[2024-02-21T00:51:40.143] stop db [172.20.22.128:26000] ...
                    INFO[2024-02-21T00:51:41.175] stop db [172.20.22.128:26000] successfully
                    INFO[2024-02-21T00:51:41.175] ========================================
                    INFO[2024-02-21T00:51:41.175] stop successfully
                    INFO[2024-02-21T00:51:41.192] operation: stop
                    INFO[2024-02-21T00:51:41.192] ========================================
                    INFO[2024-02-21T00:51:41.226] stop db [172.20.22.125:26000] ...
                    INFO[2024-02-21T00:51:42.256] stop db [172.20.22.125:26000] successfully
                    INFO[2024-02-21T00:51:42.256] ========================================
                    INFO[2024-02-21T00:51:42.256] stop successfully
                    INFO[2024-02-21T00:51:42.256] finished: stop_datanode
                    INFO[2024-02-21T00:51:42.256] begin: replace_binary
                    INFO[2024-02-21T00:51:42.256] check need update config in postgresql.conf
                    INFO[2024-02-21T00:51:42.256] backup old configs
                    INFO[2024-02-21T00:51:42.315] install new app and om
                    INFO[2024-02-21T00:51:42.315] extact kernel and om package locally
                    INFO[2024-02-21T00:51:43.054] distribute new kernel and om to all datanodes
                    INFO[2024-02-21T00:51:47.841] [172.20.22.125][omm] validate and try to fix ld library for gs_initdb
                    INFO[2024-02-21T00:51:47.864] [172.20.22.125][omm] validate and try to fix ld library for mogdb
                    INFO[2024-02-21T00:51:48.916] [172.20.22.128][omm] validate and try to fix ld library for gs_initdb
                    INFO[2024-02-21T00:51:48.949] [172.20.22.128][omm] validate and try to fix ld library for mogdb
                    INFO[2024-02-21T00:51:48.973] restore old configs to new app
                    INFO[2024-02-21T00:51:49.015] delete deprecated guc
                    INFO[2024-02-21T00:51:49.092] update config in postgresql.conf
                    INFO[2024-02-21T00:51:49.093] finished: replace_binary
                    INFO[2024-02-21T00:51:49.093] begin: upgrade_plugin
                    INFO[2024-02-21T00:51:49.093] finished: upgrade_plugin
                    INFO[2024-02-21T00:51:49.093] begin: start_dn_with_old_number
                    INFO[2024-02-21T00:51:49.093] start with old number
                    INFO[2024-02-21T00:51:49.093] checking cluster state before start
                    INFO[2024-02-21T00:51:49.146] operation: start
                    INFO[2024-02-21T00:51:49.146] ========================================
                    INFO[2024-02-21T00:51:49.146] start db [172.20.22.125:26000] ...
                    INFO[2024-02-21T00:51:51.505] start db [172.20.22.125:26000] successfully
                    INFO[2024-02-21T00:51:51.505] start db [172.20.22.128:26000] ...
                    INFO[2024-02-21T00:51:58.807] start db [172.20.22.128:26000] successfully
                    INFO[2024-02-21T00:51:58.956] ========================================
                    INFO[2024-02-21T00:51:58.956] start cluster successfully
                    INFO[2024-02-21T00:51:58.956] finished: start_dn_with_old_number
                    INFO[2024-02-21T00:51:58.956] begin: exec_post_sql
                    INFO[2024-02-21T00:51:58.956] set cluster to read-write
                    INFO[2024-02-21T00:51:59.040] [retry: 1] check cluster status
                    INFO[2024-02-21T00:51:59.207] cluster status is normal
                    INFO[2024-02-21T00:51:59.207] update upgrade_version
                    INFO[2024-02-21T00:51:59.224] execute rollback-post sql
                    INFO[2024-02-21T00:51:59.225] execute rollback-post sql on maindb
                    INFO[2024-02-21T00:51:59.373] execute rollback-post sql on otherdb: [template1 template0 mdb_repo banben_mngdb datab test aa]
                    INFO[2024-02-21T00:51:59.780] execute upgrade-post sql
                    INFO[2024-02-21T00:51:59.780] execute upgrade-post sql on maindb
                    INFO[2024-02-21T00:51:59.952] execute upgrade-post sql on otherdb: [template1 template0 mdb_repo banben_mngdb datab test aa]
                    INFO[2024-02-21T00:52:00.543] finished: exec_post_sql
                    INFO[2024-02-21T00:52:00.543] begin: restart_dn_finally
                    INFO[2024-02-21T00:52:00.543] restart all datanodes
                    INFO[2024-02-21T00:52:00.563] operation: stop
                    INFO[2024-02-21T00:52:00.563] ========================================
                    INFO[2024-02-21T00:52:00.601] stop db [172.20.22.128:26000] ...
                    INFO[2024-02-21T00:52:02.635] stop db [172.20.22.128:26000] successfully
                    INFO[2024-02-21T00:52:02.635] ========================================
                    INFO[2024-02-21T00:52:02.635] stop successfully
                    INFO[2024-02-21T00:52:02.652] operation: stop
                    INFO[2024-02-21T00:52:02.653] ========================================
                    INFO[2024-02-21T00:52:02.689] stop db [172.20.22.125:26000] ...
                    INFO[2024-02-21T00:52:04.730] stop db [172.20.22.125:26000] successfully
                    INFO[2024-02-21T00:52:04.730] ========================================
                    INFO[2024-02-21T00:52:04.730] stop successfully
                    INFO[2024-02-21T00:52:04.730] checking cluster state before start
                    INFO[2024-02-21T00:52:04.786] operation: start
                    INFO[2024-02-21T00:52:04.786] ========================================
                    INFO[2024-02-21T00:52:04.786] start db [172.20.22.125:26000] ...
                    INFO[2024-02-21T00:52:07.005] start db [172.20.22.125:26000] successfully
                    INFO[2024-02-21T00:52:07.005] start db [172.20.22.128:26000] ...
                    INFO[2024-02-21T00:52:09.618] start db [172.20.22.128:26000] successfully
                    INFO[2024-02-21T00:52:09.765] ========================================
                    INFO[2024-02-21T00:52:09.765] start cluster successfully
                    INFO[2024-02-21T00:52:09.765] finished: restart_dn_finally
                    INFO[2024-02-21T00:52:09.765] upgrade successfully


                    If you confirm upgrade no problem, you can run this to finish process:
                    ptk cluster -n test upgrade-commit
                    If you want to cancel upgrade, you can run this to rollback it:
                    ptk cluster -n test upgrade-rollback
                    INFO[2024-02-21T00:52:09.765] time elapsed: 58s
                    [root@mogdb1 ~]#
                    [root@mogdb1 ~]#
                    [root@mogdb1 ~]# ptk cluster -n test upgrade-commit
                    INFO[2024-02-21T00:52:20.274] PTK Version: 1.3.0 release
                    INFO[2024-02-21T00:52:20.279] new step recorder, current step: "restart_dn_finally"
                    INFO[2024-02-21T00:52:20.279] load upgrade meta info
                    INFO[2024-02-21T00:52:20.280] check cluster status
                    INFO[2024-02-21T00:52:20.280] [retry: 1] check cluster status
                    INFO[2024-02-21T00:52:20.537] cluster status is normal
                    INFO[2024-02-21T00:52:20.537] set upgrade_mode to 0
                    INFO[2024-02-21T00:52:20.568] enable cluster read-write
                    INFO[2024-02-21T00:52:20.568] set cluster to read-write
                    INFO[2024-02-21T00:52:20.654] clear temporary directories
                    INFO[2024-02-21T00:52:25.654] commit success
                    INFO[2024-02-21T00:52:25.654] time elapsed: 6s
                    [root@mogdb1 ~]#


                    这里需要注意,进行upgrade升级操作之后,确认输出日志无错误的话,那么需要进行upgrade-commit操作,否则集群状态会异常。

                    最后我们来看下升级后集群的状态如何。

                      [root@mogdb1 ~]# ptk cluster status -n test
                      [ Cluster State ]
                      cluster_name : test
                      cluster_state : Normal
                      database_version : MogDB 5.0.5 (build b77f1a82)


                      [ Datanode State ]
                      cluster_name | id | ip | port | user | nodename | db_role | state | uptime | upstream
                      ---------------+------+---------------+-------+------+----------+---------+--------+----------+-----------
                      test | 6001 | 172.20.22.125 | 26000 | omm | dn_6001 | primary | Normal | 00:00:35 | -
                      | 6002 | 172.20.22.128 | 26000 | omm | dn_6002 | standby | Normal | 00:00:32 | -
                      [root@mogdb1 ~]#


                      可以看到,这套MogDB主备集群仅1分钟就完成了从5.0.3到5.0.5的升级工作。不过对于生产环境而言,在进行升级之前,还是有不少准备工作的,比如业务在新版本的验证,数据库备份(为了避免软件升级出现异常,建议手工单独备份)等等。

                      后续给大家带来更多关于MogDB的一些技术文章~~~ 欢迎关注和转发!

                      参考文档:

                      https://docs.mogdb.io/zh/ptk/v1.1/install

                      https://docs.mogdb.io/zh/ptk/v1.1/usage-upgrade


                      文章转载自Roger的数据库专栏,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                      评论