Jadual Kandungan
Pemulihan urus niaga
Mekanisme pusing balik:
Ringkasan
Rumah pangkalan data tutorial mysql Balik semula MySQL (perkongsian ringkasan)

Balik semula MySQL (perkongsian ringkasan)

Jun 24, 2022 pm 12:54 PM
mysql

Artikel ini membawakan anda pengetahuan yang berkaitan tentang mysql terutamanya menganjurkan isu berkaitan rollback dan terutamanya memperkenalkan mekanisme rollback dan rollback kedai buku Mari kita lihat bersama-sama.

Balik semula MySQL (perkongsian ringkasan)

Pembelajaran yang disyorkan: tutorial video mysql

Saya sering menghadapi pengendalian meja besar dan mendapati masa operasi terlalu lama atau menjejaskan proses dalam talian Perniagaan perlu melancarkan operasi meja besar. Selepas menghentikan operasi jadual yang besar, menunggu rollback adalah proses yang sangat lama Walaupun anda mungkin tahu beberapa kaedah untuk memendekkan masa dan kagum dengan integriti data dalam persekitaran pengeluaran, anda boleh memilih untuk tidak campur tangan.

Pemulihan urus niaga

Urus niaga ialah unit pelaksanaan dalam pangkalan data hubungan dan anda boleh memilih untuk melakukan atau melancarkan semula melalui kawalan peringkat akhir. Lakukan operasi rollback dalam pelbagai senario di mana integriti tidak dapat dijamin. Rollback dalam MySQL dicapai melalui log Undo, yang mengandungi maklumat tentang cara untuk membuat asal perubahan terkini yang berkaitan dengan transaksi. Buat asal log wujud dalam segmen Buat asal log dan segmen Buat asal log disertakan dalam segmen tarik balik. Segmen rollback terletak di ruang jadual asal dan ruang jadual Sementara global.
Hubungannya adalah seperti berikut:

Balik semula MySQL (perkongsian ringkasan)

  • buat asal fail

    Balik semula MySQL (perkongsian ringkasan)

mysql > show variables like '%undo%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| innodb_max_undo_log_size | 1073741824         |
| innodb_undo_directory    | /opt/data8.0/mysql |
| innodb_undo_log_encrypt  | OFF                |
| innodb_undo_log_truncate | ON                 |
| innodb_undo_tablespaces  | 2                  |
+--------------------------+--------------------+
5 rows in set (0.00 sec)
Salin selepas log masuk

Global Temporary Merujuk kepada ruang jadual sementara (ibtmp1) yang digunakan untuk menyimpan segmen rollback untuk perubahan yang dibuat pada jadual sementara ciptaan pengguna.

Balik semula MySQL (perkongsian ringkasan)

mysql > SELECT @@innodb_temp_data_file_path;
+-------------------------------+
| @@innodb_temp_data_file_path  |
+-------------------------------+
| ibtmp1:128M:autoextend:max:30G |
+-------------------------------+
Salin selepas log masuk

Selepas memahami fail yang disertakan dalam rollback, teruskan membaca.

Mekanisme pusing balik:

Kawalan balik balik MySQL diselaraskan oleh enjin innodb dalaman dan tidak menyediakan mekanisme kawalan manusia. Parameter rollback MySQL yang disediakan pada masa ini adalah seperti berikut:

mysql> SHOW VARIABLES LIKE  '%ROLL%';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| innodb_rollback_on_timeout | OFF   |
| innodb_rollback_segments   | 128   |
+----------------------------+-------+
Salin selepas log masuk

innodb_rollback_on_timeout:

InnoDB lalai untuk melancarkan penyata terakhir hanya apabila transaksi tamat. Jika --InnoDB -rollback-on-timeout ditentukan, tamat masa transaksi akan menyebabkan InnoDB membatalkan dan melancarkan keseluruhan transaksi. Ia dimatikan secara lalai, sebaik sahaja masa yang ditetapkan, seperti pemulangan gagal. Adalah boleh dibayangkan bahawa akan ada ketidakkonsistenan dalam data. Kaedah ini tidak digalakkan.

Innodb_rollback_segments (1~128):

mentakrifkan bilangan segmen rollback yang diperuntukkan kepada setiap ruang jadual buat asal dan bilangan ruang jadual sementara global yang diperuntukkan untuk transaksi yang menjana rekod buat asal .
Bilangan transaksi yang disokong oleh segmen rollback: bergantung pada bilangan slot buat asal dalam segmen rollback dan bilangan log buat asal yang diperlukan untuk setiap transaksi

Bilangan slot buat asal dalam rollback yang disediakan secara rasmi segmen adalah berdasarkan saiz halaman InnoDB yang berkaitan:

Balik semula MySQL (perkongsian ringkasan)

Daripada pelaksanaan kod sumber MySQL8.0.27 terkini, storageinnobaseincludetrx0rseg.h:

/* Number of undo log slots in a rollback segment file copy 
这里 UNIV_PAGE_SIZE正常页面的大小  即 1024*/
#define TRX_RSEG_N_SLOTS (UNIV_PAGE_SIZE / 16)

/* Maximum number of transactions supported by a single rollback segment 
单个回滚段支持的最大事务数1024/2=512
*/
#define TRX_RSEG_MAX_N_TRXS (TRX_RSEG_N_SLOTS / 2)
Salin selepas log masuk

dibahagikan kepada halaman secara lalai Terdapat 1024 slot (TRX_RSEG_N_SLOTS), dan setiap slot sepadan dengan objek log batal, jadi secara teorinya InnoDB boleh menyokong 128 * 512 = 65536 transaksi biasa.
Untuk bahagian prinsip, sila rujuk MySQL · Ciri Enjin · InnoDB batalkan perayauan log
Secara rasmi menyediakan undbo rollback senario baca dan tulis serentak:

Balik semula MySQL (perkongsian ringkasan)

Kembali dari prinsip rayuan Dalam senario aplikasi sebenar:
Keupayaan untuk menyokong segmen rollback masih besar, tetapi selalunya sangat perlahan apabila melaksanakan kumpulan rollback yang besar. Terutama semasa pemprosesan dalam talian, ia mungkin mengambil masa 10 minit untuk melancarkan 100,000 baris. Atau lebih lama lagi.
Seterusnya, sediakan 50 juta data jadual tunggal melalui sysbench Tanpa beban, padamkannya selama kira-kira 1 minit Kemudian gunakan kill -9 untuk menghentikan transaksi secara paksa dan melancarkan transaksi:

Balik semula MySQL (perkongsian ringkasan).

Jelas sekali kesan mulakan semula adalah lebih baik.
Walau bagaimanapun, kaedah kill -9 boleh merosakkan halaman data dengan mudah dan menimbulkan risiko yang besar. Pangkalan data juga di bawah beban dalam kehidupan seharian Ia boleh dibayangkan bahawa kos melancarkan transaksi besar adalah sangat tinggi.

Ringkasan

Operasi rollback yang besar harus dielakkan sebanyak mungkin, yang menggunakan sumber dan prestasi pangkalan data, serta boleh menyebabkan kemalangan pengeluaran besar dalam persekitaran pengeluaran. Jika rollback transaksi yang besar tidak dapat dielakkan, anda boleh menggunakan kaedah berikut:

  • Untuk operasi kelompok, anda boleh menyerahkan dalam kelompok, seperti 1000 hingga 5000 baris
  • ruang asal dan ruang meja sementara global boleh dilaraskan dengan sewajarnya. Adalah disyorkan untuk menggunakan 4 fail buat asal dan mulakan ibtmp1 global kepada 1G
  • Dalam persekitaran ketersediaan tinggi dan memastikan konsistensi data, anda boleh mempromosikan hamba kepada tuan baharu, menyediakan perkhidmatan dan menunggu transaksi besar untuk digulung semula.
  • Dalam kes yang melampau, anda boleh menggunakan kill -9 untuk memulakan semula operasi Kerana jumlah data adalah sangat besar, pemulihan mysql akan menjadi perlahan pemulihan ranap. Masa menunggu akan berbeza bergantung pada jumlah data
  • Jika halaman data rosak atau rollback dilangkau semasa proses mulakan semula, anda boleh lulus innodb_force_recovery=3 (tiada operasi rollback transaksi dilakukan .)

Pembelajaran yang disyorkan: tutorial video mysql

Atas ialah kandungan terperinci Balik semula MySQL (perkongsian ringkasan). 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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: Kemudahan Pengurusan Data untuk Pemula MySQL: Kemudahan Pengurusan Data untuk Pemula Apr 09, 2025 am 12:07 AM

MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.

Bolehkah saya mengambil kata laluan pangkalan data di Navicat? Bolehkah saya mengambil kata laluan pangkalan data di Navicat? Apr 08, 2025 pm 09:51 PM

Navicat sendiri tidak menyimpan kata laluan pangkalan data, dan hanya boleh mengambil kata laluan yang disulitkan. Penyelesaian: 1. Periksa Pengurus Kata Laluan; 2. Semak fungsi "Ingat Kata Laluan" Navicat; 3. Tetapkan semula kata laluan pangkalan data; 4. Hubungi pentadbir pangkalan data.

Cara Membuat Premium Navicat Cara Membuat Premium Navicat Apr 09, 2025 am 07:09 AM

Buat pangkalan data menggunakan Navicat Premium: Sambungkan ke pelayan pangkalan data dan masukkan parameter sambungan. Klik kanan pada pelayan dan pilih Buat Pangkalan Data. Masukkan nama pangkalan data baru dan set aksara yang ditentukan dan pengumpulan. Sambung ke pangkalan data baru dan buat jadual dalam penyemak imbas objek. Klik kanan di atas meja dan pilih masukkan data untuk memasukkan data.

Cara menyalin jadual di mysql Cara menyalin jadual di mysql Apr 08, 2025 pm 07:24 PM

Menyalin jadual di MySQL memerlukan membuat jadual baru, memasukkan data, menetapkan kunci asing, menyalin indeks, pencetus, prosedur tersimpan, dan fungsi. Langkah -langkah khusus termasuk: mewujudkan jadual baru dengan struktur yang sama. Masukkan data dari jadual asal ke dalam jadual baru. Tetapkan kekangan utama asing yang sama (jika jadual asal mempunyai satu). Buat indeks yang sama. Buat pencetus yang sama (jika jadual asal mempunyai satu). Buat prosedur atau fungsi yang disimpan yang sama (jika jadual asal digunakan).

Bagaimana untuk melihat kata laluan pangkalan data di Navicat untuk MariaDB? Bagaimana untuk melihat kata laluan pangkalan data di Navicat untuk MariaDB? Apr 08, 2025 pm 09:18 PM

Navicat untuk MariaDB tidak dapat melihat kata laluan pangkalan data secara langsung kerana kata laluan disimpan dalam bentuk yang disulitkan. Untuk memastikan keselamatan pangkalan data, terdapat tiga cara untuk menetapkan semula kata laluan anda: Tetapkan semula kata laluan anda melalui Navicat dan tetapkan kata laluan yang kompleks. Lihat fail konfigurasi (tidak disyorkan, risiko tinggi). Gunakan alat baris perintah sistem (tidak disyorkan, anda perlu mahir dalam alat baris arahan).

Mysql: Konsep mudah untuk pembelajaran mudah Mysql: Konsep mudah untuk pembelajaran mudah Apr 10, 2025 am 09:29 AM

MySQL adalah sistem pengurusan pangkalan data sumber terbuka. 1) Buat Pangkalan Data dan Jadual: Gunakan perintah Createdatabase dan Createtable. 2) Operasi Asas: Masukkan, Kemas kini, Padam dan Pilih. 3) Operasi lanjutan: Sertai, subquery dan pemprosesan transaksi. 4) Kemahiran Debugging: Semak sintaks, jenis data dan keizinan. 5) Cadangan Pengoptimuman: Gunakan indeks, elakkan pilih* dan gunakan transaksi.

Navicat tidak dapat menyambung ke MySQL/MariaDB/PostgreSQL dan pangkalan data lain Navicat tidak dapat menyambung ke MySQL/MariaDB/PostgreSQL dan pangkalan data lain Apr 08, 2025 pm 11:00 PM

Alasan Biasa Mengapa Navicat tidak dapat menyambung ke pangkalan data dan penyelesaiannya: 1. Periksa status berjalan pelayan; 2. Periksa maklumat sambungan; 3. Laraskan tetapan firewall; 4. Konfigurasi akses jauh; 5. menyelesaikan masalah rangkaian; 6. Periksa keizinan; 7. Memastikan keserasian versi; 8. menyelesaikan masalah lain.

Cara Melaksanakan SQL di Navicat Cara Melaksanakan SQL di Navicat Apr 08, 2025 pm 11:42 PM

Langkah -langkah untuk melaksanakan SQL di Navicat: Sambungkan ke pangkalan data. Buat tetingkap editor SQL. Tulis pertanyaan SQL atau skrip. Klik butang Run untuk melaksanakan pertanyaan atau skrip. Lihat hasilnya (jika pertanyaan dilaksanakan).

See all articles