项目

常规

个人资料

操作

备份和恢复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次修订