Jadual Kandungan
Memahami balak binari dan prasyarat
Langkah 1: Pulihkan sandaran asas
Langkah 2: Kenal pasti titik pemulihan sasaran
Langkah 3: Gunakan balak binari sehingga ke titik yang dikehendaki
Petua untuk ketepatan
Nota akhir
Rumah pangkalan data tutorial mysql Bagaimana untuk melakukan pemulihan point-in-time menggunakan log binari?

Bagaimana untuk melakukan pemulihan point-in-time menggunakan log binari?

Aug 01, 2025 am 07:13 AM
mysql 时间点恢复

Untuk memulihkan pangkalan data MySQL ke titik tertentu dalam masa, anda mesti terlebih dahulu memulihkan sandaran lengkap, dan kemudian gunakan log binari untuk memainkan semula perubahan. Langkah -langkah khusus adalah: 1. Gunakan MySqldump dan alat lain untuk memulihkan sandaran lengkap yang paling terkini untuk membawa pangkalan data kembali ke negeri pada masa itu; 2. Gunakan mysqlbinlog untuk menganalisis log binari dalam kombinasi dengan jarak masa atau maklumat lokasi untuk mencari titik masa atau lokasi acara yang perlu dipulihkan; 3. Gunakan MySqlbinLog untuk membaca log binari dari masa sandaran ke titik waktu sasaran, dan mengalihkan outputnya ke pelayan MySQL untuk melaksanakan, dengan itu memainkan semula semua operasi undang -undang dalam tempoh masa ini; Untuk memastikan ketepatan, disyorkan untuk menggunakan lokasi log dan bukannya cap waktu, dan menguji proses pemulihan dalam persekitaran bukan pengeluaran. Pada masa yang sama,-Skip-Write-Binlog boleh diaktifkan untuk mengelakkan operasi pemulihan daripada menghasilkan log binari baru, dan akhirnya memulihkan pangkalan data ke keadaan yang tepat pada titik masa yang ditentukan.

Bagaimana untuk melakukan pemulihan point-in-time menggunakan log binari?

Memulihkan pangkalan data MySQL ke titik tertentu dalam masa menggunakan Log Perdua Inilah cara melakukannya dengan betul.

Bagaimana untuk melakukan pemulihan point-in-time menggunakan log binari?

Memahami balak binari dan prasyarat

Log binari merekodkan semua perubahan yang dibuat kepada struktur dan data pangkalan data (misalnya, INSERT , UPDATE , DELETE , CREATE , DROP ). Untuk melakukan pemulihan point-in-time (PITR), anda mesti mempunyai:

  • Pembalakan Perduaan Diaktifkan ( log_bin dalam konfigurasi MySQL).
  • Sandaran penuh (contohnya, dari mysqldump atau alat sandaran fizikal seperti Percona Xtrabackup).
  • Akses kepada fail log binari yang dihasilkan selepas sandaran diambil.

Tanpa sandaran asas, anda tidak boleh memulakan proses pemulihan -binlog sahaja tidak mencukupi.

Bagaimana untuk melakukan pemulihan point-in-time menggunakan log binari?

Langkah 1: Pulihkan sandaran asas

Mulakan dengan memulihkan sandaran penuh anda yang paling terkini. Sekiranya anda menggunakan mysqldump , lakukan:

 mysql -u root -p <backup.sql

Ini membawa pangkalan data ke negeri yang ada pada masa sandaran. Sebarang perubahan selepas masa itu akan dimulakan semula menggunakan log binari.

Bagaimana untuk melakukan pemulihan point-in-time menggunakan log binari?

Langkah 2: Kenal pasti titik pemulihan sasaran

Tentukan titik tepat dalam masa yang anda mahu pulih. Ini boleh:

  • Timestamp sebelum pertanyaan yang bermasalah (misalnya, DROP TABLE users; )
  • Transaksi atau peristiwa tertentu di binlog

Gunakan mysqlbinlog untuk memeriksa log:

 mysqlbinlog-start-datetime = "2024-04-05 10:00:00" \
            --Stop-Datetime = "2024-04-05 10:30:00" \
            /var/lib/mysql/binlog.000001 | lebih

Cari pernyataan SQL yang mencurigakan atau tidak diingini dan perhatikan masa atau kedudukan yang tepat.

Langkah 3: Gunakan balak binari sehingga ke titik yang dikehendaki

Sebaik sahaja anda telah mengenal pasti titik pemulihan, ulangi balak sehingga (tetapi tidak termasuk) peristiwa buruk.

Sebagai contoh, jika ralat berlaku pada 2024-04-05 10:25:30 , pulih sehingga 10:25:00 :

 mysqlbinlog --stop-datetime = "2024-04-05 10:25:00" \
            /var/lib/mysql/binlog.000001 \
            /var/lib/mysql/binlog.000002 | mysql -u root -p

Ini menggunakan semua perubahan dari binlog sehingga saat itu.

NOTA: Jika anda mempunyai beberapa fail binlog, senaraikannya dalam rangka atau gunakan --read-from-remote-server dengan mysqlbinlog jika mengambil dari hos jauh.

Petua untuk ketepatan

  • Gunakan kedudukan log dan bukannya cap waktu untuk lebih tepat. Cari at <position> dalam output binlog. Contoh:
     mysqlbinlog --stop-position = 1456 /var/lib/mysql/binlog.000001 | mysql -u root -p
  • Sentiasa menguji pemulihan pada pelayan bukan pengeluaran terlebih dahulu.
  • Enable --skip-write-binlog pada sasaran MySQL Instance semasa pemulihan jika anda tidak mahu acara dimainkan untuk menghasilkan Binlogs baru (mengelakkan pencemaran log).
  • Nota akhir

    • Pastikan format binlog adalah ROW , STATEMENT , atau MIXED - ROW selamat untuk pemulihan yang tepat.
    • Putar dan sandarkan Binlogs secara teratur untuk mengelakkan kehilangannya.
    • Automatikkan pemantauan dan peringatan mengenai operasi DDL/DML kritikal untuk mengurangkan penemuan pemulihan.

    Pada asasnya, pitr = memulihkan sandaran sandaran binlogs sehingga titik yang selamat. Ia tidak kompleks, tetapi perhatian kepada masa dan integriti log adalah kejam.

    Atas ialah kandungan terperinci Bagaimana untuk melakukan pemulihan point-in-time menggunakan log binari?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1545
276
Amalan terbaik untuk menguruskan jadual mysql yang besar Amalan terbaik untuk menguruskan jadual mysql yang besar Aug 05, 2025 am 03:55 AM

Apabila berurusan dengan jadual besar, prestasi MySQL dan penyelenggaraan menghadapi cabaran, dan perlu bermula dari reka bentuk struktur, pengoptimuman indeks, strategi sub-meja jadual, dan sebagainya. 1. Gunakan indeks overlay untuk meningkatkan kecekapan pertanyaan; kerap menganalisis log pertanyaan perlahan dan memadam indeks tidak sah. 2. 3. Pertimbangkan pembacaan dan penulisan pemisahan dan pemisahan perpustakaan: Baca dan menulis pemisahan mengurangkan tekanan pada perpustakaan utama. Pemisahan perpustakaan dan pemisahan jadual sesuai untuk senario dengan sejumlah besar data. Adalah disyorkan untuk menggunakan middleware dan menilai masalah urus niaga dan masalah pertanyaan silang. Perancangan awal dan pengoptimuman berterusan adalah kunci.

Bagaimana cara menggunakan kekangan cek untuk menguatkuasakan peraturan data di MySQL? Bagaimana cara menggunakan kekangan cek untuk menguatkuasakan peraturan data di MySQL? Aug 06, 2025 pm 04:49 PM

MySQL menyokong kekangan cek untuk memaksa integriti domain, berkesan dari versi 8.0.16; 1. Tambah kekangan apabila membuat jadual: Gunakan createtable untuk menentukan syarat semak, seperti umur ≥18, gaji> 0, nilai had jabatan; 2. Ubah suai jadual untuk menambah kekangan: Gunakan altertableaddConstraint untuk mengehadkan nilai medan, seperti nama tidak kosong; 3. Menggunakan syarat-syarat yang kompleks: menyokong logik dan ekspresi multi-lajur, seperti tarikh akhir ≥ multart status dan status siap mesti mempunyai tarikh akhir; 4. Padam Kekangan: Gunakan alterTableDRopConstraint untuk menentukan nama untuk memadam; 5. Nota: Mysql8.0.16, InnoDB atau Myisam perlu disebutkan

Bagaimana untuk melaksanakan sistem penandaan dalam pangkalan data MySQL? Bagaimana untuk melaksanakan sistem penandaan dalam pangkalan data MySQL? Aug 05, 2025 am 05:41 AM

Useamany-to-manyrelationshipwithajunctionTableTolinkitemsandtagsviathreetables: item, tags, anditem_tags.2.WhenaddingTags, checkorexistingtagsinthetagstable, InsertIfnerary, thencreatemappingsinitem_TagsusterShanTaStranitem_TagsingTrans

Cara Menunjukkan Semua Pangkalan Data di MySQL Cara Menunjukkan Semua Pangkalan Data di MySQL Aug 08, 2025 am 09:50 AM

Untuk memaparkan semua pangkalan data dalam MySQL, anda perlu menggunakan perintah ShowDatabases; 1. Selepas log masuk ke pelayan MySQL, anda boleh melaksanakan showdatabases; perintah untuk menyenaraikan semua pangkalan data bahawa pengguna semasa mempunyai kebenaran untuk mengakses; 2. Pangkalan data sistem seperti Maklumat_Schema, MySQL, Performance_Schema dan SYS wujud secara lalai, tetapi pengguna yang mempunyai kebenaran yang tidak mencukupi mungkin tidak dapat melihatnya; 3. Anda juga boleh menanyakan dan menapis pangkalan data melalui selectschema_namefrominformation_schema.schemata; Sebagai contoh, tidak termasuk pangkalan data sistem untuk hanya memaparkan pangkalan data yang dibuat oleh pengguna; Pastikan untuk menggunakan

Bagaimana cara menyelesaikan kesilapan sambungan mysql biasa? Bagaimana cara menyelesaikan kesilapan sambungan mysql biasa? Aug 08, 2025 am 06:44 AM

Semak sama ada perkhidmatan MySQL sedang berjalan, gunakan sudosystemctlstatusmysql untuk mengesahkan dan memulakan; 2. Pastikan alamat pengikat ditetapkan kepada 0.0.0.0 untuk membolehkan sambungan jauh dan mulakan semula perkhidmatan; 3. Sahkan sama ada pelabuhan 3306 dibuka, periksa dan konfigurasikan peraturan firewall untuk membenarkan pelabuhan; 4. Untuk ralat "Accessdenied", anda perlu menyemak nama pengguna, kata laluan dan nama hos, dan kemudian log masuk ke MySQL dan menanyakan jadual MySQL.user untuk mengesahkan kebenaran. Jika perlu, buat atau kemas kini pengguna dan membenarkannya, seperti menggunakan 'your_user'@'%'; 5. Sekiranya pengesahan hilang kerana caching_sha2_password

Bagaimana untuk menambah kunci utama ke jadual yang sedia ada di MySQL? Bagaimana untuk menambah kunci utama ke jadual yang sedia ada di MySQL? Aug 12, 2025 am 04:11 AM

Untuk menambah kunci utama ke jadual yang sedia ada, gunakan pernyataan altertable dengan klausa AddPrimaryKey. 1. Pastikan lajur sasaran tidak mempunyai nilai null, tiada duplikasi dan ditakrifkan sebagai notnull; 2. Sintaks utama utama tunggal-lajur adalah nama meja altertable AddPrimaryKey (nama lajur); 3. Sintaks utama utama kombinasi Kombinasi Multi-lajur adalah nama jadual Altertable AddPrimaryKey (lajur 1, lajur 2); 4 Jika lajur membenarkan batal, anda mesti terlebih dahulu melaksanakan Modify to menetapkan notnull; 5. Setiap jadual hanya boleh mempunyai satu kunci utama, dan kunci utama lama mesti dipadamkan sebelum menambah; 6. Jika anda perlu meningkatkannya sendiri, anda boleh menggunakan Modify untuk menetapkan auto_increment. Pastikan data sebelum beroperasi

Apakah perbezaan antara Truncate, Padam, dan Drop dalam MySQL? Apakah perbezaan antara Truncate, Padam, dan Drop dalam MySQL? Aug 05, 2025 am 09:39 AM

Deleteremovesspecificorallrows, keepstableStructure, membolehkan rollrackandtriggers, anddoesnotresetauto-increment; 2.truncatequicklyremovesallrows, resetsauto-increment, tidak boleh dibebaskan

Cara Menyandarkan Pangkalan Data di MySQL Cara Menyandarkan Pangkalan Data di MySQL Aug 11, 2025 am 10:40 AM

Menggunakan mysqldump adalah cara yang paling biasa dan berkesan untuk menyokong pangkalan data MySQL. Ia boleh menjana skrip SQL yang mengandungi struktur meja dan data. 1. Sintaks asas ialah: mysqldump-u [nama pengguna] -p [nama pangkalan data]> backup_file.sql. Selepas pelaksanaan, masukkan kata laluan untuk menghasilkan fail sandaran. 2. Menyokong pelbagai pangkalan data dengan-pilihan-Databases: mysqldump-usoot-p-databasesdb1db2> multiple_dbs_backup.sql. 3. Menyandarkan semua pangkalan data dengan-semua-data: mysqldump-usoot-p

See all articles