OceanBase使用 OBD 自动化部署多节点集群
OceanBase提供多種數(shù)據(jù)庫(kù)集群部署方式,之前我也有分享手動(dòng)部署的方式,通過手工部署方式,可以了解OB集群的運(yùn)行邏輯并在錯(cuò)誤出現(xiàn)時(shí)及時(shí)手工處理。
今天這篇文章,我們來分享一下如何《使用 OBD 自動(dòng)化部署多節(jié)點(diǎn)集群》。
有關(guān)手動(dòng)部署的步驟及注意事項(xiàng),請(qǐng)參考如何手動(dòng)部署 OceanBase集群 。
1.集群規(guī)劃
有關(guān)集群功能的劃分,我們?nèi)匀环弥暗囊?guī)劃信息。
1.1 集群角色劃分
本次部署 OceanBase 三節(jié)點(diǎn)集群,三節(jié)點(diǎn)每個(gè)節(jié)點(diǎn)占用一臺(tái)服務(wù)器部署observer;**另外單獨(dú)采用一臺(tái)服務(wù)器作為中控機(jī);**通過中控機(jī)直接遠(yuǎn)程登錄到 OceanBase 節(jié)點(diǎn)上部署啟動(dòng) observer 進(jìn)程,并在中控機(jī)上部署 obproxy 進(jìn)程。架構(gòu)圖如下:
1.2 機(jī)器劃分
官方建議的機(jī)器可用內(nèi)存最好是8G以上,所以我這里4臺(tái)機(jī)器均分配了10G的虛擬內(nèi)存。CPU是每個(gè)虛擬機(jī)2個(gè)虛擬核心。它們的角色分配如下:
有關(guān)服務(wù)器參數(shù)設(shè)置、SSH互信設(shè)置、時(shí)間同步等設(shè)置方法,全部參考手動(dòng)部署的內(nèi)容即可。
3.使用 OBD 自動(dòng)化部署多節(jié)點(diǎn)集群
3.1 下載并安裝OBD
首先如果我們的中控機(jī)上沒有obd軟件,我們需要先從官網(wǎng)下載并安裝:
下載完成后,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 編寫初始化配置文件
根據(jù)上面設(shè)置的IP和主機(jī)功能,我在中控機(jī)上創(chuàng)建了如下的初始化配置文件:
[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 執(zhí)行集群初始化
配置文件準(zhǔn)備好后,接下來,需要做的就是一鍵部署集群了:
您可使用命令 obd cluster deploy [集群名] -c 集群配置文件 進(jìn)行部署。
[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部署完成后,可以通過如下命令檢查集群部署狀態(tài):
[admin@obproxy ~]$ obd cluster list +----------------------------------------------------------------+ | Cluster List | +----------+-----------------------------------+-----------------+ | Name | Configuration Path | Status (Cached) | +----------+-----------------------------------+-----------------+ | ob-chris | /home/admin/.obd/cluster/ob-chris | deployed | +----------+-----------------------------------+-----------------+3.4 啟動(dòng)集群并自舉
采用obd命令,啟動(dòng)集群和自舉一氣呵成:
[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集群?jiǎn)?dòng)和自舉屬于自動(dòng)操作,基本不需要干預(yù)。
3.5 連接集群查看
在執(zhí)行完上面的N個(gè)步驟后,OB的服務(wù)組件均已經(jīng)啟動(dòng)起來了,這里啟動(dòng)了一個(gè)單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]>這里還需要注意兩點(diǎn):
1.如果你有看官網(wǎng)的登錄選項(xiàng),會(huì)看到在租戶后面增加了集群名稱,默認(rèn)情況下,在服務(wù)器上直接登錄需要去掉,否則會(huì)報(bào) access denied 錯(cuò)誤;
2.我這里配置文件有設(shè)置密碼,所以登錄的時(shí)候采用 -proot 將密碼傳了進(jìn)去,如果你的密碼不一樣,請(qǐng)自行修改。
4.寫在最后
至此為止,obd部署OceanBase集群的分享結(jié)束,歡迎大家添加博主交流。
最后,如果覺得文章對(duì)您有幫助,請(qǐng)給博主點(diǎn)贊、收藏、關(guān)注,博主會(huì)不斷推出更多優(yōu)質(zhì)的文章。
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的OceanBase使用 OBD 自动化部署多节点集群的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 递归求平均数|理解|讲解| c语言
- 下一篇: NumPy广播机制