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

PHPz
リリース: 2023-05-15 21:16:02
オリジナル
1529 人が閲覧しました

インターネットの急速な発展に伴い、大規模な MySQL データベースのバックアップとリカバリは、大手企業や Web サイトにとって不可欠なスキルの 1 つになりました。 Memcached の普及に伴い、Memcached のバックアップと復元の方法も重要な問題となっています。 Web 開発の主要な言語の 1 つである PHP には、MySQL と Memcached のバックアップとリカバリを処理する上で独自の利点とスキルがあります。この記事では、MySQL と Memcached のバックアップとリカバリを PHP で処理する実装方法を詳しく紹介します。

1. PHP および MySQL のバックアップとリカバリ

1. MySQL のバックアップ

MySQL バックアップとは、データベース内のデータとテーブル構造をサーバーのディスクにバックアップすることを指します。回復が必要な場合に使用します。 PHP は、mysqldump コマンドを呼び出してバックアップを実装します。mysqldump コマンドは、デフォルトでバックアップ ファイルをディスク上のファイルに書き込むため、PHP がディレクトリへの書き込み権限を持っていることを確認する必要があります。

データベースをバックアップするための PHP コードは次のとおりです:

<?php
//数据库连接信息
$username = "root";
$password = "password";
$host = "localhost";
$database = "database_name";

//备份文件名
$filename = "./backup_" . date("Y_m_d_H_i_s") . ".sql";

//执行备份命令
$command = "mysqldump --opt -h{$host} -u{$username} -p{$password} {$database}>{$filename}";
exec($command, $output, $return_var);

//判断备份是否成功
if($return_var == 0){
    echo "备份成功!";
}else{
    echo "备份失败:".implode(",", $output);
}
?>
ログイン後にコピー

2. MySQL の復元

データベースを復元する必要がある場合、PHP は異なるサーバー間の復元も実行できます。 mysql コマンドを呼び出してバージョンを確認します。 データベースの回復。データベースのリカバリを実行する前に、空のターゲット データベースを作成する必要があることに注意してください。作成しないと、リカバリ コマンドは使用できません。

データベースを復元するための PHP コードは次のとおりです:

<?php
//数据库连接信息
$username = "root";
$password = "password";
$host = "localhost";
$database = "database_name";

//备份文件名
$filename = "./backup_2020_05_10_01_23_45.sql";

//执行恢复命令
$command = "mysql -h{$host} -u{$username} -p{$password} {$database}<{$filename}";
exec($command, $output, $return_var);

//判断恢复是否成功
if($return_var == 0){
    echo "恢复成功!";
}else{
    echo "恢复失败:".implode(",", $output);
}
?>
ログイン後にコピー

2. PHP と Memcached のバックアップとリカバリ

1. Memcached のバックアップ

Memcached MySQL とはわずかに異なるバックアップおよびリカバリ技術を備えた高速分散インメモリ オブジェクト キャッシング システムです。 Memcached をバックアップする場合、キャッシュ データをファイルに書き込み、バックアップ サーバーに配置する必要があります。ここでは、まず PHP を使用して Memcached サーバーに接続し、キャッシュされたデータを読み取り、ディスク ファイルに書き込みます。

Memcached をバックアップするための PHP コードは次のとおりです:

<?php
//Memcached连接信息
$servers = array(
    array("127.0.0.1", 11211, 10),
);

//备份文件名
$filename = "./backup_" . date("Y_m_d_H_i_s") . ".dat";

//连接Memcached
$memcache_obj = new Memcache;
foreach($servers as $server){
    $memcache_obj->addServer($server[0], $server[1], true, $server[2]);
}

//获取所有键值对
$all_items = $memcache_obj->getAllKeys();
$fp = fopen($filename, 'wb');

//把键值对写入文件
foreach($all_items as $item){
    $value = $memcache_obj->get($item);
    fwrite($fp, $item . "    " . $value . "
");
}

fclose($fp);

//输出备份文件名
echo $filename;
?>
ログイン後にコピー

2. Memcached の復元

Memcached を復元する必要がある場合は、バックアップ ファイルを開いて接続する必要があります。 PHP 経由で Memcached サーバーに接続し、バックアップ ファイル内のキーと値のペアを Memcached に書き込みます。書き込む前に Memcached サーバーをクリアする必要があることに注意してください。

Memcached を復元する PHP コードは次のとおりです:

<?php
//Memcached连接信息
$servers = array(
    array("127.0.0.1", 11211, 10),
);

//备份文件名
$filename = "./backup_2020_05_10_01_23_45.dat";

//连接Memcached
$memcache_obj = new Memcache;
foreach($servers as $server){
    $memcache_obj->addServer($server[0], $server[1], true, $server[2]);
}

//读取备份文件中的键值对,并写入Memcached
$fp = fopen($filename, 'rb');
$memcache_obj->flush();

while(!feof($fp)){
    $line = fgets($fp);
    $arr = explode("    ", $line);
    if(count($arr) == 2){
        $memcache_obj->set($arr[0], $arr[1], 0, 0);
    }
}
fclose($fp);

//输出恢复成功信息
echo "恢复成功!";
?>
ログイン後にコピー

要約すると、PHP による MySQL および Memcached のバックアップとリカバリの処理は、データのバックアップとリカバリを実現するための重要なスキルです。 mysqldump および mysql コマンドを呼び出すことで、MySQL のバックアップとリカバリを実行できます。Memcached のバックアップと復元の際には、キーと値のペアを 1 つずつ読み取ってファイルに書き込む必要があります。上記の方法により、企業や Web サイトは MySQL と Memcached のバックアップと復元を簡単に行うことができ、データの信頼性を確保できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート