OceanBase使用 OBD 自动化部署多节点集群
OceanBase提供多種數據庫集群部署方式,之前我也有分享手動部署的方式,通過手工部署方式,可以了解OB集群的運行邏輯并在錯誤出現時及時手工處理。
今天這篇文章,我們來分享一下如何《使用 OBD 自動化部署多節點集群》。
有關手動部署的步驟及注意事項,請參考如何手動部署 OceanBase集群 。
1.集群規劃
有關集群功能的劃分,我們仍然服用之前的規劃信息。
1.1 集群角色劃分
本次部署 OceanBase 三節點集群,三節點每個節點占用一臺服務器部署observer;**另外單獨采用一臺服務器作為中控機;**通過中控機直接遠程登錄到 OceanBase 節點上部署啟動 observer 進程,并在中控機上部署 obproxy 進程。架構圖如下:
1.2 機器劃分
官方建議的機器可用內存最好是8G以上,所以我這里4臺機器均分配了10G的虛擬內存。CPU是每個虛擬機2個虛擬核心。它們的角色分配如下:
有關服務器參數設置、SSH互信設置、時間同步等設置方法,全部參考手動部署的內容即可。
3.使用 OBD 自動化部署多節點集群
3.1 下載并安裝OBD
首先如果我們的中控機上沒有obd軟件,我們需要先從官網下載并安裝:
下載完成后,rpm一鍵安裝即可:
將obd.sh配置到.bashrc并生效
[admin@obproxy ~]$ cat .bashrc # .bashrc# Source global definitions if [ -f /etc/bashrc ]; then. /etc/bashrc fi# Uncomment the following line if you don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER=# User specific aliases and functionsisource /etc/profile.d/obd.sh [admin@obproxy ~]$ source .bashrc3.2 編寫初始化配置文件
根據上面設置的IP和主機功能,我在中控機上創建了如下的初始化配置文件:
[admin@obproxy ~]$ cat init.yaml user:username: adminpassword: adminoceanbase-ce:servers:- name: server1ip: 10.211.55.55- name: server2ip: 10.211.55.56- name: server3ip: 10.211.55.57global:devname: eth0cluster_id: 1memory_limit: 8Gsystem_memory: 4Gstack_size: 512Kcpu_count: 12cache_wash_threshold: 1G__min_full_resource_pool_memory: 268435456workers_per_cpu_quota: 10schema_history_expire_time: 1dnet_thread_count: 4major_freeze_duty_time: Disableminor_freeze_times: 10enable_separate_sys_clog: 0enable_merge_by_turn: FALSEdatafile_disk_percentage: 20syslog_level: INFOenable_syslog_wf: falseenable_syslog_recycle: truemax_syslog_file_count: 4root_password: rootproxyro_password: proxyroserver1:mysql_port: 2881rpc_port: 2882home_path: /home/admin/observerdata_dir: /datazone: zone1server2:mysql_port: 2881rpc_port: 2882home_path: /home/admin/observerdata_dir: /datazone: zone2server3:mysql_port: 2881rpc_port: 2882home_path: /home/admin/observerdata_dir: /datazone: zone3obproxy:depends:- oceanbase-ceservers:- 10.211.55.54global:listen_port: 2883prometheus_listen_port: 2884home_path: /home/admin/obproxyenable_cluster_checkout: falseskip_proxy_sys_private_check: trueobproxy_sys_password: sysobserver_sys_password: proxyro3.3 執行集群初始化
配置文件準備好后,接下來,需要做的就是一鍵部署集群了:
您可使用命令 obd cluster deploy [集群名] -c 集群配置文件 進行部署。
[admin@obproxy ~]$ obd cluster deploy ob-chris -c init.yaml oceanbase-ce-3.1.3 already installed. +-------------------------------------------------------------------------------------------+ | Packages | +--------------+---------+-----------------------+------------------------------------------+ | Repository | Version | Release | Md5 | +--------------+---------+-----------------------+------------------------------------------+ | oceanbase-ce | 3.1.3 | 10000292022032916.el7 | eab08e5d473bd4884fdf2ac4d7dff6a329b68abe | +--------------+---------+-----------------------+------------------------------------------+ Repository integrity check ok Parameter check ok Open ssh connection ok Remote oceanbase-ce-3.1.3-eab08e5d473bd4884fdf2ac4d7dff6a329b68abe repository install ok Remote oceanbase-ce-3.1.3-eab08e5d473bd4884fdf2ac4d7dff6a329b68abe repository lib check ok Cluster status check ok Initializes observer work home ok ob-chris deployed部署完成后,可以通過如下命令檢查集群部署狀態:
[admin@obproxy ~]$ obd cluster list +----------------------------------------------------------------+ | Cluster List | +----------+-----------------------------------+-----------------+ | Name | Configuration Path | Status (Cached) | +----------+-----------------------------------+-----------------+ | ob-chris | /home/admin/.obd/cluster/ob-chris | deployed | +----------+-----------------------------------+-----------------+3.4 啟動集群并自舉
采用obd命令,啟動集群和自舉一氣呵成:
[admin@obproxy ~]$ obd cluster list +----------------------------------------------------------------+ | Cluster List | +----------+-----------------------------------+-----------------+ | Name | Configuration Path | Status (Cached) | +----------+-----------------------------------+-----------------+ | ob-chris | /home/admin/.obd/cluster/ob-chris | deployed | +----------+-----------------------------------+-----------------+ [admin@obproxy ~]$ obd cluster start ob-chris Get local repositories and plugins ok Open ssh connection ok Load cluster param plugin ok Check before start observer ok [WARN] (10.211.55.55) clog and data use the same disk (/) [WARN] (10.211.55.56) clog and data use the same disk (/) [WARN] (10.211.55.57) clog and data use the same disk (/)Check before start obproxy ok Start observer ok observer program health check ok Connect to observer ok Initialize cluster Cluster bootstrap ok Wait for observer init ok +------------------------------------------------+ | observer | +--------------+---------+------+-------+--------+ | ip | version | port | zone | status | +--------------+---------+------+-------+--------+ | 10.211.55.55 | 3.1.3 | 2881 | zone1 | active | | 10.211.55.56 | 3.1.3 | 2881 | zone2 | active | | 10.211.55.57 | 3.1.3 | 2881 | zone3 | active | +--------------+---------+------+-------+--------+Start obproxy ok obproxy program health check ok Connect to obproxy ok Initialize cluster +------------------------------------------------+ | obproxy | +--------------+------+-----------------+--------+ | ip | port | prometheus_port | status | +--------------+------+-----------------+--------+ | 10.211.55.54 | 2883 | 2884 | active | +--------------+------+-----------------+--------+ ob-chris running通過上面的日志記錄可以看到,obd集群啟動和自舉屬于自動操作,基本不需要干預。
3.5 連接集群查看
在執行完上面的N個步驟后,OB的服務組件均已經啟動起來了,這里啟動了一個單obproxy+3 observer的集群,下面我們嘗試使用mysql/obclient客戶端登錄:
MySQL客戶端登錄:
[admin@obproxy ~]$ mysql -h 10.211.55.54 -uroot@sys -P2883 -proot -c -A oceanbase Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 2097153 Server version: 5.6.25 OceanBase 3.1.3 (r10000292022032916-3d79cacb37012cf61b7cb8faf00d9a6bb152bcd1) (Built Mar 29 2022 08:20:39)Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MySQL [oceanbase]>obclient客戶端登錄:
[admin@observer1 ~]$ obclient -h 10.211.55.54 -uroot@sys -P2883 -proot -c -A oceanbase Welcome to the OceanBase. Commands end with ; or \g. Your MySQL connection id is 16 Server version: 5.6.25 OceanBase 3.1.3 (r10000292022032916-3d79cacb37012cf61b7cb8faf00d9a6bb152bcd1) (Built Mar 29 2022 08:20:39)Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MySQL [oceanbase]>這里還需要注意兩點:
1.如果你有看官網的登錄選項,會看到在租戶后面增加了集群名稱,默認情況下,在服務器上直接登錄需要去掉,否則會報 access denied 錯誤;
2.我這里配置文件有設置密碼,所以登錄的時候采用 -proot 將密碼傳了進去,如果你的密碼不一樣,請自行修改。
4.寫在最后
至此為止,obd部署OceanBase集群的分享結束,歡迎大家添加博主交流。
最后,如果覺得文章對您有幫助,請給博主點贊、收藏、關注,博主會不斷推出更多優質的文章。
?
?
?
?
總結
以上是生活随笔為你收集整理的OceanBase使用 OBD 自动化部署多节点集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 递归求平均数|理解|讲解| c语言
- 下一篇: 【设计模式】职责链模式:如果第三方短信平