Ini adalah perintah mysqlbinlog yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
mysqlbinlog - utilitas untuk memproses file log biner
RINGKASAN
mysqlbinlog [pilihan] file_log ...
DESKRIPSI
Log biner server terdiri dari file yang berisi "peristiwa" yang menjelaskan modifikasi
ke isi database. Server menulis file-file ini dalam format biner. Untuk menampilkan mereka
konten dalam format teks, gunakan mysqlbinlog kegunaan. Anda juga bisa menggunakan mysqlbinlog untuk
menampilkan konten file log relai yang ditulis oleh server budak dalam pengaturan replikasi
karena log relai memiliki format yang sama dengan log biner. Log biner dan log relai adalah
dibahas lebih lanjut di Bagian 5.2.4, “Log Biner”, dan Bagian 17.2.2, “Replikasi
Relay dan Log Status”.
memohon mysqlbinlog seperti ini:
kulit> mysqlbinlog [Pilihan] file_log ...
Misalnya, untuk menampilkan konten file log biner bernama binlog.000003, gunakan ini
perintah:
kulit> mysqlbinlog binlog.0000003
Outputnya termasuk event yang ada di binlog.000003. Untuk pencatatan berbasis pernyataan, peristiwa
informasi termasuk pernyataan SQL, ID server tempat eksekusi,
timestamp kapan pernyataan itu dieksekusi, berapa banyak waktu yang dibutuhkan, dan sebagainya. Untuk
logging berbasis baris, acara menunjukkan perubahan baris daripada pernyataan SQL. Lihat
Bagian 17.1.2, “Format Replikasi”, untuk informasi tentang mode logging.
Acara didahului oleh komentar header yang memberikan informasi tambahan. Sebagai contoh:
# di 141
#100309 9:28:36 id server 123 end_log_pos 245
Kueri thread_id=3350 exec_time=11 error_code=0
Di baris pertama, nomor berikut di menunjukkan offset file, atau mulai
posisi, dari acara dalam file log biner.
Baris kedua dimulai dengan tanggal dan waktu yang menunjukkan kapan pernyataan dimulai pada
server tempat acara berasal. Untuk replikasi, stempel waktu ini disebarkan ke slave
server. id server adalah nilai server_id dari server tempat kejadian berasal.
end_log_pos menunjukkan di mana acara berikutnya dimulai (yaitu, itu adalah posisi akhir dari
peristiwa saat ini + 1). thread_id menunjukkan utas mana yang mengeksekusi acara. exec_time adalah
waktu yang dihabiskan untuk menjalankan acara, di server master. Pada seorang budak, itu adalah perbedaannya
waktu eksekusi akhir pada slave dikurangi waktu eksekusi awal pada master.
Perbedaan berfungsi sebagai indikator seberapa banyak replikasi tertinggal di belakang master.
error_code menunjukkan hasil dari mengeksekusi acara. Nol berarti tidak ada kesalahan
terjadi.
Note
Saat menggunakan grup acara, file offset acara dapat dikelompokkan bersama dan
komentar peristiwa dapat dikelompokkan bersama. Jangan salah mengira acara yang dikelompokkan ini untuk
offset file kosong.
Keluaran dari mysqlbinlog dapat dijalankan kembali (misalnya, dengan menggunakannya sebagai input untuk
mysql) untuk mengulang pernyataan di log. Ini berguna untuk operasi pemulihan setelah a
kerusakan server. Untuk contoh penggunaan lainnya, lihat diskusi nanti di bagian ini dan di
Bagian 7.5, “Pemulihan Point-in-Time (Incremental) Menggunakan Log Biner”.
Biasanya, Anda menggunakan mysqlbinlog untuk membaca file log biner secara langsung dan menerapkannya ke
server MySQL lokal. Dimungkinkan juga untuk membaca log biner dari server jauh dengan menggunakan
itu --baca-dari-server-jauh pilihan. Untuk membaca log biner jarak jauh, parameter koneksi
opsi dapat diberikan untuk menunjukkan cara terhubung ke server. Pilihan ini adalah --tuan rumah,
--kata sandi, --Pelabuhan, --protokol, --stopkontak, dan --pengguna; mereka diabaikan kecuali ketika Anda
juga gunakan --baca-dari-server-jauh .
mysqlbinlog mendukung opsi berikut, yang dapat ditentukan pada baris perintah atau
di grup [mysqlbinlog] dan [client] dari file opsi. Untuk informasi tentang opsi
file yang digunakan oleh program MySQL, lihat Bagian 4.2.6, “Menggunakan File Opsi”.
· --membantu, -?
Tampilkan pesan bantuan dan keluar.
· --base64-keluaran=nilai
Opsi ini menentukan kapan acara harus ditampilkan dikodekan sebagai string base-64
menggunakan pernyataan BINLOG. Opsi memiliki nilai yang diizinkan ini (tidak peka huruf besar/kecil):
· AUTO ("otomatis") atau UNSPEC ("tidak ditentukan") menampilkan pernyataan BINLOG
secara otomatis bila perlu (yaitu, untuk acara deskripsi format dan baris
acara). Jika tidak --keluaran base64 opsi diberikan, efeknya sama dengan
--base64-output= OTOMATIS.
Note
Tampilan BINLOG otomatis adalah satu-satunya perilaku aman jika Anda ingin menggunakan
keluaran dari mysqlbinlog untuk mengeksekusi kembali konten file log biner. Pilihan lainnya
nilai dimaksudkan hanya untuk tujuan debugging atau pengujian karena mereka mungkin
menghasilkan output yang tidak mencakup semua peristiwa dalam bentuk yang dapat dieksekusi.
· JANGAN PERNAH menyebabkan pernyataan BINLOG tidak ditampilkan. mysqlbinlog keluar dengan
error jika ditemukan baris event yang harus ditampilkan menggunakan BINLOG.
· DECODE-ROWS menentukan untuk mysqlbinlog bahwa Anda bermaksud agar acara baris didekodekan
dan ditampilkan sebagai pernyataan SQL yang dikomentari dengan juga menentukan --bertele-tele .
Seperti NEVER, DECODE-ROWS menekan tampilan pernyataan BINLOG, tetapi tidak seperti NEVER,
itu tidak keluar dengan kesalahan jika acara baris ditemukan.
Untuk contoh yang menunjukkan efek dari --keluaran base64 dan --bertele-tele pada acara baris
output, lihat bagian yang disebut “MYSQLBINLOG ROW EVENT DISPLAY”.
· --mengikat-alamat=alamat IP
Pada komputer yang memiliki beberapa antarmuka jaringan, gunakan opsi ini untuk memilih yang
antarmuka yang digunakan untuk menghubungkan ke server MySQL.
Opsi ini didukung dimulai dengan MySQL 5.6.1.
· --binlog-baris-acara-ukuran maksimal=N
┌────────────────────┬──────────────────────────── ──────────────┐
│Garis komando dibentuk --binlog-row-event-max-size=#
├────────────────────┼──────────────────────────── ──────────────┤
│ │. Diizinkan Nilai - Nilai │
│ ├────── teks accpkan ilangan ilangan ─ ur matikan "ilangan ilangan acam> ilangan ilangan harga> ilangan ─ Phace XNUMXX XNUMX Cholakansansans qualiasans─ansansans Miss
│ │. Platform Bit Ukuran 64
│ ├────── teks accpkan ilangan ilangan ─ ur matikan "ilangan ilangan acam> ilangan ilangan harga> ilangan ─ Phace XNUMXX XNUMX Cholakansansans qualiasans─ansansans Miss
│ │. Tipe numerik
│ ├────── teks accpkan ilangan ilangan ─ ur matikan "ilangan ilangan acam> ilangan ilangan harga> ilangan ─ Phace XNUMXX XNUMX Cholakansansans qualiasans─ansansans Miss
│ │. Default 4294967040
│ ├────── teks accpkan ilangan ilangan ─ ur matikan "ilangan ilangan acam> ilangan ilangan harga> ilangan ─ Phace XNUMXX XNUMX Cholakansansans qualiasans─ansansans Miss
│ │. Min Nilai 256
│ ├────── teks accpkan ilangan ilangan ─ ur matikan "ilangan ilangan acam> ilangan ilangan harga> ilangan ─ Phace XNUMXX XNUMX Cholakansansans qualiasans─ansansans Miss
│ │. max Nilai 18446744073709547520
└────────────────────┴───────────────────┴──────── ──────────────┘
Tentukan ukuran maksimum peristiwa log biner berbasis baris, dalam byte. Baris dikelompokkan
ke dalam acara yang lebih kecil dari ukuran ini jika memungkinkan. Nilainya harus kelipatan 256.
Standarnya adalah 4GB.
· --karakter-set-dir=path
Direktori tempat set karakter diinstal. Lihat Bagian 10.5, “Set Karakter
Konfigurasi".
· --koneksi-server-id=server_id
Opsi ini digunakan untuk menguji server MySQL untuk mendukung BINLOG_DUMP_NON_BLOCK
bendera koneksi, yang secara tidak sengaja dihapus di MySQL 5.6.5, dan dipulihkan di MySQL
5.6.20 (Bug #18000079, Bug #71178). Itu tidak diperlukan untuk operasi normal.
Nilai default dan minimum yang efektif untuk opsi ini bergantung pada apakah mysqlbinlog
dijalankan dalam mode pemblokiran atau mode non-pemblokiran. Kapan mysqlbinlog dijalankan dalam pemblokiran
mode, nilai default (dan minimum) adalah 1; saat dijalankan dalam mode non-blocking, default
(dan minimum) nilainya adalah 0.
Opsi ini telah ditambahkan di MySQL 5.6.20.
· --basis data=nama_db, -d nama_db
Pilihan ini menyebabkan mysqlbinlog untuk mengeluarkan entri dari log biner (hanya log lokal)
yang terjadi saat nama_db telah dipilih sebagai database default oleh USE.
The --basis data pilihan untuk mysqlbinlog mirip dengan --binlog-do-db pilihan untuk
mysqld, tetapi dapat digunakan untuk menentukan hanya satu database. Jika --basis data diberikan kelipatan
kali, hanya contoh terakhir yang digunakan.
Efek dari opsi ini tergantung pada apakah pencatatan berbasis pernyataan atau berbasis baris
format sedang digunakan, dengan cara yang sama seperti efek dari --binlog-do-db tergantung pada apakah
logging berbasis pernyataan atau berbasis baris sedang digunakan.
Berbasis pernyataan penebangan. itu --basis data opsi berfungsi sebagai berikut:
· Ketika nama_db adalah database default, pernyataan adalah output apakah mereka memodifikasi
meja di nama_db atau basis data yang berbeda.
· Kecuali nama_db dipilih sebagai database default, pernyataan tidak ditampilkan,
bahkan jika mereka memodifikasi tabel di nama_db.
· Ada pengecualian untuk CREATE DATABASE, ALTER DATABASE, dan DROP DATABASE. NS
database menjadi dibuat, diubah, or menjatuhkan dianggap sebagai default
database saat menentukan apakah akan mengeluarkan pernyataan.
Misalkan log biner dibuat dengan mengeksekusi pernyataan ini menggunakan
pencatatan berbasis pernyataan:
MASUKKAN KE tes.t1 (i) NILAI(100);
MASUKKAN KE db2.t2 (j) NILAI(200);
GUNAKAN tes;
MASUKKAN KE tes.t1 (i) NILAI(101);
MASUKKAN KE t1 (i) NILAI(102);
MASUKKAN KE db2.t2 (j) NILAI(201);
GUNAKAN db2;
MASUKKAN KE tes.t1 (i) NILAI(103);
MASUKKAN KE db2.t2 (j) NILAI(202);
MASUKKAN KE t2 (j) NILAI(203);
mysqlbinlog --database=tes tidak menampilkan dua pernyataan INSERT pertama karena
tidak ada basis data bawaan. Ini menampilkan tiga pernyataan INSERT setelah USE
tes, tetapi bukan tiga pernyataan INSERT setelah USE db2.
mysqlbinlog --database=db2 tidak menampilkan dua pernyataan INSERT pertama karena
tidak ada basis data bawaan. Itu tidak menampilkan tiga pernyataan INSERT berikut:
USE test, tetapi menampilkan tiga pernyataan INSERT setelah USE db2.
Berbasis baris penebangan. mysqlbinlog hanya mengeluarkan entri yang mengubah tabel milik
nama_db. Database default tidak berpengaruh pada ini. Misalkan log biner hanya
dijelaskan dibuat menggunakan logging berbasis baris daripada logging berbasis pernyataan.
mysqlbinlog --database=tes hanya mengeluarkan entri yang memodifikasi t1 dalam pengujian
database, terlepas dari apakah USE diterbitkan atau apa database defaultnya. Jika sebuah
server berjalan dengan binlog_format diatur ke CAMPURAN dan Anda ingin memungkinkan untuk
menggunakan mysqlbinlog pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. --basis data pilihan, Anda harus memastikan bahwa tabel yang
dimodifikasi ada dalam database yang dipilih oleh USE. (Khususnya, tidak ada basis data lintas
pembaruan harus digunakan.)
Sebelum MySQL 5.6.10, --basis data opsi tidak berfungsi dengan benar dengan log yang ditulis
oleh server MySQL berkemampuan GTID. (Bug #15912728)
· --debug[=debug_options], -# [debug_options]
Tulis log debug. Sebuah tipikal debug_options string adalah d:t:o,nama file. Default
adalah d:t:o,/tmp/mysqlbinlog.trace.
· --debug-cek
Cetak beberapa informasi debug saat program keluar.
· --debug-info
Cetak informasi debug dan memori dan statistik penggunaan CPU saat program
keluar.
· --default-auth=Plugin
Plugin otentikasi sisi klien untuk digunakan. Lihat Bagian 6.3.7, “Dapat Dicolokkan”
Autentikasi".
Opsi ini telah ditambahkan di MySQL 5.6.2.
· --default-file-ekstra=nama file
Baca file opsi ini setelah file opsi global tetapi (di Unix) sebelum pengguna
berkas opsi. Jika file tidak ada atau tidak dapat diakses, terjadi kesalahan.
nama file ditafsirkan relatif terhadap direktori saat ini jika diberikan sebagai jalur relatif
name daripada nama path lengkap.
· --default-file=nama file
Gunakan hanya file opsi yang diberikan. Jika file tidak ada atau sebaliknya
tidak dapat diakses, terjadi kesalahan. nama file diinterpretasikan relatif terhadap arus
direktori jika diberikan sebagai nama jalur relatif daripada nama jalur lengkap.
· --default-grup-akhiran=str
Baca tidak hanya grup opsi biasa, tetapi juga grup dengan nama biasa dan a
akhiran dari str. Sebagai contoh, mysqlbinlog biasanya membaca [klien] dan [mysqlbinlog]
kelompok. jika --defaults-grup-akhiran=_lainnya pilihan diberikan, mysqlbinlog juga membaca
grup [client_other] dan [mysqlbinlog_other].
· --nonaktifkan-log-bin, -D
Nonaktifkan logging biner. Ini berguna untuk menghindari pengulangan tanpa akhir jika Anda menggunakan
--ke-log terakhir pilihan dan mengirimkan output ke server MySQL yang sama. Pilihan ini
juga berguna saat memulihkan setelah crash untuk menghindari duplikasi pernyataan Anda
telah login.
Opsi ini mengharuskan Anda memiliki hak istimewa SUPER. Itu menyebabkan mysqlbinlog untuk
sertakan pernyataan SET sql_log_bin = 0 dalam outputnya untuk menonaktifkan pencatatan biner dari
keluaran yang tersisa. Pernyataan SET tidak efektif kecuali Anda memiliki SUPER
hak istimewa.
· --exclude-gtids=gtid_set
Jangan tampilkan grup mana pun yang terdaftar di gtid_set. Ditambahkan di MySQL 5.6.5.
· --paksa-jika-terbuka, -F
Baca file log biner meskipun terbuka atau tidak ditutup dengan benar.
· --force-baca, -f
Dengan opsi ini, jika mysqlbinlog membaca peristiwa log biner yang tidak dikenalinya,
itu mencetak peringatan, mengabaikan acara, dan melanjutkan. Tanpa opsi ini,
mysqlbinlog berhenti jika membaca peristiwa seperti itu.
· --hexdump, -H
Tampilkan hex dump dari komentar login, seperti yang dijelaskan di bagian yang disebut
“FORMAT DUMP HEX MYSQLBINLOG”. Output hex dapat membantu untuk replikasi
debug.
· --tuan rumah=nama_host, -h nama_host
Dapatkan log biner dari server MySQL pada host yang diberikan.
· --termasuk-gtids=gtid_set
Tampilkan hanya grup yang terdaftar di gtid_set. Ditambahkan di MySQL 5.6.5.
· --beban-lokal=path, -l path
Siapkan file sementara lokal untuk LOAD DATA INFILE di direktori yang ditentukan.
penting
File-file sementara ini tidak secara otomatis dihapus oleh mysqlbinlog atau yang lainnya
program MySQL.
· --jalur masuk=nama
Baca opsi dari jalur login bernama di file login .mylogin.cnf. Sebuah "jalur masuk"
adalah grup opsi yang hanya mengizinkan serangkaian opsi terbatas: tuan rumah, pemakai, dan
kata sandi. Pikirkan jalur masuk sebagai kumpulan nilai yang menunjukkan host server dan
kredensial untuk otentikasi dengan server. Untuk membuat file jalur masuk, gunakan
itu mysql_config_editor kegunaan. Lihat mysql_config_editor(1). Opsi ini telah ditambahkan di
MySQL5.6.6.
· --tanpa-default
Jangan membaca file opsi apa pun. Jika startup program gagal karena membaca opsi yang tidak diketahui
dari file opsi, --tanpa-default dapat digunakan untuk mencegahnya dibaca.
Pengecualiannya adalah bahwa file .mylogin.cnf, jika ada, dibaca dalam semua kasus. Ini
mengizinkan kata sandi untuk ditentukan dengan cara yang lebih aman daripada di baris perintah bahkan ketika
--tanpa-default digunakan. (.mylogin.cnf dibuat oleh mysql_config_editor utilitas
Lihat mysql_config_editor(1).)
· --mengimbangi=N, -o N
Lewati dulu N entri dalam log.
· --sandi[=kata sandi], -P[kata sandi]
Kata sandi yang digunakan saat menghubungkan ke server. Jika Anda menggunakan formulir opsi pendek
(-p), kamu tidak bisa memiliki spasi antara opsi dan kata sandi. Jika Anda menghilangkan
kata sandi nilai mengikuti --kata sandi or -p opsi pada baris perintah, mysqlbinlog
meminta satu.
Menentukan kata sandi pada baris perintah harus dianggap tidak aman. Lihat
Bagian 6.1.2.1, “Pedoman Pengguna Akhir untuk Keamanan Kata Sandi”. Anda dapat menggunakan opsi
file untuk menghindari memberikan kata sandi pada baris perintah.
· --plugin-dir=path
Direktori untuk mencari plugin. Mungkin perlu untuk menentukan opsi ini
jika --default-auth opsi digunakan untuk menentukan plugin otentikasi tetapi
mysqlbinlog tidak menemukannya. Lihat Bagian 6.3.7, “Otentikasi yang Dapat Dicolokkan”.
Opsi ini telah ditambahkan di MySQL 5.6.2.
· --pelabuhan=port_num, -P port_num
Nomor port TCP/IP yang digunakan untuk menghubungkan ke server jauh.
· --print-default
Cetak nama program dan semua opsi yang didapat dari file opsi.
· --protokol={TCP|SOKET|PIPA|MEMORI}
Protokol koneksi yang digunakan untuk menghubungkan ke server. Hal ini berguna ketika
parameter koneksi lainnya biasanya akan menyebabkan protokol yang akan digunakan selain dari
satu yang Anda inginkan. Untuk detail tentang nilai yang diizinkan, lihat Bagian 4.2.2, “Menghubungkan ke
MySQL Servernya”.
· --mentah
Secara default, mysqlbinlog membaca file log biner dan menulis acara dalam format teks. NS
--mentah pilihan memberitahu mysqlbinlog untuk menulisnya dalam format biner aslinya. Penggunaannya
membutuhkan itu --baca-dari-server-jauh juga digunakan karena file diminta
dari sebuah server. mysqlbinlog menulis satu file output untuk setiap file yang dibaca dari server.
The --mentah opsi dapat digunakan untuk membuat cadangan log biner server. Dengan
--stop-tidak pernah opsi, cadangannya "langsung" karena mysqlbinlog tetap terhubung dengan
server. Secara default, file output ditulis di direktori saat ini dengan yang sama
nama sebagai file log asli. Nama file keluaran dapat dimodifikasi menggunakan
--hasil-file pilihan. Untuk informasi lebih lanjut, lihat bagian yang disebut “MENGUNAKAN MYSQLBINLOG
UNTUK MEMBUAT CADANGAN FILE LOG BINARY”.
Opsi ini telah ditambahkan di MySQL 5.6.0.
· --baca-dari-remote-master=mengetik
Baca log biner dari server MySQL dengan COM_BINLOG_DUMP atau COM_BINLOG_DUMP_GTID
perintah dengan menyetel nilai opsi ke BINLOG-DUMP-NON-GTIDS atau
BINLOG-DUMP-GTIDS, masing-masing. Jika --baca-dari-remote-master=BINLOG-DUMP-GTIDS is
digabungkan dengan --kecuali-gtid, transaksi dapat disaring pada master,
menghindari lalu lintas jaringan yang tidak perlu.
Lihat juga deskripsi untuk --baca-dari-server-jauh.
Opsi ini telah ditambahkan di MySQL 5.6.5.
· --baca-dari-server-jauh, -R
Baca log biner dari server MySQL daripada membaca file log lokal. Setiap
opsi parameter koneksi diabaikan kecuali opsi ini juga diberikan. Ini
pilihannya adalah --tuan rumah, --kata sandi, --Pelabuhan, --protokol, --stopkontak, dan --pengguna.
Opsi ini mengharuskan server jarak jauh dijalankan. Ini hanya berfungsi untuk log biner
file di server jauh, bukan file log relay.
Pada MySQL 5.6.5, opsi ini seperti
--baca-dari-remote-master=BINLOG-DUMP-NON-GTIDS.
· --hasil-file=nama, -r nama
Tanpa --mentah opsi, opsi ini menunjukkan file yang mysqlbinlog menulis
keluaran teks. Dengan --mentah, mysqlbinlog menulis satu file output biner untuk setiap file log
ditransfer dari server, menulisnya secara default di direktori saat ini menggunakan
nama yang sama dengan file log asli. Dalam hal ini, --hasil-file nilai opsi
diperlakukan sebagai awalan yang mengubah nama file keluaran.
· --aman-auth
Jangan mengirim kata sandi ke server dalam format lama (pra-4.1). Ini mencegah koneksi
kecuali untuk server yang menggunakan format kata sandi yang lebih baru. Opsi ini diaktifkan oleh
bawaan; menggunakan --lewati-aman-auth untuk menonaktifkannya. Opsi ini telah ditambahkan di MySQL 5.6.17.
Note
Kata sandi yang menggunakan metode hashing pra-4.1 kurang aman dibandingkan kata sandi yang
gunakan metode hashing kata sandi asli dan harus dihindari. Kata sandi Pra-4.1
sudah usang dan dukungan untuk mereka akan dihapus dalam rilis MySQL mendatang. Untuk
petunjuk peningkatan akun, lihat Bagian 6.3.8.3, “Bermigrasi dari Pra-4.1
Hashing Kata Sandi dan Plugin mysql_old_password”.
· --server-id=id
Tampilkan hanya peristiwa yang dibuat oleh server yang memiliki ID server yang diberikan.
· --server-id-bit=N
Gunakan hanya yang pertama N bit server_id untuk mengidentifikasi server. Jika log biner
ditulis oleh mysqld dengan server-id-bit diatur ke kurang dari 32 dan data pengguna disimpan
di bagian yang paling signifikan, berlari mysqlbinlog dengan --server-id-bit set ke 32
memungkinkan data ini untuk dilihat.
Opsi ini hanya didukung oleh versi mysqlbinlog disertakan dengan MySQL
Distribusi cluster, atau dibangun dari sumber MySQL Cluster.
· --set-rangkaian karakter=nama_karakter
Tambahkan SET NAMA nama_karakter pernyataan ke output untuk menentukan set karakter ke
digunakan untuk memproses file log.
· --nama-basis-memori-bersama=nama
Di Windows, nama memori bersama yang digunakan, untuk koneksi yang dibuat menggunakan memori bersama untuk
server lokal. Nilai defaultnya adalah MYSQL. Nama memori bersama peka terhadap huruf besar/kecil.
Server harus dimulai dengan --Berbagi memori opsi untuk mengaktifkan memori bersama
koneksi.
· --bentuk pendek, -s
Tampilkan hanya pernyataan yang terdapat dalam log, tanpa informasi tambahan atau
acara berbasis baris. Ini hanya untuk pengujian, dan tidak boleh digunakan dalam produksi
sistem.
· --skip-gtids[=(benar|salah)]
Jangan tampilkan GTID apa pun di output. Ini diperlukan saat menulis ke file dump
dari satu atau beberapa log biner yang berisi GTID, seperti yang ditunjukkan dalam contoh ini:
kulit> mysqlbinlog --skip-gtid binlog.000001 > /tmp/dump.sql
kulit> mysqlbinlog --skip-gtid binlog.000002 >> /tmp/dump.sql
kulit> mysql -u akar -p -e "sumber /tmp/dump.sql"
Penggunaan opsi ini biasanya tidak direkomendasikan dalam produksi.
Opsi ini telah ditambahkan di MySQL 5.6.5.
· --soket=path, -S path
Untuk koneksi ke localhost, file soket Unix untuk digunakan, atau, pada Windows, nama
pipa bernama untuk digunakan.
· --mulai-tanggalwaktu=tanggal Waktu
Mulailah membaca log biner pada peristiwa pertama yang memiliki stempel waktu yang sama dengan atau lebih baru
dari tanggal Waktu argumen. NS tanggal Waktu nilainya relatif terhadap zona waktu lokal pada
mesin tempat Anda menjalankan mysqlbinlog. Nilai harus dalam format yang diterima untuk
tipe data DATETIME atau TIMESTAMP. Sebagai contoh:
kulit> mysqlbinlog --start-datetime="2005-12-25 11:25:56" binlog.000003
Opsi ini berguna untuk pemulihan point-in-time. Lihat Bagian 7.3, “Contoh Pencadangan dan
Strategi Pemulihan”.
· --posisi awal=N, -j N
Mulailah membaca log biner pada peristiwa pertama yang memiliki posisi sama atau lebih besar
dari N. Opsi ini berlaku untuk file log pertama yang diberi nama pada baris perintah.
Opsi ini berguna untuk pemulihan point-in-time. Lihat Bagian 7.3, “Contoh Pencadangan dan
Strategi Pemulihan”.
· --stop-datetime=tanggal Waktu
Berhenti membaca log biner pada peristiwa pertama yang memiliki stempel waktu yang sama dengan atau lebih baru
dari tanggal Waktu argumen. Opsi ini berguna untuk pemulihan point-in-time. Lihat
deskripsi dari --tanggal-mulai pilihan untuk informasi tentang tanggal Waktu nilai.
Opsi ini berguna untuk pemulihan point-in-time. Lihat Bagian 7.3, “Contoh Pencadangan dan
Strategi Pemulihan”.
· --stop-tidak pernah
Opsi ini digunakan dengan --baca-dari-server-jauh. Ini memberitahu mysqlbinlog untuk tetap
terhubung ke server. Sebaliknya mysqlbinlog keluar ketika file log terakhir telah
ditransfer dari server. --stop-tidak pernah menyiratkan --ke-log terakhir, jadi hanya yang pertama
file log yang akan ditransfer perlu diberi nama pada baris perintah.
--stop-tidak pernah biasanya digunakan dengan --mentah untuk membuat cadangan log biner langsung, tetapi juga
bisa digunakan tanpa --mentah untuk mempertahankan tampilan teks terus menerus dari peristiwa log sebagai
server menghasilkan mereka.
Opsi ini telah ditambahkan di MySQL 5.6.0.
· --stop-tidak pernah-budak-server-id=id
Dengan --stop-tidak pernah, mysqlbinlog melaporkan ID server 65535 saat terhubung ke
Server. --stop-tidak pernah-slave-server-id secara eksplisit menentukan ID server untuk dilaporkan. Dia
dapat digunakan untuk menghindari konflik dengan ID server budak atau lainnya mysqlbinlog
proses. Lihat bagian yang disebut “MENENTUKAN ID SERVER MYSQLBINLOG”.
Opsi ini telah ditambahkan di MySQL 5.6.0.
· --stop-posisi=N
Berhenti membaca log biner pada peristiwa pertama yang memiliki posisi sama atau lebih besar
dari N. Opsi ini berlaku untuk file log terakhir yang diberi nama pada baris perintah.
Opsi ini berguna untuk pemulihan point-in-time. Lihat Bagian 7.3, “Contoh Pencadangan dan
Strategi Pemulihan”.
· --ke-log terakhir, -t
Jangan berhenti di akhir log biner yang diminta dari server MySQL, melainkan
melanjutkan pencetakan sampai akhir log biner terakhir. Jika Anda mengirim output ke
server MySQL yang sama, ini dapat menyebabkan loop tanpa akhir. Opsi ini membutuhkan
--baca-dari-server-jauh.
· --pengguna=user_name, -u user_name
Nama pengguna MySQL untuk digunakan saat menghubungkan ke server jarak jauh.
· --bertele-tele, -v
Rekonstruksi kejadian baris dan tampilkan sebagai pernyataan SQL yang dikomentari. Jika opsi ini adalah
diberikan dua kali, output termasuk komentar untuk menunjukkan tipe data kolom dan beberapa
metadata.
Untuk contoh yang menunjukkan efek dari --keluaran base64 dan --bertele-tele pada acara baris
output, lihat bagian yang disebut “MYSQLBINLOG ROW EVENT DISPLAY”.
· --verifikasi-binlog-checksum, -c
Verifikasi checksum dalam file log biner. Opsi ini telah ditambahkan di MySQL 5.6.1.
· --Versi: kapan, -V
Tampilkan informasi versi dan keluar.
Sebelum MySQL 5.6.11, mysqlbinlog nomor versi yang ditampilkan adalah 3.3. Di MySQL 5.6.11
dan kemudian, ini adalah 3.4. (Bug #15894381, Bug #67643)
Anda juga dapat mengatur variabel berikut dengan menggunakan --nama_var=nilai sintaksis:
· buka_file_batas
Tentukan jumlah deskriptor file terbuka yang akan dipesan.
Anda dapat menyalurkan output dari mysqlbinlog ke dalam mysql klien untuk menjalankan acara
terkandung dalam log biner. Teknik ini digunakan untuk memulihkan dari crash ketika Anda memiliki
cadangan lama (lihat Bagian 7.5, “Pemulihan Point-in-Time (Incremental) Menggunakan Biner
Catatan"). Sebagai contoh:
kulit> mysqlbinlog binlog.000001 | mysql -u akar -p
Atau:
kulit> mysqlbinlog binlog[0-9]* | mysql -u akar -p
Jika pernyataan yang dihasilkan oleh mysqlbinlog mungkin mengandung nilai BLOB, ini dapat menyebabkan
masalah ketika mysql memproses mereka. Dalam hal ini, panggil mysql pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. --mode biner
.
Anda juga dapat mengarahkan output dari mysqlbinlog ke file teks sebagai gantinya, jika Anda perlu
ubah log pernyataan terlebih dahulu (misalnya, untuk menghapus pernyataan yang tidak Anda inginkan
mengeksekusi untuk beberapa alasan). Setelah mengedit file, jalankan pernyataan yang dikandungnya
dengan menggunakannya sebagai input ke mysql program:
kulit> mysqlbinlog binlog.000001 > file tmp
kulit> ... mengedit file tmp ...
kulit> mysql -u akar -p < file tmp
Ketika mysqlbinlog dipanggil dengan --posisi awal opsi, ini hanya menampilkan itu
peristiwa dengan offset dalam log biner lebih besar dari atau sama dengan posisi tertentu (the
posisi yang diberikan harus sesuai dengan awal dari satu acara). Ini juga memiliki opsi untuk berhenti dan mulai
ketika melihat suatu peristiwa dengan tanggal dan waktu tertentu. Ini memungkinkan Anda untuk melakukan
pemulihan point-in-time menggunakan --berhenti-tanggalwaktu pilihan (untuk dapat mengatakan, misalnya,
"roll forward database saya ke bagaimana mereka hari ini di 10:30").
Jika Anda memiliki lebih dari satu log biner untuk dieksekusi di server MySQL, metode amannya adalah:
memproses semuanya menggunakan satu koneksi ke server. Berikut adalah contoh yang
menunjukkan apa yang mungkin tidak aman:
kulit> mysqlbinlog binlog.000001 | mysql -u akar -p # BAHAYA!!
kulit> mysqlbinlog binlog.000002 | mysql -u akar -p # BAHAYA!!
Memproses log biner dengan cara ini menggunakan banyak koneksi ke server menyebabkan masalah
jika file log pertama berisi pernyataan CREATE TEMPORARY TABLE dan log kedua
berisi pernyataan yang menggunakan tabel sementara. Ketika pertama mysql proses
berakhir, server menjatuhkan tabel sementara. Ketika yang kedua mysql upaya proses
untuk menggunakan tabel, server melaporkan "tabel tidak dikenal."
Untuk menghindari masalah seperti ini, gunakan a tunggal mysql proses untuk mengeksekusi isi semua
log biner yang ingin Anda proses. Berikut adalah salah satu cara untuk melakukannya:
kulit> mysqlbinlog binlog.000001 binlog.000002 | mysql -u akar -p
Pendekatan lain adalah menulis semua log ke satu file dan kemudian memproses file:
kulit> mysqlbinlog binlog.000001 > /tmp/pernyataan.sql
kulit> mysqlbinlog binlog.000002 >> /tmp/pernyataan.sql
kulit> mysql -u akar -p -e "sumber /tmp/pernyataan.sql"
mysqlbinlog dapat menghasilkan output yang mereproduksi operasi LOAD DATA INFILE tanpa
berkas data asli. mysqlbinlog menyalin data ke file sementara dan menulis LOAD
DATA LOCAL INFILE pernyataan yang mengacu pada file. Lokasi default direktori
di mana file-file ini ditulis adalah khusus sistem. Untuk menentukan direktori secara eksplisit, gunakan
itu --beban lokal .
Karena mysqlbinlog mengonversi pernyataan LOAD DATA INFILE menjadi LOAD DATA LOCAL INFILE
pernyataan (yaitu, menambahkan LOKAL), baik klien dan server yang Anda gunakan untuk
proses pernyataan harus dikonfigurasi dengan kemampuan LOKAL diaktifkan. Lihat
Bagian 6.1.6, “Masalah Keamanan dengan LOAD DATA LOCAL”.
peringatan
File sementara yang dibuat untuk pernyataan LOAD DATA LOCAL adalah tidak secara otomatis
dihapus karena diperlukan sampai Anda benar-benar menjalankan pernyataan tersebut. Anda
harus menghapus sendiri file sementara setelah Anda tidak lagi memerlukan log pernyataan.
File dapat ditemukan di direktori file sementara dan memiliki nama seperti
nama_file_asli-#-#.
MYSQLBINLOG HEX DUMP FORMAT
The --hexdump pilihan penyebab mysqlbinlog untuk menghasilkan hex dump dari konten log biner:
kulit> mysqlbinlog --hexdump master-bin.000001
Output hex terdiri dari baris komentar yang dimulai dengan #, sehingga outputnya mungkin terlihat seperti
ini untuk perintah sebelumnya:
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
# di 4
#051024 17:24:13 id server 1 end_log_pos 98
# Posisi Timestamp Type Master ID Ukuran Master Pos Flags
#00000004 9d fc 5c 43 0f 01 00 00 00 5e 00 00 00 62 00 00 00 00 00
# 00000017 04 00 35 2e 30 2e 31 35 2d 64 65 62 75 67 2d 6c |..5.0.15.debug.l|
# 00000027 6f 67 00 00 00 00 00 00 00 00 00 00 00 00 00 |og..............|
# 00000037 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
# 00000047 00 00 00 00 9d fc 5c 43 13 38 0d 00 08 00 12 00 |.......C.8......|
# 00000057 04 04 04 04 12 00 00 4b 00 04 1a |.......K...|
# Mulai: binlog v 4, server v 5.0.15-debug-log dibuat 051024 17:24:13
# saat memulai
KEMBALI;
Keluaran hex dump saat ini berisi elemen dalam daftar berikut. Format ini adalah
dapat berubah sewaktu-waktu. (Untuk informasi lebih lanjut tentang format log biner, lihat MySQL Internal: The
Biner Log[1].
· Posisi: Posisi byte dalam file log.
· Stempel waktu: Stempel waktu acara. Dalam contoh yang ditunjukkan, '9d fc 5c 43' adalah
representasi '051024 17:24:13' dalam heksadesimal.
· Jenis: Kode jenis acara. Dalam contoh yang ditunjukkan, '0f' menunjukkan a
FORMAT_DESCRIPTION_EVENT. Tabel berikut mencantumkan kode jenis yang mungkin.
┌─────┬──────────────────────────┬──────────────── ──────────────────────┐
│Tipe │ Nama │ Arti │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
00 UNKNOWN_EVENT Acara ini seharusnya tidak pernah
hadir di log. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
01 START_EVENT_V3 Ini menunjukkan awal
dari file log yang ditulis oleh
MySQL 4 atau sebelumnya. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
02 QUERY_EVENT Jenis yang paling umum
acara. Ini mengandung
pernyataan dieksekusi pada
itu
tuan. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
03 STOP_EVENT Menunjukkan bahwa master memiliki
berhenti. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
04 ROTATE_EVENT Ditulis saat master
beralih ke file log baru. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
05 INTVAR_EVENT Digunakan untuk AUTO_INCREMENT
│ nilai atau ketika
LAST_INSERT_ID()
fungsi
digunakan dalam pernyataan. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
06 LOAD_EVENT Digunakan untuk LOAD DATA
INFILE di MySQL
3.23. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
07 SLAVE_EVENT Dicadangkan untuk penggunaan di masa mendatang. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
08 CREATE_FILE_EVENT Digunakan untuk LOAD DATA
INFILE
pernyataan. Hal ini menunjukkan
awal dari
eksekusi pernyataan seperti itu. Sebuah
sementara
file dibuat
pada budak. Digunakan di MySQL 4 saja. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
09 APPEND_BLOCK_EVENT Berisi data untuk digunakan dalam
LOAD DATA
INFILE
pernyataan. Data disimpan di
sementara
file pada budak. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
0a EXEC_LOAD_EVENT Digunakan untuk LOAD DATA
INFILE
pernyataan. Isi dari
file sementara
disimpan dalam tabel pada slave. │
Digunakan di MySQL 4
saja. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
0b DELETE_FILE_EVENT Rollback dari LOAD DATA
INFILE
pernyataan. File sementara
seharusnya
dihapus pada budak. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
0c NEW_LOAD_EVENT Digunakan untuk LOAD DATA
INFILE di MySQL
4 dan sebelumnya. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
0d RAND_EVENT Digunakan untuk mengirim informasi tentang
│ nilai acak jika
│ fungsi RAND()
adalah
digunakan dalam
pernyataan. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
0e USER_VAR_EVENT Digunakan untuk mereplikasi variabel pengguna. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
0f FORMAT_DESCRIPTION_EVENT Ini menunjukkan awal dari sebuah log
file yang ditulis oleh MySQL 5 atau yang lebih baru. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
10 XID_EVENT Acara yang menunjukkan komit dari XA
transaksi. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
11 BEGIN_LOAD_QUERY_EVENT Digunakan untuk LOAD DATA
INFILE
pernyataan di MySQL 5 dan yang lebih baru. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
12 EXECUTE_LOAD_QUERY_EVENT Digunakan untuk LOAD DATA
INFILE
pernyataan di MySQL 5 dan yang lebih baru. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
13 TABLE_MAP_EVENT Informasi tentang tabel
definisi. Digunakan di MySQL 5.1.5 dan
nanti. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
14 PRE_GA_WRITE_ROWS_EVENT Data baris untuk satu tabel yang
harus dibuat. Digunakan di MySQL
5.1.5
hingga 5.1.17. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
15 PRE_GA_UPDATE_ROWS_EVENT Data baris untuk satu tabel yang
perlu diperbarui. Digunakan di MySQL
5.1.5 hingga 5.1.17. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
16 PRE_GA_DELETE_ROWS_EVENT Data baris untuk satu tabel yang
harus dihapus. Digunakan di MySQL
5.1.5
hingga 5.1.17. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
17 WRITE_ROWS_EVENT Data baris untuk satu tabel yang
harus dibuat. Digunakan di MySQL
5.1.18
dan kemudian. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
18 UPDATE_ROWS_EVENT Data baris untuk satu tabel yang
perlu diperbarui. Digunakan di MySQL
5.1.18 dan
nanti. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
19 DELETE_ROWS_EVENT Data baris untuk satu tabel yang
harus dihapus. Digunakan di MySQL
5.1.18
dan kemudian. │
├─────┼──────────────────────────┼──────────────── ──────────────────────┤
1a INCIDENT_EVENT Sesuatu yang luar biasa
terjadi. Ditambahkan di MySQL 5.1.18. │
└─────┴──────────────────────────┴──────────────── ──────────────────────┘
· ID Master: ID server master yang membuat acara.
· Ukuran: Ukuran dalam byte acara.
· Master Pos: Posisi acara berikutnya dalam file log master asli.
· Bendera: 16 bendera. Saat ini, bendera berikut digunakan. Yang lain dicadangkan untuk
penggunaan masa depan.
┌─────┬─────────────────────────────┬───────────── ───────────────────────────────────┐
│Bendera │ Nama │ Arti │
├─────┼─────────────────────────────┼───────────── ───────────────────────────────────┤
01 LOG_EVENT_BINLOG_IN_USE_F Log file dengan benar
ditutup. (Hanya digunakan di
FORMAT_DESCRIPTION_EVENT.)
Jika
ini
flag disetel (jika
bendera, misalnya,
'01
00') dalam
FORMAT_DESCRIPTION_EVENT,
log
berkas
belum benar
ditutup. Kemungkinan besar
ini
adalah karena seorang master
crash (misalnya, karena
ke
kegagalan daya). │
├─────┼─────────────────────────────┼───────────── ───────────────────────────────────┤
02 Dicadangkan untuk penggunaan di masa mendatang. │
├─────┼─────────────────────────────┼───────────── ───────────────────────────────────┤
04 LOG_EVENT_THREAD_SPECIFIC_F Setel jika acara bergantung pada
koneksi itu dieksekusi di (untuk
contoh, '04 00'), untuk
contoh,
jika acara menggunakan
tabel sementara. │
├─────┼─────────────────────────────┼───────────── ───────────────────────────────────┤
08 LOG_EVENT_SUPPRESS_USE_F Ditetapkan dalam beberapa keadaan saat acara
│ tidak tergantung pada default
basis data. │
└─────┴─────────────────────────────┴───────────── ───────────────────────────────────┘
MYSQLBINLOG BARIS EVENT DISPLAY
Contoh berikut menggambarkan bagaimana mysqlbinlog menampilkan peristiwa baris yang menentukan data
modifikasi. Ini sesuai dengan peristiwa dengan WRITE_ROWS_EVENT, UPDATE_ROWS_EVENT,
dan kode tipe DELETE_ROWS_EVENT. NS --base64-output=DECODE-BARIS dan --bertele-tele Pilihan
dapat digunakan untuk mempengaruhi keluaran acara baris.
Misalkan server menggunakan logging biner berbasis baris dan Anda menjalankan
urutan pernyataan berikut:
BUAT TABEL untuk
(
id INT BUKAN NULL,
nama Varchar(20) TIDAK NULL,
tanggal TANGGAL NULL
) MESIN = InnoDB;
MULAI TRANSAKSI;
MASUKKAN KE t NILAI(1, 'apel', NULL);
UPDATE t SET name = 'pear', date = '2009-01-01' WHERE id = 1;
HAPUS DARI t WHERE id = 1;
MELAKUKAN;
Secara default, mysqlbinlog menampilkan peristiwa baris yang dikodekan sebagai string base-64 menggunakan BINLOG
pernyataan. Menghilangkan baris asing, output untuk peristiwa baris yang dihasilkan oleh
urutan pernyataan sebelumnya terlihat seperti ini:
kulit> mysqlbinlog file_log
...
# di 218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 bendera: STMT_END_F
BINLOG '
fAS3SBBAAAALAAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAAKAAAAAIBAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ==
'/*!*/;
...
# di 302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: tabel id 17 flag: STMT_END_F
BINLOG '
fAS3SBMBAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAAngAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
...
# di 400
#080828 15:03:08 id server 1 end_log_pos 442 Hapus_baris: id tabel 17 bendera: STMT_END_F
BINLOG '
fAS3SBMBAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAAKgAAALoBAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP
'/*!*/;
Untuk melihat event baris sebagai komentar dalam bentuk pernyataan “pseudo-SQL”, jalankan mysqlbinlog
pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. --bertele-tele or -v pilihan. Output akan berisi baris yang dimulai dengan ###:
kulit> mysqlbinlog -v file_log
...
# di 218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 bendera: STMT_END_F
BINLOG '
fAS3SBBAAAALAAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAAKAAAAAIBAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ==
'/*!*/;
### MASUKKAN KE tes.t
### MENGATUR
### @1=1
### @2='apel'
### @3=BATAL
...
# di 302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: tabel id 17 flag: STMT_END_F
BINLOG '
fAS3SBMBAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAAngAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
### UPDATE tes.t
### DI MANA
### @1=1
### @2='apel'
### @3=BATAL
### MENGATUR
### @1=1
### @2='pir'
### @3='2009:01:01'
...
# di 400
#080828 15:03:08 id server 1 end_log_pos 442 Hapus_baris: id tabel 17 bendera: STMT_END_F
BINLOG '
fAS3SBMBAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAAKgAAALoBAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP
'/*!*/;
### HAPUS DARI test.t
### DI MANA
### @1=1
### @2='pir'
### @3='2009:01:01'
Menentukan --bertele-tele or -v dua kali untuk juga menampilkan tipe data dan beberapa metadata untuk masing-masing
kolom. Output akan berisi komentar tambahan setelah setiap perubahan kolom:
kulit> mysqlbinlog -vv file_log
...
# di 218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 bendera: STMT_END_F
BINLOG '
fAS3SBBAAAALAAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAAKAAAAAIBAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ==
'/*!*/;
### MASUKKAN KE tes.t
### MENGATUR
### @1=1 /* INT meta=0 nullable=0 is_null=0 */
### @2='apel' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */
### @3=BATAL /* VARSTRING(20) meta=0 nullable=1 is_null=1 */
...
# di 302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: tabel id 17 flag: STMT_END_F
BINLOG '
fAS3SBMBAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAAngAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
### UPDATE tes.t
### DI MANA
### @1=1 /* INT meta=0 nullable=0 is_null=0 */
### @2='apel' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */
### @3=BATAL /* VARSTRING(20) meta=0 nullable=1 is_null=1 */
### MENGATUR
### @1=1 /* INT meta=0 nullable=0 is_null=0 */
### @2='pear' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */
### @3='2009:01:01' /* TANGGAL meta=0 nullable=1 is_null=0 */
...
# di 400
#080828 15:03:08 id server 1 end_log_pos 442 Hapus_baris: id tabel 17 bendera: STMT_END_F
BINLOG '
fAS3SBMBAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAAKgAAALoBAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP
'/*!*/;
### HAPUS DARI test.t
### DI MANA
### @1=1 /* INT meta=0 nullable=0 is_null=0 */
### @2='pear' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */
### @3='2009:01:01' /* TANGGAL meta=0 nullable=1 is_null=0 */
Kau bisa beritahu mysqlbinlog untuk menekan pernyataan BINLOG untuk peristiwa baris dengan menggunakan
--base64-output=DECODE-BARIS pilihan. Ini mirip dengan --base64-output=TIDAK PERNAH tapi tidak
keluar dengan kesalahan jika acara baris ditemukan. Kombinasi dari --base64-output=DECODE-BARIS
dan --bertele-tele menyediakan cara mudah untuk melihat peristiwa baris hanya sebagai pernyataan SQL:
kulit> mysqlbinlog -v --base64-output=DECODE-BARIS file_log
...
# di 218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 bendera: STMT_END_F
### MASUKKAN KE tes.t
### MENGATUR
### @1=1
### @2='apel'
### @3=BATAL
...
# di 302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: tabel id 17 flag: STMT_END_F
### UPDATE tes.t
### DI MANA
### @1=1
### @2='apel'
### @3=BATAL
### MENGATUR
### @1=1
### @2='pir'
### @3='2009:01:01'
...
# di 400
#080828 15:03:08 id server 1 end_log_pos 442 Hapus_baris: id tabel 17 bendera: STMT_END_F
### HAPUS DARI test.t
### DI MANA
### @1=1
### @2='pir'
### @3='2009:01:01'
Note
Anda tidak boleh menekan pernyataan BINLOG jika Anda berniat untuk mengeksekusi kembali mysqlbinlog
output.
Pernyataan SQL yang dihasilkan oleh --bertele-tele untuk acara baris jauh lebih mudah dibaca daripada
pernyataan BINLOG yang sesuai. Namun, mereka tidak sesuai persis dengan aslinya
Pernyataan SQL yang menghasilkan peristiwa. Batasan berikut berlaku:
· Nama kolom asli hilang dan diganti dengan @N, Di mana N adalah nomor kolom.
· Informasi kumpulan karakter tidak tersedia di log biner, yang memengaruhi string
tampilan kolom:
· Tidak ada perbedaan yang dibuat antara string biner dan non-biner yang sesuai
jenis (BINARY dan CHAR, VARBINARY dan VARCHAR, BLOB dan TEXT). Keluarannya menggunakan
tipe data STRING untuk string dengan panjang tetap dan VARSTRING untuk panjang variabel
string.
· Untuk kumpulan karakter multibyte, jumlah maksimum byte per karakter tidak
hadir dalam log biner, sehingga panjang untuk tipe string ditampilkan dalam byte
ketimbang dalam karakter. Sebagai contoh, STRING(4) akan digunakan sebagai tipe data
untuk nilai dari salah satu jenis kolom ini:
ARANG(4) KARAKTER SET latin1
ARANG(2) SET KARAKTER ucs2
· Karena format penyimpanan untuk acara jenis UPDATE_ROWS_EVENT, pernyataan UPDATE
ditampilkan dengan klausa WHERE sebelum klausa SET.
Interpretasi yang tepat dari peristiwa baris memerlukan informasi dari deskripsi format
acara di awal log biner. Karena mysqlbinlog tidak tahu sebelumnya
apakah sisa log berisi peristiwa baris, secara default ini menampilkan format
deskripsi acara menggunakan pernyataan BINLOG di bagian awal output.
Jika log biner diketahui tidak berisi peristiwa apa pun yang memerlukan pernyataan BINLOG (bahwa
adalah, tidak ada kejadian baris), the --base64-output=TIDAK PERNAH opsi dapat digunakan untuk mencegah tajuk ini
dari yang ditulis.
MENGGUNAKAN MYSQLBINLOG UNTUK KEMBALI UP BINARY LOG FILE
Secara default, mysqlbinlog membaca file log biner dan menampilkan isinya dalam format teks.
Ini memungkinkan Anda untuk memeriksa peristiwa di dalam file dengan lebih mudah dan menjalankannya kembali
(misalnya, dengan menggunakan output sebagai input untuk mysql). mysqlbinlog dapat membaca file log
langsung dari sistem file lokal, atau, dengan --baca-dari-server-jauh pilihan, itu bisa
terhubung ke server dan meminta konten log biner dari server itu. mysqlbinlog menulis
output teks ke output standarnya, atau ke file bernama sebagai nilai dari
--hasil-file=nama file opsi jika opsi itu diberikan.
Pada MySQL 5.6, mysqlbinlog dapat membaca file log biner dan menulis file baru yang berisi
konten yang sama—yaitu, dalam format biner daripada format teks. Kemampuan ini memungkinkan
Anda untuk dengan mudah membuat cadangan log biner dalam format aslinya. mysqlbinlog dapat membuat statis
backup, mencadangkan satu set file log dan berhenti ketika akhir file terakhir adalah
tercapai. Itu juga dapat membuat cadangan ("langsung") terus menerus, tetap terhubung ke server
ketika mencapai akhir file log terakhir dan terus menyalin acara baru apa adanya
dihasilkan. Dalam operasi pencadangan berkelanjutan, mysqlbinlog berjalan sampai koneksi berakhir (untuk
misalnya, ketika server keluar) atau mysqlbinlog dihentikan secara paksa. Ketika koneksi
berakhir, mysqlbinlog tidak menunggu dan mencoba kembali koneksi, tidak seperti replikasi budak
server. Untuk melanjutkan pencadangan langsung setelah server dimulai ulang, Anda juga harus
Restart mysqlbinlog.
Pencadangan log biner mengharuskan Anda memanggil mysqlbinlog dengan dua pilihan minimal:
· Itu --baca-dari-server-jauh (Atau -R) pilihan memberitahu mysqlbinlog untuk terhubung ke server
dan meminta log binernya. (Ini mirip dengan server replikasi budak yang terhubung
ke server masternya.)
· Itu --mentah pilihan memberitahu mysqlbinlog untuk menulis output mentah (biner), bukan output teks.
Seiring dengan --baca-dari-server-jauh, adalah umum untuk menentukan opsi lain: --tuan rumah
menunjukkan di mana server berjalan, dan Anda mungkin juga perlu menentukan opsi koneksi
seperti --pengguna dan --kata sandi.
Beberapa opsi lain berguna dalam hubungannya dengan --mentah:
· --stop-tidak pernah: Tetap terhubung ke server setelah mencapai akhir file log terakhir
dan terus membaca acara baru.
· --stop-tidak pernah-budak-server-id=id: ID server yang mysqlbinlog laporan ke server
ketika --stop-tidak pernah digunakan. Standarnya adalah 65535. Ini dapat digunakan untuk menghindari konflik
dengan ID server budak atau lainnya mysqlbinlog proses. Lihat bagian yang disebut
“MENENTUKAN ID SERVER MYSQLBINLOG”.
· --hasil-file: Awalan untuk nama file keluaran, seperti yang dijelaskan nanti.
Untuk mencadangkan file log biner server dengan mysqlbinlog, Anda harus menentukan nama file yang
sebenarnya ada di server. Jika Anda tidak tahu namanya, sambungkan ke server dan gunakan
pernyataan SHOW BINARY LOGS untuk melihat nama saat ini. Misalkan pernyataan
menghasilkan keluaran ini:
mysql> TAMPILKAN BINARY LOG;
+--------------+-----------+
| Nama_log | Ukuran_file |
+--------------+-----------+
| binlog.000130 | 27459 |
| binlog.000131 | 13719 |
| binlog.000132 | 43268 |
+--------------+-----------+
Dengan informasi itu, Anda dapat menggunakan mysqlbinlog untuk mencadangkan log biner ke arus
direktori sebagai berikut (masukkan setiap perintah pada satu baris):
· Untuk membuat cadangan statis binlog.000130 melalui binlog.000132, gunakan salah satu dari ini
perintah:
mysqlbinlog --baca-dari-remote-server --Host=nama_host --mentah
binlog.000130 binlog.000131 binlog.000132
mysqlbinlog --baca-dari-remote-server --Host=nama_host --mentah
--to-log terakhir binlog.000130
Perintah pertama menentukan setiap nama file secara eksplisit. Nama kedua hanya
file pertama dan menggunakan --ke-log terakhir untuk membaca yang terakhir. Perbedaan antara ini
perintahnya adalah jika server membuka binlog.000133 sebelumnya mysqlbinlog
mencapai akhir binlog.000132, perintah pertama tidak akan membacanya, tetapi yang kedua
perintah akan.
· Untuk membuat cadangan langsung di mana mysqlbinlog dimulai dengan binlog.000130 untuk menyalin yang ada
file log, lalu tetap terhubung untuk menyalin acara baru saat server membuatnya:
mysqlbinlog --baca-dari-remote-server --Host=nama_host --mentah
--berhenti-tidak pernah binlog.000130
Dengan --stop-tidak pernah, tidak perlu ditentukan --ke-log terakhir untuk membaca sampai akhir
file log karena opsi itu tersirat.
Penamaan File Output.PP Tanpa --mentah, mysqlbinlog menghasilkan keluaran teks dan
--hasil-file opsi, jika diberikan, menentukan nama file tunggal yang semua outputnya
ditulis. Dengan --mentah, mysqlbinlog menulis satu file output biner untuk setiap file log
ditransfer dari server. Secara default, mysqlbinlog menulis file dalam arus
direktori dengan nama yang sama dengan file log asli. Untuk mengubah nama file keluaran,
gunakan --hasil-file pilihan. Setara dengan --mentah, yang --hasil-file nilai opsi adalah
diperlakukan sebagai awalan yang mengubah nama file keluaran.
Misalkan server saat ini memiliki file log biner bernama binlog.000999 dan lebih tinggi. Jika kamu
menggunakan mysqlbinlog --mentah untuk mencadangkan file, tombol --hasil-file opsi menghasilkan file keluaran
nama seperti pada tabel berikut. Anda dapat menulis file ke direktori tertentu dengan
mulai --hasil-file nilai dengan jalur direktori. jika --hasil-file nilai
hanya terdiri dari nama direktori, nilainya harus diakhiri dengan pemisah nama jalur
karakter. File keluaran ditimpa jika ada.
┌─────────────────────┬─────────────────────────── ─┐
│--hasil-file Opsi Keluaran File nama │
├─────────────────────┼─────────────────────────── ─┤
│--file-hasil=x xbinlog.000999 dan lebih tinggi
├─────────────────────┼─────────────────────────── ─┤
│--hasil-file=/ tmp / /tmp/binlog.000999 dan lebih tinggi
├─────────────────────┼─────────────────────────── ─┤
│--file-hasil=/tmp/x /tmp/xbinlog.000999 dan lebih tinggi
└─────────────────────┴─────────────────────────── ─┘
Contoh: mysqldump + mysqlbinlog untuk Backup dan Restore.PP Contoh berikut menjelaskan:
skenario sederhana yang menunjukkan cara menggunakan mysqldump.dll dan mysqlbinlog bersama-sama untuk membuat cadangan
data server dan log biner, dan cara menggunakan cadangan untuk memulihkan server jika kehilangan data
terjadi. Contoh mengasumsikan bahwa server berjalan di host nama_host dan yang pertama
file log biner bernama binlog.000999. Masukkan setiap perintah pada satu baris.
penggunaan mysqlbinlog untuk membuat cadangan terus menerus dari log biner:
mysqlbinlog --baca-dari-remote-server --Host=nama_host --mentah
--berhenti-tidak pernah binlog.000999
penggunaan mysqldump.dll untuk membuat file dump sebagai snapshot dari data server. Menggunakan
--semua-database, --acara, dan --rutin untuk mencadangkan semua data, dan --data-master=2 untuk
sertakan koordinat log biner saat ini dalam file dump.
mysqldump --host=nama_host --all-databases --events --routines --master-data=2> dump_file
Jalankan mysqldump.dll perintah secara berkala untuk membuat snapshot baru seperti yang diinginkan.
Jika terjadi kehilangan data (misalnya, jika server mogok), gunakan file dump terbaru untuk
mengembalikan data:
mysql --host=nama_host -u root -p dump_file
Kemudian gunakan cadangan log biner untuk menjalankan kembali peristiwa yang ditulis setelah
koordinat yang tercantum dalam file dump. Misalkan koordinat dalam file terlihat seperti
ini:
-- GANTI MASTER KE MASTER_LOG_FILE='binlog.001002', MASTER_LOG_POS=27284;
Jika file log cadangan terbaru bernama binlog.001004, jalankan kembali peristiwa log
seperti ini:
mysqlbinlog --start-position=27284 binlog.001002 binlog.001003 binlog.001004
| mysql --host=nama_host -u akar -p
Anda mungkin merasa lebih mudah untuk menyalin file cadangan (file dump dan file log biner) ke
host server untuk memudahkan melakukan operasi pemulihan, atau jika MySQL tidak mengizinkan
akses root jarak jauh.
SPESIFIKASI THE MYSQLBINLOG SERVER ID
Ketika dipanggil dengan --baca-dari-server-jauh pilihan, mysqlbinlog terhubung ke MySQL
server, menentukan ID server untuk mengidentifikasi dirinya sendiri, dan meminta file log biner dari
server. Anda dapat gunakan mysqlbinlog untuk meminta file log dari server dalam beberapa cara:
· Tentukan satu set file yang disebutkan secara eksplisit: Untuk setiap file, mysqlbinlog menghubungkan dan
mengeluarkan perintah dump Binlog. Server mengirim file dan memutuskan sambungan. ada satu
koneksi per file.
· Tentukan file awal dan --ke-log terakhir: mysqlbinlog menghubungkan dan mengeluarkan Binlog
perintah dump untuk semua file. Server mengirim semua file dan memutuskan sambungan.
· Tentukan file awal dan --stop-tidak pernah (yang menyiratkan --ke-log terakhir): mysqlbinlog
menghubungkan dan mengeluarkan perintah dump Binlog untuk semua file. Server mengirim semua file,
tetapi tidak terputus setelah mengirim yang terakhir.
Dengan --baca-dari-server-jauh hanya, mysqlbinlog terhubung menggunakan ID server 0, yang
memberitahu server untuk memutuskan sambungan setelah mengirim file log yang terakhir diminta.
Dengan --baca-dari-server-jauh dan --stop-tidak pernah, mysqlbinlog menghubungkan menggunakan bukan nol
ID server, sehingga server tidak terputus setelah mengirim file log terakhir. Server
ID adalah 65535 secara default, tetapi ini dapat diubah dengan --stop-tidak pernah-slave-server-id.
Jadi, untuk dua cara pertama meminta file, server terputus karena
mysqlbinlog menentukan ID server 0. Itu tidak memutuskan jika --stop-tidak pernah diberikan
karena mysqlbinlog menentukan ID server bukan nol.
HAK CIPTA
Hak Cipta © 1997, 2014, Oracle dan/atau afiliasinya. Seluruh hak cipta.
Dokumentasi ini adalah perangkat lunak gratis; Anda dapat mendistribusikan ulang dan/atau memodifikasinya hanya di bawah
ketentuan Lisensi Publik Umum GNU yang diterbitkan oleh Free Software Foundation;
versi 2 dari Lisensi.
Dokumentasi ini disebarluaskan dengan harapan dapat bermanfaat, tapi TANPA APAPUN
JAMINAN; bahkan tanpa jaminan tersirat tentang KELAYAKAN DIPERDAGANGKAN atau KESESUAIAN UNTUK SEBUAH TERTENTU
TUJUAN. Lihat Lisensi Publik Umum GNU untuk lebih jelasnya.
Anda seharusnya telah menerima salinan GNU General Public License bersama dengan programnya;
jika tidak, kirim surat ke Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301 AS atau lihat http://www.gnu.org/licenses/.
CATATAN
1. MySQL Internal: Log Biner
http://dev.mysql.com/doc/internals/en/binary-log.html
Gunakan mysqlbinlog online menggunakan layanan onworks.net