Rumah >pembangunan bahagian belakang >tutorial php >Kaedah PHP untuk melaksanakan pemulihan bekas pangkalan data
Dalam pembangunan perisian moden, teknologi kontena telah menjadi bahagian yang sangat diperlukan. Sebagai salah satu teknologi kontena yang paling popular, Docker telah digunakan secara meluas dalam pelbagai jenis aplikasi. Bagi aplikasi yang menggunakan pangkalan data, cara memastikan kebolehpercayaan dan kebolehpulihan data dalam persekitaran kontena adalah isu yang sangat penting.
Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis skrip pemulihan bekas pangkalan data supaya data pangkalan data boleh dipulihkan dengan mudah sekiranya berlaku kegagalan.
Untuk menjalankan pangkalan data menggunakan bekas Docker, anda perlu memasang Docker dan Docker-Compose terlebih dahulu. Mereka boleh dipasang dalam sistem Linux menggunakan arahan berikut:
$ sudo apt-get update $ sudo apt-get install docker.io $ sudo systemctl start docker $ sudo systemctl enable docker $ sudo apt-get install docker-compose
Seterusnya, kita perlu mencipta bekas Docker untuk menyimpan dan menjalankan pangkalan data kami . Di sini, kami mengambil MySQL sebagai contoh. Kita boleh memuat turun dan memulakan bekas MySQL dalam Docker menggunakan arahan berikut:
$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=your_password -d mysql
Ini akan mencipta bekas bernama mysql dalam Docker dan memetakannya ke pelayan MySQL tempatan. Pembolehubah MYSQL_ROOT_PASSWORD diperlukan dan ditetapkan kepada kata laluan pengguna root MySQL. Proses mencari dan memuat turun imej MySQL dengan versi terkini melalui Docker boleh mengambil sedikit masa.
Dalam persekitaran kontena, kita perlu kerap membuat sandaran pangkalan data untuk memastikan keselamatan data. Kita boleh menulis skrip PHP untuk membuat sandaran pangkalan data MySQL. Berikut ialah contoh skrip:
<?php $backup_file = '/backup/mysql_' . date("Y-m-d_H-i-s") . '.sql.gz'; // 定义备份文件名称 $command = "mysqldump -u root -p'your_password' --all-databases | gzip > $backup_file"; // 执行备份的命令 system($command); ?>
Skrip ini menggunakan arahan mysqldump untuk menyandarkan pangkalan data MySQL. Nama fail sandaran termasuk tarikh dan masa semasa supaya berbilang sandaran dikekalkan semasa membuat sandaran. Fail sandaran juga dimampatkan menggunakan arahan gzip untuk mengurangkan ruang storan. "kata laluan_anda" dalam arahan hendaklah digantikan dengan kata laluan akar MySQL anda.
Jika pangkalan data MySQL gagal, kita perlu dapat memulihkan data yang disandarkan daripada sandaran dengan mudah. Di bawah ialah skrip PHP yang boleh digunakan untuk memulihkan pangkalan data MySQL daripada fail sandaran.
<?php $backup_file = '/backup/mysql_2022-01-01_01-01-01.sql.gz'; // 定义备份文件名称 $command = "gunzip < $backup_file | mysql -u root -p'your_password'"; // 执行恢复的命令 system($command); ?>
Skrip ini menggunakan perintah gunzip untuk menyahmampat data daripada fail sandaran dan memulihkannya ke dalam pelayan MySQL menggunakan arahan mysql. "kata laluan_anda" dalam arahan hendaklah digantikan dengan kata laluan akar MySQL anda.
Untuk memastikan sandaran pangkalan data MySQL adalah terkini dan boleh dipercayai, kami memerlukan sandaran automatik biasa. Di bawah ialah skrip PHP yang akan melaksanakan skrip sandaran secara berkala dan menyimpannya ke lokasi yang ditentukan.
<?php $backup_dir = '/backup'; // 定义备份存储位置 if (!file_exists($backup_dir)) { mkdir($backup_dir, 0777, true); // 如果备份位置不存在,则需要创建 } $backup_file = $backup_dir . '/mysql_' . date("Y-m-d_H-i-s") . '.sql.gz'; // 定义备份文件名称 $command = "mysqldump -u root -p'your_password' --all-databases | gzip > $backup_file"; // 执行备份的命令 system($command); ?>
Skrip ini akan mencipta fail sandaran bernama mysql_YYYY-MM-DD_HH-MM-SS.sql.gz dalam direktori yang ditentukan dan menyimpannya dalam direktori tersebut.
Dengan menulis skrip PHP mudah ini, kami boleh melindungi pangkalan data MySQL dengan mudah dan memastikan sandaran dan pemulihan data dalam persekitaran yang terkurung. Ini menyediakan aplikasi kami dengan kebolehpercayaan data yang kukuh dan pemulihan pantas sekiranya berlaku kegagalan.
Atas ialah kandungan terperinci Kaedah PHP untuk melaksanakan pemulihan bekas pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!