sql >> データベース >  >> RDS >> Mysql

MariaDBまたはMySQLデータベースの物理バックアップを作成する

    mysqldump ツールは、MariaDBまたはMySQLデータベースまたはデータベースシステムに推奨されるバックアップ方法であり、データベースサーバーにアクセスして実行している場合にのみ機能します。データベースを起動できない場合、またはホストシステムにアクセスできない場合でも、データベースを直接コピーできます。

    物理バックアップ 多くの場合、システムのディスクを外部ストレージデバイスとしてマウントするリカバリ環境(Finnixなど)にしかアクセスできない状況で必要になります。 論理バックアップについて読みたい場合 mysqldumpを使用する 、このトピックに関するガイドをご覧ください。

    簡単にするために、このガイドではMySQLという名前を使用しますが、手順はMySQLとMariaDBの両方で機能します。

    注 このガイドの手順には、root権限が必要です。 su-を使用してrootユーザーとしてログインします 始める前に。

    バックアップの作成

    1. リカバリモード(Finnixセッション)で実行していない場合は、 mysqlを停止します サービス:

      systemctl stop mysql
      
    2. データベースディレクトリを見つけます。 / var / lib / mysql /である必要があります ほとんどのシステムですが、そのディレクトリが存在しない場合は、 /etc/mysql/my.cnfを調べてください。 データディレクトリへのパス。

    3. バックアップを保存するディレクトリを作成します。このガイドでは、 / opt / db-backupsを使用します ただし、ニーズに合わせてこれを変更できます:

      mkdir /opt/db-backups
      
    4. MySQLのデータディレクトリを保存場所にコピーします。 cp コマンド、 rsync 、または他の方法で問題なく動作しますが、 tarを使用します バックアップを一度に再帰的にコピーしてgzip圧縮します。必要に応じて、データベースディレクトリ、バックアップファイル名、およびターゲットディレクトリを変更します。 -$(日付+%F) コマンドに追加すると、ファイル名にタイムスタンプが挿入されます。

      tar cfvz /opt/db-backups/db-$(date +%F).tar.gz /var/lib/mysql/*
      
    5. MySQLサービスを再起動します:

      systemctl restart mysql
      

    バックアップを復元する

    1. 作業ディレクトリを、上記で作成したtarballを抽出できる場所に変更します。この例では、現在のユーザーのホームディレクトリが使用されています:

      cd
      
    2. mysqlを停止します サービス:

      systemctl stop mysql
      
    3. tarballを作業ディレクトリに解凍します。コマンド内のtarballのファイル名を、復元先の日付のファイル名に変更します。

       tar zxvf /opt/db-backups/db-archive.tar.gz -C .
      
    4. / var / lib / mysqlの現在の内容を移動します 何らかの理由でそれらを保持したい場合は別の場所に移動するか、完全に削除します。新しい空のmysqlを作成します バックアップしたDMBSを復元するフォルダ。

      mv /var/lib/mysql /var/lib/mysql-old
      mkdir /var/lib/mysql
      
    5. バックアップしたデータベースシステムを空のフォルダにコピーします:

      mv ~/var/lib/mysql/* /var/lib/mysql
      
    6. 復元したファイルに適切な権限を設定します:

      chown -R mysql:mysql /var/lib/mysql
      
    7. MySQLサービスを再起動します:

      systemctl restart mysql
      

    詳細情報

    このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。

    • バックアップと復元の概要; MariaDBライブラリ
    • データベースのバックアップ方法; MySQLリファレンスマニュアル

    1. SQLでJSONオブジェクトの配列として返す(Postgres)

    2. Mysqlは列を分割できますか?

    3. バーマンクラウド–パート2:クラウドバックアップ

    4. JSON_REMOVE()–MySQLのJSONドキュメントからデータを削除します