Data ialah salah satu aset terpenting dalam masyarakat moden. Banyak perniagaan dan individu bergantung pada pangkalan data untuk menyimpan dan mengurus data berharga mereka. Walau bagaimanapun, tidak kira betapa berhati-hati anda, pemadaman data secara tidak sengaja tetap akan berlaku. Jika anda pengguna pangkalan data MySQL, anda mungkin keliru dan bimbang sama ada data yang dipadam secara tidak sengaja boleh dipulihkan. Tetapi jika anda tahu kaedah pemulihan yang betul, anda boleh memulihkan data MySQL anda secepat mungkin.
Artikel ini akan memperkenalkan beberapa teknik pemulihan data MySQL biasa untuk membantu anda memulihkan data yang dipadam dalam keadaan yang tidak dijangka.
Sebelum menggunakan MySQL untuk memulihkan data, anda perlu memahami beberapa istilah dan konsep asas.
Dalam MySQL, setiap jadual mempunyai fail yang berkaitan. Fail ini menyimpan data dan metadata jadual. Apabila anda melaksanakan perintah DELETE atau DROP, MySQL memadamkan fail yang berkaitan. Walau bagaimanapun, tidak semua data dipadamkan secara kekal serta-merta. MySQL akan menandakan data yang dipadam sebagai ruang kosong supaya ia boleh ditimpa pada masa hadapan. Data masih boleh dipulihkan sehingga ia ditimpa.
Perkara lain yang perlu diberi perhatian ialah jika pangkalan data MySQL anda sedang berjalan, jangan mulakan semula MySQL. Memulakan semula contoh MySQL menyebabkan MySQL membuka semua fail jadual untuk data baharu. Jika ini berlaku, anda akan kehilangan peluang untuk memulihkan data yang dipadamkan.
MySQL menyediakan fungsi rollback yang boleh membuat asal INSERT, UPDATE dan DELETE pernyataan yang diserahkan. Rollback adalah salah satu kaedah pemulihan yang paling selamat dan paling mudah. Jika anda hanya dalam persekitaran penyahpepijatan dan ujian, atau anda hanya perlu memulihkan data yang dipadamkan baru-baru ini, anda boleh cuba menggunakan ciri rollback.
Sila ambil perhatian bahawa rollback hanya digunakan pada jadual transaksi, iaitu jadual yang enjin storannya ialah InnoDB.
Untuk menggunakan ciri rollback MySQL, lakukan langkah berikut:
Untuk menggunakan ciri rollback, pertama Jadual perlu ditetapkan sebagai transaksional. Untuk menyediakan jadual transaksi, gunakan arahan berikut:
ALTER TABLE table_name ENGINE = InnoDB;
Sebelum melaksanakan sebarang penyata INSERT, UPDATE atau DELETE, transaksi perlu dimulakan . Untuk memulakan transaksi, gunakan perintah berikut:
START TRANSACTION;
Laksanakan penyataan INSERT, UPDATE atau DELETE. Jika anda ingin melancarkan semula semua perubahan kemudian laksanakan arahan berikut:
ROLLBACK;
Jika anda selesai dengan semua perubahan dan ingin menyimpan perubahan ke pangkalan data, Sila laksanakan arahan berikut:
COMMIT;
Jika anda tidak boleh menggunakan fungsi rollback, anda boleh cuba menggunakan MySQL's binlog untuk mencapai pemulihan data. Binlog ialah log binari yang digunakan oleh MySQL untuk merekodkan operasi perubahan pangkalan data.
Apabila melaksanakan pernyataan INSERT, UPDATE atau DELETE, MySQL akan merekodkan perubahan pada binlog. Log perubahan ini direkodkan dalam susunan kronologi dan disimpan dalam bentuk binari. Untuk menggunakan binlog untuk mencapai pemulihan data, anda perlu mengetahui nama jadual data yang dipadam, masa pemadaman dan nama dan lokasi fail binlog.
Untuk menggunakan binlog untuk mencapai pemulihan data, sila lakukan langkah berikut:
Untuk mencari fail binlog pada masa itu daripada pemadaman, sila gunakan Perintah berikut:
SHOW BINARY LOGS;
Perintah ini akan memaparkan nama dan lokasi semua fail binlog. Anda perlu mencari fail binlog yang mengandungi kenyataan yang dipadam secara tidak sengaja di antara fail ini.
Untuk memulihkan data menggunakan fail binlog, gunakan arahan berikut:
mysqlbinlog [binlog_file_name] | mysql -u [user_name] -p [database_name]
Arahan ini akan menjana SQL untuk semua perubahan dalam binlog penyata fail dan kemudian gunakan pernyataan tersebut pada pangkalan data yang ditentukan. Anda boleh mencipta pangkalan data baharu sebelum melaksanakan arahan ini untuk mengelak daripada menimpa sebarang data sedia ada.
Jika anda tidak dapat mencapai pemulihan data menggunakan rollback atau binlog, MySQL juga menyediakan alatan pemulihan data yang lain. Alat ini boleh mengimbas ruang kosong untuk data yang dipadam dan cuba memulihkannya ke dalam fail atau pangkalan data baharu.
Jika anda menggunakan enjin MyISAM, anda boleh menggunakan alat MyISAMchk untuk menyemak dan membaiki jadual yang rosak. MyISAMchk boleh mencari blok data yang dipadam dan memulihkannya kepada fail baharu. Untuk menggunakan MyISAMchk, lakukan langkah berikut:
cp [table_file_name] [path/to/new_table_file]
myisamchk --recover [path/to/new_table_file]
cp [path/to/new_table_file] [original_file_path]
Jika anda tidak dapat memulihkan data menggunakan alatan MySQL sendiri, anda boleh cuba menggunakan beberapa alatan pemulihan data pihak ketiga. Contoh biasa ialah TestDisk dan PhotoRec. Alat ini boleh mengimbas cakera untuk data dan fail yang dipadam dan cuba memulihkannya ke dalam fail atau pangkalan data baharu.
Perlu diambil perhatian bahawa menggunakan alat pihak ketiga untuk memulihkan data boleh mengakibatkan kehilangan data atau ranap sistem. Adalah idea yang baik untuk membuat sandaran semua data anda sebelum menggunakan alat ini.
Ringkasan
Teknologi pemulihan data MySQL ialah proses kompleks yang memerlukan perhatian dan berhati-hati khusus. Tidak kira kaedah yang anda gunakan, pastikan anda menyandarkan semua data anda sebelum melaksanakan sebarang arahan. Rollback ialah kaedah pemulihan data paling selamat, tetapi hanya digunakan pada jadual transaksi. Jika anda tidak dapat menggunakan rollback, anda boleh cuba menggunakan binlog MySQL untuk pemulihan data lanjutan. Jika tiada kaedah ini berfungsi, anda boleh mempertimbangkan untuk menggunakan alat pemulihan data MySQL atau alat pemulihan data pihak ketiga.
Atas ialah kandungan terperinci mysql memulihkan data yang dipadam secara tidak sengaja. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!