Open edX 是開放原始碼的線上教學平台,
可以除了線上授課之外,
系統的備份與還原也是很重要的,
今天就來教大家:
Open edX 的備份與還原
Open edX 來自哈佛與麻省理工學院,
提供優質的線上學習平台,
雖說為開源專案,
官方有撰寫技術文件,
但許多細節與錯誤並沒有及時更正,
只能靠廣大使用者分享其解決方案。
在全站備份部分,
官方建議使用底下 script 檔:
#!/bin/bash MYSQL_CONN="-uroot -p" echo "Reading MySQL database names..." mysql ${MYSQL_CONN} -ANe "SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN ('mysql','information_schema','performance_schema', 'sys')" > /tmp/db.txt DBS="--databases $(cat /tmp/db.txt)" NOW="$(date +%Y%m%dT%H%M%S)" SQL_FILE="mysql-data-${NOW}.sql" echo "Dumping MySQL structures..." mysqldump ${MYSQL_CONN} --add-drop-database --skip-add-drop-table --no-data ${DBS} > ${SQL_FILE} echo "Dumping MySQL data..." # If there is table data you don't need, add --ignore-table=tablename mysqldump ${MYSQL_CONN} --no-create-info ${DBS} >> ${SQL_FILE} for db in edxapp cs_comments_service; do echo "Dumping Mongo db ${db}..." mongodump -u admin -p -h localhost --authenticationDatabase admin -d ${db} --out mongo-dump-${NOW} done tar -czf openedx-data-${NOW}.tgz ${SQL_FILE} mongo-dump-${NOW}
執行後將 MySQL與 Mongo資料庫 都備份並壓縮到名為 openedx-data-[日期].tgz,
MySQL部分為 edxapp 與 edxapp_csmh 兩個資料庫,
在還原之前,
必須先停用所有服務,
sudo /edx/bin/supervisorctl stop all
解開壓縮檔後就能夠直接還原:
$ tar -xvf openedx-data-20200411T154750.tgz
$ mysql -uroot -p < mysql-data-20200411T154750.sql
$ mongorestore -u admin -h localhost --authenticationDatabase admin --drop -d edxapp mongo-dump-20200411T154750/edxapp
$ mongorestore -u admin -h localhost --authenticationDatabase admin --drop -d cs_comment_service mongo-dump-20200411T154750/
cs_comment_service
資料庫密碼的話請依照伺服器設定修改,
參照安裝時保留的 my-passwords.yml ,
或者到 /edx/app/edxapp/lms.auth.json 中尋找,
如果是部分還原的話,
可透過資料庫 GUI 工具來執行會比較方便,
例如 mysql-workbench 此類工具。
Open edX 的版本經常更新,
更新的資料搬移,
操作的步驟與上述步驟雷同。
沒有留言:
張貼留言