大家好……
我正在尋求任何使用者的建議或指導,關於在 ContainerStation 上託管 MariaDB 的經驗——無論是直接作為 Docker 映像,還是間接地,例如在 ContainerStation 的 ubuntu Server 映像上託管。
目前我是在 QTS 上原生運行 MariaDB——而且運作得非常好。事實上,我只有一個挑戰,就是 QTS 最新版本的 MariaDB 只有 10.5.8……而我正嘗試搭配 BookStack 使用,它需要更近期的版本。
我曾嘗試提交支援工單,詢問 QTS 開發者是否有 MariaDB 在 QTS 上的更新計畫,但如果他們有,似乎也不願意透露。我覺得這很合理,所以我並不抱怨。
不過,如果我想繼續享受 RAID-6 的優點,以及穩定的 UPS 託管環境,我覺得目前有兩個選擇……
ContainerStation 上列出了多個 MariaDB 容器映像——數十個 。由於我除了幾年前短暫試用過 Zabbix 外,沒有用過 ContainerStation,所以不太確定該選哪個版本,尤其是列表中只有一個映像有綠色小旗標誌,我猜這代表它是唯一的「官方」映像。非常希望能聽聽有在 ContainerStation 部署 MariaDB 映像的朋友,分享正確的做法。
另外,有一件事我一定 要能做到,就是備份我的資料庫。現在用 QTS 實例時,設定很簡單——我寫了一個簡單的 shell 腳本,然後按照 QNAP 的建議方式把它加到 QTS 的 crontab 系統。據我了解,應該可以用 Docker 的 exec 指令來操作 MariaDB,但不太確定要怎麼排程,例如每天凌晨 02:30 執行一次「mysqldump」。所以很想聽聽有在容器裡跑 MariaDB 的朋友,分享他們的心得,以及如何備份資料。
第二個選項,當然就是跑完整的 OS 映像。我看到 Docker 有 ubuntu 22.04 LTS 映像……我很熟悉這個系統,也可以在上面跑完整的 MariaDB 12.x 實例。我應該能透過 SSH 和 VNC 連到 ubuntu Server 的虛擬 IP,這樣就能掛載回 QTS 原生的 NFS 分享,存取 MariaDB 傾印檔案,方便匯出到可移動媒體做離線備份。
感覺我現在有幾個可行的選擇,應該都能運作。但細節上有很多眉角,我想在動手建置前,先聽聽大家的建議,省下不少時間和麻煩。
非常希望能聽聽有相關經驗的朋友分享。
先謝謝大家!
如果您想使用的服務對 MariaDB 版本有特定要求,我建議您使用 Container Station。
如果在此過程中遇到任何困難,請為我們提交支援單,我們可以提供協助。謝謝!
謝謝你,Steve,我很感謝你的回覆。
在我發帖之後,我繼續嘗試並取得了一些進展。我研究出如何直接從 DockerHub 將官方的 “mariadb-latest” 容器拉入 ContainerStation,在確認它會給我 12.0.2(目前最新的穩定版本)之後。我第一次嘗試時遇到了一個問題,就是在建立容器時沒有使用「進階」選項,因此錯過了設定自訂環境變數的機會,而這些變數是我需要用來傳遞 MariaDB 初始設置參數的。幸運的是,它拋出的錯誤訊息很明確,清除現有內容並重新執行這個步驟也很簡單,所以,正如你建議的,這將會是我的首選方式。
當我在這方面卡住時,我轉向了 VirtualizationStation 並在那裡嘗試了一下。我發現這比較棘手——主要是我自己理解不足,加上 QNAP 官方文件看起來有點過時——但昨晚我終於成功啟動了一個 VM,並用我為這個任務下載的最新 Linux Mint ISO 來運行[我平常用 Mint 當桌面系統,所以稍微熟悉一些]。一切都很順利——我在瀏覽器裡透過 Virtualization Station 順利運行了 “Mint Installer” 圖形桌面,但隨後遇到了一個不可避免的問題,就是 Mint 提供的 MariaDB 最新版本只比我在 QTS 原生系統上的版本多了幾個小版本。
當然這並不是無法克服的——我只要把官方 MariaDB 軟體庫加到我的 sources.list 檔案裡,然後用 apt 拉下我需要的版本就行了。
在這兩種情況下,我做的都算是「快速且簡單」的處理——例如,不論用哪種方案,我都真的需要給這個 DB 實例分配一個固定 IP 地址[我以前在試驗 Zabbix 時做過,但那已經是好幾年前的事了——只要回想一下當時怎麼做就好]。我也需要研究如何安排資料庫備份。如果我走 VirtualizationStation 這條路就很簡單——直接用我主機 OS 的原生 cron 就可以了……如果用 ContainerStation,我還是會用 cron,但會用 QTS 的原生 cron,然後透過 “docker exec” 命令與 MariaDB 指令列互動……當然到時候我還得搞清楚,如何存取 NAS 上的公開分享資料夾,這樣 “mysqldump” 指令的輸出就能推送到 NAS 檔案系統上,1)保留 RAID6 保護;2)可以納入我的 HBS3 備份排程。
所以我覺得我「已經在路上」了。既然你推薦了 ContainerStation,我會先以此為主,但我對 “VirtualisationStation” 的表現也很感興趣/滿意,我認為這值得深入研究,也許這次用不上,但肯定對其他專案有幫助。
我也一邊做一邊記錄筆記,等完成後就能發佈一篇操作教學。
謝謝
Clive
嗨 Clive,
很高興聽到你已經找到了一些方向!
如果你不介意,我們非常歡迎你在社群這裡分享你的測試和研究結果。我們相信這會幫助其他正在尋找類似應用的人。謝謝!
嗨 Steve,
只是想讓你知道,今晚我已成功透過 ContainerStation 安裝了 MariaDB 12.0.2(最新穩定版本)。我已經完成新增一個「非 root」本地用戶,並透過該帳號授予自己遠端存取伺服器的權限,然後只需在我的本地「PHPMyAdmin」設定中新增第二個伺服器設定(該程式運行於 Raspberry Pi,而非我的 QNAP NAS),並成功連線、建立資料庫、加入資料表等等。
我還有一點事情要做——特別是最重要的事 ……當然,首先是要確認我能對一個正在運作的資料庫執行 sqldump,其次要確認我能將輸出「傳送」到 NAS 上主要「Public」分享資料夾樹中的某個資料夾……最後就是要能將該命令整合到 672 的 crontab 功能裡,讓我可以自動排程備份,並與我的 HBS3 備份設定整合。
好消息是,其實一切都很簡單,只要掌握幾個簡單的「小陷阱」就行了。
等我把最後幾個細節處理好後,會回來提供完整的文件說明。
1個讚
嗨 Steve,
回來兌現我之前承諾要分享測試結果。我寫了一份相當詳細的指南,並發表在一個新的討論串裡——總共12則貼文——你可以在這裡找到:
Introduction
Having done a small amount of experimentation, I have an instance of the latest stable release of MariaDB up and running in ContainerStation and wanted to share some lessons learned. In order to verify successful deployment, this process has also involved the following:-
Creating a dedicated service user, backup, with restricted permissions for that role
Establishing a remote connection via PHPMyAdmin
Creating a test database and performing a test backup
Deleting a reco…
我習慣在開始接觸新技術和開發新解決方案時,為自己寫下相當仔細的筆記,所以這份指南也採用了同樣的細節程度。我非常歡迎你的審閱和回饋。如果需要編輯,請告訴我。
謝謝你。
1個讚
感謝你的分享!
我相信這些資訊對於社群中遇到類似問題的其他人會有很大幫助,非常感謝!