Dengan perkembangan pesat Internet, sejumlah besar data perlu disimpan dan diproses, jadi pangkalan data telah menjadi bahagian yang sangat diperlukan dalam pembangunan aplikasi moden. Dalam aplikasi sebenar, disebabkan oleh pengaruh pelbagai faktor seperti persekitaran rangkaian dan kegagalan perkakasan, pemulihan kegagalan replikasi induk-hamba pangkalan data sering menjadi tugas penting. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PHP untuk melaksanakan pemulihan kegagalan replikasi master-hamba pangkalan data.
Terdapat dua kaedah asas untuk melaksanakan pemulihan kegagalan replikasi induk-hamba pangkalan data: pemulihan titik dalam masa dan pemulihan tambahan. Sebaliknya, kami menggunakan kaedah pemulihan titik dalam masa, yang merupakan kaedah yang paling biasa digunakan kerana ia memerlukan kurang kejadian sandaran.
Pertama, konfigurasikan persekitaran replikasi tuan-hamba Anda boleh merujuk kepada dokumentasi tapak web rasmi untuk tetapan.
(1) Sandarkan data pangkalan data utama
Sandarkan data pangkalan data utama melalui arahan mysqldump Perlu diingat bahawa anda perlu menggunakan FLUSH TABLES DENGAN READ LOCK sebelum membuat sandaran (untuk mengelakkan. pangkalan data utama daripada diubah suai apabila membuat sandaran data tidak konsisten). Anda perlu menggunakan arahan UNLOCK TABLES untuk membatalkan kunci selepas sandaran.
(2) Pindahkan fail sandaran ke pangkalan data hamba
Pindahkan fail sandaran ke pelayan pangkalan data hamba dan simpannya secara setempat pada pelayan.
(3) Tutup pangkalan data hamba
Sebelum melakukan pemulihan kerosakan, kita perlu menutup pangkalan data hamba dan memadam data.
(4) Pulihkan sandaran pangkalan data induk
Gunakan arahan mysqldump pada pangkalan data hamba untuk memulihkan data yang disandarkan daripada pangkalan data induk kepada pangkalan data hamba.
(5) Konfigurasikan penyegerakan pangkalan data induk-hamba
Konfigurasikan semula penyegerakan pangkalan data induk-hamba dan pastikan penyegerakan data pangkalan data induk-hamba selesai.
(6) Mulakan semula pangkalan data hamba
Mulakan semula pangkalan data hamba dan sahkan sama ada data itu normal.
<?php $mysql_host = 'localhost'; $mysql_dbname = 'test'; // 指定数据库名称 $mysql_user = 'root'; $mysql_pass = ''; $mysql_charset = 'utf8'; // 连接数据库 try { $db = new PDO("mysql:host={$mysql_host};dbname={$mysql_dbname};charset={$mysql_charset}", $mysql_user, $mysql_pass); } catch(PDOException $e) { echo $e->getMessage(); exit; } // 备份主库数据 exec("/usr/bin/mysqldump -h{$mysql_host} -u{$mysql_user} -p{$mysql_pass} --lock-tables --databases {$mysql_dbname} > /path/to/backup.sql"); // 传输备份文件到从库 exec("scp /path/to/backup.sql user@remotehost:/path/to/backup.sql"); // 关闭从库并删除数据 $db->query('STOP SLAVE'); $db->query('RESET SLAVE'); // 还原主库备份 exec("/usr/bin/mysql -h{$mysql_host} -u{$mysql_user} -p{$mysql_pass} {$mysql_dbname} < /path/to/backup.sql"); // 配置主从库同步 $db->query('CHANGE MASTER'); $db->query('START SLAVE'); // 重新启动从库 exec('service mysql restart'); ?>
Atas ialah kandungan terperinci Kaedah PHP untuk melaksanakan pemulihan kegagalan replikasi master-hamba pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!