Jiraの最新バージョンとMariaDBの最新バージョンへのアップグレードに関する以前のブログ投稿で、MariaDBサーバー10.3にアップグレードする場合は、バックアップがどのように行われるかを確認する必要があることを簡単に説明しました。 MariaDB Server 10.3には、MariaDBServerの最新機能をサポートするMariaDBBackupが付属しています。 MariaDBサーバーと同じプラットフォームすべてで利用でき、サーバーと一緒に配布されます。
XtraBackupを使用してバックアップしていて、MariaDB Server 10.3に対して同じコマンドを実行しようとすると、エラーメッセージが表示されます。
$ innobackupex ~/backup_to_dir --user=username --password=password
...
InnoDB: Unsupported redo log format. The redo log was created with MariaDB 10.3.9.
最後のメッセージの最初の文はそれが何であるかです。 XtraBackupは、10.3のREDOログ内のファイルを認識しません。古いバージョンのXtraBackupを使用したため、コマンドはまだ innobackupexであることに注意してください。 。
この理由と以下で説明するその他の理由により、MariaDBサーバーには、新しいREDOログ形式をサポートするMariaDBバックアップが付属しています。 MariaDB Backupを使用すると、XtraBackupで使用していたのと同じ機能を利用できますが、REDOログ形式が改善され、MariaDBの保存データ暗号化がサポートされます。非常に要望の多かったもう1つの側面は、MariaDBバックアップがWindowsでも利用できることですが、XtraBackupは利用できません。 REDOログの変更について詳しく知りたい場合は、こちらをお読みください。
この投稿の冒頭で、最近Jiraを最新バージョンにアップグレードし、MariaDBサーバーを10.3にアップグレードしたことを述べました。その古い環境では、XtraBackupを使用しました。 MariaDB Server 10.3のバックアップを取得するには、MariaDBBackupを使用するようにバックアップスクリプトを更新する必要がありました。
MariaDBバックアップに切り替えた後、バックアップコマンドは次のようになります。
$ mariabackup --backup --target-dir /backup/to/dir --user=username --password=password --parallel=4
コマンド自体をinnobackupexから変更する必要がありました mariabackupへ そして、2つのオプションを追加しました。 –バックアップ mariabackupに伝える バックアップを作成し、–target-dirを使用して、指定されたディレクトリがバックアップファイルの移動先になるように指定します。 XtraBackupのより新しいバージョンを使用していた場合、コマンドラインオプションはXtraBackupと完全に互換性があるため、変更するのはxtrabackupからのコマンド自体だけであることに注意してください。 i> mariabackupへ 。
バックアップが機能することを確認するために、バックアップを別のサーバーにコピーして、そこで復元しようとします。バックアップを復元するには、最初にバックアップを準備する必要があります:
$ mariabackup --prepare --target-dir full-2018-09-11_09-38-32
MariaDBサーバーインスタンスの完全バックアップがあることに注意してください。これにより、復元先のインスタンスに存在するものがすべて置き換えられます。したがって、サーバーを停止し、サーバーが保持しているデータファイルをすべて削除します。
$ sudo service mariadb stop
$ sudo rm -rf /var/lib/mysql/*
これで、バックアップファイルをこのサーバーインスタンスのデータディレクトリに配置できます。それを正しく行うには、mariabackupを使用して行う必要があります。上記で説明したREDOログ形式に関連するいくつかのことを行います。
$ sudo mariabackup --copy-back --target-dir full-2018-09-11_09-38-32
権限が正しいことを確認してください。私の場合、通常のユーザーとグループが使用されています。次に、サーバーを起動します。
$ sudo chown mysql:mysql /var/lib/mysql -R
$ sudo service mariadb start
次に、サーバーに接続して、必要なデータがサーバーにあることを確認しましょう。 Jiraの最大発行数を問い合わせることにしました。
# connect to mariadb
$ mysql -uusername -ppassword
# query the database
MariaDB [(none)]> USE jiradb
MariaDB [jiradb]> SELECT MAX(issuenum) FROM jiraissue;
出来上がり!これで、MariaDBサーバー10.3でバックアップが機能するようになりました。