mysqldump
ツールは、MariaDBまたはMySQLデータベースまたはデータベースシステムに推奨されるバックアップ方法であり、データベースサーバーにアクセスして実行している場合にのみ機能します。データベースを起動できない場合、またはホストシステムにアクセスできない場合でも、データベースを直接コピーできます。
物理バックアップ 多くの場合、システムのディスクを外部ストレージデバイスとしてマウントするリカバリ環境(Finnixなど)にしかアクセスできない状況で必要になります。 論理バックアップについて読みたい場合 mysqldump
を使用する 、このトピックに関するガイドをご覧ください。
簡単にするために、このガイドではMySQLという名前を使用しますが、手順はMySQLとMariaDBの両方で機能します。
注 このガイドの手順には、root権限が必要です。 su-
を使用してrootユーザーとしてログインします 始める前に。
バックアップの作成
-
リカバリモード(Finnixセッション)で実行していない場合は、
mysql
を停止します サービス:systemctl stop mysql
-
データベースディレクトリを見つけます。
/ var / lib / mysql /
である必要があります ほとんどのシステムですが、そのディレクトリが存在しない場合は、/etc/mysql/my.cnf
を調べてください。 データディレクトリへのパス。 -
バックアップを保存するディレクトリを作成します。このガイドでは、
/ opt / db-backups
を使用します ただし、ニーズに合わせてこれを変更できます:mkdir /opt/db-backups
-
MySQLのデータディレクトリを保存場所にコピーします。
cp
コマンド、rsync
、または他の方法で問題なく動作しますが、tar
を使用します バックアップを一度に再帰的にコピーしてgzip圧縮します。必要に応じて、データベースディレクトリ、バックアップファイル名、およびターゲットディレクトリを変更します。-$(日付+%F)コード> コマンドに追加すると、ファイル名にタイムスタンプが挿入されます。
tar cfvz /opt/db-backups/db-$(date +%F).tar.gz /var/lib/mysql/*
-
MySQLサービスを再起動します:
systemctl restart mysql
バックアップを復元する
-
作業ディレクトリを、上記で作成したtarballを抽出できる場所に変更します。この例では、現在のユーザーのホームディレクトリが使用されています:
cd
-
mysql
を停止します サービス:systemctl stop mysql
-
tarballを作業ディレクトリに解凍します。コマンド内のtarballのファイル名を、復元先の日付のファイル名に変更します。
tar zxvf /opt/db-backups/db-archive.tar.gz -C .
-
/ var / lib / mysql
の現在の内容を移動します 何らかの理由でそれらを保持したい場合は別の場所に移動するか、完全に削除します。新しい空のmysql
を作成します バックアップしたDMBSを復元するフォルダ。mv /var/lib/mysql /var/lib/mysql-old mkdir /var/lib/mysql
-
バックアップしたデータベースシステムを空のフォルダにコピーします:
mv ~/var/lib/mysql/* /var/lib/mysql
-
復元したファイルに適切な権限を設定します:
chown -R mysql:mysql /var/lib/mysql
-
MySQLサービスを再起動します:
systemctl restart mysql
詳細情報
このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。
- バックアップと復元の概要; MariaDBライブラリ
- データベースのバックアップ方法; MySQLリファレンスマニュアル