升級至新的 Docker 映像檔時,任何尚未執行的遷移都會自動執行。視資料集大小而定,這可能需要一些時間,你可以透過追蹤日誌了解進度。詳情請參閱我們的日誌文件。
資料儲存
Overleaf 社群版與 Server Pro 會將資料儲存在三個不同的位置:- MongoDB 資料庫: 存放使用者與專案資料。
- Redis: 作為處理中資料的高效能快取,主要儲存與專案編輯及協作相關的資訊。
- Overleaf 檔案系統: 儲存不可編輯的專案檔案(包括圖片),並在專案編譯期間作為暫存磁碟快取。
視執行個體的建立時間而定,這可能是
~/sharelatex_data 或 ~/overleaf_data。對於專案檔案與完整專案歷史資料,我們也支援 S3 相容的儲存後端。
執行一致性備份
建立一致性備份時,需要包含三個儲存區:- MongoDB
- Redis
- Overleaf 檔案系統資料
3.5.0 起,關閉流程會自動關閉網站並中斷使用者連線。
若要關閉執行個體,使用 Toolkit 部署時請執行 bin/docker-compose stop sharelatex,使用 Docker Compose 時則執行 docker compose stop sharelatex。
sharelatex 容器停止後,即可開始備份。
備份成功完成後,你需要啟動 sharelatex 容器。使用 Toolkit 部署時請執行 bin/docker-compose start sharelatex,使用 Docker Compose 時則執行 docker compose start sharelatex。
- 備份應存放在與 Overleaf 執行個體不同的伺服器上,最好位於完全不同的地點。
- 將資料庫複寫到多個 MongoDB 執行個體或許能提供一定的備援,但無法防範資料損毀。
- 測試備份是確保其完整且可用的最佳方式。
MongoDB
MongoDB 內建名為 mongodump 的命令列工具,可用來備份資料庫中儲存的使用者與專案資料。Overleaf 檔案系統資料
在 Toolkit 部署中,不可編輯檔案的儲存路徑由config/overleaf.rc 中的 OVERLEAF_DATA_PATH 環境變數指定;不過視執行個體的建立時間而定,這也可能是 data/sharelatex。
必須使用 rsync 等工具遞迴複製此目錄,以確保建立完整的備份。
Redis
Redis 會儲存使用者工作階段,以及寫入 MongoDB 之前尚待處理的文件更新。 建議使用 Append Only File(AOF)持久化作為 Redis 的持久化設定。 Toolkit 的新安裝預設會啟用 AOF 持久化,現有使用者可在這裡找到啟用 AOF 的相關資訊。 若你決定在使用 AOF 持久化的同時繼續使用 RDB 快照,可以將 RDB 檔案複製到安全的位置作為備份。在伺服器之間遷移資料
最理想的情況是新執行個體中尚未有任何重要資料。我們沒有合併執行個體資料的流程。 假設新執行個體尚無資料,你可以依照下列步驟操作。整體而言,我們會將mongo、redis 與 overleaf 磁碟區打包成 tar 檔,複製到新伺服器後再解開。
Toolkit
Docker Compose
mongo、redis、overleaf 磁碟區的路徑。
以 root 使用者(或使用 sudo)執行時,tar 會保留檔案的擁有者/群組與權限,這在還原備份時至關重要。
資料夾詳細說明
下列資料夾附有額外標記:
- (b) 應納入備份,最好在執行個體停止時進行以確保一致性
- (d) 可刪除
- (e) 暫時性檔案,可在執行個體停止時刪除
~/mongo_data(b)- MongoDB 資料目錄
~/redis_data(b)- Redis 資料庫資料目錄
~/overleaf_data- bin
- synctex (d)
- 最新版本中已不使用,先前曾使用自訂的 synctex 執行檔(synctex 用於 .tex 檔案與 PDF 之間的原始碼對應)
- synctex (d)
- data
- cache (e)
- 編譯用的二進位檔案快取
- compiles (e)
- LaTeX 編譯在此進行
- db.sqlite (d)
- 最新版本中已不使用,先前用於儲存 clsi 快取詳細資料(現已改為簡單的記憶體內對應表或直接掃描磁碟)
- db.sqlite-wal (d)
- 最新版本中已不使用,請參閱 db.sqlite
- output (e)
- 存放 LaTeX 編譯輸出,以提供給用戶端
- template_files (b)
- 範本系統的圖片預覽(僅限 Server Pro)
- user_files (b)
- 專案的二進位檔案
- history (b)
- 完整專案歷史檔案
- cache (e)
- tmp
- dumpFolder (e)
- 處理 zip 檔案時產生的暫存檔
- uploads (e)
- 檔案上傳的緩衝區(二進位檔案/從 zip 建立新專案的上傳)
- projectHistories (e)
- 完整專案歷史遷移的暫存檔
- dumpFolder (e)
- bin

