MeterSphere Database Backup and Restore

Sheng-Shan Chen
4 min readAug 20, 2020

--

先前經歷過CentOS爆掉,MeterSphere的資料全毀的窘境,特此記錄如何備份MeterSphere資料庫與還原,該平台是使用Docker建立的。

MeterSphere 是一站式的開源企業級持續測試平台,涵蓋測試跟踪、接口測試、性能測試、團隊協作等功能,兼容JMeter 等開源標準,有效助力開發和測試團隊充分利用雲彈性進行高度可擴展的自動化測試。

配置環境

CentOS 7、MeterSphere v1.1.2

請注意資料庫配置都是預設,詳細內容請參考官方文件

https://metersphere.io/docs/

# 数据库配置
## 是否使用外部 MySQL 数据库
MS_EXTERNAL_MYSQL=false
## MySQL 数据库地址,仅在使用外部数据库时修改
MS_MYSQL_HOST=mysql
## MySQL 数据库端口,仅在使用外部数据库时修改
MS_MYSQL_PORT=3306
## MySQL 数据库库名, 仅在使用外部数据库时修改
MS_MYSQL_DB=metersphere
## MySQL 数据库用户名
MS_MYSQL_USER=root
## MySQL 数据库密码
MS_MYSQL_PASSWORD=Password123@mysql

備份步驟

Step 1. 進入docker mysql container:

docker exec -u 0 -it mysql bash

Step 2. 使用mysqldump指令導出資料庫

mysqldump -u root -p metersphere > backup.sql
Enter password:Password123@mysql
exit

記得確認一樣資料有正確導出

Step 3. 利用docker cp 指令將backup.sql從內部容器複製出來,妥善保存。

docker cp mysql:/backup.sql backup.sql

至此,資料庫備份完成。

資料庫還原

Step 1. 將保存在異地的sql檔複製到mysql container內。

docker cp backup.sql mysql:/backup.sql

Step 2. 進入mysql container。

docker exec -u 0 -it mysql bash

Step 3. 導入備份的資料庫前必須刪除現有的資料庫,否則會失敗,故先刪除資料庫,再創建一個新的。

# mysql -u root -p
mysql > drop database metersphere;
mysql > create database metersphere;
mysql > exit

切換瀏覽器看看,明顯看到錯誤訊息,因為資料還沒完全導入。

根據官方文件敘述,可透過

msctl status

查看整體狀態(雖然state都是up)

還有另一種是直接看logs。

docker logs [container-Name]

Step 4. 導入先前備份的sql檔。

mysql -u root -p metersphere < backup.sql

查看瀏覽器,資料已復原。

結論

Docker是繼VM之後受到青睞的開放平台,具備優秀的可擴展性與可移植性,至完稿前還無針對MeterSphere的Mysql進行資料庫備份與還原相關文章,雖說如此但大部分的Docker Mysql 資料庫都遵循著一樣的步驟來備份還原,又繁體中文的教學又少,網路上內容農場都重複的內容居多,故撰寫此篇,希望能幫助大家。

「有著作權,侵害必究」

參考資料

  1. https://docs.docker.com/engine/reference/commandline/docker/
  2. https://metersphere.io/docs/

--

--