專案

一般

設定檔

動作

備份和還原 Redmine

備份

Redmine 備份應包含
  • 資料庫
  • 附件(預設情況下儲存在安裝目錄下的 files 資料夾中)

備份資料庫

MySQL

mysqldump 命令可用於將 MySQL 資料庫的內容備份到文字檔案。例如

/usr/bin/mysqldump -u <username> -p<password> -h <hostname> <redmine_database> > /path/to/backup/db/redmine.sql

您可以在 config/database.yml 檔案中找到 <username><password><hostname><redmine_database>。根據資料庫的安裝,可能不需要 <host_name>

PostgreSQL

pg_dump 命令可用於將 PostgreSQL 資料庫的內容備份到文字檔案。以下是一個範例

/usr/bin/pg_dump -U <username> -h <hostname> -Fc --file=redmine.sqlc <redmine_database>

您可以在 config/database.yml 檔案中找到 <username><hostname><redmine_database>。根據資料庫的安裝,可能不需要 <hostname>pg_dump 命令會在需要時提示您輸入密碼。

SQLite

SQLite 資料庫都包含在單一檔案中,因此您可以透過將檔案複製到另一個位置來備份它們。

您可以透過查看 config/database.yml 來判斷 SQLite 資料庫的檔案名稱。

備份附件

所有檔案上傳都儲存在 attachments_storage_path 中(預設為 files/ 資料夾)。您可以將此目錄的內容複製到另一個位置,以便輕鬆備份。

警告:attachments_storage_path 可能指向 files/ 以外的其他目錄。請務必檢查 config/configuration.yml 中的設定,以避免進行無效的備份。

範例備份腳本

以下是一個簡單的 shell 腳本,可用於每日備份(假設您使用的是 MySQL 資料庫)

# Database
/usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%Y-%m-%d`.gz

# Attachments
rsync -a /path/to/redmine/files /path/to/backup/files

還原

還原資料庫

MySQL

例如,如果您有一個名為 2018-07-30.gz 的 gzip 壓縮傾印檔案,則可以使用以下命令還原資料庫

gunzip -c 2018-07-30.gz | mysql -u <username> --password <redmine_database>
Enter password:

PostgreSQL

當命令 pg_dump 的選項 -Fc 像上述範例那樣使用時,您需要使用命令 pg_restore

pg_restore -U <username> -h <hostname> -d <redmine_database> redmine.sqlc

否則可以使用 psql 還原文字檔案

psql <redmine_database> < <infile>

SQLite

從備份位置複製資料庫檔案。

Gerd Pokorra約 6 年前 更新 · 9 個版本