is:linux:ubuntu备份bitnami-redmine

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
is:linux:ubuntu备份bitnami-redmine [2025/02/17 04:27] – 移除 - 外部编辑 (未知日期) 127.0.0.1is:linux:ubuntu备份bitnami-redmine [2025/02/17 04:27] (当前版本) – ↷ 页面is:ubuntu备份bitnami-redmine被移动至is:linux:ubuntu备份bitnami-redmine A.L
行 1: 行 1:
 +[[category:IS]]
  
 +===== Redmine 的完整备份与恢复 =====
 +
 +=== 备份 ===
 +  * Bitnami 的 Redmine 是自包含的,可以简单地进行全备份。操作如下:
 +    - 进入备份数据存放的目录:
 +      ```bash
 +      cd /your/folder
 +      ```
 +    - 停止所有服务:
 +      ```bash
 +      sudo /opt/bitnami/ctlscript.sh stop
 +      ```
 +    - 创建备份文件:
 +      ```bash
 +      sudo tar -pczvf application-backup.tar.gz /opt/bitnami
 +      ```
 +    - 重启所有服务:
 +      ```bash
 +      sudo /opt/bitnami/ctlscript.sh start
 +      ```
 +    - 将备份文件 `application-backup.tar.gz` 存放到安全的地方。
 +
 +=== 恢复 ===
 +  * Bitnami 的 Redmine 是自包含的,只需解压备份文件即可。操作如下:
 +    - 进入备份数据存放的目录:
 +      ```bash
 +      cd /your/folder
 +      ```
 +    - 停止所有服务:
 +      ```bash
 +      sudo /opt/bitnami/ctlscript.sh stop
 +      ```
 +    - 重命名原目录并存储:
 +      ```bash
 +      sudo mv /opt/bitnami /opt/bitnamiBackup
 +      ```
 +    - 解压备份文件到原目录:
 +      ```bash
 +      sudo tar -pxzvf application-backup.tar.gz -C /
 +      ```
 +    - 启动所有服务:
 +      ```bash
 +      sudo /opt/bitnami/ctlscript.sh start
 +      ```
 +  * **重要提示**:
 +    - 恢复时,请确保文件和目录的原始权限保持不变。
 +    - 例如,如果最初是以 `root` 用户安装的,请确保恢复的文件归 `root` 所有。
 +
 +===== 数据库备份与恢复 =====
 +  * **数据库备份**:
 +    - 如果只想备份数据库数据,可以使用 `mysqldump` 工具创建备份文件:
 +      ```bash
 +      mysqldump -u root -p database_name > backup.sql
 +      ```
 +    - 此操作耗时取决于数据大小。
 +    - `database_name` 是你要备份的数据库名称。例如,Redmine 的数据库名称可能是 `bitnami_redmine`。
 +
 +  * **数据库恢复**:
 +    - 如果有数据库备份文件,可以执行以下命令恢复:
 +      ```bash
 +      mysql -u root -p database_name < backup.sql
 +      ```
 +    - 如果数据库架构不存在,请先执行以下步骤:
 +      ```bash
 +      mysql -u root -p
 +      mysql> create database database_name;
 +      mysql> grant all privileges on database_name.* to 'bitnami'@'localhost' identified by 'BITNAMI_USER_PASSWORD';
 +      mysql> flush privileges;
 +      mysql> exit;
 +      mysql -u root -p database_name < backup.sql
 +      ```
 +
 +  * **注意**:
 +    - 上述步骤仅备份数据库状态。
 +    - 其他需要备份的文件包括应用程序上传的文件,这些文件通常存储在应用程序目录中。
 +
 +===== Redmine 升级 =====
 +  * **强烈建议**在升级前创建备份。
 +  * 有两种升级方式:
 +    1. **升级整个堆栈**(包括 PHP、Ruby、MySQL、Apache 等):
 +       - 参考 [如何升级完整堆栈并迁移数据](https://docs.bitnami.com/)。
 +    2. **仅升级应用程序代码**:
 +       - 以下是仅升级 Redmine 应用程序的步骤。
 +
 +  * **升级步骤**:
 +    - 启动新的 Redmine 实例或从 [Bitnami](http://bitnami.com/stack/redmine) 下载最新安装程序。
 +    - 将数据库备份复制到新服务器。
 +    - 停止所有服务并仅启动 MySQL:
 +      ```bash
 +      sudo /opt/bitnami/ctlscript.sh stop
 +      sudo /opt/bitnami/ctlscript.sh start mysql
 +      ```
 +    - 删除旧数据库并创建新数据库:
 +      ```bash
 +      mysql -u root -p
 +      mysql> drop database bitnami_redmine;
 +      mysql> create database bitnami_redmine;
 +      mysql> grant all privileges on bitnami_redmine.* to 'bn_redmine'@'localhost' identified by 'DATABASE_PASSWORD';
 +      ```
 +    - 恢复数据库:
 +      ```bash
 +      mysql -u root -p bitnami_redmine < backup.sql
 +      ```
 +    - 编辑 Redmine 配置文件以更新数据库用户密码:
 +      ```yaml
 +      production:
 +        adapter: mysql2
 +        database: bitnami_redmine
 +        host: localhost
 +        username: bn_redmine
 +        password: "DATABASE_PASSWORD"
 +        encoding: utf8
 +      ```
 +    - 迁移数据库到最新版本:
 +      ```bash
 +      cd /opt/bitnami/apps/redmine/htdocs
 +      ruby bin/rake db:migrate RAILS_ENV=production
 +      ```
 +    - **故障排除**:
 +      - 如果出现表已存在的错误,删除表并重新运行迁移命令:
 +        ```bash
 +        mysql -u root -p
 +        mysql> use bitnami_redmine;
 +        mysql> drop table changeset_parents;
 +        ```
 +
 +  * **复制文件和插件**:
 +    - 将旧安装中的 `/opt/bitnami/apps/redmine/htdocs/files` 文件夹复制到新安装中。
 +    - 如果旧版本安装了插件,将 `vendor/plugins` 目录中的文件夹复制到新安装的 `plugins` 文件夹中。
 +    - 检查插件是否支持新版本,并运行以下命令:
 +      ```bash
 +      ruby bin/rake redmine:plugins RAILS_ENV="production"
 +      ```
 +
 +  * **清理缓存和会话**:
 +    ```bash
 +    ruby bin/rake tmp:cache:clear
 +    ruby bin/rake tmp:sessions:clear
 +    ```
 +
 +  * **重启服务**:
 +    ```bash
 +    sudo /opt/bitnami/ctlscript.sh restart
 +    ```
 +
 +  * **故障排除**:
 +    - 如果从 1.x 版本升级并遇到创建问题时出现错误:
 +      ```plaintext
 +      MysqlStatement::Error Value for field `value` cannot be NULL INSERT INTO custom_value ...
 +      ```
 +      请到管理面板中编辑并重新保存自定义值。