Jadual Kandungan
Proses penulisan Log Perduaan
sync_binlog
Ringkasan
saiz_cache_binlog_maks
Ikhtisar
Gunakan
Rumah pangkalan data tutorial mysql Kuasai sepenuhnya proses menulis Log Binari dalam MySql

Kuasai sepenuhnya proses menulis Log Binari dalam MySql

Feb 18, 2022 pm 05:06 PM
mysql

Artikel ini membawa anda pengetahuan yang berkaitan tentang proses menulis Log Binari dalam mysql, termasuk isu yang berkaitan dengan "sync_binlog", "binlog_cache_size" dan "max_binlog_cache_size".

Kuasai sepenuhnya proses menulis Log Binari dalam MySql

Proses penulisan Log Perduaan

Mari kita lihat dulu penerangan dokumen rasmi tentang konfigurasi sync_binlog.

sync_binlog



命令行格式 --sync-binlog=#
系统变量 sync_binlog
影响范围 Global
动态的 Yes
SET_VAR提示适用 No
类型 Integer
默认值 1
最小值 0
最大值 2^32=4294967295

Kawal kekerapan pelayan MySQL menyegerakkan log binari ke cakera.

  • sync_binlog=0: Melumpuhkan pelayan MySQL daripada menyegerakkan log binari ke cakera. Sebaliknya, pelayan MySQL bergantung pada sistem pengendalian untuk membuang log binari ke cakera dari semasa ke semasa, sama seperti ia akan melakukan mana-mana fail lain. Tetapan ini memberikan prestasi terbaik, tetapi sekiranya berlaku kegagalan kuasa atau ranap sistem pengendalian, pelayan mungkin telah melakukan transaksi yang masih belum dibuang.

  • sync_binlog=1: Dayakan penyegerakan log binari ke cakera sebelum melakukan transaksi. Ini adalah tetapan paling selamat, tetapi mungkin mempunyai kesan negatif terhadap prestasi disebabkan peningkatan penulisan cakera. Sekiranya berlaku kegagalan kuasa atau kemalangan sistem pengendalian, urus niaga yang hilang dalam log binari hanya dalam keadaan yang disediakan. Ini membolehkan pemulihan automatik biasa untuk melancarkan urus niaga, sekali gus menjamin urus niaga tidak akan hilang daripada log binari.

  • sync_binlog=N, iaitu nilai selain daripada 0 atau 1: Selepas N kumpulan penyerahan log binari dikumpulkan, log binari akan disegerakkan ke cakera. Sekiranya berlaku kegagalan kuasa atau ranap sistem pengendalian, pelayan mungkin telah melakukan transaksi yang masih belum dialihkan ke log binari. Tetapan ini mungkin mempunyai kesan negatif terhadap prestasi disebabkan peningkatan penulisan cakera. Nilai yang lebih tinggi meningkatkan prestasi tetapi meningkatkan risiko kehilangan data.

InnoDBUntuk mendapatkan ketahanan dan ketekalan yang terbaik dalam persediaan replikasi yang digunakan dengan transaksi, gunakan persediaan berikut:

  • sync_binlog =1.
  • innodb_flush_log_at_trx_commit=1.

AMARAN

Banyak sistem pengendalian dan beberapa perkakasan cakera menipu semasa curahan ke cakera beroperasi. Mereka mungkin memberitahu mysqld bahawa penyegaran telah berlaku walaupun ia belum berlaku lagi. Dalam kes ini, ketahanan transaksi tidak dijamin walaupun dengan tetapan yang disyorkan, dan dalam kes yang paling teruk, gangguan bekalan elektrik mungkin merosakkan data anda. Menggunakan cache cakera bersandarkan bateri dalam pengawal cakera SCSI atau cakera itu sendiri mempercepatkan penyegaran fail dan menjadikan operasi lebih selamat. Anda juga boleh cuba melumpuhkan caching penulisan cakera dalam cache perkakasan. InnoDB

Ringkasan

    Jenis tetapan sync_binlog ialah Integer tidak ditandatangani.
  • Secara amnya ia tidak akan ditetapkan kepada 0. 0 bergantung pada operasi sistem dan fsync yang tidak teratur Ia lebih berbahaya apabila berlaku kegagalan kuasa atau ranap sistem - transaksi diserahkan tetapi Log Binari tiada.
  • Adalah lebih selamat untuk menetapkannya kepada 1 untuk mendapatkan ketahanan dan konsistensi maksimum yang mungkin, dan untuk memastikan replikasi dan pemulihan tuan-hamba seterusnya. Walau bagaimanapun, ia memudaratkan prestasi dan boleh ditetapkan apabila IOPS yang diperlukan oleh perniagaan tidak tinggi.
  • Tujuan menetapkan nilai yang lebih besar daripada 1 adalah untuk meningkatkan prestasi Daripada melakukan transaksi, fsync adalah bersamaan dengan pembilasan kumpulan Ia adalah cara yang bijak, tetapi jika berlaku kegagalan kuasa atau ranap sistem. Log Binari akan hilang Akan ada lagi. Lebih selamat jika cakera itu sendiri menggunakan cache cakera bersandarkan bateri. Oleh itu, ia boleh ditetapkan apabila IOPS yang diperlukan oleh perniagaan adalah agak tinggi, tetapi secara amnya ia tidak akan ditetapkan terlalu besar dan boleh berada dalam julat [100, 1000].
Selain itu, melalui penerangan sync_binlog=0, kita juga secara kasarnya dapat merasakan bahawa sebenarnya, apabila transaksi diserahkan, walaupun tiada fsync serta-merta, ia sebenarnya telah ditulis ke halaman cache sistem fail , maka sebenarnya, mysql juga akan mempunyai cache untuk menyimpan Log Binari yang dijana dalam transaksi apabila transaksi berjalan.

Mari kita teruskan melihat konfigurasi berkaitan cache bagi Log Binari apabila transaksi berjalan.

saiz_cache_binlog

Saiz penimbal memori untuk menyimpan log binari berubah semasa transaksi. Nilai mestilah gandaan 4096.

Apabila pengelogan binari didayakan pada pelayan (pembolehubah sistem log_bin ditetapkan kepada HIDUP), setiap pelanggan diperuntukkan cache log binari jika pelayan menyokong sebarang enjin storan transaksi. Jika data transaksi melebihi ruang dalam penimbal memori, lebihan data disimpan dalam fail sementara. Apabila penyulitan log binari aktif pada pelayan, penimbal memori tidak disulitkan, tetapi (bermula dengan MySQL 8.0.17) mana-mana fail sementara yang digunakan untuk menyimpan cache log binari disulitkan. Selepas setiap transaksi dilakukan, cache log binari ditetapkan semula dengan mengosongkan penimbal memori dan memotong fail sementara (jika digunakan).

Jika anda kerap menggunakan transaksi yang besar, anda boleh meningkatkan saiz cache ini untuk prestasi yang lebih baik dengan mengurangkan atau menghapuskan keperluan untuk menulis fail sementara. Binlog_cache_use (pembolehubah status perkhidmatan - bilangan transaksi menggunakan cache Log Binari) dan Binlog_cache_disk_use (pembolehubah status perkhidmatan - bilangan transaksi menggunakan cache log binari sementara tetapi melebihi nilai binlog_cache_size dan menggunakan fail sementara untuk menyimpan penyata transaksi.) pembolehubah status boleh digunakan untuk melaraskan saiz pembolehubah ini. Lihat Bahagian 5.4.4, “Log Perduaan”.

binlog_cache_sizeHanya menetapkan saiz cache transaksi; saiz cache penyata dikawal oleh pembolehubah sistem binlog_stmt_cache_size.

Ringkasan

  • Jenis tetapan binlog_cache_size ialah Integer tidak ditandatangani.
  • digunakan untuk menunjukkan saiz yang digunakan untuk cache Log Binari semasa setiap transaksi lalai ialah 32k dan mestilah gandaan 4096. Jika nilai ini melebihi, storan fail sementara akan digunakan.
  • Cuba untuk tidak menggunakan transaksi besar dalam perniagaan Jika transaksi terlalu besar, anda perlu mempertimbangkan sama ada ia munasabah. Secara amnya, tidak perlu mengubah suai binlog_cache_size, 32k sudah memadai.
  • Apabila binlog_cache_size tidak mencukupi, fail sementara akan digunakan untuk penyimpanan, tetapi prestasi akan menjadi lebih rendah. Kami boleh menetapkan max_binlog_cache_size=binlog_cache_size supaya fail sementara tidak akan digunakan, yang akan diperkenalkan di bawah.

saiz_cache_binlog_maks



命令格式 --max-binlog-cache-size=#
系统变量 max_binlog_cache_size
范围 Golbal
动态的 Yes
SET_VAR提示适用 No
类型 Integer
默认值 2^64=18446744073709547520
最小值 4096
最大值 2^64=18446744073709547520
块大小 4096

Jika transaksi memerlukan lebih daripada banyak bait memori ini, pelayan akan menjana transaksi berbilang penyata yang memerlukan lebih daripada 'max_binlog_cache_size' bait ralat storan. Nilai minimum ialah 4096. Nilai maksimum yang mungkin ialah 16EiB (exbibait). Nilai maksimum yang disyorkan ialah 4GB ini kerana MySQL pada masa ini tidak boleh mengendalikan lokasi log binari yang lebih besar daripada 4GB. Nilai mestilah gandaan 4096.

max_binlog_cache_sizeHanya menetapkan saiz cache transaksi; had atas cache penyata dikawal oleh pembolehubah sistem max_binlog_stmt_cache_size.

Keterlihatan sesi max_binlog_cache_size sepadan dengan keterlihatan pembolehubah sistem binlog_cache_size, dengan kata lain, menukar nilainya hanya akan menjejaskan sesi baharu yang dimulakan selepas nilai ditukar.

Ringkasan

  • max_binlog_cache_size ialah nilai selamat, biasanya ditetapkan mengikut memori yang boleh diperuntukkan oleh pelayan.

Ikhtisar

Daripada konfigurasi di atas, kita boleh membuat kesimpulan bahawa proses penulisan Log Binari adalah secara kasar:

  1. Transaksi ditukar kepada runtime, put ke dalam cache Log Binari bagi setiap transaksi.
  2. Selepas transaksi diserahkan, ia dilakukan mengikut konfigurasi Jika sync_binlog=1, cache akan dikeluarkan setiap kali fsync dilakukan. Jika sync_binlog=0, ia akan ditulis terus ke cache halaman fail sistem, bergantung pada sistem pengendalian untuk membuang log binari dari semasa ke semasa. Jika sync_binlog=N (N>1), ia bersamaan dengan pembilasan kelompok Sudah tentu, cache binlog yang dipegang oleh setiap transaksi akan dikeluarkan.

Jadi proses umum adalah seperti berikut:

Ringkasan

Setakat ini kita mempunyai pemahaman umum tentang proses menulis Mysql ke Binari Melalui: cache binlog yang dipegang oleh setiap transaksi -> Strategi pelaksanaan khusus boleh dikawal melalui sync_binlog.

Gunakan

  • sync_binlog: Jika anda perlu mendapatkan ketahanan dan konsistensi maksimum, tetapkan kepada 1. Bagi isu prestasi, anda boleh melaraskan perkakasan dan kaedah lain jika anda menjalankan log binari, benarkan kerugian Atau jika anda kehilangan kawalan melalui kaedah lain dan ingin mengoptimumkan berdasarkan sumber pelayan semasa, tetapkannya dalam julat [100,1000].
  • binlog_cahe_size: Seperti yang dinyatakan sebelum ini, perhatian perlu diberikan untuk mengawal butiran transaksi dalam perniagaan sebenar Dalam kebanyakan kes, 32k lalai sudah mencukupi.

Pembelajaran yang disyorkan: tutorial video mysql

Atas ialah kandungan terperinci Kuasai sepenuhnya proses menulis Log Binari dalam MySql. 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

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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)

MySQL: Pengenalan kepada pangkalan data paling popular di dunia MySQL: Pengenalan kepada pangkalan data paling popular di dunia Apr 12, 2025 am 12:18 AM

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.

Cara membuka phpmyadmin Cara membuka phpmyadmin Apr 10, 2025 pm 10:51 PM

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".

Mengapa menggunakan mysql? Faedah dan kelebihan Mengapa menggunakan mysql? Faedah dan kelebihan Apr 12, 2025 am 12:17 AM

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.

Tempat Mysql: Pangkalan Data dan Pengaturcaraan Tempat Mysql: Pangkalan Data dan Pengaturcaraan Apr 13, 2025 am 12:18 AM

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

Cara menyambung ke pangkalan data Apache Cara menyambung ke pangkalan data Apache Apr 13, 2025 pm 01:03 PM

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.

Cara Memulakan MySQL oleh Docker Cara Memulakan MySQL oleh Docker Apr 15, 2025 pm 12:09 PM

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

Peranan MySQL: Pangkalan Data dalam Aplikasi Web Peranan MySQL: Pangkalan Data dalam Aplikasi Web Apr 17, 2025 am 12:23 AM

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.

Cara Memasang MySQL di CentOS7 Cara Memasang MySQL di CentOS7 Apr 14, 2025 pm 08:30 PM

Kunci untuk memasang MySQL dengan elegan adalah untuk menambah repositori MySQL rasmi. Langkah -langkah khusus adalah seperti berikut: Muat turun kekunci GPG rasmi MySQL untuk mencegah serangan pancingan data. Tambah fail repositori MySQL: rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm kemas kini yum repository cache: yum update mysql: yum pemasangan mysql-server mysql Server.

See all articles