ホームページ  >  記事  >  バックエンド開発  >  PHP および MongoDB データベースのバックアップとリカバリ

PHP および MongoDB データベースのバックアップとリカバリ

王林
王林オリジナル
2023-05-15 14:52:361120ブラウズ

ビッグデータ時代の到来により、データのバックアップとリカバリの重要性がますます高まっています。このプロセスでは、多くの Web サイトが PHP データベースと MongoDB データベースを使用してデータをバックアップします。この記事では、PHP を使用して MongoDB データベースのバックアップおよび回復スクリプトを作成する方法を紹介します。

1. MongoDB データベースのバックアップ

MongoDB データベースのバックアップは、手動バックアップと自動バックアップの 2 つの方法に分かれています。

  1. 手動バックアップ

手動バックアップは、MongoDB コマンド ライン ツール mongodump を使用して実行できます。 mongodump コマンドは、指定したデータベースのデータを指定したディレクトリにバックアップできます。このコマンドの構文形式は次のとおりです:

mongodump –-db 6b7267f525327f2a23dcb01791a146aa -o 83cf7a2f7c33d3ad4d0e264fea635126

たとえば、my_database データベースをバックアップするには、次のように実行できます。次のコマンド:

mongodump –-db my_database -o /backup/my_backup/

このコマンドは、my_database データベースをバックアップし、バックアップ ファイルを /backup/my_backup/ ディレクトリに保存します。

  1. 自動バックアップ

自動バックアップ スクリプトは PHP 言語で記述でき、CRON スケジュール タスクを使用してスケジュール バックアップを実行できます。以下は簡単なバックアップ スクリプトです:

<?php
// 定义备份路径
$backup_path = '/backup/my_backup/';

// 连接MongoDB数据库
$m = new MongoDBClient("mongodb://localhost:27017");

// 指定要备份的数据库
$db = $m->my_database;

// 备份所有集合
$collections = $db->listCollectionNames();
foreach ($collections as $collection) {
    $command = 'mongodump --db my_database --collection '.$collection.' --out '.$backup_path;
    exec($command);
}

// 删除14天前的备份文件
$expire_time = strtotime('-14 days');
$files = glob($backup_path.'*');
foreach ($files as $file) {
    if (filemtime($file) < $expire_time) {
        unlink($file);
    }
}
?>

このスクリプトは、my_database データベース内のすべてのコレクションをバックアップし、バックアップ ファイルを /backup/my_backup/ ディレクトリに保存します。同時に、14日前のバックアップファイルも削除されます。

2. MongoDB データベースのリカバリ

MongoDB データベースのリカバリも、手動リカバリと自動リカバリの 2 つの方法に分かれています。

  1. 手動リカバリ

手動リカバリは、mongorestore コマンドを使用して実行できます。このコマンドは、バックアップ ファイル内のデータを指定したデータベースに復元できます。コマンドの構文形式は次のとおりです:

mongorestore –-db 6b7267f525327f2a23dcb01791a146aa 83cf7a2f7c33d3ad4d0e264fea635126

たとえば、/backup/my_backup/ ディレクトリ内のバックアップ ファイルを復元する場合my_database データベースに対して、次のコマンドを実行できます。

mongorestore –-db my_database /backup/my_backup/

このコマンドは、バックアップ ファイル内のデータを my_database データベースに復元します。

  1. 自動リカバリ

自動リカバリは、PHP 言語で記述された自動スクリプトによって実現できます。以下は簡単なリカバリ スクリプトです:

<?php
// 定义备份路径
$backup_path = '/backup/my_backup/';

// 连接MongoDB数据库
$m = new MongoDBClient("mongodb://localhost:27017");

// 指定要恢复的数据库
$db = $m->my_database;

// 恢复备份文件
$backup_files = glob($backup_path.'*');
foreach ($backup_files as $backup_file) {
    $command = 'mongorestore --db my_database '.$backup_file;
    exec($command);
}

// 删除14天前的备份文件
$expire_time = strtotime('-14 days');
$files = glob($backup_path.'*');
foreach ($files as $file) {
    if (filemtime($file) < $expire_time) {
        unlink($file);
    }
}
?>

このスクリプトは、/backup/my_backup/ ディレクトリ内のバックアップ ファイルを my_database データベースに復元します。同時に、14日前のバックアップファイルも削除されます。

概要:

PHP を使用して MongoDB データベースのバックアップおよびリカバリ スクリプトを作成すると、データのバックアップとリカバリをより便利かつ効率的に行うことができます。同時に、自動化されたバックアップおよびリカバリ スクリプトにより、手動操作のエラー率も減らすことができます。バックアップとリカバリのプロセス中は、取り返しのつかない損失を避けるために、データの一貫性と完全性に注意を払う必要があることに注意してください。

以上がPHP および MongoDB データベースのバックアップとリカバリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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