以前書いた
の、うち、「バックアップしたデータを新しいサーバに移設する」が成功したので、その備忘録になります。
やったこと
現行で稼働しているredmineサーバを、新規LinuxMintサーバにデータを流し込み、復元させた。
以降元と移行先サーバ
共にLinux Mint20.03が稼働しています。
手順
基本的に管理者権限で行っていますが、ユーザーで行う場合はそれを追記します。
移行先で行う作業-redmine構築-
新規にRedmine 4.2を作ります。最初に作成するときにもお世話になった
こちらを用いましたが、以下、異なる部分があります。
Apacheのバージョンを脆弱性対応版に上げる
mysql_secure_installationが正常に動かない問題に対処する
vi /etc/mysql/mysql.conf.d/mysqld.cnf
追記内容
末尾に以下を追加
default_authentication_plugin=mysql_native_password
設定後にmysqlサービス再起動
systemctl restart mysql
MySQL rootパスワード設定
mysql -u root -p
# 未設定のためパスワードは不要です
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';
#パスワードは任意のものを入力ください
flush privileges;
exit
後は参考サイトの手順に沿ってredmine4.2を起動させます。 このとき、database.ymlやconfiguration.ymlは以降元に合わせます。また、rubyのバージョンは2.7系にしています。
移行元で行う作業-redmineバックアップと転送-
DBのバックアップ
※こちらは通常ユーザで実行しました。
mysqldump redmine(DB名) --no-tablespaces -u redmine(DBユーザ) -p > redmine_backup
を実行し、DB全体のバックアップを取ります。
redmineデータのバックアップ
ここからは管理者権限で実施します。
cd /var/lib/redmine
# インストールされているredmineディレクトリに移動
このうち、
- /redmine/files
- /redmine/plugins
- /redmin/public/thems
の3ディレクトリが移行先に流し込むデータとなります。
- rsyncやscpを用いてのデータ転送
- 一度圧縮して転送
など、任意のものを用います。
移行先で行う作業-redmineデータのリストア-
上段で述べた
- files
- plugins
- public/themes
を、移行元と同じように配置します。このとき、ディレクトリやファイルの所有権が元と同じ(通例はwww-data)になるようにします。
そして、sqldumpで取得したDBも移行先に持っていきます。
プラグインのマイグレーション
cd /var/lib/redmine
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
DBのリストア
mysql -u redmine -p redmine < redmine_backup
を実施後、
systemctl restart apache2.service
を行うことで
以降元、移行先、共に
- 同じテーマ
- 同じプラグイン
- 同じ添付ファイル
が見えることを確認しました。
前回、ちょっとしたDBのリストアを行いましたが、プラグインや添付ファイルを含めた完全な移行テストは初めて。
これで、もしもの時のためのリストア手順が整いました。