在上一章節中,我們展示了如何將ClickHouse專案原始碼在Linux的發行版本作業系統上進行跨編譯,在本章節中,我們將會討論與整理ClickHouse資料庫伺服器啟動的方法。
在前面的幾個章節中,我們了解了幾種常見的ClickHouse資料庫伺服器的安裝方法與完整的安裝步驟,同時也在這些步驟中,多少有提到啟動ClickHouse資料庫的啟動,筆者在這邊歸納出幾種啟動資料庫的方法。
首先,若是使用單一的二進位執行檔的安裝方式的話,則我們可以使用下列的方法將資料庫進行啟動:
sudo clickhouse start
使用上述的方法將指令啟動通常是使用了從ClickHouse原始碼建置與編譯,還有下載已經編譯好的ClickHouse二進位元執行檔等安裝方式。
若是使用DEB或是RPM套件等方式來安裝ClickHouse資料庫的話,則可以利用下列的方式進行啟動ClickHouse資料庫:
sudo service clickhouse-server start
同時也可以透過下列的指令來查看目前此資料庫背景服務運行的狀態,相關的執行指令與輸出的訊息如下:
peter@ubuntu-s-4vcpu-8gb-amd-sgp1-01:~$ sudo service clickhouse-server status
● clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
Loaded: loaded (/lib/systemd/system/clickhouse-server.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-09-10 07:34:04 UTC; 1min 3s ago
Main PID: 15342 (clckhouse-watch)
Tasks: 206 (limit: 4915)
CGroup: /system.slice/clickhouse-server.service
├─15342 clickhouse-watchdog --config=/etc/clickhouse-server/config.xml --pid-file=/run/clickhouse
└─15357 /usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml --pid-file=/run/cli......
在後續的Linux發行版本中,多了systemctl
來實際的操作與管理作業系統上的process程序,因此以Ubuntu的發行版本作業系統來說,在18.04之後的版本就會有systemctl
的指令可以使用,所有相關的process程序將由systemd
來管理,所以如果有systemctl
的指令可以使用的話,則可以使用下列的方式進行啟動:
sudo systemctl start clickhouse-server.service
也可以透過下列的指令來查看目前資料庫背景服務的運行狀態,相關的執行指令與輸出的訊息如下:
peter@ubuntu-s-4vcpu-8gb-amd-sgp1-01:~$ sudo systemctl status clickhouse-server.service
● clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
Loaded: loaded (/lib/systemd/system/clickhouse-server.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-09-10 07:34:04 UTC; 2min 21s ago
Main PID: 15342 (clckhouse-watch)
Tasks: 206 (limit: 4915)
CGroup: /system.slice/clickhouse-server.service
├─15342 clickhouse-watchdog --config=/etc/clickhouse-server/config.xml --pid-file=/run/clickhouse
└─15357 /usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml --pid-file=/run/cli......
若service
與systemctl
的指令都沒有的話,則只能透過下列的指令進行資料庫服務的啟動:
sudo /etc/init.d/clickhouse-server start
相關執行指令的輸出結果如下:
peter@ubuntu-s-4vcpu-8gb-amd-sgp1-01:~$ sudo /etc/init.d/clickhouse-server start
chown -R clickhouse: '/var/run/clickhouse-server/'
Will run clickhouse su 'clickhouse' /usr/bin/clickhouse-server --config-file /etc/clickhouse-server/config.xml --pid-file /var/run/clickhouse-server/clickhouse-server.pid --daemon
Waiting for server to start
Waiting for server to start
Server started
sed: can't read /etc/cron.d/clickhouse-server: No such file or directory
peter@ubuntu-s-4vcpu-8gb-amd-sgp1-01:~$
以DEB或是RPM套件安裝的方式來說,ClickHouse資料庫相關的設定檔會存放在/etc/clickhouse-server/config.xml
,若要修改設定檔的話,則可以修改此設定檔案接著再執行下列的指令進行重新啟動ClickHouse資料庫服務:
# 有systemctl指令時可以使用
sudo systemctl restart clickhouse-server.service
# 有service指令時可以使用
sudo service clickhouse-server restart
# 沒有systemctl或是service指令時使用
sudo /etc/init.d/clickhouse-server restart
若是使用單一二進位執行檔或是壓縮檔的方式進行安裝的話,則可以使用下列的方式將設定檔代入並啟動ClickHouse資料庫的服務:
clickhouse-server --config-file=/etc/clickhouse-server/config.xml
若以上述的方式啟動ClickHouse的資料庫的話,則會把運行的log紀錄輸出在終端機上,設定檔的定義與內容我們會在後面章節中提到。
如果使用下列的指令,不論是,clickhouse-client
、clickhouse-server
或是其他有些以clickhouse-
這樣開頭的指令,都是捷徑並指向到clickhouse
,下列的指令與輸出的訊息可以證明這一點:
peter@ubuntu-s-4vcpu-8gb-amd-sgp1-01:~$ ls -al /usr/bin/clickhouse-*
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-benchmark -> /usr/bin/clickhouse
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-client -> /usr/bin/clickhouse
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-compressor -> /usr/bin/clickhouse
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-copier -> /usr/bin/clickhouse
-rwxr-xr-x 1 root root 19620075 Aug 31 13:17 /usr/bin/clickhouse-diagnostics
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-disks -> /usr/bin/clickhouse
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-extract-from-config -> /usr/bin/clickhouse
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-format -> /usr/bin/clickhouse
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-git-import -> /usr/bin/clickhouse
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-keeper -> /usr/bin/clickhouse
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-keeper-converter -> /usr/bin/clickhouse
-rwxr-xr-x 1 clickhouse-bridge clickhouse-bridge 145657160 Aug 31 13:17 /usr/bin/clickhouse-library-bridge
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-local -> /usr/bin/clickhouse
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-obfuscator -> /usr/bin/clickhouse
-rwxr-xr-x 1 clickhouse-bridge clickhouse-bridge 146358832 Aug 31 13:17 /usr/bin/clickhouse-odbc-bridge
-rwxr-xr-x 1 root root 2014 Aug 31 12:52 /usr/bin/clickhouse-report
lrwxrwxrwx 1 root root 19 Sep 10 15:01 /usr/bin/clickhouse-server -> /usr/bin/clickhouse
從上述指令來看,我們可以知道大部分指令都是以捷徑方式指向到clickhouse
,筆者認為這是CLickHouse官方為了要區分指令,但是很多功能特性都包含在clickhouse
裡面,所以使用捷徑將clickhouse
指令分出去,這樣較容易識別。
從本章節中,我們統整了各個不同啟動ClickHouse資料庫的方法,並整理了在不同方式時,需要使用的啟動方法也不同,在下一章節中將會統整ClickHouse資料庫客戶端的使用方法。