寫在前面
本來已經開始慢慢進入MogDB的世界,突然出現一個小插曲,由于我上一個主從環境是按照手動安裝模式安裝的,我在后續學習過程中發現很多命令都是通過gs_om。手動安裝沒有這個可執行程序,就從別的包里找了一個,發現不可用,咨詢官方大大說手動安裝命令不支持gs_om,建議使用PKT的方式安裝主從,好吧,擼起袖子重新干,重新安裝虛擬機,MogDB踩的第一坑。
建議把gs_om從安裝包中獨立出來,可以獨立部署使用,畢竟是一個出現頻率比較高的管理工具,畢竟官網有這么一句話(在某些安裝程序尚未支持的操作系統上,安裝程序(比如OM)會報操作系統不支持的錯誤,此時可以通過手動方式安裝MogDB)。
環境規劃
NODE1(主庫) | NODE2(從庫) | |
Hostname | pkt_mogdb1 | pkt_mogdb2 |
IP | 10.80.9.249 | 10.80.9.250 |
磁盤 | 20G | 20G |
內存 | 2G | 2G |
安裝Centos7
詳見我的第一篇筆記http://m.sunline.cc/db/452286,此處略
配置環境
此步驟需要在node1、node2都需要執行
- 配置hostname
Node1
hostnamectl set-hostname pkt_mogdb1 |
Node2
hostnamectl set-hostname pkt_mogdb2 |
- 配置IP地址
Node1
nmcli connection modify enp0s3 ipv4.addresses 10.80.9.249/24 ipv4.gateway 10.80.0.1 ipv4.method manual autoconnect yes |
Node2
nmcli connection modify enp0s3 ipv4.addresses 10.80.9.250/24 ipv4.gateway 10.80.0.1 ipv4.method manual autoconnect yes |
三、配置yum源 node1、node2都要執行
掛載磁盤鏡像
[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 |
- 安裝依賴包
由于安裝操作系統的時候使用了極簡安裝,因此很多管理包也不存在,導致很多管理命令無法執行,先安裝以下三個yum組
yum group install "System Administration Tools" \ --setopt=group_package_types=mandatory,default,optional yum group install "System Management" \ --setopt=group_package_types=mandatory,default,optional yum group install "Basic Web Server" |
安裝MogDB的依賴包
yum install libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel expect openSSH |
四、關閉防火墻
[root@mogdb ~]# systemctl status firewalld.service [root@mogdb ~]# systemctl stop firewalld.service [root@mogdb ~]# systemctl status firewalld.service [root@mogdb ~]# systemctl disable firewalld.service |
五、關閉seLinux
[root@mogdb ~]# vi /etc/selinux/config |
修改“SELINUX”的值“disabled”
需要重啟生效,也可以臨時生效
[root@mogdb ~]# setenforce 0 |
六、設置網卡MTU值
[root@mogdb ~]# ifconfig enp0s3 mtu 8192 |
七、其他環境配置請參考官方文檔
https://docs.mogdb.io/zh/mogdb/v3.0/os-configuration
其他的我暫時沒有設置,先安裝試一下
八、上傳軟件包并解壓
[root@mogdb1 software]# mkdir -p /opt/mogdb/data [root@mogdb1 software]# mkdir -p /opt/mogdb/software [root@mogdb1 software]# pwd /opt/mogdb/software [root@mogdb1 software]# ll -rw-r--r--. 1 root root 139152523 Aug 8 17:27 MogDB-3.0.0-CentOS-x86_64.tar.gz -rw-r--r--. 1 root root 4974994 Aug 8 17:27 ptk_linux_x86_64.tar.gz |
- 解壓ptk
[root@localhost software]# tar -zxvf ptk_linux_x86_64.tar.gz |
安裝
- 編輯安裝概要文件
[root@localhost software]# cat config.yaml global: cluster_name: mogdb_cluster1 user: omm group: omm #MogDB會默認在base_dir指定的路徑下面再創建一個data文件夾 base_dir: /opt/mogdb/data db_servers: - host: 10.80.9.249 db_port: 26000 role: primary ssh_option: port: 22 user: root password: password - host: 10.80.9.250 db_port: 26000 role: standby ssh_option: port: 22 user: root password: password |
注意:配置文件中的密碼不允許是明文,需要使用ptk工具轉換成密文代替,生成密文的命令如下:
[root@localhost software]# ./ptk encrypt password password: pTk6NGM1YjMzZjE8RDxEPUM/QmU5NXp4R3Uxd3NMbXpQU3VoanZ5WEZCUXV0UEJLZU5Rc0RlemloLUJCSG8= |
把打印出的password替換到文件中
[root@localhost software]# cat config.yaml global: cluster_name: mogdb_cluster1 user: omm group: omm base_dir: /opt/mogdb/data db_servers: - host: 10.80.9.249 db_port: 26000 role: primary ssh_option: port: 22 user: root password: pTk6NGM1YjMzZjE8RDxEPUM/QmU5NXp4R3Uxd3NMbXpQU3VoanZ5WEZCUXV0UEJLZU5Rc0RlemloLUJCSG8= - host: 10.80.9.250 db_port: 26000 role: standby ssh_option: port: 22 user: root password: pTk6NGM1YjMzZjE8RDxEPUM/QmU5NXp4R3Uxd3NMbXpQU3VoanZ5WEZCUXV0UEJLZU5Rc0RlemloLUJCSG8= |
- 檢查操作系統
此步驟會報錯,主要關注lever級別是Abnormal。檢查會生成一個修復腳本,執行腳本就可以了
按照提示執行root_fix_os.....sh,以下是腳本內容
#!/usr/bin/env bash local_ips=$(ip addr | grep 'inet' | grep -v 'inet6\|127.0.0.1' | grep -v grep | awk -F '/' '{print $1}' | awk '{print $2}') # fix suggestions for host: 10.80.9.249 for ip in ${local_ips}; do if [[ "${ip}" == "10.80.9.249" ]]; then # item Check_THP_Service [ -f /sys/kernel/mm/transparent_hugepage/enabled ] && echo 'never' | sudo tee /sys/kernel/mm/transparent_hugepage/enabled # item Check_Dependent_Package yum install -y numactl exit 0 fi done |
需要把腳本復制到從庫環境執行,注意要修改IP地址
再次檢查
還有一個中斷項
A16.Check_CPU_Instruction_Set | Abnormal
然后仍然提供了一個腳本
執行ptk checkos -i A16 --detail查看檢查詳細信息
我的虛擬機不支持
bmi2指令集(CentOS) | 執行lscpu | grep bmi2命令查看是否支持bmi2指令集 |
我搭建主從就是因為這個檢查項沒有通過,所以決定使用手動安裝,但是發現用不了gs_om,嗚呼哀哉。
- 安裝Mogdb
因為cpu指令檢查不通過,跳過系統檢查
[root@mogdb soft]# ptk install -f config.yaml --pkg ./MogDB-3.0.0-CentOS-x86_64.tar.gz --skip-check-os |
安裝會讓你再次確認概要文件有沒有問題,如果沒有問題輸入Y繼續
接下來輸入db密碼
我輸入的是P@ssw0rd,怕忘了記錄一下
輸出以下界面表示安裝成功
- 主備庫分別連接數據庫
連接成功
- 檢查主備庫信息
- 試一下讓我重新安裝的gs_om命令
[omm@pkt_mogdb1 data]$ gs_om --help |
報錯提示/usr/bin/env: python3: No such file or directory。看來需要安裝python3的包
yum install python3 |
查看MogDB運行信息,看一查看那個節點運行的是主節點,那個節點是從節點,這次安裝期待的就是這一點了,撥開云霧見青天。
gs_om -t status --detail |
最后
大功告成,繼續學習吧。從重新安裝到記錄筆記也用了一下午的時間。




