Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Penjurnalan transaksi MySQL

Anda pasti berada di jalur yang benar di sini.

Setiap kali InnoDB melakukan transaksi yang harus dilakukan, itu dilakukan sebagai komitmen dua fase. Transaksi ditulis dalam log ini terlebih dahulu. Kemudian, mereka berkomitmen dari sana.

Ini sangat membantu jika terjadi crash MySQL atau server crash.

Saat Anda memulai ulang mysql, semua entri yang tidak dikomit di ib_logfile0 dan ib_logfile1 diputar ulang sebagai bagian dari pemulihan kerusakan InnoDB untuk membawa InnoDB ke keadaan yang harmonis (Ini adalah bagian yang Konsisten dan Tahan Lama dari Kepatuhan terhadap ASAM )

Jika Anda menghapus ib_logfile0 dan ib_logfile1 dan memulai mysql, semua transaksi tidak terikat yang berisi file-file tersebut akan hilang. Selama siklus pemulihan kerusakan, jika file log hilang, file tersebut dibuat ulang berdasarkan innodb_log_file_size pengaturan.

Silakan lihat Dokumentasi MySQL untuk detail penjelasan tentang InnoDB .

@karatedog bagian MVCC dari InnoDB terjadi dalam tablespace sistem, lebih dikenal sebagai ibdata1. Data apa pun yang tampak sebelum dimulainya transaksi dicatat untuk memungkinkan orang lain yang mengakses baris yang diperlukan untuk melihat data sebelum pembaruan apa pun diberlakukan. Ini memungkinkan untuk apa yang disebut REPEATABLE-READ. Ini termasuk dalam I kepatuhan ACID, artinya Isolasi. Saya menulis posting tentang ini di DBA StackExchange sehubungan dengan berbagai skenario di mana isolasi transaksi baik, buruk, atau jelek.

Sedangkan untuk MyISAM, pemulihan kerusakan tidak otomatis. Itu crash dengan mudah . Itu sebabnya perintah SQL REPAIR TABLE ada. Itu juga mengapa utilitas MySQL myisamchk memiliki -r opsi untuk melakukan REPAIR TABLE untuk tabel MyISAM yang tidak online.

MariaDB dan Aria telah mencoba membuat mesin penyimpanan yang aman dari kerusakan sebagai pengganti MyISAM.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Atur posting forum berdasarkan waktu balasan terbaru

  2. Bagaimana mendefinisikan indeks unik pada banyak kolom dalam sekuel

  3. Permintaan untuk mendapatkan catatan induk dengan catatan anak, diikuti oleh catatan induk-anak berikutnya di mysql

  4. Bagaimana Anda menghentikan MySQL pada instalasi Mac OS?

  5. PHP, MySQL, PDO - Dapatkan hasil dari kueri UPDATE?