Apabila jumlah data yang disimpan dalam pangkalan data meningkat, menjadi sangat penting untuk membuat sandaran data. Terdapat dua jenis sandaran, sandaran penuh dan sandaran tambahan. Sandaran penuh menyandarkan keseluruhan pangkalan data ke lokasi lain, manakala sandaran tambahan hanya menyandarkan data yang telah berubah sejak sandaran terakhir. Untuk pangkalan data yang besar, sandaran tambahan boleh mengurangkan masa sandaran dan ruang storan.
Dalam PHP, kita boleh menggunakan langkah berikut untuk mencapai sandaran tambahan pangkalan data:
Sambung ke pangkalan data menggunakan PHP dan pilih Pangkalan data untuk disandarkan. Kita boleh menggunakan mysqli atau PDO untuk mencapai langkah ini. sama ada Data diubah suai sejak itu. Kita boleh mendapatkan masa sandaran terakhir daripada fail log atau jadual rekod sandaran.
$db = new mysqli('localhost', 'username', 'password', 'database_name');
atau
$db = new PDO('mysql:host=localhost;dbname=database_name', 'username', 'password');
Gunakan pernyataan pertanyaan SQL untuk mendapatkan data yang diubah suai atau baharu sejak masa sandaran terakhir.
$last_backup_time = file_get_contents('/path/to/last_backup_time.txt');
$stmt = $db->prepare("SELECT date FROM backup_logs ORDER BY date DESC LIMIT 1"); $stmt->execute(); $last_backup_time = $stmt->fetchColumn();
atau
$sql = "SELECT * FROM table_name WHERE modify_time > '$last_backup_time'"; $result = $db->query($sql);
Selepas sandaran selesai, kita perlu mengemas kini masa sandaran terakhir supaya seterusnya sandaran sahaja Sandarkan data yang diubah suai sejak masa ini.
$filename = '/path/to/incremental_backup_' . date('YmdHis') . '.csv'; $fp = fopen($filename, 'w'); while ($row = $result->fetch_assoc()) { fputcsv($fp, $row); } fclose($fp);
atau
$filename = '/path/to/incremental_backup_' . date('YmdHis') . '.sql'; $fp = fopen($filename, 'w'); while ($row = $result->fetch_assoc()) { // 使用INSERT语句将数据写入文件 $insert = "INSERT INTO table_name (column1, column2, ...) VALUES ('" . implode("', '", $row) . "')"; fwrite($fp, $insert . " "); } fclose($fp);
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan sandaran tambahan sandaran pangkalan data dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!