ホームページ  >  記事  >  バックエンド開発  >  PHP を使用してデータベースのコンテナ化されたバックアップを実装する方法

PHP を使用してデータベースのコンテナ化されたバックアップを実装する方法

王林
王林オリジナル
2023-05-15 23:00:05776ブラウズ

今日のクラウド時代において、ソフトウェア開発、展開、運用保守においてコンテナ化テクノロジーがますます注目を集めています。コンテナ化テクノロジーの使用は、アプリケーションの管理を改善するだけでなく、データベースのバックアップなどの運用および保守作業を簡素化することもできます。この記事では、PHP でデータベースのコンテナ化されたバックアップを実装する方法について説明します。

1.データベースのコンテナ化されたバックアップとは何ですか?

従来のデータベース バックアップはオペレーティング システムとハードウェアに依存しますが、コンテナ化されたバックアップはデータとコンテナをまとめてパッケージ化し、コンテナに基づいてアプリケーション全体とデータをバックアップします。そうすることで、ハードウェアとオペレーティング システムの制限が回避され、プログラムの継続的な操作も容易になります。

2. PHP はデータベースのコンテナ化されたバックアップをどのように実装しますか?

PHP でデータベースのコンテナ化されたバックアップを実装するにはさまざまな方法があります。ここでは主に Docker ベースのバックアップ ソリューションを紹介します:

  1. Docker のインストールと使用

まず、Docker をインストールする必要がありますが、公式 Web サイトから対応するバージョンの Docker CE (Community Edition) をダウンロードしてインストールできます。インストールが成功したら、ターミナルに docker version コマンドを入力して、Docker のバージョン情報とステータスを表示できます。

次に、Docker コマンドを使用してローカル イメージ ウェアハウスを初期化し、バックアップする必要があるデータベースをコンテナーにマップする必要があります。

  1. MySQL コンテナの作成

まず、バックアップ用の MySQL コンテナを作成する必要があります。

次のコマンドを実行します:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql:5.7

上記のコマンドにより、MySQL5.7 バージョン イメージが自動的にダウンロードされ、コンテナ内で MySQL サービスが開始されます。このうち、--name パラメータはコンテナに名前を付けるために使用され、-e パラメータは MySQL の root パスワードを設定するために使用され、-d パラメータはコンテナをデーモン モードで起動することを示し、-p パラメータは MySQL の 3306 のマッピングを示します。ポートをホストの 3306 ポートに接続します。これにより、後で接続に MySQL クライアントを使用することが容易になります。

  1. バックアップ コンテナーの作成

MySQL コンテナーにバックアップ コンテナーを作成します:

docker run --rm --link mysql:mysql -v /home/mysql_backup:/backup mayswind/mysql-backup

上記のコマンドを実行すると、ローカル コンテナーに作成されます。 /home/mysql_backup ディレクトリにバックアップファイルが生成されます。

このうち、 --rm パラメータはコンテナが終了後に自動的に削除されることを示し、 --link パラメータは以前に作成した MySQL コンテナをリンクするために使用され、 -v パラメータはバックアップ ファイルが保存されることを示します。ホストの /home/mysql_backup ディレクトリに保存されます。

mayswind/mysql-backup は、Docker Hub でダウンロードできるバックアップ コンテナーのイメージです。このコンテナーは、より便利で実用的な MySQL コンテナーの自動バックアップ機能を提供します。 。

  1. スケジュールされたバックアップ

コンテナ化されたバックアップでは、スケジュールされたバックアップも非常に重要なリンクです。 crontab コマンドを使用してスケジュールされたバックアップを設定できます。例:

0 3 * * * /bin/bash /home/mysql_backup/mysql_backup.sh

上記のコマンドは、スクリプト /home/mysql_backup/mysql_backup.sh が毎日午前 3 時に実行されることを意味します。 MySQL データを自動的にバックアップします。

mysql_backup.sh スクリプトの内容は次のとおりです。

#!/bin/bash
OUTFILE="/backup/mysql_backup_$(date +%Y-%m-%d_%H-%M-%S).sql"
docker run --rm --link mysql:mysql -v /home/mysql_backup:/backup mayswind/mysql-backup backup --output-file=$OUTFILE --single-transaction
  1. バックアップの復元

バックアップを復元する必要がある場合は、次の手順に進むことができます。次の手順に従ってください:

a. バックアップ ファイルを MySQL コンテナにコピーします (例:

docker cp 2019-11-25_11-15-34.sql mysql:/backup/

b. MySQL コンテナで次のコマンドを実行します:

mysql -uroot -p123456 < /backup/2019-11-25_11-15-34.sql

)このコマンドは、バックアップ ファイルを MySQL 中間に復元します。

3. 概要

コンテナ化されたバックアップを通じて、アプリケーションとデータをパッケージ化して、より便利なバックアップおよびリカバリ操作を実現できます。 PHP では、Docker ツールを使用してコンテナ化されたバックアップを実装できますが、その具体的な方法は比較的シンプルで簡単に実装できます。この記事は、データベースのコンテナ化されたバックアップを実装するために PHP を探している読者にとって、一定の参考価値があると信じています。

以上がPHP を使用してデータベースのコンテナ化されたバックアップを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。