Rumah  >  Artikel  >  pangkalan data  >  Apakah itu MySQL Redo dan Undo log?

Apakah itu MySQL Redo dan Undo log?

WBOY
WBOYke hadapan
2023-05-30 16:07:311862semak imbas

    1. Pengenalan kepada Buat semula log

    Buat semula log ialah log fizikal yang merekodkan perubahan halaman.

    1.1 Peranan Redo log

    • Meningkatkan kecekapan penulisan pangkalan data

    • Pastikan pangkalan data tidak kehilangan data dan berfungsi pemulihan data

    1.2 Buat semula format dan taip log

    Kaedah organisasi REDO yang dipanggil ialah cara merekod kandungan REDO yang diperlukan ke dalam fail cakera untuk memudahkan penulisan REDO yang cekap , baca, pulihkan dan bersihkan. Kami membahagikan REDO kepada tiga lapisan dari atas ke bawah: lapisan REDO logik, lapisan REDO fizikal dan lapisan fail.

    • Lapisan REDO logik

    Lapisan ini ialah kandungan REDO sebenar, aliran data berjujukan terdiri daripada berbilang rekod REDO disambungkan di tamat dan mempunyai incremental offset yang unik secara global sn InnoDB akan mengekalkan nilai maksimum sn semasa dalam log_sys global dan meningkatkan sn dengan panjang kandungan REDO setiap kali data ditulis.

    • Lapisan REDO fizikal

    Disk ialah peranti blok InnoDB juga menggunakan konsep Blok untuk membaca dan menulis data Blok adalah sama dengan OS_FILE_LOG_BLOCK_SIZE Saiz sektor cakera ialah 512B, dan unit terkecil bagi setiap IO baca dan tulis ialah Blok.

    • Lapisan fail

    Akhirnya REDO akan ditulis pada fail log REDO, dan fail log ditulis dalam gelung

    Apakah itu MySQL Redo dan Undo log?

    2 Proses menulis Redo log (MTR)

    • Operasi urutan pengguna akan ditulis terlebih dahulu ke dalam log buffer

    • akan ditulis secara berurutan ke Log logik Buat semula log buffer

    • dan kemudiannya akan diteruskan ke cakera

    • kemudiannya akan memberitahu pengguna bahawa storan telah selesai

    3 mekanisme pusat pemeriksaan

    Titik semakan ialah tanda kotor. halaman dalam log Buat Semula Terdapat dua fungsi berikut:

    • Selenggarakan semula log untuk memudahkan pembersihan

    • Kurangkan beban kerja mulakan semula

    Apakah itu MySQL Redo dan Undo log?

    Proses pemulihan pangkalan data:

    • Baca maklumat pusat pemeriksaan•Baca maklumat selebihnya bermula dari kedudukan pusat pemeriksaan Log

    • Harai log dan bina jadual cincang mengikut space_no dan page_id

    • Gunakan Semula log, Buat Semula main balik log memastikan idempotence

    • Menghuraikan binlog untuk membina senarai xid

    • Imbas segmen rollback untuk membina senarai transaksi yang belum selesai

    • Kembali Transaksi Transaksi yang tidak terikat dalam senarai xid

    4. Buat asal pengenalan log

    Log Undo ialah log logik yang merekodkan perubahan tambahan data, dan fungsinya adalah untuk memastikan atomicity transaksi dan kawalan konkurensi transaksi. Ditulis semula: Log Undo berfungsi untuk menjamin atomicity transaksi dan mengawal konkurensinya dengan mengelog perubahan tambahan dalam data, berfungsi sebagai log logik. Ia boleh digunakan untuk melancarkan urus niaga, melaksanakan kawalan berbilang versi (MVCC) dan menyelesaikan konflik baca-tulis dan bacaan yang konsisten.

    5. MVCC

    Maksud MVCC:

    • Membaca dan menulis tidak menghalang satu sama lain

    • Mengurangkan kebarangkalian kebuntuan;

    • Peranan UndoLog dalam MVCC:

    Setiap transaksi mempunyai ID transaksi kenaikan tunggal;

      Rekod baris halaman data mengandungi DB_ROW_ID, DB_TRX_ID, DB_ROLL_PTR; berdiri.

    Atas ialah kandungan terperinci Apakah itu MySQL Redo dan Undo log?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam