前一段时间由于误把 xen server 服务器电源拔掉(~~!!),导致xen server 上的 虚拟机 zabbix 数据库出错,虽然不是很重要(用来监控公司内网网关服务器),但是监控一年的数据不能就这么没了,想到zabbix数据库还有备份的sql 文件与mysql 二进制日志文件,尝试下恢复mysql 数据库,成功并且恢复的过程非常简单!
#详细步骤 #1 记住误删除表(或者出错)的时间 例如 Oct 17 08:30:27 CST 2011 #2 先 drop database zabbix ; 再 create database zabbix;(或者跳过直接执行第3步) #3 导入备份的sql文件 mysql -uroot -pdong zabbix < zabbix20111016.sql #4 如果有主从,停掉从服务器 例如 mysql>stop slave; #5 从二进制日志文件得到sql语句 #20111017 mysqlbinlog --database=zabbix --stop-datetime="2011-10-17 08:30:00" mysql-bin.000158 > test.sql #6 恢复sql 文件 #20110425 mysql -root -pdong zabbix < test.sql #20111017 mysql -root -pdong zabbix < test.sql #7 关于二进制日志文件 正常是每天17:59生成一个二进制日志文件,8:34是掉电后重启服务器生成的二进制日志文件 -rw-rw---- 1 mysql mysql 269983630 Oct 14 17:59 mysql-bin.000155 -rw-rw---- 1 mysql mysql 269744900 Oct 15 17:59 mysql-bin.000156 -rw-rw---- 1 mysql mysql 270254094 Oct 16 17:59 mysql-bin.000157 -rw-rw---- 1 mysql mysql 164263912 Oct 17 08:34 mysql-bin.000158 #8 关于从库数据恢复(可选) -rw-rw---- 1 mysql mysql 270254094 Oct 16 17:59 mysql-bin.000157 -rw-rw---- 1 mysql mysql 164263912 Oct 17 08:34 mysql-bin.000158 -rw-rw---- 1 mysql mysql 953434 Oct 17 10:07 mysql-bin.000159 -rw-rw---- 1 mysql mysql 1073749046 Oct 17 11:21 mysql-bin.000160 -rw-rw---- 1 mysql mysql 414747331 Oct 17 12:00 mysql-bin.000161 -rw-rw---- 1 mysql mysql 24960747 Oct 17 13:42 mysql-bin.000162 -rw-rw---- 1 mysql mysql 6042 Oct 17 12:00 mysql-bin.index 主库,关闭了数据库以前旧的二进制文件全部删除掉,重启后将生成新的二进制日志文件,从000001开始 /etc/init.d/mysqld stop tar czvf 20111017.tar.gz zabbix/ mkdir tmp mv mysql-bin.* tmp/ scp 20111017.tar.gz root@192.168.57.82:/root/ /etc/init.d/mysqld start ll -rw-r--r-- 1 root root 362462977 Oct 17 14:42 20111017.tar.gz -rw-rw---- 1 mysql root 812700 Oct 17 14:45 cl3.test.com.err -rw-rw---- 1 mysql mysql 6 Oct 17 14:45 cl3.test.com.pid -rw-rw---- 1 mysql mysql 17638261 Oct 17 14:46 lowquery.log drwx------ 2 mysql root 4096 May 4 10:35 mysql -rw-rw---- 1 mysql mysql 7046279 Oct 17 15:17 mysql-bin.000001 -rw-rw---- 1 mysql mysql 38 Oct 17 14:45 mysql-bin.index drwxr-xr-x 2 root root 4096 Oct 17 14:42 tmp drwx------ 2 mysql mysql 12288 Oct 17 11:23 zabbix 从库,重置了slave从库信息,重新建立从库信息,由于主库二进制日志从新开始,所以 master_log_file='mysql-bin.000001',master_log_pos=1; /etc/init.d/mysqld stop mv /usr/local/mysql/var/zabbix /usr/local/mysql/var/zabbix_tmp tar zxvf 20111017.tar.gz -C /usr/local/mysql/var/ /etc/init.d/mysqld start mysql -uroot -p mysql> reset slave; mysql> change master to master_host='192.168.6.53',master_user='dongnan',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=1; Query OK, 0 rows affected (0.01 sec) mysql> slave start; Query OK, 0 rows affected (0.00 sec) mysql> show slave status \G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.6.53 Master_User: dongnan Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 3249706 Relay_Log_File: zabbix-slave-relay-bin.000002 Relay_Log_Pos: 3249851 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes #mysqlbinlog 其它 #找到 2011-10-16 17:00:00 到 2011-10-16 17:58:59 这期间的sql语句 mysqlbinlog --database=zabbix --start-datetime="2011-10-16 17:00:00" --stop-datetime="2011-10-16 17:58:59" mysql-bin.000157 > test2.sql du -sh test2.sql 16M test2.sql head test2.sql /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #111015 17:59:02 server id 1 end_log_pos 106 Start: binlog v 4, server v 5.1.55-log created 111015 17:59:02 BINLOG ' ZlmZTg8BAAAAZgAAAGoAAAAAAAQANS4xLjU1LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC '/*!*/; # at 259091243 tail test2.sql /*!*/; # at 270239069 #111016 17:58:56 server id 1 end_log_pos 270239321 Query thread_id=120 exec_time=0 error_code=0 SET TIMESTAMP=1318759136/*!*/; insert into history_uint (itemid,clock,value) values (18532,1318759132,25427968),(18533,1318759133,43491328),(18534,1318759134,4308992),(18504,1318759134,15250739200),(18535,1318759135,0) /*!*/; DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; mysql -uroot -pdong zabbix < test2.sql #/usr/local/mysql/bin/mysqlbinlog --database=zabbix mysql-bin.000013 > test.txt #head -n 10 test.txt #/usr/local/mysql/bin/mysqlbinlog --start-datetime="2011-04-20 15:33:51" mysql-bin.000013 | /usr/local/mysql/bin/mysql -uroot -p
结束
整个恢复过程无非就是导入前一天的备份的 sql 文件,然后按时间或者按position从二进制日志中得到想要的sql语句,再次导入数据库即可!如果有从库的话再导出一份数据到从库就可以了!
Atas ialah kandungan terperinci 讲述一个mysql 数据库恢复的实例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Cardinality Indeks MySQL mempunyai kesan yang signifikan terhadap prestasi pertanyaan: 1. Indeks kardinaliti yang tinggi dapat lebih berkesan menyempitkan julat data dan meningkatkan kecekapan pertanyaan; 2. Indeks kardinaliti yang rendah boleh membawa kepada pengimbasan jadual penuh dan mengurangkan prestasi pertanyaan; 3. Dalam indeks bersama, urutan kardinaliti yang tinggi harus diletakkan di depan untuk mengoptimumkan pertanyaan.

Laluan pembelajaran MySQL termasuk pengetahuan asas, konsep teras, contoh penggunaan, dan teknik pengoptimuman. 1) Memahami konsep asas seperti jadual, baris, lajur, dan pertanyaan SQL. 2) Ketahui definisi, prinsip kerja dan kelebihan MySQL. 3) menguasai operasi CRUD asas dan penggunaan lanjutan, seperti indeks dan prosedur yang disimpan. 4) Biasa dengan debugging kesilapan biasa dan cadangan pengoptimuman prestasi, seperti penggunaan rasional indeks dan pertanyaan pengoptimuman. Melalui langkah -langkah ini, anda akan memahami sepenuhnya penggunaan dan pengoptimuman MySQL.

Aplikasi dunia nyata MySQL termasuk reka bentuk pangkalan data asas dan pengoptimuman pertanyaan kompleks. 1) Penggunaan Asas: Digunakan untuk menyimpan dan mengurus data pengguna, seperti memasukkan, menanyakan, mengemas kini dan memadam maklumat pengguna. 2) Penggunaan lanjutan: Mengendalikan logik perniagaan yang kompleks, seperti perintah dan pengurusan inventori platform e-dagang. 3) Pengoptimuman Prestasi: Meningkatkan prestasi dengan menggunakan indeks, jadual partisi dan cache pertanyaan.

Perintah SQL di MySQL boleh dibahagikan kepada kategori seperti DDL, DML, DQL, dan DCL, dan digunakan untuk membuat, mengubah suai, memadam pangkalan data dan jadual, memasukkan, mengemas kini, memadam data, dan melakukan operasi pertanyaan yang kompleks. 1. Penggunaan asas termasuk jadual penciptaan createtable, memasukkan data memasukkan, dan pilih data pertanyaan. 2. Penggunaan lanjutan melibatkan gabungan untuk Jadual Bergabung, Subqueries dan Groupby untuk Agregasi Data. 3. Kesilapan umum seperti kesilapan sintaks, jenis data yang tidak sepadan dan masalah kebenaran boleh disahpepijat melalui pemeriksaan sintaks, penukaran jenis data dan pengurusan kebenaran. 4. Cadangan Pengoptimuman Prestasi termasuk menggunakan indeks, mengelakkan pengimbasan jadual penuh, mengoptimumkan operasi gabungan dan menggunakan transaksi untuk memastikan konsistensi data.

InnoDB mencapai atomik melalui undolog, konsistensi dan pengasingan melalui mekanisme penguncian dan MVCC, dan kegigihan melalui redolog. 1) Atomicity: Gunakan Undolog untuk merekodkan data asal untuk memastikan urus niaga dapat dilancarkan kembali. 2) Konsistensi: Memastikan konsistensi data melalui penguncian peringkat baris dan MVCC. 3) Pengasingan: Menyokong pelbagai tahap pengasingan, dan RepeatableRead digunakan secara lalai. 4) Kegigihan: Gunakan redolog untuk merekodkan pengubahsuaian untuk memastikan data disimpan untuk masa yang lama.

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

MySQL sesuai untuk perusahaan kecil dan besar. 1) Perniagaan kecil boleh menggunakan MySQL untuk pengurusan data asas, seperti menyimpan maklumat pelanggan. 2) Perusahaan besar boleh menggunakan MySQL untuk memproses data besar dan logik perniagaan yang kompleks untuk mengoptimumkan prestasi pertanyaan dan pemprosesan transaksi.

InnoDB secara berkesan menghalang pembacaan hantu melalui mekanisme utama. 1) Kekunci seterusnya menggabungkan kunci baris dan kunci jurang untuk mengunci rekod dan jurang mereka untuk mengelakkan rekod baru daripada dimasukkan. 2) Dalam aplikasi praktikal, dengan mengoptimumkan pertanyaan dan menyesuaikan tahap pengasingan, persaingan kunci dapat dikurangkan dan prestasi konkurensi dapat ditingkatkan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini