Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Sandaran dan pemulihan pangkalan data PHP dan Memcached

Sandaran dan pemulihan pangkalan data PHP dan Memcached

PHPz
PHPzasal
2023-05-15 21:12:041462semak imbas

Dengan perkembangan pesat Internet, sandaran dan pemulihan pangkalan data MySQL berskala besar telah menjadi salah satu kemahiran penting untuk perusahaan dan tapak web utama. Dengan aplikasi Memcached yang meluas, cara membuat sandaran dan memulihkan Memcached juga telah menjadi isu penting. Sebagai salah satu bahasa utama untuk pembangunan web, PHP mempunyai kelebihan dan kemahiran unik dalam mengendalikan sandaran dan pemulihan MySQL dan Memcached. Artikel ini akan memperkenalkan secara terperinci kaedah pelaksanaan pemproses PHP MySQL dan sandaran dan pemulihan Memcached.

1. Sandaran dan pemulihan PHP dan MySQL

1 Sandaran MySQL

Sandaran MySQL merujuk kepada menyandarkan data dan struktur jadual dalam pangkalan data ke cakera pelayan. yang Gunakan apabila pemulihan diperlukan. PHP melaksanakan sandaran dengan memanggil perintah mysqldump Perintah mysqldump menulis fail sandaran ke fail pada cakera secara lalai, jadi anda perlu memastikan bahawa PHP mempunyai kebenaran menulis ke direktori.

Kod PHP untuk membuat sandaran pangkalan data adalah seperti berikut:

<?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 Pulihkan MySQL

Apabila pangkalan data perlu dipulihkan, PHP juga boleh memanggil arahan mysql. untuk mencapai pemulihan antara versi yang berbeza. Perlu diingatkan bahawa sebelum melakukan pemulihan pangkalan data, pangkalan data sasaran kosong perlu dibuat, jika tidak, arahan pemulihan tidak boleh digunakan.

Kod PHP untuk memulihkan pangkalan data adalah seperti berikut:

<?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 dan Memcached sandaran dan pemulihan

1 sebagai sistem caching objek Dalam memori teragih berkelajuan tinggi, teknik sandaran dan pemulihan sedikit berbeza daripada MySQL. Apabila membuat sandaran Memcached, data cache perlu ditulis pada fail dan diletakkan pada pelayan sandaran. Di sini kita mula-mula menggunakan PHP untuk menyambung ke pelayan Memcached, membaca data cache dan menulisnya ke fail cakera.

Kod PHP untuk membuat sandaran Memcached adalah seperti berikut:

<?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 Pulihkan Memcached

Apabila kita perlu memulihkan Memcached, kita perlu membuka fail sandaran dan menyambung. ke pelayan Memcached melalui PHP, Tulis pasangan nilai kunci dalam fail sandaran ke Memcached. Perlu diingatkan bahawa pelayan Memcached perlu dibersihkan sebelum menulis.

Kod PHP untuk memulihkan Memcached adalah seperti berikut:

<?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 "恢复成功!";
?>

Ringkasnya, PHP memproses sandaran dan pemulihan MySQL dan Memcached adalah kemahiran penting untuk mencapai sandaran dan pemulihan data. Dengan memanggil perintah mysqldump dan mysql, sandaran dan pemulihan MySQL boleh dicapai apabila membuat sandaran dan memulihkan Memcached, pasangan nilai kunci perlu dibaca satu demi satu dan ditulis pada fail. Melalui kaedah di atas, perusahaan dan laman web boleh membuat sandaran dan memulihkan MySQL dan Memcached dengan mudah untuk memastikan kebolehpercayaan data.

Atas ialah kandungan terperinci Sandaran dan pemulihan pangkalan data PHP dan Memcached. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn