Apakah konsep log buat semula MySQL
Dalam ciri-ciri ACID urus niaga, atomicity (A), konsistensi (C), dan ketahanan (D) direalisasikan dengan buat asal log dan buat semula log, dan pengasingan (I) direalisasikan dengan kunci + MVCC
buat asal log: Urus niaga belum dilakukan lagi, dan pelaksanaan tidak normal di tengah Anda boleh menggunakan log batal untuk memulihkan data kepada keadaan sebelum pelaksanaan urus niaga untuk memastikan atomicity transaksi
buat semula log: Urus niaga berjaya dilakukan, kerana keperluan untuk mengemas kini data cakera Selepas tempoh masa, jika pengecualian berlaku, anda boleh menggunakan log buat semula untuk melaksanakan semula SQL transaksi ini untuk memastikan ketahanan transaksi ( Selagi komit transaksi berjaya, tidak kira apa kejadian luar biasa yang berlaku, selagi perkhidmatan MySQL berjalan seperti biasa pada masa akan datang, maka data komit terakhir mesti dipulihkan )
1. Konsep log semula
log semula: Ia dipanggil log fizikal dan merekodkan data diubah suai akhir yang disimpan mengikut halaman Halaman data menyimpan secara langsung status akhir data dan digunakan untuk memastikan ketahanan transaksi
Log logik, juga dikenali sebagai log asal, merekodkan kandungan khusus pernyataan SQL yang sepadan. Jika sisipan dilaksanakan sekarang, padam akan dilaksanakan apabila melancarkan semula; jika kemas kini dilaksanakan sekarang, nilai lama asal akan dikemas kini semula
Log buat semula akan diletakkan di bawah /var/lib/mysql
secara lalai
Log buat semula mula merekodkan apabila transaksi bermula (ia tidak direkodkan apabila transaksi dilakukan, kerana keseluruhan transaksi boleh melakukan banyak operasi. Jika ia direkodkan hanya apabila urus niaga dilakukan, Tulis log buat semula Apabila pengecualian berlaku pada masa ini, log buat semula belum ditulis Sudah terlambat untuk memastikan ketahanan transaksi itu diserahkan. Apabila pengecualian berlaku (seperti kehilangan data semasa proses kegigihan data) kuasa), InnoDB akan menggunakan log semula untuk memulihkan kepada saat sebelum kegagalan kuasa untuk memastikan integriti data
innodb_log_buffer_size lalai kepada 16M, iaitu saiz penimbal log buat semula Ia mula menulis buat semula apabila urus niaga bermula log, jika transaksi agak besar, untuk mengelakkan menghabiskan terlalu banyak cakera IO semasa pelaksanaan transaksi, anda boleh menyediakan cache log buat semula yang agak besar untuk disimpan. cakera IO. Terdapat masa untuk menyegarkan apabila membilas ke cakera Apabila masa dicapai, cakera IO digunakan Jika penimbal agak besar, masa untuk menyegarkan akan dicapai dengan lebih perlahan dan kecekapan akan lebih tinggi.
InnoDB mengubah suai data operasi secara langsung Ia sebenarnya hanya mengubah suai data dalam Buffer Pool . InnoDB sentiasa merekodkan dahulu perubahan data dalam Kolam Penampan kepada log buat semula untuk pemulihan data selepas ranap sistem. Rakam log buat semula dahulu, dan kemudian cari peluang untuk menyegarkan semula data kotor secara perlahan dalam Kolam Penampan ke cakera.
Dua fail dalam direktori yang ditentukan oleh innodb_log_group_home_dir: ib_logfile0, ib_logfile1, fail ini dipanggil log buat semula
kolam cache kolam penimbal: boleh menyimpan cache indeks, Cache data , dsb., boleh mempercepatkan membaca dan menulis, mengendalikan halaman data secara langsung, menulis pengubahsuaian log semula, dan walaupun ia selesai, akan ada benang khusus untuk menulis halaman kotor dalam kolam penimbal ke cakera
Saiz lalai kolam penimbal ialah 134M ( MySQL 5.7)
Struktur umum adalah seperti yang ditunjukkan dalam rajah:
Bacaan transaksi dan pengubahsuaian semuanya mengutamakan operasi cache Data dalam kumpulan. Dalam projek sebenar, mysqld akan dijalankan pada mesin yang berasingan dan boleh memperuntukkan sejumlah besar memori khusus untuk kumpulan penimbal InnoDB untuk mempercepatkan CRUD
2. Cache dan struktur cakera
Apabila transaksi dilakukan, operasi pada rajah perhubungan adalah untuk menulis kandungan Penimbal Log InnoDB ke cakera Jika penulisan berjaya, log semula pada cakera akan merekodkan status - commit. jika tidak Jika penulisan berjaya atau selesai, status rekod - sediakan
log juga mungkin mempunyai pengecualian, gangguan bekalan elektrik dan masalah lain semasa proses menulis ke cakera, menyebabkan penulisan log semula tidak sedang diselesaikan (ini Setara dengan urus niaga yang tidak berjaya dilakukan Pada masa ini, MySQL tidak perlu mempertimbangkan integriti urus niaga apabila ia pulih pada masa akan datang, kerana status tidak komit Hanya apabila semuanya ditulis ke cakera adakah ini bermakna log buat semula berjaya ditulis dan status menjadi komit . Selepas status berubah menjadi komit, ciri ACID urus niaga perlu dikekalkan.
Adakah data kotor dalam tinjauan pendapat penimbal (data telah diubah suai) hanya ditulis pada cakera apabila melakukan?
Tidak perlu menunggu komitmen untuk bermula. Jumlah data yang boleh diubah suai oleh urus niaga adalah agak besar, dan kapasiti cache adalah terhad Untuk data yang dicache melalui tinjauan pendapat penimbal, akan ada urutan khusus untuk menyegarkan data pada cakera pada masa yang sesuai bekalan elektrik terputus, apabila MySQL dimulakan, ia akan disegarkan semula mengikut buat semula Data yang direkodkan dalam log dipulihkan.
buat asal log itu sendiri juga direkodkan dalam buat semula log
Log buat asal menyokong pemulangan semula transaksi, dan ia tidak boleh diselesaikan dalam sekelip mata Data pada cakera akhirnya akan diubah suai untuk mengelakkan pengecualian semasa proses pemulangan semula, log buat asal mesti direkodkan dalam buat semula log. Untuk lapisan bawah, selepas operasi berjaya ditulis ke log semula, sama ada transaksi berjaya dilakukan (komit) atau berjaya digulung semula (rollback), ia dianggap berjaya.
Apakah transaksi sebenar melakukan kejayaan?
Daripada membuang semua data ke cakera, log buat semula yang merekodkan operasi lengkap transaksi ditulis daripada penimbal log ke cakera, dan kemudian status data yang diubah suai ditetapkan untuk melakukan Komit transaksi telah berjaya. Walaupun data masih berada dalam tinjauan pendapat penimbal pada masa ini, selagi log ubah semula kami kekal utuh, data itu akan dipulihkan akan ada urutan khusus yang bertanggungjawab untuk menulis data dalam tinjauan pendapat penimbal ke cakera
urus niaga dijalankan Semasa beroperasi, sentiasa tulis log buat semula terlebih dahulu, dan kemudian tulis ke kumpulan penimbal jika transaksi berjaya dilakukan, adalah perlu untuk memastikan bahawa log buat semula direkodkan sepenuhnya pada cakera
Bagi perubahan pada data jadual, halaman data kotor kumpulan penimbal Kami tidak perlu risau sama ada ia disiram ke cakera Selagi log buat semula ditulis sepenuhnya ke cakera , kita boleh menggunakan log buat semula pada bila-bila masa untuk memulihkan status data transaksi yang berjaya dilakukan (Perkara yang paling penting tentang pangkalan data ialah log. bukannya data)
Atas ialah kandungan terperinci Apakah konsep log buat semula MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

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 dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Apache menyambung ke pangkalan data memerlukan langkah -langkah berikut: Pasang pemacu pangkalan data. Konfigurasikan fail web.xml untuk membuat kolam sambungan. Buat sumber data JDBC dan tentukan tetapan sambungan. Gunakan API JDBC untuk mengakses pangkalan data dari kod Java, termasuk mendapatkan sambungan, membuat kenyataan, parameter mengikat, melaksanakan pertanyaan atau kemas kini, dan hasil pemprosesan.

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

Memasang MySQL pada CentOS melibatkan langkah -langkah berikut: Menambah sumber MySQL YUM yang sesuai. Jalankan YUM Pasang Perintah MySQL-Server untuk memasang pelayan MySQL. Gunakan perintah mysql_secure_installation untuk membuat tetapan keselamatan, seperti menetapkan kata laluan pengguna root. Sesuaikan fail konfigurasi MySQL seperti yang diperlukan. Tune parameter MySQL dan mengoptimumkan pangkalan data untuk prestasi.

Peranan utama MySQL dalam aplikasi web adalah untuk menyimpan dan mengurus data. 1.MYSQL dengan cekap memproses maklumat pengguna, katalog produk, rekod urus niaga dan data lain. 2. Melalui pertanyaan SQL, pemaju boleh mengekstrak maklumat dari pangkalan data untuk menghasilkan kandungan dinamik. 3.MYSQL berfungsi berdasarkan model klien-pelayan untuk memastikan kelajuan pertanyaan yang boleh diterima.
