Docker部署KingbaseES數(shù)據(jù)庫(kù)操作指南
本文詳細(xì)介紹了KingbaseES V9數(shù)據(jù)庫(kù)在Docker環(huán)境下的部署流程。首先需要準(zhǔn)備Linux服務(wù)器和Docker環(huán)境(版本需≥20.10.0),導(dǎo)入官方kingbase.tar鏡像包。部署步驟包括:導(dǎo)入鏡像、設(shè)置掛載目錄(注意權(quán)限設(shè)置)、運(yùn)行容器(支持多種環(huán)境變量配置)、數(shù)據(jù)庫(kù)自動(dòng)運(yùn)行及驗(yàn)證。文章還提供了ksql訪問數(shù)據(jù)庫(kù)、容器日志查看、配置文件持久化等方法,并說明了正確性驗(yàn)證和卸載步驟。關(guān)鍵注意事項(xiàng)包括Docker版本要求、掛載目錄權(quán)限設(shè)置以及容器自啟動(dòng)配置等,為KingbaseES數(shù)據(jù)庫(kù)的容器化部署提供了完整指導(dǎo)。
一、環(huán)境準(zhǔn)備
我這邊用的是KingbaseES V9(V009R002C010)Oracle 兼容版,環(huán)境是 Linux 服務(wù)器,Docker 版本必須大于 20.10.0,低版本會(huì)出各種兼容問題,提前升級(jí)好。
提前準(zhǔn)備好金倉(cāng)官方提供的kingbase.tar鏡像包,這是整個(gè)部署的基礎(chǔ)。
二、安裝步驟
1. 導(dǎo)入鏡像
獲取金倉(cāng)數(shù)據(jù)庫(kù)鏡像包kingbase.tar,導(dǎo)入到本機(jī)docker鏡像倉(cāng)庫(kù)中:
docker load -i kingbase.tar
查看導(dǎo)入的鏡像:
docker images
執(zhí)行后應(yīng)看到類似輸出:
REPOSITORY TAG IMAGE ID CREATED SIZE kingbase v1 84c4c61cc40e 3 weeks ago 794MB
注意:當(dāng)使用docker load -i kingbase.tar命令報(bào)錯(cuò)時(shí),可使用docker import kingbase.tar命令嘗試重新導(dǎo)包。
2. 設(shè)置掛載目錄
使用-v選項(xiàng)可以將容器內(nèi)數(shù)據(jù)目錄掛載到宿主機(jī)。設(shè)置數(shù)據(jù)庫(kù)data目錄的持久化路徑時(shí),需要注意:
-v選項(xiàng)冒號(hào)左側(cè)宿主機(jī)掛載目錄(例如/mnt/data)權(quán)限需要設(shè)置為755-v選項(xiàng)冒號(hào)右側(cè)為容器內(nèi)的掛載路徑,需要設(shè)置為/home/kingbase/userdata,不然data目錄無法持久化
chmod -R 755 /mnt/data
3. 運(yùn)行鏡像
環(huán)境變量說明
數(shù)據(jù)庫(kù)默認(rèn)用戶名:system 數(shù)據(jù)庫(kù)默認(rèn)密碼:12345678ab 數(shù)據(jù)庫(kù)默認(rèn)data目錄:/home/kingbase/userdata/data
支持的環(huán)境變量:
NEED_START:進(jìn)入容器后是否啟動(dòng)數(shù)據(jù)庫(kù),yes(默認(rèn))/noDB_USER:數(shù)據(jù)庫(kù)用戶DB_PASSWORD:數(shù)據(jù)庫(kù)初始密碼DB_MODE:數(shù)據(jù)庫(kù)模式,支持oracle/pg/mysqlENCODING:數(shù)據(jù)庫(kù)啟動(dòng)的字符集,支持utf8(默認(rèn))
最小啟動(dòng)命令
docker run -tid --privileged \ --name kingbase \ kingbase:v1 /usr/sbin/init
完整啟動(dòng)命令示例
docker run -tid --privileged \ -p 4321:54321 \ -v /mnt/data:/home/kingbase/userdata/ \ -e NEED_START=yes \ -e DB_USER=kingbase \ -e DB_PASSWORD=123456 \ -e DB_MODE=oracle \ --name kingbase \ kingbase:v1 /usr/sbin/init
提示:創(chuàng)建容器的時(shí)候,可以在docker run命令中增加--restart=always選項(xiàng),保證Linux系統(tǒng)重啟后容器自動(dòng)運(yùn)行。
4. 數(shù)據(jù)庫(kù)自動(dòng)運(yùn)行
容器啟動(dòng)后,數(shù)據(jù)庫(kù)即開始運(yùn)行,用戶無須手動(dòng)啟動(dòng)數(shù)據(jù)庫(kù)(數(shù)據(jù)庫(kù)配置正確或者處于初始態(tài))。
查看容器狀態(tài):
docker ps
進(jìn)入容器:
docker exec -it kingbase /bin/bash
查看數(shù)據(jù)庫(kù)運(yùn)行狀態(tài):
sys_ctl -D /home/kingbase/userdata/data/ status
正常輸出顯示:
sys_ctl: server is running (PID: 76)
5. ksql訪問數(shù)據(jù)庫(kù)
使用ksql進(jìn)行訪問:
ksql -U kingbase -d test -p 54321
僅輸入ksql免密訪問:
ksql
注意:su - root會(huì)導(dǎo)致環(huán)境變量丟失,PATH中沒有ksql(也無法ksql免密登錄),推薦使用su root。
6. 容器外訪問數(shù)據(jù)庫(kù)
宿主機(jī)遠(yuǎn)程訪問需要加-h及改變映射端口:
./kingbase/bin/ksql -U system -d test -h 10.10.12.252 -p 4321
輸入密碼后即可訪問。
7. 查看容器日志
使用docker logs查看容器腳本執(zhí)行日志:
docker logs kingbase
正常日志中應(yīng)包含:
waiting for server to start... done server started
8. 配置文件持久化
啟動(dòng)容器后,相關(guān)配置文件會(huì)隨著data目錄一起持久化,包括kingbase.conf、kingbase_auto.conf、sys_hba.conf等。
在持久化目錄中修改配置文件后,使用如下命令使修改生效:
/home/kingbase/install/kingbase/bin/sys_ctl reload -D /home/kingbase/userdata/data/
9. 安裝正確性驗(yàn)證
安裝完成后,可通過以下方式進(jìn)行驗(yàn)證:
(1)查看安裝后容器的狀態(tài)
docker ps -a
(2)使用docker logs命令檢查數(shù)據(jù)庫(kù)啟動(dòng)日志
docker logs kingbase
(3)進(jìn)入容器檢查數(shù)據(jù)庫(kù)進(jìn)程
docker exec -it kingbase /bin/bash sys_ctl -D /home/kingbase/userdata/data/ status
10. License持久化及更換
License文件會(huì)隨著data目錄持久化,更換license時(shí)替換對(duì)應(yīng)文件并修改權(quán)限即可。
三、卸載數(shù)據(jù)庫(kù)
卸載步驟按順序執(zhí)行:
1. 停止容器
docker stop kingbase
2. 刪除容器
docker rm kingbase
3. 刪除鏡像
docker rmi kingbase:v1
四、注意
- 當(dāng)使用docker load -i kingbase.tar命令報(bào)錯(cuò)時(shí),可使用docker import kingbase.tar命令嘗試重新導(dǎo)包。
- 創(chuàng)建容器的時(shí)候,可以在docker run命令中增加--restart=always選項(xiàng),保證Linux系統(tǒng)重啟后容器自動(dòng)運(yùn)行。
- docker版本需要大于20.10.0。
到此這篇關(guān)于Docker部署KingbaseES數(shù)據(jù)庫(kù)操作指南的文章就介紹到這了,更多相關(guān)Docker部署KingbaseES數(shù)據(jù)庫(kù)操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于docker部署的jenkins跑git上的程序的問題
這篇文章主要介紹了docker部署的jenkins跑git上的程序的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
詳解Docker如何啟動(dòng)一個(gè)Centos鏡像
本篇文章主要介紹了詳解Docker如何啟動(dòng)一個(gè)Centos鏡像,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
Docker數(shù)據(jù)管理之Volume與Bind?Mount的核心技術(shù)詳解
這篇文章主要為大家詳細(xì)介紹了Docker數(shù)據(jù)持久化的兩種核心技術(shù),主要是Volume(數(shù)據(jù)卷)和Bind?Mount(綁定掛載),有需要的小伙伴可以了解下2026-05-05
詳解使用?docker?compose?部署?golang?的?Athens?私有代理問題
這篇文章主要介紹了使用?docker-compose?部署?golang?的?Athens?私有代理,幫助大家快速學(xué)習(xí)athens 如何構(gòu)建私有代理,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
詳解復(fù)制備份docker容器數(shù)據(jù)的方法
這篇文章主要介紹了詳解復(fù)制備份docker容器數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Docker部署HertzBeat實(shí)時(shí)監(jiān)控告警系統(tǒng)
HertzBeat是一款開源的實(shí)時(shí)監(jiān)控告警系統(tǒng),本文就來介紹一下Docker部署HertzBeat實(shí)時(shí)監(jiān)控告警系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
Docker安裝MySql8并遠(yuǎn)程訪問的實(shí)現(xiàn)
本文主要介紹了Docker安裝MySql8并遠(yuǎn)程訪問的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
docker網(wǎng)卡的IP地址修改方法總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于docker網(wǎng)卡的IP地址修改方法,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-06-06

