Open edX 的備份與還原

首頁 >> composer >> Open edX 的備份與還原

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_comments_service mongo-dump-20200411T154750/cs_comments_service


資料庫密碼的話請依照伺服器設定修改,

參照安裝時保留的 my-passwords.yml ,

或者到 /edx/app/edxapp/lms.auth.json 中尋找,

如果是部分還原的話,

可透過資料庫 GUI 工具來執行會比較方便,

例如 mysql-workbench 此類工具。

Open edX 的版本經常更新,

更新的資料搬移,

操作的步驟與上述步驟雷同。


還原之後必須再執行migrate,

先進入虛擬環境,

. /edx/app/edx_ansible/venvs/edx_ansible/bin/activate

接著執行 migrate 即可。

$ /edx/app/edx_ansible/edx_ansible/util/install/native.sh --tags migrate


================================
分享與讚美,是我們繼續打拼的原動力.
若文章對您有幫助,望請不吝按讚或分享.
或者對影片有興趣可以訂閱頻道接收通知
================================
YouTube 頻道
FB 粉絲專頁
================================

guangyaw

重點主題: 程式設計: Python , Django,Android 工具與軟體: Open edX,Linux工具,Blender教學 分享各地美景與產品使用心得,遊戲實況,甚至影視戲劇等, 您的訂閱就是頻道成長的原動力。 YouTube 頻道: https://youtube.com/xyawli

You may also like...

發佈留言