GoGPT Best VPN GoSearch

OnWorks favicon

mysqlbinlog - ອອນລາຍໃນຄລາວ

ແລ່ນ mysqlbinlog ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ mysqlbinlog ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


mysqlbinlog - ປະໂຫຍດສໍາລັບການປຸງແຕ່ງໄຟລ໌ບັນທຶກສອງ

ສະຫຼຸບສັງລວມ


mysqlbinlog [ທາງເລືອກ] log_file ...

ລາຍລະອຽດ


ບັນທຶກຖານສອງຂອງເຊີບເວີປະກອບດ້ວຍໄຟລ໌ທີ່ມີ “ເຫດການ” ທີ່ອະທິບາຍການດັດແປງ
ກັບ​ເນື້ອ​ໃນ​ຖານ​ຂໍ້​ມູນ​. ເຊີບເວີຂຽນໄຟລ໌ເຫຼົ່ານີ້ໃນຮູບແບບຖານສອງ. ເພື່ອສະແດງຂອງພວກເຂົາ
ເນື້ອໃນໃນຮູບແບບຂໍ້ຄວາມ, ການນໍາໃຊ້ mysqlbinlog ປະໂຫຍດ. ນອກນັ້ນທ່ານຍັງສາມາດນໍາໃຊ້ mysqlbinlog to
ສະ​ແດງ​ເນື້ອ​ໃນ​ຂອງ​ໄຟລ​໌​ບັນ​ທຶກ relay ລາຍ​ລັກ​ອັກ​ສອນ​ໂດຍ​ເຄື່ອງ​ແມ່​ຂ່າຍ​ສໍາ​ລອງ​ໃນ​ການ​ຕັ້ງ​ຄ່າ replication​
ເນື່ອງຈາກວ່າບັນທຶກການຖ່າຍທອດມີຮູບແບບດຽວກັນກັບບັນທຶກຖານສອງ. ບັນ​ທຶກ​ຖານ​ສອງ​ແລະ​ບັນ​ທຶກ relay ແມ່ນ​
ໄດ້ສົນທະນາຕື່ມອີກໃນພາກທີ 5.2.4, "ບັນທຶກຖານສອງ", ແລະພາກທີ 17.2.2, "ການຈໍາລອງແບບຈໍາລອງ"
Relay ແລະບັນທຶກສະຖານະພາບ”.

ຂໍ mysqlbinlog ເຊັ່ນນີ້:

ຫອຍ> mysqlbinlog [ທາງເລືອກໃນການ] log_file ...

ຕົວຢ່າງ, ເພື່ອສະແດງເນື້ອໃນຂອງໄຟລ໌ບັນທຶກຄູ່ທີ່ມີຊື່ວ່າ binlog.000003, ໃຫ້ໃຊ້ອັນນີ້.
ຄໍາສັ່ງ:

ຫອຍ> mysqlbinlog binlog.0000003

ຜົນໄດ້ຮັບປະກອບມີເຫດການທີ່ມີຢູ່ໃນ binlog.000003. ສໍາລັບການບັນທຶກທີ່ອີງໃສ່ຄໍາຖະແຫຼງການ, ເຫດການ
ຂໍ້​ມູນ​ປະ​ກອບ​ມີ​ຄໍາ​ສັ່ງ SQL​, ID ຂອງ​ເຄື່ອງ​ແມ່​ຂ່າຍ​ທີ່​ມັນ​ໄດ້​ຖືກ​ປະ​ຕິ​ບັດ​, ໄດ້​
timestamp ໃນ​ເວ​ລາ​ທີ່​ຄໍາ​ຖະ​ແຫຼງ​ການ​ໄດ້​ຖືກ​ປະ​ຕິ​ບັດ​, ມັນ​ໃຊ້​ເວ​ລາ​ຫຼາຍ​ປານ​ໃດ​, ແລະ​ອື່ນໆ​. ສໍາລັບ
ການບັນທຶກໂດຍອີງໃສ່ແຖວ, ເຫດການຊີ້ໃຫ້ເຫັນການປ່ຽນແປງແຖວແທນທີ່ຈະເປັນຄໍາຖະແຫຼງ SQL. ເບິ່ງ
ພາກທີ 17.1.2, “ຮູບແບບການຈໍາລອງ”, ສໍາລັບຂໍ້ມູນກ່ຽວກັບຮູບແບບການບັນທຶກ.

ເຫດການແມ່ນນຳໜ້າໂດຍຄຳເຫັນສ່ວນຫົວທີ່ໃຫ້ຂໍ້ມູນເພີ່ມເຕີມ. ຍົກ​ຕົວ​ຢ່າງ:

#ຢູ່ທີ່141
#100309 9:28:36 server id 123 end_log_pos 245
thread_id=3350 exec_time=11 error_code=0

ໃນແຖວທໍາອິດ, ຕົວເລກຕໍ່ໄປນີ້ຊີ້ໃຫ້ເຫັນເຖິງການຊົດເຊີຍໄຟລ໌, ຫຼືເລີ່ມຕົ້ນ
ຕຳແໜ່ງ, ຂອງເຫດການໃນແຟ້ມບັນທຶກຖານສອງ.

ແຖວທີສອງເລີ່ມຕົ້ນດ້ວຍວັນທີແລະເວລາທີ່ຊີ້ບອກເວລາທີ່ຄໍາຖະແຫຼງການເລີ່ມຕົ້ນຢູ່ໃນ
ເຊີບເວີບ່ອນທີ່ເຫດການເກີດຂຶ້ນ. ສໍາ​ລັບ​ການ​ຈໍາ​ລອງ​, ເວ​ລາ​ນີ້​ແມ່ນ​ຂະ​ຫຍາຍ​ພັນ​ໄປ​ສໍາ​ລັບ​ສໍາ​ລັບ​ການ​
ເຊີບເວີ. server id ແມ່ນຄ່າ server_id ຂອງເຊີບເວີທີ່ເຫດການເກີດ.
end_log_pos ຊີ້ບອກບ່ອນທີ່ເຫດການຕໍ່ໄປເລີ່ມຕົ້ນ (ນັ້ນແມ່ນ, ມັນແມ່ນຕໍາແຫນ່ງສິ້ນສຸດຂອງ
ເຫດການປະຈຸບັນ + 1). thread_id ຊີ້ບອກວ່າກະທູ້ໃດປະຕິບັດເຫດການ. exec_time ແມ່ນ
ເວລາທີ່ໃຊ້ໃນການປະຕິບັດເຫດການ, ຢູ່ໃນເຄື່ອງແມ່ຂ່າຍຕົ້ນສະບັບ. ກ່ຽວກັບທາດ, ມັນແມ່ນຄວາມແຕກຕ່າງ
ຂອງເວລາການປະຫານຊີວິດສຸດທ້າຍຂອງສໍາລອງລົບກັບເວລາເລີ່ມຕົ້ນຂອງການປະຕິບັດຂອງແມ່ບົດ.
ຄວາມແຕກຕ່າງທີ່ເຮັດໜ້າທີ່ເປັນຕົວຊີ້ບອກເຖິງການຈຳລອງການຈຳລອງຢູ່ເບື້ອງຫຼັງແມ່ບົດຫຼາຍເທົ່າໃດ.
error_code ຊີ້ບອກຜົນໄດ້ຮັບຈາກການປະຕິບັດເຫດການ. ສູນຫມາຍຄວາມວ່າບໍ່ມີຂໍ້ຜິດພາດ
ເກີດຂື້ນ.

ຫມາຍ​ເຫດ​
ໃນ​ເວ​ລາ​ທີ່​ການ​ນໍາ​ໃຊ້​ກຸ່ມ​ເຫດ​ການ​, ໄຟລ​໌ offsets ຂອງ​ເຫດ​ການ​ອາດ​ຈະ​ໄດ້​ຮັບ​ການ​ຈັດ​ກຸ່ມ​ຮ່ວມ​ກັນ​ແລະ​
ຄວາມຄິດເຫັນຂອງເຫດການອາດຈະຖືກຈັດກຸ່ມເຂົ້າກັນ. ຢ່າຜິດພາດເຫດການກຸ່ມເຫຼົ່ານີ້ສໍາລັບ
ການຊົດເຊີຍໄຟລ໌ເປົ່າ.

ຜົນໄດ້ຮັບຈາກ mysqlbinlog ສາມາດຖືກປະຕິບັດຄືນໃຫມ່ (ຕົວຢ່າງ, ໂດຍໃຊ້ມັນເປັນການປ້ອນຂໍ້ມູນ
mysql) ເພື່ອເຮັດຄືນຄໍາຖະແຫຼງທີ່ຢູ່ໃນບັນທຶກ. ນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການດໍາເນີນງານການຟື້ນຟູຫຼັງຈາກ a
ເຊີບເວີ crash. ສໍາລັບຕົວຢ່າງການນໍາໃຊ້ອື່ນໆ, ເບິ່ງການສົນທະນາຕໍ່ມາໃນພາກນີ້ແລະໃນ
ພາກ​ທີ 7.5, “ຈຸດ​ໃນ​ເວ​ລາ (ເພີ່ມ​ເຕີມ) ການ​ຟື້ນ​ຕົວ​ໂດຍ​ການ​ນໍາ​ໃຊ້​ບັນ​ທຶກ​ຖານ​ສອງ”.

ໂດຍປົກກະຕິ, ເຈົ້າໃຊ້ mysqlbinlog ເພື່ອອ່ານໄຟລ໌ບັນທຶກຖານສອງໂດຍກົງແລະນໍາໃຊ້ພວກມັນກັບ
ເຊີບເວີ MySQL ທ້ອງຖິ່ນ. ມັນຍັງສາມາດອ່ານບັນທຶກຖານສອງຈາກເຄື່ອງແມ່ຂ່າຍຫ່າງໄກສອກຫຼີກໂດຍໃຊ້
ໄດ້ --read-from-remote-server ທາງເລືອກ. ເພື່ອອ່ານບັນທຶກຖານສອງໄລຍະໄກ, ຕົວກໍານົດການການເຊື່ອມຕໍ່
ທາງເລືອກສາມາດຖືກມອບໃຫ້ເພື່ອຊີ້ບອກວິທີການເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍ. ທາງເລືອກເຫຼົ່ານີ້ແມ່ນ -ເຈົ້າພາບ,
-ລະຫັດຜ່ານ, --ພອດ, -- ພິທີການ, --ຊັອກເກັດ, ແລະ -ຜູ້ໃຊ້; ພວກ​ເຂົາ​ເຈົ້າ​ໄດ້​ຖືກ​ລະ​ເລີຍ​ຍົກ​ເວັ້ນ​ເວ​ລາ​ທີ່​ທ່ານ​
ຍັງໃຊ້ --read-from-remote-server ທາງເລືອກ.

mysqlbinlog ສະ​ຫນັບ​ສະ​ຫນູນ​ທາງ​ເລືອກ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​, ທີ່​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ລະ​ບຸ​ໄວ້​ໃນ​ບັນ​ຊີ​ຄໍາ​ສັ່ງ​ຫຼື​
ໃນກຸ່ມ [mysqlbinlog] ແລະ [ລູກຄ້າ] ຂອງໄຟລ໌ທາງເລືອກ. ສໍາລັບຂໍ້ມູນກ່ຽວກັບທາງເລືອກ
ໄຟລ໌ທີ່ໃຊ້ໂດຍໂຄງການ MySQL, ເບິ່ງພາກ 4.2.6, "ການນໍາໃຊ້ໄຟລ໌ທາງເລືອກ".

· - ຊ່ວຍ, -?

ສະແດງຂໍ້ຄວາມຊ່ວຍເຫຼືອ ແລະອອກ.

· --base64-output=ມູນຄ່າ

ຕົວເລືອກນີ້ກໍານົດເວລາທີ່ເຫດການຄວນຈະຖືກສະແດງເຂົ້າລະຫັດເປັນ base-64 strings
ໃຊ້ BINLOG ຄໍາຖະແຫຼງການ. ຕົວເລືອກມີຄ່າທີ່ອະນຸຍາດເຫຼົ່ານີ້ (ບໍ່ແມ່ນຕົວພິມນ້ອຍໃຫຍ່):

· AUTO ("ອັດຕະໂນມັດ") ຫຼື UNSPEC ("ບໍ່ໄດ້ລະບຸ") ສະແດງຄໍາຖະແຫຼງ BINLOG
ອັດຕະໂນມັດເມື່ອມີຄວາມຈໍາເປັນ (ນັ້ນແມ່ນ, ສໍາລັບເຫດການຄໍາອະທິບາຍຮູບແບບແລະແຖວ
ເຫດການ). ຖ້າບໍ່ມີ --base64-ຜົນຜະລິດ ທາງເລືອກແມ່ນໄດ້ຮັບ, ຜົນກະທົບແມ່ນຄືກັນກັບ
--base64-output=ອັດຕະໂນມັດ.

ຫມາຍ​ເຫດ​
ການສະແດງ BINLOG ອັດຕະໂນມັດແມ່ນພຶດຕິກໍາທີ່ປອດໄພເທົ່ານັ້ນຖ້າທ່ານຕັ້ງໃຈໃຊ້
ຜົນຜະລິດຂອງ mysqlbinlog ເພື່ອປະຕິບັດເນື້ອໃນໄຟລ໌ບັນທຶກຖານສອງຄືນໃໝ່. ທາງເລືອກອື່ນ
ຄ່າແມ່ນມີຈຸດປະສົງພຽງແຕ່ສໍາລັບການ debugging ຫຼືການທົດສອບຈຸດປະສົງເນື່ອງຈາກວ່າພວກເຂົາເຈົ້າອາດຈະ
ຜະລິດຜົນຜະລິດທີ່ບໍ່ລວມທຸກເຫດການໃນຮູບແບບທີ່ສາມາດປະຕິບັດໄດ້.

· ບໍ່ເຄີຍເຮັດໃຫ້ຄໍາຖະແຫຼງ BINLOG ບໍ່ສະແດງ. mysqlbinlog ອອກດ້ວຍ
ຂໍ້ຜິດພາດຖ້າພົບເຫດການແຖວທີ່ຕ້ອງຖືກສະແດງໂດຍໃຊ້ BINLOG.

· DECODE-ROWS ກໍານົດເປັນ mysqlbinlog ທີ່ເຈົ້າຕັ້ງໃຈໃຫ້ເຫດການແຖວຖືກຖອດລະຫັດ
ແລະສະແດງເປັນຄໍາຖະແຫຼງ SQL ທີ່ໄດ້ສະແດງຄວາມຄິດເຫັນໂດຍການລະບຸ -- verbose ທາງເລືອກ.
ເຊັ່ນດຽວກັນກັບ ບໍ່ເຄີຍ, DECODE-ROWS ສະກັດກັ້ນການສະແດງຄໍາຖະແຫຼງ BINLOG, ແຕ່ບໍ່ຄືກັບ NEVER,
ມັນ​ບໍ່​ໄດ້​ອອກ​ໂດຍ​ມີ​ຄວາມ​ຜິດ​ພາດ​ຖ້າ​ຫາກ​ວ່າ​ເຫດ​ການ​ແຖວ​ຖືກ​ພົບ​ເຫັນ​.

ຕົວຢ່າງທີ່ສະແດງໃຫ້ເຫັນຜົນກະທົບຂອງ --base64-ຜົນຜະລິດ ແລະ -- verbose ຢູ່ໃນເຫດການແຖວ
ຜົນຜະລິດ, ເບິ່ງພາກສ່ວນທີ່ເອີ້ນວ່າ "MYSQLBINLOG ROW EVENT DISPLAY".

· --bind-address=ip_address

ໃນຄອມພິວເຕີທີ່ມີການໂຕ້ຕອບເຄືອຂ່າຍຫຼາຍ, ໃຊ້ຕົວເລືອກນີ້ເພື່ອເລືອກອັນໃດ
ການໂຕ້ຕອບເພື່ອໃຊ້ສໍາລັບການເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍ MySQL.

ທາງເລືອກນີ້ໄດ້ຮັບການສະຫນັບສະຫນູນເລີ່ມຕົ້ນດ້ວຍ MySQL 5.6.1.

· --binlog-row-event-max-size=N

┌──────────────────────── ┬─────────────────── ────────────────┐
ເສັ້ນ ຄຳ ສັ່ງ ຮູບແບບ │ --binlog-row-event-max-size=# │
├──────────────────────────────────────────────── ────────────────┤
││ ອະນຸຍາດ ມູນຄ່າ
│ ├──────────────────── ┬────────────────────
││ ເວທີ ບິດ ເລືອກຂະຫນາດ │ 64 │
│ ├─────────────────── ┼─────────────────────
││ ປະເພດ │ ຕົວເລກ │
│ ├─────────────────── ┼─────────────────────
││ ມາດຕະຖານ │ 4294967040 │
│ ├─────────────────── ┼─────────────────────
││ min ມູນຄ່າ │ 256 │
│ ├─────────────────── ┼─────────────────────
││ ສູງສຸດທີ່ເຄຍ ມູນຄ່າ │ 18446744073709547520 │
└─────────────────────── ┴─────────────────── ────────────────┘
ລະບຸຂະໜາດສູງສຸດຂອງເຫດການບັນທຶກຖານສອງທີ່ອີງໃສ່ແຖວ, ເປັນໄບຕ໌. ແຖວຖືກຈັດເປັນກຸ່ມ
ເຂົ້າໄປໃນເຫດການທີ່ນ້ອຍກວ່າຂະຫນາດນີ້ຖ້າເປັນໄປໄດ້. ຄ່າຄວນເປັນຄູນຂອງ 256.
ຄ່າເລີ່ມຕົ້ນແມ່ນ 4GB.

· --character-sets-dir=ເສັ້ນທາງ

ໄດເລກະທໍລີທີ່ຊຸດຕົວອັກສອນຖືກຕິດຕັ້ງ. ເບິ່ງພາກທີ 10.5, “ຊຸດຕົວອັກສອນ
ການ​ຕັ້ງ​ຄ່າ”.

· --connection-server-id=server_id

ຕົວເລືອກນີ້ຖືກໃຊ້ເພື່ອທົດສອບເຊີບເວີ MySQL ເພື່ອຮອງຮັບ BINLOG_DUMP_NON_BLOCK
ທຸງການເຊື່ອມຕໍ່, ເຊິ່ງຖືກລົບອອກໂດຍບໍ່ໄດ້ຕັ້ງໃຈໃນ MySQL 5.6.5, ແລະຟື້ນຟູໃນ MySQL
5.6.20 (ບັກ #18000079, ບັກ #71178). ມັນບໍ່ຈໍາເປັນສໍາລັບການດໍາເນີນງານປົກກະຕິ.

ຄ່າເລີ່ມຕົ້ນທີ່ມີປະສິດທິພາບ ແລະຄ່າຕໍ່າສຸດສໍາລັບຕົວເລືອກນີ້ຂຶ້ນກັບວ່າ mysqlbinlog
ແລ່ນຢູ່ໃນໂໝດປິດກັ້ນ ຫຼືໂໝດບໍ່ບລັອກ. ເມື່ອ​ໃດ​ mysqlbinlog ແມ່ນດໍາເນີນການໃນການສະກັດ
ຮູບແບບ, ຄ່າເລີ່ມຕົ້ນ (ແລະຕໍາ່ສຸດທີ່) ແມ່ນ 1; ໃນ​ເວ​ລາ​ທີ່​ດໍາ​ເນີນ​ການ​ໃນ​ຮູບ​ແບບ​ທີ່​ບໍ່​ແມ່ນ​ການ​ບລັອກ​, ຄ່າ​ເລີ່ມ​ຕົ້ນ​
(ແລະຕໍາ່ສຸດທີ່) ຄ່າແມ່ນ 0.

ຕົວເລືອກນີ້ໄດ້ຖືກເພີ່ມເຂົ້າໃນ MySQL 5.6.20.

· --ຖານຂໍ້ມູນ=db_name, -d db_name

ທາງເລືອກນີ້ເຮັດໃຫ້ເກີດ mysqlbinlog ເພື່ອສົ່ງອອກຂໍ້ມູນຈາກບັນທຶກຖານສອງ (ບັນທຶກທ້ອງຖິ່ນເທົ່ານັ້ນ)
ທີ່ເກີດຂື້ນໃນຂະນະທີ່ db_name ຖືກເລືອກເປັນຖານຂໍ້ມູນເລີ່ມຕົ້ນໂດຍ USE.

ໄດ້ --ຖານຂໍ້ມູນ ທາງເລືອກສໍາລັບການ mysqlbinlog ແມ່ນຄ້າຍຄືກັນກັບ --binlog-do-db ທາງເລືອກສໍາລັບການ
mysqld, ແຕ່ສາມາດຖືກນໍາໃຊ້ເພື່ອກໍານົດພຽງແຕ່ຫນຶ່ງຖານຂໍ້ມູນ. ຖ້າ --ຖານຂໍ້ມູນ ແມ່ນໃຫ້ຫຼາຍ
ເວລາ, ພຽງແຕ່ຕົວຢ່າງສຸດທ້າຍຖືກນໍາໃຊ້.

ຜົນກະທົບຂອງທາງເລືອກນີ້ແມ່ນຂຶ້ນກັບວ່າບັນທຶກທີ່ອີງໃສ່ຄໍາຖະແຫຼງການຫຼືແຖວ
ຮູບແບບແມ່ນຖືກນໍາໃຊ້, ໃນລັກສະນະດຽວກັນກັບຜົນກະທົບຂອງ --binlog-do-db ຂຶ້ນກັບວ່າ
ນຳໃຊ້ການບັນທຶກຕາມຄຳຖະແຫຼງ ຫຼື ແຖວຕາມລຳດັບ.

ອີງ​ຕາມ​ການ​ຖະ​ແຫຼງ​ການ​ ການຕັດໄມ້. ໄດ້ --ຖານຂໍ້ມູນ ທາງ​ເລືອກ​ເຮັດ​ວຽກ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

·ໃນຂະນະທີ່ db_name ເປັນຖານຂໍ້ມູນໃນຕອນຕົ້ນ, ຖະແຫຼງການແມ່ນຜົນຜະລິດບໍ່ວ່າຈະເປັນການແກ້ໄຂ
ຕາຕະລາງໃນ db_name ຫຼືຖານຂໍ້ມູນອື່ນ.

· ເວັ້ນ ເສຍ ແຕ່ db_name ຖືກເລືອກເປັນຖານຂໍ້ມູນເລີ່ມຕົ້ນ, ຖະແຫຼງການບໍ່ແມ່ນຜົນໄດ້ຮັບ,
ເຖິງແມ່ນວ່າພວກເຂົາດັດແປງຕາຕະລາງໃນ db_name.

· ມີຂໍ້ຍົກເວັ້ນສຳລັບການສ້າງຖານຂໍ້ມູນ, ແກ້ໄຂຖານຂໍ້ມູນ ແລະ ວາງຖານຂໍ້ມູນ. ໄດ້
ຖານຂໍ້ມູນ ສ້າງ, ປ່ຽນແປງ, or ຫຼຸດລົງ ຖືວ່າເປັນຄ່າເລີ່ມຕົ້ນ
ຖານຂໍ້ມູນໃນເວລາທີ່ກໍານົດວ່າຈະອອກຄໍາຖະແຫຼງການ.

ສົມມຸດວ່າບັນທຶກຖານສອງຖືກສ້າງຂື້ນໂດຍການປະຕິບັດຄໍາຖະແຫຼງການເຫຼົ່ານີ້ໂດຍໃຊ້
ການ​ບັນ​ທຶກ​ທີ່​ອີງ​ໃສ່​ຄໍາ​ສັ່ງ​:

ແຊກເຂົ້າໃນ test.t1 (i) VALUES(100)
ແຊກເຂົ້າໃນ db2.t2 (j) VALUES(200)
ການທົດສອບການນໍາໃຊ້;
ແຊກເຂົ້າໃນ test.t1 (i) VALUES(101)
ແຊກໃສ່ t1 (i) VALUES(102)
ແຊກເຂົ້າໃນ db2.t2 (j) VALUES(201)
ໃຊ້ db2;
ແຊກເຂົ້າໃນ test.t1 (i) VALUES(103)
ແຊກເຂົ້າໃນ db2.t2 (j) VALUES(202)
ແຊກໃສ່ t2 (j) VALUES(203)

mysqlbinlog --database=test ບໍ່ໄດ້ອອກຄໍາຖະແຫຼງການ INSERT ສອງອັນທໍາອິດເພາະວ່າ
ບໍ່ມີຖານຂໍ້ມູນເລີ່ມຕົ້ນ. ມັນອອກຄໍາຖະແຫຼງການ INSERT ສາມຢ່າງດັ່ງຕໍ່ໄປນີ້ USE
ການທົດສອບ, ແຕ່ບໍ່ແມ່ນສາມຄໍາຖະແຫຼງ INSERT ດັ່ງຕໍ່ໄປນີ້ USE db2.

mysqlbinlog --database=db2 ບໍ່ໄດ້ອອກຄໍາຖະແຫຼງການ INSERT ສອງອັນທໍາອິດເພາະວ່າ
ບໍ່ມີຖານຂໍ້ມູນເລີ່ມຕົ້ນ. ມັນບໍ່ໄດ້ອອກຄໍາຖະແຫຼງ INSERT ສາມຕໍ່ໄປນີ້
USE ການທົດສອບ, ແຕ່ອອກຄໍາຖະແຫຼງການ INSERT ສາມດັ່ງຕໍ່ໄປນີ້ USE db2.

ຕາມແຖວ ການຕັດໄມ້. mysqlbinlog ຜົນໄດ້ຮັບພຽງແຕ່ລາຍການທີ່ປ່ຽນຕາຕະລາງທີ່ເປັນຂອງ
db_name. ຖານຂໍ້ມູນເລີ່ມຕົ້ນບໍ່ມີຜົນຕໍ່ເລື່ອງນີ້. ສົມມຸດວ່າບັນທຶກຖານສອງພຽງແຕ່
ອະທິບາຍຖືກສ້າງຂື້ນໂດຍໃຊ້ການບັນທຶກຕາມແຖວແທນທີ່ຈະເປັນການບັນທຶກຕາມຄຳຖະແຫຼງ.
mysqlbinlog --database=test ຜົນໄດ້ຮັບພຽງແຕ່ລາຍການທີ່ດັດແປງ t1 ໃນການທົດສອບ
ຖານຂໍ້ມູນ, ໂດຍບໍ່ຄໍານຶງເຖິງວ່າ USE ຖືກອອກຫຼືຖານຂໍ້ມູນມາດຕະຖານແມ່ນຫຍັງ. ຖ້າ ກ
ເຊີບເວີກໍາລັງແລ່ນດ້ວຍ binlog_format ທີ່ຕັ້ງເປັນ MIXED ແລະທ່ານຕ້ອງການໃຫ້ມັນເປັນໄປໄດ້
ການນໍາໃຊ້ mysqlbinlog ກັບ --ຖານຂໍ້ມູນ ທາງເລືອກ, ທ່ານຕ້ອງຮັບປະກັນວ່າຕາຕະລາງທີ່ມີ
ດັດແກ້ຢູ່ໃນຖານຂໍ້ມູນທີ່ເລືອກໂດຍ USE. (ໂດຍສະເພາະ, ບໍ່ມີຖານຂໍ້ມູນຂ້າມ
ການປັບປຸງຄວນຈະຖືກນໍາໃຊ້.)

ກ່ອນທີ່ຈະ MySQL 5.6.10, the --ຖານຂໍ້ມູນ ທາງເລືອກບໍ່ໄດ້ເຮັດວຽກຢ່າງຖືກຕ້ອງກັບບັນທຶກທີ່ຂຽນ
ໂດຍເຊີບເວີ MySQL ທີ່ເປີດໃຊ້ GTID. (ບັກ #15912728)

· --debug[=debug_options], -# [debug_options]

ຂຽນບັນທຶກການດີບັກ. ປົກກະຕິ debug_options string ແມ່ນ d:t:o,ຊື່​ເອ​ກະ​ສານ. ຄ່າເລີ່ມຕົ້ນ
ແມ່ນ d:t:o,/tmp/mysqlbinlog.trace.

· --debug-ກວດ

ພິມຂໍ້ມູນການດີບັ໊ກບາງອັນເມື່ອໂປຣແກຣມອອກ.

· --debug-ຂໍ້ມູນ

ພິມຂໍ້ມູນ debugging ແລະຄວາມຈໍາແລະສະຖິຕິການນໍາໃຊ້ CPU ໃນເວລາທີ່ໂຄງການ
ອອກ.

· --default-auth=plugin

ປລັກອິນການພິສູດຢືນຢັນຝ່າຍລູກຄ້າທີ່ຈະໃຊ້. ເບິ່ງພາກ 6.3.7, “ສຽບໄດ້
ການຢືນຢັນ”.

ຕົວເລືອກນີ້ໄດ້ຖືກເພີ່ມເຂົ້າໃນ MySQL 5.6.2.

· --defaults-extra-file=ຊື່​ເອ​ກະ​ສານ

ອ່ານໄຟລ໌ທາງເລືອກນີ້ຫຼັງຈາກໄຟລ໌ທາງເລືອກທົ່ວໂລກແຕ່ (ຢູ່ໃນ Unix) ກ່ອນຜູ້ໃຊ້
ໄຟລ​໌​ທາງ​ເລືອກ​. ຖ້າໄຟລ໌ບໍ່ມີຢູ່ຫຼືບໍ່ສາມາດເຂົ້າໄດ້, ຂໍ້ຜິດພາດເກີດຂື້ນ.
ຊື່​ເອ​ກະ​ສານ ຖືກຕີຄວາມ ໝາຍ ທຽບກັບໄດເລກະທໍລີປະຈຸບັນຖ້າຖືກມອບໃຫ້ເປັນເສັ້ນທາງທີ່ກ່ຽວຂ້ອງ
ຊື່ແທນທີ່ຈະເປັນຊື່ເຕັມ.

· --defaults-file=ຊື່​ເອ​ກະ​ສານ

ໃຊ້ພຽງແຕ່ໄຟລ໌ທາງເລືອກທີ່ໃຫ້. ຖ້າໄຟລ໌ບໍ່ມີຫຼືບໍ່ມີ
ບໍ່ສາມາດເຂົ້າເຖິງໄດ້, ຄວາມຜິດພາດເກີດຂຶ້ນ. ຊື່​ເອ​ກະ​ສານ ຖືກຕີຄວາມ ໝາຍ ທຽບກັບປະຈຸບັນ
ໄດເລກະທໍລີຖ້າຖືກມອບໃຫ້ເປັນຊື່ເສັ້ນທາງທີ່ກ່ຽວຂ້ອງແທນທີ່ຈະເປັນຊື່ເສັ້ນທາງເຕັມ.

· --defaults-group-suffix=str

ອ່ານບໍ່ພຽງແຕ່ກຸ່ມທາງເລືອກປົກກະຕິ, ແຕ່ຍັງກຸ່ມທີ່ມີຊື່ປົກກະຕິແລະ a
ຕໍ່ທ້າຍຂອງ strທີ່ຢູ່ ຍົກ​ຕົວ​ຢ່າງ, mysqlbinlog ປົກກະຕິອ່ານ [ລູກຄ້າ] ແລະ [mysqlbinlog]
ກຸ່ມ. ຖ້າ --defaults-group-suffix=_other ທາງ​ເລືອກ​ແມ່ນ​ໄດ້​ຮັບ​, mysqlbinlog ຍັງອ່ານ
ກຸ່ມ [client_other] ແລະ [mysqlbinlog_other].

· --disable-log-bin, -D

ປິດ​ການ​ທໍາ​ງານ​ການ​ບັນ​ທຶກ​ຖານ​ສອງ​. ນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການຫຼີກເວັ້ນການ loop ທີ່ບໍ່ມີທີ່ສິ້ນສຸດຖ້າຫາກວ່າທ່ານນໍາໃຊ້
--to-last-log ທາງເລືອກແລະກໍາລັງສົ່ງຜົນໄດ້ຮັບໄປຫາເຄື່ອງແມ່ຂ່າຍ MySQL ດຽວກັນ. ທາງເລືອກນີ້
ຍັງເປັນປະໂຫຍດໃນເວລາທີ່ການຟື້ນຟູຫຼັງຈາກອຸປະຕິເຫດເພື່ອຫຼີກເວັ້ນການຊ້ໍາກັນຂອງຄໍາຖະແຫຼງທີ່ທ່ານ
ໄດ້ບັນທຶກ.

ທາງເລືອກນີ້ຮຽກຮ້ອງໃຫ້ທ່ານມີສິດທິພິເສດ SUPER. ມັນເຮັດໃຫ້ເກີດ mysqlbinlog to
ລວມເອົາຄໍາຖະແຫຼງການ SET sql_log_bin = 0 ຢູ່ໃນຜົນຜະລິດຂອງມັນເພື່ອປິດການທໍາງານຂອງການບັນທຶກຖານສອງ.
ຜົນຜະລິດທີ່ຍັງເຫຼືອ. ຖະແຫຼງການ SET ແມ່ນບໍ່ມີປະສິດທິພາບເວັ້ນເສຍແຕ່ວ່າທ່ານມີ SUPER
ສິດທິພິເສດ.

· --exclude-gtids=gtid_set

ຫ້າມສະແດງກຸ່ມໃດນຶ່ງທີ່ຢູ່ໃນລາຍການ gtid_set. ເພີ່ມໃນ MySQL 5.6.5.

· --force-if-open, -F

ອ່ານໄຟລ໌ບັນທຶກຖານສອງເຖິງວ່າມັນຈະເປີດຫຼືບໍ່ປິດຢ່າງຖືກຕ້ອງ.

· --force-read, -f

ດ້ວຍທາງເລືອກນີ້, ຖ້າ mysqlbinlog ອ່ານເຫດການບັນທຶກຖານສອງທີ່ມັນບໍ່ຮັບຮູ້,
ມັນພິມຄໍາເຕືອນ, ບໍ່ສົນໃຈເຫດການ, ແລະສືບຕໍ່. ຖ້າບໍ່ມີທາງເລືອກນີ້,
mysqlbinlog ຢຸດຖ້າມັນອ່ານເຫດການດັ່ງກ່າວ.

· --hexdump, -H

ສະ​ແດງ​ການ dump hex ຂອງ​ບັນ​ທຶກ​ໃນ​ຄໍາ​ເຫັນ​, ດັ່ງ​ທີ່​ອະ​ທິ​ບາຍ​ໃນ​ພາກ​ສ່ວນ​ທີ່​ເອີ້ນ​ວ່າ​
“MYSQLBINLOG HEX ຮູບແບບການຖິ້ມຂີ້ເຫຍື້ອ”. ຜົນຜະລິດ hex ສາມາດເປັນປະໂຫຍດສໍາລັບການຈໍາລອງ
ການດີບັກ.

· --host=host_name, -h host_name

ເອົາບັນທຶກຖານສອງຈາກເຊີບເວີ MySQL ຢູ່ໃນໂຮດທີ່ໃຫ້.

· --include-gtids=gtid_set

ສະແດງສະເພາະກຸ່ມທີ່ມີລາຍຊື່ຢູ່ໃນ gtid_set. ເພີ່ມໃນ MySQL 5.6.5.

· --local-load=ເສັ້ນທາງ, -l ເສັ້ນທາງ

ກະກຽມໄຟລ໌ຊົ່ວຄາວໃນທ້ອງຖິ່ນສໍາລັບ LOAD DATA INFILE ໃນໄດເລກະທໍລີທີ່ລະບຸ.

ທີ່ສໍາຄັນ
ໄຟລ໌ຊົ່ວຄາວເຫຼົ່ານີ້ບໍ່ໄດ້ຖືກເອົາອອກໂດຍອັດຕະໂນມັດໂດຍ mysqlbinlog ຫຼືອື່ນໆ
ໂຄງການ MySQL.

· --login-path=ຊື່

ອ່ານຕົວເລືອກຈາກເສັ້ນທາງເຂົ້າສູ່ລະບົບທີ່ມີຊື່ໃນໄຟລ໌ເຂົ້າສູ່ລະບົບ .mylogin.cnf. "ເສັ້ນທາງເຂົ້າສູ່ລະບົບ"
ເປັນ​ກຸ່ມ​ທາງ​ເລືອກ​ທີ່​ອະ​ນຸ​ຍາດ​ໃຫ້​ພຽງ​ແຕ່​ຊຸດ​ທາງ​ເລືອກ​ທີ່​ຈໍາ​ກັດ​: ເຈົ້າພາບ, ຜູ້ໃຊ້, ແລະ
ລະຫັດຜ່ານ. ຄິດວ່າເສັ້ນທາງເຂົ້າສູ່ລະບົບເປັນຊຸດຂອງຄ່າທີ່ຊີ້ໃຫ້ເຫັນເຖິງເຄື່ອງແມ່ຂ່າຍຂອງເຈົ້າພາບແລະ
ຂໍ້ມູນປະຈໍາຕົວສໍາລັບການພິສູດຢືນຢັນກັບເຄື່ອງແມ່ຂ່າຍ. ເພື່ອສ້າງໄຟລ໌ເສັ້ນທາງເຂົ້າສູ່ລະບົບ, ໃຫ້ໃຊ້
ໄດ້ mysql_config_editor ປະໂຫຍດ. ເບິ່ງ mysql_config_editor(1). ທາງເລືອກນີ້ໄດ້ຖືກເພີ່ມເຂົ້າໃນ
MySQL 5.6.6.

· --ບໍ່ມີຄ່າເລີ່ມຕົ້ນ

ຢ່າອ່ານໄຟລ໌ທາງເລືອກໃດໆ. ຖ້າການເລີ່ມຕົ້ນໂຄງການລົ້ມເຫລວເນື່ອງຈາກການອ່ານທາງເລືອກທີ່ບໍ່ຮູ້ຈັກ
ຈາກ​ໄຟລ​໌​ທາງ​ເລືອກ​, --ບໍ່ມີຄ່າເລີ່ມຕົ້ນ ສາມາດຖືກນໍາໃຊ້ເພື່ອປ້ອງກັນບໍ່ໃຫ້ພວກເຂົາອ່ານ.

ຂໍ້ຍົກເວັ້ນແມ່ນວ່າໄຟລ໌ .mylogin.cnf, ຖ້າມັນມີຢູ່, ຈະຖືກອ່ານໃນທຸກກໍລະນີ. ນີ້
ອະ​ນຸ​ຍາດ​ໃຫ້​ລະ​ຫັດ​ຜ່ານ​ທີ່​ຈະ​ລະ​ບຸ​ໄວ້​ໃນ​ວິ​ທີ​ທີ່​ປອດ​ໄພ​ກ​່​ວາ​ໃນ​ບັນ​ຊີ​ຄໍາ​ສັ່ງ​ເຖິງ​ແມ່ນ​ວ່າ​ໃນ​ເວ​ລາ​ທີ່​
--ບໍ່ມີຄ່າເລີ່ມຕົ້ນ ຖືກນໍາໃຊ້. (.mylogin.cnf ຖືກສ້າງຂື້ນໂດຍ mysql_config_editor utility
ເບິ່ງ mysql_config_editor(1).

· --offset=N, -o N

ຂ້າມອັນທໍາອິດ N ລາຍການຢູ່ໃນບັນທຶກ.

· --password[=ລະຫັດຜ່ານ], -p[ລະຫັດຜ່ານ]

ລະຫັດຜ່ານທີ່ຈະໃຊ້ເມື່ອເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍ. ຖ້າທ່ານໃຊ້ແບບຟອມທາງເລືອກສັ້ນ
(-p), ທ່ານ ບໍ່ສາມາດເຮັດໄດ້ ມີຊ່ອງຫວ່າງລະຫວ່າງທາງເລືອກແລະລະຫັດຜ່ານ. ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ຍົກ​ເວັ້ນ​
ລະຫັດຜ່ານ ມູນຄ່າປະຕິບັດຕາມ -ລະຫັດຜ່ານ or -p ທາງ​ເລືອກ​ໃນ​ບັນ​ຊີ​ຄໍາ​ສັ່ງ​, mysqlbinlog
ເຕືອນສໍາລັບຫນຶ່ງ.

ການລະບຸລະຫັດຜ່ານໃນແຖວຄຳສັ່ງຄວນຖືວ່າບໍ່ປອດໄພ. ເບິ່ງ
ພາກທີ 6.1.2.1, “ຂໍ້ແນະນຳຜູ້ໃຊ້ສຸດທ້າຍສຳລັບຄວາມປອດໄພລະຫັດຜ່ານ”. ທ່ານສາມາດນໍາໃຊ້ທາງເລືອກ
ໄຟລ໌ເພື່ອຫຼີກເວັ້ນການໃຫ້ລະຫັດຜ່ານຢູ່ໃນເສັ້ນຄໍາສັ່ງ.

· --plugin-dir=ເສັ້ນທາງ

ໄດເລກະທໍລີທີ່ຈະຊອກຫາ plugins. ມັນອາດຈະມີຄວາມຈໍາເປັນທີ່ຈະລະບຸທາງເລືອກນີ້
ຖ້າຫາກວ່າ --default-auth ທາງເລືອກແມ່ນໃຊ້ເພື່ອລະບຸ plugin ການກວດສອບຄວາມຖືກຕ້ອງແຕ່
mysqlbinlog ບໍ່ພົບມັນ. ເບິ່ງພາກ 6.3.7, “ການພິສູດຢືນຢັນແບບສຽບໄດ້”.

ຕົວເລືອກນີ້ໄດ້ຖືກເພີ່ມເຂົ້າໃນ MySQL 5.6.2.

· --port=port_num, -P port_num

ໝາຍເລກຜອດ TCP/IP ທີ່ຈະໃຊ້ເພື່ອເຊື່ອມຕໍ່ກັບເຊີບເວີທາງໄກ.

· --print-defaults

ພິມຊື່ໂຄງການແລະທາງເລືອກທັງຫມົດທີ່ມັນໄດ້ຮັບຈາກໄຟລ໌ທາງເລືອກ.

· --protocol={TCP|SOCKET|PIPE|MEMORY}

ໂປໂຕຄອນການເຊື່ອມຕໍ່ທີ່ຈະໃຊ້ສໍາລັບການເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍ. ມັນເປັນປະໂຫຍດໃນເວລາທີ່
ຕົວກໍານົດການການເຊື່ອມຕໍ່ອື່ນໆປົກກະຕິຈະເຮັດໃຫ້ protocol ຖືກນໍາໃຊ້ນອກເຫນືອການ
ຫນຶ່ງ​ທີ່​ທ່ານ​ຕ້ອງ​ການ​. ສໍາລັບລາຍລະອຽດກ່ຽວກັບຄ່າທີ່ອະນຸຍາດ, ເບິ່ງພາກ 4.2.2, “ການເຊື່ອມຕໍ່ກັບ
MySQL Server”.

· -- ດິບ

ໂດຍຕົວຢ່າງ, mysqlbinlog ອ່ານໄຟລ໌ບັນທຶກຖານສອງ ແລະຂຽນເຫດການໃນຮູບແບບຂໍ້ຄວາມ. ໄດ້
-- ດິບ ທາງເລືອກບອກ mysqlbinlog ເພື່ອຂຽນພວກມັນໃນຮູບແບບຖານສອງຂອງພວກມັນ. ການນໍາໃຊ້ຂອງມັນ
ຮຽກຮ້ອງໃຫ້ມີວ່າ --read-from-remote-server ຍັງຖືກໃຊ້ເພາະວ່າໄຟລ໌ຖືກຮ້ອງຂໍ
ຈາກເຊີບເວີ. mysqlbinlog ຂຽນຫນຶ່ງໄຟລ໌ຜົນຜະລິດສໍາລັບແຕ່ລະໄຟລ໌ທີ່ອ່ານຈາກເຄື່ອງແມ່ຂ່າຍ.
ໄດ້ -- ດິບ ທາງ​ເລືອກ​ສາ​ມາດ​ຖືກ​ນໍາ​ໃຊ້​ເພື່ອ​ເຮັດ​ໃຫ້​ສໍາ​ຮອງ​ຂໍ້​ມູນ​ຂອງ​ບັນ​ທຶກ​ຄູ່​ຂອງ​ເຄື່ອງ​ແມ່​ຂ່າຍ​ໄດ້​. ກັບ
--ຢຸດ-ບໍ່ເຄີຍ ທາງເລືອກ, ການສໍາຮອງຂໍ້ມູນແມ່ນ "ດໍາລົງຊີວິດ" ເນື່ອງຈາກວ່າ mysqlbinlog ຍັງຄົງເຊື່ອມຕໍ່ກັບ
ເຊີບເວີ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ໄຟລ໌ຜົນຜະລິດຖືກຂຽນໄວ້ໃນໄດເລກະທໍລີປະຈຸບັນດ້ວຍອັນດຽວກັນ
ຊື່ເປັນໄຟລ໌ບັນທຶກຕົ້ນສະບັບ. ຊື່ໄຟລ໌ຜົນຜະລິດສາມາດຖືກດັດແກ້ໂດຍໃຊ້
--ຜົນໄດ້ຮັບ-ໄຟລ໌ ທາງເລືອກ. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງພາກເອີ້ນວ່າ "ການນໍາໃຊ້ MYSQLBINLOG
ເພື່ອສຳຮອງຂໍ້ມູນໄຟລ໌ບັນທຶກຖານສອງ”.

ຕົວເລືອກນີ້ໄດ້ຖືກເພີ່ມເຂົ້າໃນ MySQL 5.6.0.

· --read-from-remote-master=ປະເພດ

ອ່ານບັນທຶກຖານສອງຈາກເຊີບເວີ MySQL ດ້ວຍ COM_BINLOG_DUMP ຫຼື COM_BINLOG_DUMP_GTID
ຄໍາສັ່ງໂດຍການກໍານົດຄ່າທາງເລືອກເປັນ BINLOG-DUMP-NON-GTIDS ຫຼື
BINLOG-DUMP-GTIDS, ຕາມລໍາດັບ. ຖ້າ --read-from-remote-master=BINLOG-DUMP-GTIDS is
ລວມມີ --exclude-gtids, ການເຮັດທຸລະກໍາສາມາດຖືກກັ່ນຕອງອອກໃນຕົ້ນສະບັບ,
ຫຼີກເວັ້ນການຈະລາຈອນເຄືອຂ່າຍທີ່ບໍ່ຈໍາເປັນ.

ເບິ່ງຄໍາອະທິບາຍສໍາລັບ --read-from-remote-server.

ຕົວເລືອກນີ້ໄດ້ຖືກເພີ່ມເຂົ້າໃນ MySQL 5.6.5.

· --read-from-remote-server, -R

ອ່ານບັນທຶກຖານສອງຈາກເຊີບເວີ MySQL ແທນທີ່ຈະອ່ານໄຟລ໌ບັນທຶກທ້ອງຖິ່ນ. ໃດ
ທາງເລືອກພາລາມິເຕີການເຊື່ອມຕໍ່ຖືກລະເລີຍເວັ້ນເສຍແຕ່ວ່າທາງເລືອກນີ້ຈະຖືກມອບໃຫ້ເຊັ່ນກັນ. ເຫຼົ່ານີ້
ທາງເລືອກແມ່ນ -ເຈົ້າພາບ, -ລະຫັດຜ່ານ, --ພອດ, -- ພິທີການ, --ຊັອກເກັດ, ແລະ -ຜູ້ໃຊ້.

ຕົວເລືອກນີ້ຮຽກຮ້ອງໃຫ້ເຊີບເວີທາງໄກແລ່ນ. ມັນເຮັດວຽກພຽງແຕ່ສໍາລັບບັນທຶກຖານສອງ
ໄຟລ໌ຢູ່ໃນເຄື່ອງແມ່ຂ່າຍຫ່າງໄກສອກຫຼີກ, ບໍ່ແມ່ນໄຟລ໌ບັນທຶກການຖ່າຍທອດ.

ໃນຖານະເປັນຂອງ MySQL 5.6.5, ທາງເລືອກນີ້ແມ່ນຄ້າຍຄື
--read-from-remote-master=BINLOG-DUMP-NON-GTIDS.

· --result-file=ຊື່, -r ຊື່

ໂດຍບໍ່ມີການ -- ດິບ ທາງເລືອກ, ທາງເລືອກນີ້ຊີ້ໃຫ້ເຫັນໄຟລ໌ທີ່ mysqlbinlog ຂຽນວ່າ
ຜົນຜະລິດຂໍ້ຄວາມ. ກັບ -- ດິບ, mysqlbinlog ຂຽນນຶ່ງໄຟລ໌ຜົນຜະລິດຖານສອງສໍາລັບແຕ່ລະໄຟລ໌ບັນທຶກ
ໂອນຈາກເຄື່ອງແມ່ຂ່າຍ, ຂຽນພວກມັນໂດຍຄ່າເລີ່ມຕົ້ນໃນໄດເລກະທໍລີປະຈຸບັນໂດຍໃຊ້
ຊື່ດຽວກັນກັບໄຟລ໌ບັນທຶກຕົ້ນສະບັບ. ໃນກໍລະນີດັ່ງກ່າວນີ້, ໄດ້ --ຜົນໄດ້ຮັບ-ໄຟລ໌ ຄ່າທາງເລືອກ
ຖືກປະຕິບັດເປັນຄໍານໍາຫນ້າທີ່ດັດແປງຊື່ໄຟລ໌ຜົນຜະລິດ.

· --secure-auth

ຢ່າສົ່ງລະຫັດຜ່ານໄປຫາເຄື່ອງແມ່ຂ່າຍໃນຮູບແບບເກົ່າ (ກ່ອນ 4.1). ນີ້ປ້ອງກັນການເຊື່ອມຕໍ່
ຍົກເວັ້ນເຊີບເວີທີ່ໃຊ້ຮູບແບບລະຫັດຜ່ານໃໝ່ກວ່າ. ຕົວເລືອກນີ້ຖືກເປີດໃຊ້ໂດຍ
ຄ່າເລີ່ມຕົ້ນ; ໃຊ້ --skip-secure-auth ເພື່ອປິດການໃຊ້ງານມັນ. ທາງເລືອກນີ້ໄດ້ຖືກເພີ່ມເຂົ້າໃນ MySQL 5.6.17.

ຫມາຍ​ເຫດ​
ລະຫັດຜ່ານທີ່ໃຊ້ວິທີການ hashing ລ່ວງໜ້າ 4.1 ແມ່ນມີຄວາມປອດໄພໜ້ອຍກວ່າລະຫັດຜ່ານທີ່
ໃຊ້ວິທີການ hashing ລະຫັດຜ່ານພື້ນເມືອງ ແລະຄວນຈະຫຼີກເວັ້ນ. ລະຫັດຜ່ານກ່ອນ 4.1
ໄດ້ຖືກຍົກເລີກ ແລະການສະຫນັບສະຫນູນພວກມັນຈະຖືກລຶບອອກໃນການປ່ອຍ MySQL ໃນອະນາຄົດ. ສໍາລັບ
ຄໍາ​ແນະ​ນໍາ​ການ​ຍົກ​ລະ​ດັບ​ບັນ​ຊີ​, ເບິ່ງ​ພາກ​ທີ 6.3.8.3​, “ການ​ຍົກ​ຍ້າຍ​ອອກ​ຈາກ​ທາງ​ຫນ້າ 4.1​
ລະ​ຫັດ​ຜ່ານ Hashing ແລະ mysql_old_password Plugin”.

· --server-id=id

ສະແດງສະເພາະເຫດການເຫຼົ່ານັ້ນທີ່ສ້າງຂຶ້ນໂດຍເຊີບເວີທີ່ມີ ID ເຊີບເວີໃຫ້.

· --server-id-bits=N

ໃຊ້ພຽງແຕ່ທໍາອິດ N bits ຂອງ server_id ເພື່ອລະບຸເຄື່ອງແມ່ຂ່າຍ. ຖ້າບັນທຶກຖານສອງ
ໄດ້ຖືກຂຽນໂດຍ a mysqld ກັບ server-id-bits ທີ່ຕັ້ງໄວ້ໜ້ອຍກວ່າ 32 ແລະຂໍ້ມູນຜູ້ໃຊ້ຖືກເກັບໄວ້
ໃນນ້ອຍທີ່ສໍາຄັນ, ແລ່ນ mysqlbinlog ກັບ --server-id-bits ຕັ້ງເປັນ 32
ເຮັດໃຫ້ຂໍ້ມູນນີ້ເຫັນໄດ້.

ທາງ​ເລືອກ​ນີ້​ແມ່ນ​ສະ​ຫນັບ​ສະ​ຫນູນ​ພຽງ​ແຕ່​ສະ​ບັບ​ຂອງ​ mysqlbinlog ສະຫນອງໃຫ້ກັບ MySQL
ການແຈກຢາຍກຸ່ມ, ຫຼືສ້າງຂຶ້ນຈາກແຫຼ່ງ MySQL Cluster.

· --set-charset=charset_name

ເພີ່ມ SET ຊື່ charset_name ຄໍາຖະແຫຼງທີ່ຜົນໄດ້ຮັບເພື່ອກໍານົດຕົວອັກສອນທີ່ກໍານົດໄວ້
ຖືກນໍາໃຊ້ສໍາລັບການປຸງແຕ່ງໄຟລ໌ບັນທຶກ.

· --shared-memory-base-name=ຊື່

ໃນ Windows, ຊື່ຄວາມຊົງຈໍາທີ່ໃຊ້ຮ່ວມກັນເພື່ອໃຊ້, ສໍາລັບການເຊື່ອມຕໍ່ທີ່ສ້າງຂຶ້ນໂດຍໃຊ້ຫນ່ວຍຄວາມຈໍາທີ່ໃຊ້ຮ່ວມກັນ
ເຄື່ອງແມ່ຂ່າຍທ້ອງຖິ່ນ. ຄ່າເລີ່ມຕົ້ນແມ່ນ MYSQL. ຊື່ໜ່ວຍຄວາມຈຳທີ່ໃຊ້ຮ່ວມກັນເປັນຕົວພິມນ້ອຍໃຫຍ່.

ເຄື່ອງແມ່ຂ່າຍຕ້ອງໄດ້ຮັບການເລີ່ມຕົ້ນດ້ວຍ --shared-memory ທາງ​ເລືອກ​ທີ່​ຈະ​ເປີດ​ໃຊ້​ງານ​ຄວາມ​ຈໍາ​ທີ່​ແບ່ງ​ປັນ​
ການເຊື່ອມຕໍ່.

· -- ຮູບແບບສັ້ນ, -s

ສະແດງພຽງແຕ່ຄໍາຖະແຫຼງທີ່ມີຢູ່ໃນບັນທຶກ, ໂດຍບໍ່ມີການຂໍ້ມູນເພີ່ມເຕີມຫຼື
ເຫດການຕາມແຖວ. ນີ້ແມ່ນສໍາລັບການທົດສອບເທົ່ານັ້ນ, ແລະບໍ່ຄວນໃຊ້ໃນການຜະລິດ
ລະບົບ.

· --skip-gtids[=(true|false)]

ຢ່າສະແດງ GTIDs ໃດໆໃນຜົນຜະລິດ. ນີ້ແມ່ນຈໍາເປັນໃນເວລາທີ່ຂຽນໃສ່ໄຟລ໌ dump
ຈາກໜຶ່ງ ຫຼືຫຼາຍກວ່າໜຶ່ງບັນທຶກຄູ່ທີ່ມີ GTIDs, ດັ່ງທີ່ສະແດງຢູ່ໃນຕົວຢ່າງນີ້:

ຫອຍ> mysqlbinlog --skip-gtids binlog.000001 > /tmp/dump.sql
ຫອຍ> mysqlbinlog --skip-gtids binlog.000002 >> /tmp/dump.sql
ຫອຍ> mysql -u ຮາກ -p -e "ແຫຼ່ງ /tmp/dump.sql"

ການນໍາໃຊ້ທາງເລືອກນີ້ແມ່ນຖ້າບໍ່ດັ່ງນັ້ນປົກກະຕິແລ້ວບໍ່ໄດ້ແນະນໍາໃນການຜະລິດ.

ຕົວເລືອກນີ້ໄດ້ຖືກເພີ່ມເຂົ້າໃນ MySQL 5.6.5.

· --socket=ເສັ້ນທາງ, -S ເສັ້ນທາງ

ສໍາລັບການເຊື່ອມຕໍ່ກັບ localhost, ໄຟລ໌ Unix socket ທີ່ຈະໃຊ້, ຫຼື, ໃນ Windows, ຊື່ຂອງ
ທໍ່ທີ່ມີຊື່ທີ່ຈະໃຊ້.

· --start-datetime=ໄລຍະເວລາ

ເລີ່ມການອ່ານບັນທຶກຖານສອງໃນເຫດການທໍາອິດທີ່ມີເວລາເທົ່າກັບ ຫຼືຫຼັງຈາກນັ້ນ
ກ່ວາ ໄລຍະເວລາ ການໂຕ້ຖຽງ. ໄດ້ ໄລຍະເວລາ ຄ່າແມ່ນທຽບກັບເຂດເວລາທ້ອງຖິ່ນທີ່ເປີດ
ເຄື່ອງທີ່ເຈົ້າແລ່ນ mysqlbinlog. ຄ່າຄວນຢູ່ໃນຮູບແບບທີ່ຍອມຮັບ
ປະເພດຂໍ້ມູນ DATETIME ຫຼື TIMESTAMP. ຍົກ​ຕົວ​ຢ່າງ:

ຫອຍ> mysqlbinlog --start-datetime="2005-12-25 11:25:56" binlog.000003

ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການຟື້ນຕົວຈຸດໃນເວລາ. ເບິ່ງພາກ 7.3, “ຕົວຢ່າງການສໍາຮອງ ແລະ
ຍຸດທະສາດການຟື້ນຟູ.”

· --start-position=N, -j N

ເລີ່ມການອ່ານບັນທຶກຄູ່ຢູ່ທີ່ເຫດການທໍາອິດທີ່ມີຕໍາແຫນ່ງເທົ່າກັບຫຼືຫຼາຍກວ່ານັ້ນ
ກ່ວາ N. ຕົວເລືອກນີ້ໃຊ້ກັບໄຟລ໌ບັນທຶກທໍາອິດທີ່ມີຊື່ຢູ່ໃນເສັ້ນຄໍາສັ່ງ.

ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການຟື້ນຕົວຈຸດໃນເວລາ. ເບິ່ງພາກ 7.3, “ຕົວຢ່າງການສໍາຮອງ ແລະ
ຍຸດທະສາດການຟື້ນຟູ.”

· --stop-datetime=ໄລຍະເວລາ

ຢຸດການອ່ານບັນທຶກຄູ່ຢູ່ທີ່ເຫດການທໍາອິດທີ່ມີເວລາເທົ່າກັບຫຼືຫຼັງຈາກນັ້ນ
ກ່ວາ ໄລຍະເວລາ ການໂຕ້ຖຽງ. ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການຟື້ນຕົວຈຸດໃນເວລາ. ເບິ່ງ
ລາຍ​ລະ​ອຽດ​ຂອງ​ --ເວລາເລີ່ມຕົ້ນ-ວັນທີ ທາງ​ເລືອກ​ສໍາ​ລັບ​ຂໍ້​ມູນ​ກ່ຽວ​ກັບ​ການ​ ໄລຍະເວລາ ມູນຄ່າ.

ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການຟື້ນຕົວຈຸດໃນເວລາ. ເບິ່ງພາກ 7.3, “ຕົວຢ່າງການສໍາຮອງ ແລະ
ຍຸດທະສາດການຟື້ນຟູ.”

· --ຢຸດ-ບໍ່ເຄີຍ

ທາງເລືອກນີ້ຖືກນໍາໃຊ້ກັບ --read-from-remote-server. ມັນບອກ mysqlbinlog ຍັງຄົງຢູ່
ເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍ. ຖ້າບໍ່ດັ່ງນັ້ນ mysqlbinlog ອອກຈາກເມື່ອໄຟລ໌ບັນທຶກຫຼ້າສຸດໄດ້
ໂອນຈາກເຄື່ອງແມ່ຂ່າຍ. --ຢຸດ-ບໍ່ເຄີຍ implies --to-last-log, ດັ່ງນັ້ນພຽງແຕ່ຄັ້ງທໍາອິດ
ໄຟລ​໌​ບັນ​ທຶກ​ການ​ໂອນ​ຈໍາ​ເປັນ​ຕ້ອງ​ມີ​ຊື່​ໃນ​ບັນ​ຊີ​ຄໍາ​ສັ່ງ​.

--ຢຸດ-ບໍ່ເຄີຍ ຖືກນໍາໃຊ້ທົ່ວໄປກັບ -- ດິບ ເພື່ອເຮັດການສໍາຮອງບັນທຶກຖານສອງສົດ, ແຕ່ຍັງ
ສາມາດຖືກນໍາໃຊ້ໂດຍບໍ່ມີການ -- ດິບ ເພື່ອຮັກສາການສະແດງຂໍ້ຄວາມຢ່າງຕໍ່ເນື່ອງຂອງເຫດການບັນທຶກເປັນ
ເຊີບເວີສ້າງພວກມັນ.

ຕົວເລືອກນີ້ໄດ້ຖືກເພີ່ມເຂົ້າໃນ MySQL 5.6.0.

· --stop-never-slave-server-id=id

ກັບ --ຢຸດ-ບໍ່ເຄີຍ, mysqlbinlog ລາຍງານ ID ເຊີບເວີຂອງ 65535 ເມື່ອມັນເຊື່ອມຕໍ່ກັບ
server --stop-never-slave-server-id ລະບຸລະຫັດເຊີບເວີຢ່າງຈະແຈ້ງເພື່ອລາຍງານ. ມັນ
ສາມາດຖືກນໍາໃຊ້ເພື່ອຫຼີກເວັ້ນການຂັດແຍ້ງກັບ ID ຂອງເຄື່ອງແມ່ຂ່າຍຂອງ slave ຫຼືອື່ນ mysqlbinlog
ຂະບວນການ. ເບິ່ງພາກສ່ວນທີ່ເອີ້ນວ່າ “ການລະບຸລະຫັດເຊີບເວີ MYSQLBINLOG”.

ຕົວເລືອກນີ້ໄດ້ຖືກເພີ່ມເຂົ້າໃນ MySQL 5.6.0.

· --stop-position=N

ຢຸດເຊົາການອ່ານບັນທຶກຄູ່ຢູ່ທີ່ເຫດການທໍາອິດທີ່ມີຕໍາແຫນ່ງເທົ່າກັບຫຼືຫຼາຍກວ່ານັ້ນ
ກ່ວາ N. ຕົວເລືອກນີ້ໃຊ້ກັບໄຟລ໌ບັນທຶກສຸດທ້າຍທີ່ມີຊື່ຢູ່ໃນເສັ້ນຄໍາສັ່ງ.

ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການຟື້ນຕົວຈຸດໃນເວລາ. ເບິ່ງພາກ 7.3, “ຕົວຢ່າງການສໍາຮອງ ແລະ
ຍຸດທະສາດການຟື້ນຟູ.”

· --to-last-log, -t

ຢ່າຢຸດໃນຕອນທ້າຍຂອງບັນທຶກຄູ່ທີ່ຮ້ອງຂໍຈາກເຄື່ອງແມ່ຂ່າຍ MySQL, ແຕ່ແທນທີ່ຈະ
ສືບຕໍ່ພິມຈົນກ່ວາໃນຕອນທ້າຍຂອງບັນທຶກຄູ່ສຸດທ້າຍ. ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ສົ່ງ​ຜົນ​ຜະ​ລິດ​ໄດ້​
ເຊີບເວີ MySQL ດຽວກັນ, ນີ້ອາດຈະນໍາໄປສູ່ການ loop ທີ່ບໍ່ມີທີ່ສິ້ນສຸດ. ທາງເລືອກນີ້ຕ້ອງການ
--read-from-remote-server.

· --user=ຊື່ຜູ້ໃຊ້, -u ຊື່ຜູ້ໃຊ້

ຊື່ຜູ້ໃຊ້ MySQL ທີ່ຈະໃຊ້ໃນເວລາທີ່ເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍຫ່າງໄກສອກຫຼີກ.

· -- verbose, -v

ສ້າງເຫດການແຖວຄືນໃໝ່ ແລະສະແດງພວກມັນເປັນຄຳຖະແຫຼງ SQL ທີ່ສະແດງຄຳເຫັນ. ຖ້າທາງເລືອກນີ້ແມ່ນ
ໃຫ້ສອງຄັ້ງ, ຜົນໄດ້ຮັບປະກອບມີຄໍາເຫັນເພື່ອຊີ້ບອກປະເພດຂໍ້ມູນຖັນແລະບາງອັນ
ເມຕາເດຕາ.

ຕົວຢ່າງທີ່ສະແດງໃຫ້ເຫັນຜົນກະທົບຂອງ --base64-ຜົນຜະລິດ ແລະ -- verbose ຢູ່ໃນເຫດການແຖວ
ຜົນຜະລິດ, ເບິ່ງພາກສ່ວນທີ່ເອີ້ນວ່າ "MYSQLBINLOG ROW EVENT DISPLAY".

· --verify-binlog-checksum, -c

ຢືນຢັນ checksums ໃນໄຟລ໌ບັນທຶກສອງ. ທາງເລືອກນີ້ໄດ້ຖືກເພີ່ມເຂົ້າໃນ MySQL 5.6.1.

· - ການປ່ຽນແປງ, -V

ສະແດງຂໍ້ມູນສະບັບແລະອອກ.

ກ່ອນທີ່ຈະ MySQL 5.6.11, the mysqlbinlog ຕົວເລກສະບັບທີ່ສະແດງແມ່ນ 3.3. ໃນ MySQL 5.6.11
ແລະຕໍ່ມາ, ນີ້ແມ່ນ 3.4. (ບັກ #15894381, ບັກ #67643)

ນອກນັ້ນທ່ານຍັງສາມາດກໍານົດຕົວແປຕໍ່ໄປນີ້ໂດຍໃຊ້ --var_name=ມູນຄ່າ ໄວຍະກອນ:

· open_files_limit

ລະບຸຈໍານວນຕົວອະທິບາຍໄຟລ໌ເປີດເພື່ອຈອງ.

ທ່ານສາມາດທໍ່ຜົນຜະລິດຂອງ mysqlbinlog ເຂົ້າໄປໃນ mysql ລູກຄ້າເພື່ອປະຕິບັດເຫດການ
ບັນຈຸຢູ່ໃນບັນທຶກຖານສອງ. ເຕັກນິກນີ້ຖືກນໍາໃຊ້ເພື່ອຟື້ນຕົວຈາກອຸປະຕິເຫດໃນເວລາທີ່ທ່ານມີ
ການ​ສໍາ​ຮອງ​ຂໍ້​ມູນ​ເກົ່າ (ເບິ່ງ​ພາກ​ທີ 7.5​, “ຈຸດ​ໃນ​ເວ​ລາ (ເພີ່ມ​) ການ​ຟື້ນ​ຕົວ​ໂດຍ​ການ​ນໍາ​ໃຊ້​ຖານ​ສອງ
ບັນທຶກ”). ຍົກ​ຕົວ​ຢ່າງ:

ຫອຍ> mysqlbinlog binlog.000001 | mysql -u ຮາກ -p

ຫລື:

ຫອຍ> mysqlbinlog binlog.[0-9]* | mysql -u ຮາກ -p

ຖ້າຄໍາຖະແຫຼງທີ່ຜະລິດໂດຍ mysqlbinlog ອາດຈະມີຄ່າ BLOB, ເຫຼົ່ານີ້ອາດຈະເຮັດໃຫ້ເກີດ
ບັນຫາເມື່ອ mysql ປະມວນຜົນພວກມັນ. ໃນກໍລະນີນີ້, ຮຽກຮ້ອງ mysql ກັບ -- ໂໝດ binary
ທາງເລືອກ.

ນອກນັ້ນທ່ານຍັງສາມາດປ່ຽນເສັ້ນທາງຜົນຜະລິດຂອງ mysqlbinlog ໄປຫາໄຟລ໌ຂໍ້ຄວາມແທນ, ຖ້າທ່ານຕ້ອງການ
ແກ້ໄຂບັນທຶກຄຳຖະແຫຼງກ່ອນ (ຕົວຢ່າງ: ເພື່ອເອົາຄຳຖະແຫຼງທີ່ເຈົ້າບໍ່ຕ້ອງການອອກ
ປະຕິບັດດ້ວຍເຫດຜົນບາງຢ່າງ). ຫຼັງ​ຈາກ​ການ​ແກ້​ໄຂ​ໄຟລ​໌​, ປະ​ຕິ​ບັດ​ຄໍາ​ຖະ​ແຫຼງ​ການ​ທີ່​ມັນ​ປະ​ກອບ​ດ້ວຍ​
ໂດຍ​ການ​ນໍາ​ໃຊ້​ມັນ​ເປັນ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ກັບ​ mysql ໂຄງການ:

ຫອຍ> mysqlbinlog binlog.000001 > tmpfile
ຫອຍ> ... ດັດແກ້ tmpfile ...
ຫອຍ> mysql -u ຮາກ -p < tmpfile

ເມື່ອ​ໃດ​ mysqlbinlog ແມ່ນ invoked ກັບ -- ຕໍາແຫນ່ງເລີ່ມຕົ້ນ ທາງເລືອກ, ມັນສະແດງພຽງແຕ່ເຫຼົ່ານັ້ນ
ເຫດການທີ່ມີການຊົດເຊີຍໃນບັນທຶກຖານສອງໃຫຍ່ກວ່າ ຫຼືເທົ່າກັບຕຳແໜ່ງທີ່ໃຫ້ໄວ້ (the
ຕໍາແໜ່ງທີ່ມອບໃຫ້ຕ້ອງກົງກັບຈຸດເລີ່ມຕົ້ນຂອງເຫດການໜຶ່ງ). ມັນຍັງມີທາງເລືອກທີ່ຈະຢຸດແລະເລີ່ມຕົ້ນ
ໃນເວລາທີ່ມັນເຫັນເຫດການທີ່ມີວັນທີແລະເວລາທີ່ກໍານົດໄວ້. ນີ້ຊ່ວຍໃຫ້ທ່ານສາມາດປະຕິບັດໄດ້
ການຟື້ນຟູຈຸດໃນເວລາໂດຍໃຊ້ --stop-datetime ທາງເລືອກ (ເພື່ອສາມາດເວົ້າ, ຕົວຢ່າງ,
"ເລື່ອນຖານຂໍ້ມູນຂອງຂ້ອຍໄປຫາວິທີການທີ່ເຂົາເຈົ້າເປັນໃນມື້ນີ້ຢູ່ທີ່ 10:30 am").

ຖ້າທ່ານມີຫຼາຍກວ່າຫນຶ່ງບັນທຶກຄູ່ເພື່ອປະຕິບັດໃນເຄື່ອງແມ່ຂ່າຍ MySQL, ວິທີການທີ່ປອດໄພແມ່ນເພື່ອ
ປຸງແຕ່ງພວກມັນທັງຫມົດໂດຍໃຊ້ການເຊື່ອມຕໍ່ດຽວກັບເຄື່ອງແມ່ຂ່າຍ. ນີ້ແມ່ນຕົວຢ່າງທີ່
ສະແດງໃຫ້ເຫັນສິ່ງທີ່ອາດຈະເປັນ ບໍ່ປອດໄພ:

ຫອຍ> mysqlbinlog binlog.000001 | mysql -u ຮາກ -p # ອັນຕະລາຍ !!
ຫອຍ> mysqlbinlog binlog.000002 | mysql -u ຮາກ -p # ອັນຕະລາຍ !!

ການປະມວນຜົນບັນທຶກຖານສອງດ້ວຍວິທີນີ້ໂດຍໃຊ້ການເຊື່ອມຕໍ່ຫຼາຍອັນກັບເຄື່ອງແມ່ຂ່າຍເຮັດໃຫ້ເກີດບັນຫາ
ຖ້າໄຟລ໌ບັນທຶກທໍາອິດມີຄໍາຖະແຫຼງທີ່ສ້າງຕາຕະລາງຊົ່ວຄາວແລະບັນທຶກທີສອງ
ປະກອບມີຄໍາຖະແຫຼງທີ່ໃຊ້ຕາຕະລາງຊົ່ວຄາວ. ເມື່ອທໍາອິດ mysql ຂະບວນການ
ສິ້ນສຸດ, ເຄື່ອງແມ່ຂ່າຍຫຼຸດລົງຕາຕະລາງຊົ່ວຄາວ. ເມື່ອທີສອງ mysql ຄວາມ​ພະ​ຍາ​ຍາມ​ຂະ​ບວນ​ການ​
ເພື່ອໃຊ້ຕາຕະລາງ, ເຄື່ອງແມ່ຂ່າຍລາຍງານ "ຕາຕະລາງທີ່ບໍ່ຮູ້ຈັກ."

ເພື່ອຫຼີກເວັ້ນບັນຫາເຊັ່ນນີ້, ໃຊ້ a ດຽວ mysql ຂະບວນການປະຕິບັດເນື້ອໃນຂອງທັງຫມົດ
ບັນທຶກຖານສອງທີ່ທ່ານຕ້ອງການປະມວນຜົນ. ນີ້ແມ່ນວິທີຫນຶ່ງທີ່ຈະເຮັດແນວນັ້ນ:

ຫອຍ> mysqlbinlog binlog.000001 binlog.000002 | mysql -u ຮາກ -p

ອີກວິທີໜຶ່ງແມ່ນການຂຽນບັນທຶກທັງໝົດໃສ່ໄຟລ໌ດຽວແລ້ວປະມວນຜົນໄຟລ໌:

ຫອຍ> mysqlbinlog binlog.000001 > /tmp/statements.sql
ຫອຍ> mysqlbinlog binlog.000002 >> /tmp/statements.sql
ຫອຍ> mysql -u ຮາກ -p -e "ແຫຼ່ງ /tmp/statements.sql"

mysqlbinlog ສາ​ມາດ​ຜະ​ລິດ​ຜົນ​ຜະ​ລິດ​ທີ່ reproduces ການ​ດໍາ​ເນີນ​ງານ LOAD DATA INFILE ໂດຍ​ບໍ່​ມີ​ການ​
ໄຟລ໌ຂໍ້ມູນຕົ້ນສະບັບ. mysqlbinlog ສຳເນົາຂໍ້ມູນໃສ່ໄຟລ໌ຊົ່ວຄາວ ແລະຂຽນ LOAD
DATA LOCAL INFILE ຖະແຫຼງການທີ່ອ້າງອີງເຖິງໄຟລ໌. ສະຖານທີ່ເລີ່ມຕົ້ນຂອງໄດເລກະທໍລີ
ບ່ອນທີ່ໄຟລ໌ເຫຼົ່ານີ້ຖືກຂຽນເປັນລະບົບສະເພາະ. ເພື່ອລະບຸໄດເລກະທໍລີຢ່າງຈະແຈ້ງ, ໃຫ້ໃຊ້
ໄດ້ --local-load ທາງເລືອກ.

ເນື່ອງຈາກວ່າ mysqlbinlog ປ່ຽນ LOAD DATA INFILE ຖະແຫຼງການເປັນ LOAD DATA INFILE ທ້ອງຖິ່ນ
ຖະແຫຼງການ (ນັ້ນແມ່ນ, ມັນເພີ່ມທ້ອງຖິ່ນ), ທັງລູກຄ້າແລະເຄື່ອງແມ່ຂ່າຍທີ່ທ່ານໃຊ້
ຂະບວນການຖະແຫຼງການຕ້ອງຖືກຕັ້ງຄ່າດ້ວຍຄວາມສາມາດຂອງທ້ອງຖິ່ນທີ່ເປີດໃຊ້ງານ. ເບິ່ງ
ພາກທີ 6.1.6, “ບັນຫາຄວາມປອດໄພກັບການໂຫຼດຂໍ້ມູນທ້ອງຖິ່ນ”.

ການ​ເຕືອນ​ໄພ
ໄຟລ໌ຊົ່ວຄາວທີ່ສ້າງຂຶ້ນສໍາລັບ LOAD DATA LOCAL statements ແມ່ນ ບໍ່ ອັດຕະໂນມັດ
ຖືກລຶບເພາະວ່າພວກມັນຕ້ອງການຈົນກວ່າເຈົ້າຈະປະຕິບັດການຖະແຫຼງເຫຼົ່ານັ້ນ. ເຈົ້າ
ຄວນລຶບໄຟລ໌ຊົ່ວຄາວດ້ວຍຕົວເອງ ຫຼັງຈາກທີ່ເຈົ້າບໍ່ຕ້ອງການບັນທຶກການຖະແຫຼງການ.
ໄຟລ໌ສາມາດພົບໄດ້ຢູ່ໃນໄດເລກະທໍລີໄຟລ໌ຊົ່ວຄາວແລະມີຊື່ເຊັ່ນ
original_file_name-#-#.

MYSQLBINLOG HEX ຖິ້ມຂີ້ເຫຍື້ອ ຮູບແບບ


ໄດ້ --hexdump ສາເຫດທາງເລືອກ mysqlbinlog ເພື່ອຜະລິດ hex dump ຂອງເນື້ອໃນຂອງບັນທຶກຖານສອງ:

ຫອຍ> mysqlbinlog --hexdump master-bin.000001

ຜົນ​ຜະ​ລິດ hex ປະ​ກອບ​ດ້ວຍ​ເສັ້ນ​ຄວາມ​ຄິດ​ເຫັນ​ທີ່​ເລີ່ມ​ຕົ້ນ​ດ້ວຍ #, ດັ່ງ​ນັ້ນ​ຜົນ​ຜະ​ລິດ​ອາດ​ຈະ​ເບິ່ງ​ຄື​ວ່າ
ນີ້ສໍາລັບຄໍາສັ່ງກ່ອນຫນ້າ:

/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
#ຢູ່ທີ່4
#051024 17:24:13 server id 1 end_log_pos 98
# ຕໍາແໜ່ງ Timestamp Type Master ID Size 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 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...|
# ເລີ່ມຕົ້ນ: binlog v 4, server v 5.0.15-debug-log ສ້າງ 051024 17:24:13
# ໃນຕອນເລີ່ມຕົ້ນ
ROLLBACK;

ປະຈຸບັນ hex dump output ມີອົງປະກອບໃນບັນຊີລາຍຊື່ຕໍ່ໄປນີ້. ຮູບແບບນີ້ແມ່ນ
ອາດມີການປ່ຽນແປງ. (ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບຮູບແບບບັນທຶກຄູ່, ເບິ່ງ MySQL ພາຍໃນ: ໄດ້
ຖານສອງ ຕົວເຊັນເຂົ້າ[1]

· ຕໍາແໜ່ງ: ຕໍາແໜ່ງ byte ພາຍໃນໄຟລ໌ບັນທຶກ.

· Timestamp: ເວລາເຫດການ. ໃນຕົວຢ່າງທີ່ສະແດງ, '9d fc 5c 43' ແມ່ນ
ການເປັນຕົວແທນຂອງ '051024 17:24:13' ໃນເລກຖານສິບຫົກ.

· ປະເພດ: ລະຫັດປະເພດເຫດການ. ໃນຕົວຢ່າງທີ່ສະແດງ, '0f' ຊີ້ໃຫ້ເຫັນ a
FORMAT_DESCRIPTION_EVENT. ຕາຕະລາງຕໍ່ໄປນີ້ລາຍຊື່ລະຫັດປະເພດທີ່ເປັນໄປໄດ້.

┌─────┬───────────────────────────────────── ────────────────────────┐
ປະເພດຊື່ຊຶ່ງຫມາຍຄວາມວ່າ
├─────┼──────────────────────────────────── ─────────────────────────┤
│00 │ UNKNOWN_EVENT │ ເຫດການນີ້ບໍ່ຄວນ│
│ │ │ ປະກົດຢູ່ໃນບັນທຶກ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│01 │ START_EVENT_V3 │ ອັນນີ້ຊີ້ບອກຈຸດເລີ່ມຕົ້ນ │
│ │ │ ຂອງໄຟລ໌ບັນທຶກທີ່ຂຽນໂດຍ │
│ │ │ MySQL 4 ຫຼືກ່ອນໜ້ານັ້ນ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│02 │ QUERY_EVENT │ ປະເພດທົ່ວໄປທີ່ສຸດຂອງ │
│ │ │ ເຫດການ. ສິ່ງເຫຼົ່ານີ້ມີ │
│ │ │ ຄຳສັ່ງຖືກປະຕິບັດໃນ │
│ │ │ ໄດ້ │
│ │ │ ແມ່ບົດ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│03 │ STOP_EVENT │ ຊີ້ບອກວ່າແມ່ແບບມີ │
│ │ │ ຢຸດ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│04 │ ROTATE_EVENT │ ຂຽນເມື່ອແມ່ບົດ │
│ │ │ ສະຫຼັບໄປຫາໄຟລ໌ບັນທຶກໃໝ່. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│05 │ INTVAR_EVENT │ ໃຊ້ສຳລັບ AUTO_INCREMENT │
│ │ │ ຄ່າ ຫຼື ເມື່ອ │
│ │ │ LAST_INSERT_ID() │
│ │ │ ຟັງຊັນ │
│ │ │ ຖືກນໍາໃຊ້ໃນຄໍາຖະແຫຼງການ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│06 │ LOAD_EVENT │ ໃຊ້ສຳລັບການໂຫຼດຂໍ້ມູນ │
│ │ │ INFILE ໃນ MySQL │
│ │ │ 3.23. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│07 │ SLAVE_EVENT │ ສະຫງວນໄວ້ເພື່ອນຳໃຊ້ໃນອະນາຄົດ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│08 │ CREATE_FILE_EVENT │ ໃຊ້ສຳລັບໂຫຼດຂໍ້ມູນ │
│ │ │ INFILE │
│ │ │ ຖະແຫຼງການ. ອັນນີ້ຊີ້ໃຫ້ເຫັນເຖິງ │
│ │ │ ເລີ່ມຕົ້ນຂອງ │
│ │ │ ການປະຕິບັດຄຳຖະແຫຼງດັ່ງກ່າວ. A │
│ │ │ ຊົ່ວຄາວ │
ໄຟລ໌ │ │ │ ຖືກສ້າງຂື້ນ │
│ │ │ ກ່ຽວ​ກັບ​ຂ້າ​ໃຊ້. ໃຊ້ໃນ MySQL 4 ເທົ່ານັ້ນ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│09 │ APPEND_BLOCK_EVENT │ ມີຂໍ້ມູນເພື່ອໃຊ້ໃນ │
│ │ │ ໂຫຼດຂໍ້ມູນ │
│ │ │ INFILE │
│ │ │ ຖະແຫຼງການ. ຂໍ້ມູນຖືກເກັບໄວ້ໃນ │
│ │ │ ຊົ່ວຄາວ │
│ │ │ ໄຟລ໌ຢູ່ໃນທາດ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│0a │ EXEC_LOAD_EVENT │ ໃຊ້ສຳລັບ LOAD DATA │
│ │ │ INFILE │
│ │ │ ຖະແຫຼງການ. ເນື້ອໃນຂອງ │
│ │ │ ໄຟລ໌ຊົ່ວຄາວ │
│ │ │ ຖືກເກັບໄວ້ໃນຕາຕະລາງເທິງທາດ. │
│ │ │ ໃຊ້ໃນ MySQL 4 │
│ │ │ ເທົ່ານັ້ນ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│0b │ DELETE_FILE_EVENT │ ການກັບຄືນຂອງ LOAD DATA │
│ │ │ INFILE │
│ │ │ ຖະແຫຼງການ. ໄຟລ໌ຊົ່ວຄາວ │
│ │ │ ຄວນເປັນ │
│ │ │ ຖືກລຶບໃນ slave. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│0c │ NEW_LOAD_EVENT │ ໃຊ້ສຳລັບ LOAD DATA │
│ │ │ INFILE ໃນ MySQL │
│ │ │ 4 ແລະກ່ອນໜ້ານັ້ນ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│0d │ RAND_EVENT │ ໃຊ້ເພື່ອສົ່ງຂໍ້ມູນກ່ຽວກັບ │
│ │ │ ຄ່າສຸ່ມຖ້າ │
│ │ │ ຟັງຊັນ RAND() │
│ │ │ ແມ່ນ │
│ │ │ ໃຊ້ໃນ │
│ │ │ ຖະແຫຼງການ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│0e │ USER_VAR_EVENT │ ໃຊ້ເພື່ອສຳເນົາຕົວແປຂອງຜູ້ໃຊ້. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│0f │ FORMAT_DESCRIPTION_EVENT │ ອັນນີ້ຊີ້ບອກຈຸດເລີ່ມຕົ້ນຂອງບັນທຶກ │
│ │ │ ໄຟລ໌ທີ່ຂຽນໂດຍ MySQL 5 ຫຼືຫຼັງຈາກນັ້ນ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│10 │ XID_EVENT │ ເຫດການທີ່ຊີ້ບອກເຖິງການກະທຳຂອງ XA │
│ │ │ ທຸລະກຳ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│11 │ BEGIN_LOAD_QUERY_EVENT │ ໃຊ້ສຳລັບ LOAD DATA │
│ │ │ INFILE │
│ │ │ ຖະແຫຼງການໃນ MySQL 5 ແລະຕໍ່ມາ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│12 │ EXECUTE_LOAD_QUERY_EVENT │ ໃຊ້ສຳລັບ LOAD DATA │
│ │ │ INFILE │
│ │ │ ຖະແຫຼງການໃນ MySQL 5 ແລະຕໍ່ມາ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│13 │ TABLE_MAP_EVENT │ ຂໍ້ມູນກ່ຽວກັບຕາຕະລາງ │
│ │ │ ຄໍານິຍາມ. ໃຊ້ໃນ MySQL 5.1.5 ແລະ │
│ │ │ ຕໍ່ມາ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│14 │ PRE_GA_WRITE_ROWS_EVENT │ ຂໍ້ມູນແຖວສຳລັບຕາຕະລາງດຽວທີ່ │
ຄວນສ້າງ │ │ │. ໃຊ້ໃນ MySQL │
│ │ │ 5.1.5 │
│ │ │ ຫາ 5.1.17. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│15 │ PRE_GA_UPDATE_ROWS_EVENT │ ຂໍ້ມູນແຖວສຳລັບຕາຕະລາງດຽວທີ່ │
│ │ │ ຕ້ອງການອັບເດດ. ໃຊ້ໃນ MySQL │
│ │ │ 5.1.5 ຫາ 5.1.17. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│16 │ PRE_GA_DELETE_ROWS_EVENT │ ຂໍ້ມູນແຖວສຳລັບຕາຕະລາງດຽວທີ່ │
│ │ │ ຄວນຖືກລຶບ. ໃຊ້ໃນ MySQL │
│ │ │ 5.1.5 │
│ │ │ ຫາ 5.1.17. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│17 │ WRITE_ROWS_EVENT │ ຂໍ້ມູນແຖວສຳລັບຕາຕະລາງດຽວທີ່ │
ຄວນສ້າງ │ │ │. ໃຊ້ໃນ MySQL │
│ │ │ 5.1.18 │
│ │ │ ແລະຕໍ່ມາ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│18 │ UPDATE_ROWS_EVENT │ ຂໍ້ມູນແຖວສຳລັບຕາຕະລາງດຽວທີ່ │
│ │ │ ຕ້ອງການອັບເດດ. ໃຊ້ໃນ MySQL │
│ │ │ 5.1.18 ແລະ │
│ │ │ ຕໍ່ມາ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│19 │ DELETE_ROWS_EVENT │ ຂໍ້ມູນແຖວສຳລັບຕາຕະລາງດຽວທີ່ │
│ │ │ ຄວນຖືກລຶບ. ໃຊ້ໃນ MySQL │
│ │ │ 5.1.18 │
│ │ │ ແລະຕໍ່ມາ. │
├─────┼──────────────────────────────────── ─────────────────────────┤
│1a │ INCIDENT_EVENT │ ບາງອັນທີ່ບໍ່ທຳມະດາ │
│ │ │ ເກີດຂຶ້ນ. ເພີ່ມເຂົ້າໃນ MySQL 5.1.18. │
└──────┴─────────────────────────────────── ─────────────────────────┘

· Master ID: ID ເຊີບເວີຂອງແມ່ແບບທີ່ສ້າງເຫດການ.

· ຂະໜາດ: ຂະໜາດໃນໄບຕ໌ຂອງເຫດການ.

· Master Pos: ຕໍາແຫນ່ງຂອງເຫດການຕໍ່ໄປໃນໄຟລ໌ຕົ້ນສະບັບຕົ້ນສະບັບ.

· ທຸງ: 16 ທຸງ. ໃນປັດຈຸບັນ, ທຸງຕໍ່ໄປນີ້ຖືກນໍາໃຊ້. ອື່ນໆແມ່ນສະຫງວນໄວ້ສໍາລັບ
ການ ນຳ ໃຊ້ໃນອະນາຄົດ.

┌─────┬──────────────────────────────────────── ────────────────────────────────────
ທຸງຊື່ຊຶ່ງຫມາຍຄວາມວ່າ
├─────┼───────────────────────────────────── ──────────────────────────────────── ┤
│01 │ LOG_EVENT_BINLOG_IN_USE_F │ ບັນທຶກໄຟລ໌ຢ່າງຖືກຕ້ອງ │
│ │ │ ປິດ. (ໃຊ້ໃນ │ ເທົ່ານັ້ນ
│ │ │ FORMAT_DESCRIPTION_EVENT.) │
│ │ │ ຖ້າ │
│ │ │ ນີ້ │
ຕັ້ງທຸງ │ │ │ (ຖ້າ │
│ │ │ ທຸງແມ່ນ, ຕົວຢ່າງ, │
│ │ │ '01 │
│ │ │ 00') ໃນ │
│ │ │ FORMAT_DESCRIPTION_EVENT, │
│ │ │ ບັນທຶກ │
│ │ │ ໄຟລ໌ │
│ │ │ ບໍ່ຖືກຕ້ອງ │
│ │ │ ປິດ. ສ່ວນຫຼາຍອາດຈະເປັນ │
│ │ │ ນີ້ │
│ │ │ ແມ່ນຍ້ອນນາຍ │
│ │ │ ຂັດຂ້ອງ (ຕົວຢ່າງ, ຄົບກຳນົດ │
│ │ │ ຫາ │
│ │ │ ໄຟຟ້າລົ້ມເຫຼວ). │
├─────┼───────────────────────────────────── ──────────────────────────────────── ┤
│02 │ │ ສະຫງວນໄວ້ເພື່ອນຳໃຊ້ໃນອະນາຄົດ. │
├─────┼───────────────────────────────────── ──────────────────────────────────── ┤
│04 │ LOG_EVENT_THREAD_SPECIFIC_F │ ຕັ້ງຖ້ານັດໝາຍຂຶ້ນກັບ │
ການເຊື່ອມຕໍ່ │ │ │ ມັນຖືກປະຕິບັດໃນ (ສໍາລັບ │
│ │ │ ຕົວຢ່າງ, '04 00'), ສໍາລັບ │
│ │ │ ຕົວຢ່າງ, │
│ │ │ ຖ້າເຫດການໃຊ້ │
│ │ │ ຕາຕະລາງຊົ່ວຄາວ. │
├─────┼───────────────────────────────────── ──────────────────────────────────── ┤
│08 │ LOG_EVENT_SUPPRESS_USE_F │ ຕັ້ງໃນບາງກໍລະນີເມື່ອເຫດການແມ່ນ │
│ │ │ ບໍ່ຂຶ້ນກັບຄ່າເລີ່ມຕົ້ນ │
│ │ │ ຖານຂໍ້ມູນ. │
└──────┴────────────────────────────────────── ───────────────────────────────────────

MYSQLBINLOG ROW EVENT DISPLAY


ຕົວຢ່າງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນວິທີການ mysqlbinlog ສະແດງເຫດການແຖວທີ່ລະບຸຂໍ້ມູນ
ການ​ດັດ​ແກ້​. ສິ່ງເຫຼົ່ານີ້ກົງກັບເຫດການກັບ WRITE_ROWS_EVENT, UPDATE_ROWS_EVENT,
ແລະລະຫັດປະເພດ DELETE_ROWS_EVENT. ໄດ້ --base64-output=DECODE-ROWS ແລະ -- verbose ທາງເລືອກໃນການ
ອາດຈະຖືກນໍາໃຊ້ເພື່ອສົ່ງຜົນກະທົບຕໍ່ຜົນໄດ້ຮັບຂອງເຫດການແຖວ.

ສົມມຸດວ່າເຊີບເວີກໍາລັງໃຊ້ການບັນທຶກຖານສອງແຖວແລະທ່ານດໍາເນີນການ
ລຳດັບຄຳຖະແຫຼງຕໍ່ໄປນີ້:

ສ້າງຕາຕະລາງ t
(
id INT ບໍ່ແມ່ນ NULL,
ຊື່ VARCHAR(20) ບໍ່ແມ່ນ NULL,
ວັນທີ DATE NULL
) ເຄື່ອງຈັກ = InnoDB;
ເລີ່ມທຸລະກໍາ;
ແຊກໃສ່ t VALUES(1, 'apple', NULL);
UPDATE t SET name = 'pear', date = '2009-01-01' WHERE id = 1;
DELETE FROM t WHERE id = 1;
ກຳ ມະການ;

ໂດຍຕົວຢ່າງ, mysqlbinlog ສະແດງເຫດການແຖວທີ່ຖືກເຂົ້າລະຫັດເປັນ base-64 strings ໂດຍໃຊ້ BINLOG
ຖະແຫຼງການ. Omitting ສາຍ extraneous, ຜົນຜະລິດສໍາລັບເຫດການແຖວທີ່ຜະລິດໂດຍ
ລຳດັບ ຄຳ ຖະແຫຼງກ່ອນ ໜ້າ ນີ້ເບິ່ງຄືວ່າ:

ຫອຍ> mysqlbinlog log_file
...
#ຢູ່ທີ່218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F
binlog '
fAS3SBMBAAAALAAAANoAAAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAAAAAAAAAAIBAAAQABEAAAAAAAEAAA//8AQAAAAVhcHBsZQ==
'/*!*/;
...
#ຢູ່ທີ່302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F
binlog '
fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAANGAAAGQBAAAQABEAAAAAAAAAEA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
...
#ຢູ່ທີ່400
#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 ທຸງ: STMT_END_F
binlog '
fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAAA//4AQAAAAARwZWFyIbIP
'/*!*/;

ເພື່ອເບິ່ງເຫດການແຖວເປັນຄໍາຄິດຄໍາເຫັນໃນຮູບແບບຂອງ "pseudo-SQL", ດໍາເນີນການ mysqlbinlog
ກັບ -- verbose or -v ທາງເລືອກ. ຜົນຜະລິດຈະມີແຖວທີ່ເລີ່ມຕົ້ນດ້ວຍ ###:

ຫອຍ> mysqlbinlog -v log_file
...
#ຢູ່ທີ່218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F
binlog '
fAS3SBMBAAAALAAAANoAAAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAAAAAAAAAAIBAAAQABEAAAAAAAEAAA//8AQAAAAVhcHBsZQ==
'/*!*/;
### INSERT INTO test.t
### SET
### @1=1
### @2='ແອັບເປີ້ນ'
### @3=NULL
...
#ຢູ່ທີ່302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F
binlog '
fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAANGAAAGQBAAAQABEAAAAAAAAAEA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
### ອັບເດດ test.t
### ຢູ່ໃສ
### @1=1
### @2='ແອັບເປີ້ນ'
### @3=NULL
### SET
### @1=1
### @2='pear'
### @3='2009:01:01'
...
#ຢູ່ທີ່400
#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 ທຸງ: STMT_END_F
binlog '
fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAAA//4AQAAAAARwZWFyIbIP
'/*!*/;
### ລຶບອອກຈາກ test.t
### ຢູ່ໃສ
### @1=1
### @2='pear'
### @3='2009:01:01'

ລະບຸວ່າ -- verbose or -v ສອງເທື່ອເພື່ອສະແດງຂໍ້ມູນປະເພດ ແລະບາງ metadata ສໍາລັບແຕ່ລະຄົນ
ຖັນ. ຜົນໄດ້ຮັບຈະມີຄໍາຄິດເຫັນເພີ່ມເຕີມດັ່ງຕໍ່ໄປນີ້ການປ່ຽນແປງແຕ່ລະຖັນ:

ຫອຍ> mysqlbinlog -vv log_file
...
#ຢູ່ທີ່218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F
binlog '
fAS3SBMBAAAALAAAANoAAAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAAAAAAAAAAIBAAAQABEAAAAAAAEAAA//8AQAAAAVhcHBsZQ==
'/*!*/;
### INSERT INTO test.t
### SET
### @1=1 /* INT meta=0 nullable=0 is_null=0 */
### @2='apple' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */
### @3=NULL /* VARSTRING(20) meta=0 nullable=1 is_null=1 */
...
#ຢູ່ທີ່302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F
binlog '
fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAANGAAAGQBAAAQABEAAAAAAAAAEA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
### ອັບເດດ test.t
### ຢູ່ໃສ
### @1=1 /* INT meta=0 nullable=0 is_null=0 */
### @2='apple' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */
### @3=NULL /* VARSTRING(20) meta=0 nullable=1 is_null=1 */
### SET
### @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' /* DATE meta=0 nullable=1 is_null=0 */
...
#ຢູ່ທີ່400
#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 ທຸງ: STMT_END_F
binlog '
fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAAA//4AQAAAAARwZWFyIbIP
'/*!*/;
### ລຶບອອກຈາກ test.t
### ຢູ່ໃສ
### @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' /* DATE meta=0 nullable=1 is_null=0 */

ເຈົ້າສາມາດບອກໄດ້ mysqlbinlog ເພື່ອສະກັດກັ້ນ BINLOG ຖະແຫຼງການສໍາລັບເຫດການແຖວໂດຍໃຊ້
--base64-output=DECODE-ROWS ທາງເລືອກ. ນີ້ແມ່ນຄ້າຍຄືກັນກັບ --base64-output=ບໍ່ເຄີຍ ແຕ່ບໍ່
ອອກດ້ວຍຄວາມຜິດພາດຖ້າພົບເຫດການແຖວ. ການປະສົມປະສານຂອງ --base64-output=DECODE-ROWS
ແລະ -- verbose ໃຫ້ວິທີທີ່ສະດວກໃນການເບິ່ງເຫດການແຖວພຽງແຕ່ເປັນຄໍາຖະແຫຼງ SQL:

ຫອຍ> mysqlbinlog -v --base64-output=DECODE-ROWS log_file
...
#ຢູ່ທີ່218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F
### INSERT INTO test.t
### SET
### @1=1
### @2='ແອັບເປີ້ນ'
### @3=NULL
...
#ຢູ່ທີ່302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F
### ອັບເດດ test.t
### ຢູ່ໃສ
### @1=1
### @2='ແອັບເປີ້ນ'
### @3=NULL
### SET
### @1=1
### @2='pear'
### @3='2009:01:01'
...
#ຢູ່ທີ່400
#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 ທຸງ: STMT_END_F
### ລຶບອອກຈາກ test.t
### ຢູ່ໃສ
### @1=1
### @2='pear'
### @3='2009:01:01'

ຫມາຍ​ເຫດ​
ທ່ານບໍ່ຄວນສະກັດກັ້ນ BINLOG ຖະແຫຼງການຖ້າທ່ານຕັ້ງໃຈທີ່ຈະປະຕິບັດຄືນໃຫມ່ mysqlbinlog
ຜົນຜະລິດ.

ຄໍາຖະແຫຼງທີ່ SQL ຜະລິດໂດຍ -- verbose ສໍາລັບເຫດການແຖວແມ່ນສາມາດອ່ານໄດ້ຫຼາຍກ່ວາ
ຄໍາຖະແຫຼງ BINLOG ທີ່ສອດຄ້ອງກັນ. ຢ່າງໃດກໍຕາມ, ພວກເຂົາເຈົ້າບໍ່ກົງກັນກັບຕົ້ນສະບັບ
ຄໍາຖະແຫຼງ SQL ທີ່ສ້າງເຫດການ. ຂໍ້ຈຳກັດຕໍ່ໄປນີ້ນຳໃຊ້:

· ຊື່ຖັນຕົ້ນສະບັບຖືກສູນເສຍ ແລະປ່ຽນແທນດ້ວຍ @N, ບ່ອນທີ່ N ແມ່ນຕົວເລກຖັນ.

· ຂໍ້​ມູນ​ຊຸດ​ຕົວ​ອັກ​ສອນ​ແມ່ນ​ບໍ່​ມີ​ຢູ່​ໃນ​ບັນ​ທຶກ​ຖານ​ສອງ​, ທີ່​ມີ​ຜົນ​ກະ​ທົບ​ສະ​ຕ​ຣິງ​
ການ​ສະ​ແດງ​ຖັນ​:

· ບໍ່ມີຄວາມແຕກຕ່າງລະຫວ່າງ binary ແລະ nonbinary string ທີ່ສອດຄ້ອງກັນ
ປະເພດ (BINARY ແລະ CHAR, VARBINARY ແລະ VARCHAR, BLOB ແລະ TEXT). ຜົນຜະລິດໃຊ້ a
ປະເພດຂໍ້ມູນຂອງ STRING ສໍາລັບສາຍຍາວຄົງທີ່ ແລະ VARSTRING ສໍາລັບຄວາມຍາວຕົວແປ
ເຊືອກ.

· ສໍາລັບຊຸດຕົວອັກສອນແບບ multibyte, ຈໍານວນສູງສຸດຂອງ bytes ຕໍ່ຕົວອັກສອນບໍ່ແມ່ນ
ມີຢູ່ໃນບັນທຶກຖານສອງ, ສະນັ້ນຄວາມຍາວຂອງປະເພດສະຕຣິງແມ່ນສະແດງເປັນໄບຕ໌
ແທນທີ່ຈະຢູ່ໃນຕົວອັກສອນ. ຍົກ​ຕົວ​ຢ່າງ, ຄັກ(4) ຈະຖືກນໍາໃຊ້ເປັນປະເພດຂໍ້ມູນ
ສໍາລັບຄ່າຈາກທັງສອງປະເພດຖັນເຫຼົ່ານີ້:

ຖັງ(4) CHARACTER SET Latin1
ຖັງ(2) CHARACTER SET ucs2

· ເນື່ອງຈາກຮູບແບບການເກັບຮັກສາສໍາລັບເຫດການປະເພດ UPDATE_ROWS_EVENT, UPDATE ຖະແຫຼງການ
ຈະຖືກສະແດງດ້ວຍຂໍ້ WHERE ກ່ອນໜ້າ SET clause.

ການຕີຄວາມເຫມາະສົມຂອງເຫດການແຖວຕ້ອງການຂໍ້ມູນຈາກຄໍາອະທິບາຍຮູບແບບ
ເຫດການໃນຕອນຕົ້ນຂອງບັນທຶກຖານສອງ. ເນື່ອງຈາກວ່າ mysqlbinlog ບໍ່​ຮູ້​ລ່ວງ​ຫນ້າ​
ບໍ່ວ່າສ່ວນທີ່ເຫຼືອຂອງບັນທຶກມີເຫດການແຖວ, ໂດຍຄ່າເລີ່ມຕົ້ນມັນຈະສະແດງຮູບແບບ
ເຫດການຄໍາອະທິບາຍໂດຍໃຊ້ຄໍາຖະແຫຼງ BINLOG ໃນສ່ວນເບື້ອງຕົ້ນຂອງຜົນໄດ້ຮັບ.

ຖ້າບັນທຶກຖານສອງເປັນທີ່ຮູ້ກັນວ່າບໍ່ມີເຫດການໃດໆທີ່ຕ້ອງໃຊ້ຄຳຖະແຫຼງ BINLOG (ນັ້ນ
ແມ່ນ, ບໍ່ມີເຫດການແຖວ), the --base64-output=ບໍ່ເຄີຍ ທາງເລືອກສາມາດຖືກນໍາໃຊ້ເພື່ອປ້ອງກັນສ່ວນຫົວນີ້
ຈາກ​ການ​ຂຽນ​.

ການ ນຳ ໃຊ້ MYSQLBINLOG ເຖິງ BACK UP ໄບນາຣີ LOG ເອກະສານ


ໂດຍຕົວຢ່າງ, mysqlbinlog ອ່ານໄຟລ໌ບັນທຶກຖານສອງ ແລະສະແດງເນື້ອຫາຂອງເຂົາເຈົ້າໃນຮູບແບບຂໍ້ຄວາມ.
ນີ້ຊ່ວຍໃຫ້ທ່ານສາມາດກວດສອບເຫດການພາຍໃນໄຟລ໌ໄດ້ງ່າຍກວ່າແລະປະຕິບັດພວກມັນຄືນໃຫມ່
(ຕົວຢ່າງ, ໂດຍໃຊ້ຜົນຜະລິດເປັນວັດສະດຸປ້ອນ mysql). mysqlbinlog ສາມາດອ່ານໄຟລ໌ບັນທຶກ
ໂດຍກົງຈາກລະບົບໄຟລ໌ທ້ອງຖິ່ນ, ຫຼື, ກັບ --read-from-remote-server ທາງເລືອກ, ມັນສາມາດເຮັດໄດ້
ເຊື່ອມຕໍ່ກັບເຊີບເວີແລະຮ້ອງຂໍເນື້ອໃນບັນທຶກສອງຈາກເຄື່ອງແມ່ຂ່າຍນັ້ນ. mysqlbinlog ຂຽນວ່າ
text output ກັບຜົນໄດ້ຮັບມາດຕະຖານຂອງຕົນ, ຫຼືໄຟລ໌ທີ່ມີຊື່ເປັນມູນຄ່າຂອງ
--result-file=ຊື່​ເອ​ກະ​ສານ ທາງເລືອກຖ້າທາງເລືອກນັ້ນຖືກມອບໃຫ້.

ເປັນຂອງ MySQL 5.6, mysqlbinlog ສາ​ມາດ​ອ່ານ​ໄຟລ​໌​ບັນ​ທຶກ​ຖານ​ສອງ​ແລະ​ຂຽນ​ໄຟລ​໌​ໃຫມ່​ທີ່​ປະ​ກອບ​ດ້ວຍ​
ເນື້ອໃນດຽວກັນ - ນັ້ນແມ່ນ, ໃນຮູບແບບຖານສອງແທນທີ່ຈະເປັນຮູບແບບຂໍ້ຄວາມ. ຄວາມສາມາດນີ້ເປີດໃຊ້ງານ
ທ່ານ​ຈະ​ໄດ້​ຢ່າງ​ງ່າຍ​ດາຍ​ສໍາ​ຮອງ​ຂໍ້​ມູນ​ບັນ​ທຶກ​ໃນ​ຮູບ​ແບບ​ຕົ້ນ​ສະ​ບັບ​ຂອງ​ຕົນ​. mysqlbinlog ສາມາດເຮັດໃຫ້ເປັນ static
ສໍາຮອງຂໍ້ມູນ, ສໍາຮອງຂໍ້ມູນທີ່ກໍານົດໄວ້ຂອງໄຟລ໌ບັນທຶກແລະການຢຸດເຊົາໃນເວລາທີ່ສິ້ນສຸດຂອງໄຟລ໌ສຸດທ້າຍແມ່ນ
ຮອດ. ມັນຍັງສາມາດເຮັດການສໍາຮອງຂໍ້ມູນຢ່າງຕໍ່ເນື່ອງ ("ສົດ"), ເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍ
ເມື່ອມັນໄປຮອດຈຸດສິ້ນສຸດຂອງໄຟລ໌ບັນທຶກຫຼ້າສຸດ ແລະສືບຕໍ່ຄັດລອກເຫດການໃຫມ່ຕາມທີ່ເຂົາເຈົ້າເປັນ
ສ້າງຂຶ້ນ. ໃນ​ການ​ດໍາ​ເນີນ​ງານ​ສໍາ​ຮອງ​ຂໍ້​ມູນ​ຕໍ່​ເນື່ອງ​, mysqlbinlog ແລ່ນຈົນກ່ວາການເຊື່ອມຕໍ່ສິ້ນສຸດລົງ (ສໍາລັບ
ຕົວຢ່າງ, ເມື່ອເຄື່ອງແມ່ຂ່າຍອອກ) ຫຼື mysqlbinlog ຖືກຍຸບໂດຍບັງຄັບ. ເມື່ອການເຊື່ອມຕໍ່
ສິ້ນສຸດລົງ, mysqlbinlog ບໍ່ໄດ້ລໍຖ້າ ແລະພະຍາຍາມເຊື່ອມຕໍ່ຄືນໃໝ່, ບໍ່ຄືກັບການຈໍາລອງແບບສໍາລອງ
ເຊີບເວີ. ເພື່ອສືບຕໍ່ການສໍາຮອງຂໍ້ມູນສົດຫຼັງຈາກເຄື່ອງແມ່ຂ່າຍໄດ້ຖືກເປີດໃຫມ່, ທ່ານຍັງຕ້ອງ
ເລີ່ມ​ຕົ້ນ​ໃຫມ່ mysqlbinlog.

ການສໍາຮອງຂໍ້ມູນບັນທຶກຖານສອງຮຽກຮ້ອງໃຫ້ທ່ານຮຽກຮ້ອງ mysqlbinlog ມີສອງທາງເລືອກຢ່າງຫນ້ອຍ:

·ທ --read-from-remote-server (ຫຼື -R) ທາງເລືອກບອກ mysqlbinlog ເພື່ອເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍ
ແລະຮ້ອງຂໍບັນທຶກຖານສອງຂອງຕົນ. (ອັນນີ້ແມ່ນຄ້າຍຄືກັນກັບເຊີບເວີການຈໍາລອງແບບສໍາລອງທີ່ເຊື່ອມຕໍ່
ກັບເຄື່ອງແມ່ຂ່າຍຕົ້ນສະບັບຂອງມັນ.)

·ທ -- ດິບ ທາງເລືອກບອກ mysqlbinlog ເພື່ອຂຽນຜົນຜະລິດ (binary) ດິບ, ບໍ່ແມ່ນຂໍ້ຄວາມອອກ.

ຄຽງຄູ່ກັບ --read-from-remote-server, ມັນເປັນເລື່ອງທົ່ວໄປທີ່ຈະລະບຸທາງເລືອກອື່ນ: -ເຈົ້າພາບ
ຊີ້ບອກວ່າເຊີບເວີກຳລັງແລ່ນຢູ່ໃສ, ແລະເຈົ້າອາດຈະຕ້ອງລະບຸຕົວເລືອກການເຊື່ອມຕໍ່ນຳ
ເຊັ່ນ​ວ່າ -ຜູ້ໃຊ້ ແລະ -ລະຫັດຜ່ານ.

ທາງ​ເລືອກ​ອື່ນ​ຈໍາ​ນວນ​ຫນຶ່ງ​ແມ່ນ​ເປັນ​ປະ​ໂຫຍດ​ຮ່ວມ​ກັບ​ -- ດິບ:

· --ຢຸດ-ບໍ່ເຄີຍ: ຢູ່ເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍຫຼັງຈາກເຖິງຈຸດສິ້ນສຸດຂອງໄຟລ໌ບັນທຶກສຸດທ້າຍ
ແລະສືບຕໍ່ອ່ານເຫດການໃຫມ່.

· --stop-never-slave-server-id=id: ID ເຊີບເວີທີ່ mysqlbinlog ລາຍງານກັບເຄື່ອງແມ່ຂ່າຍ
ໃນເວລາທີ່ --ຢຸດ-ບໍ່ເຄີຍ ຖືກນໍາໃຊ້. ຄ່າເລີ່ມຕົ້ນແມ່ນ 65535. ນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອຫຼີກເວັ້ນການຂັດແຍ້ງ
ກັບ ID ຂອງເຄື່ອງແມ່ຂ່າຍສໍາລອງຫຼືອື່ນ mysqlbinlog ຂະບວນການ. ເບິ່ງພາກທີ່ເອີ້ນວ່າ
“ການລະບຸລະຫັດເຊີບເວີ MYSQLBINLOG”.

· --ຜົນໄດ້ຮັບ-ໄຟລ໌: ຄໍານໍາຫນ້າສໍາລັບຊື່ໄຟລ໌ຜົນຜະລິດ, ດັ່ງທີ່ອະທິບາຍຕໍ່ມາ.

ເພື່ອສໍາຮອງໄຟລ໌ບັນທຶກສອງຂອງເຄື່ອງແມ່ຂ່າຍກັບ mysqlbinlog, ທ່ານຕ້ອງລະບຸຊື່ໄຟລ໌ທີ່
ຕົວຈິງແລ້ວມີຢູ່ໃນເຄື່ອງແມ່ຂ່າຍ. ຖ້າທ່ານບໍ່ຮູ້ຊື່, ເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍແລະນໍາໃຊ້
ຖະແຫຼງການ SHOW BINARY LOGS ເພື່ອເບິ່ງຊື່ປະຈຸບັນ. ສົມມຸດວ່າຄໍາຖະແຫຼງການ
ການ​ຜະ​ລິດ​ຜົນ​ຜະ​ລິດ​ນີ້​:

mysql> ສະແດງໃຫ້ເຫັນ ໄບນາຣີ ບັນທຶກ;
---------------+----------+
| Log_name | ຂະໜາດໄຟລ໌ |
---------------+----------+
| binlog.000130 | 27459 |
| binlog.000131 | 13719 |
| binlog.000132 | 43268 |
---------------+----------+

ດ້ວຍຂໍ້ມູນນັ້ນ, ທ່ານສາມາດນໍາໃຊ້ mysqlbinlog ເພື່ອສໍາຮອງບັນທຶກຄູ່ກັບປະຈຸບັນ
ໄດເລກະທໍລີດັ່ງຕໍ່ໄປນີ້ (ໃສ່ແຕ່ລະຄໍາສັ່ງຢູ່ໃນແຖວດຽວ):

· ເພື່ອເຮັດການສຳຮອງຂໍ້ມູນແບບຄົງທີ່ຂອງ binlog.000130 ຜ່ານ binlog.000132, ໃຫ້ໃຊ້ອັນໃດອັນໜຶ່ງອັນນີ້.
ຄໍາສັ່ງ:

mysqlbinlog --read-from-remote-server --host=host_name -- ດິບ
binlog.000130 binlog.000131 binlog.000132
mysqlbinlog --read-from-remote-server --host=host_name -- ດິບ
--to-last-log binlog.000130

ຄໍາສັ່ງທໍາອິດກໍານົດທຸກຊື່ໄຟລ໌ຢ່າງຊັດເຈນ. ຊື່ທີສອງມີພຽງແຕ່
ໄຟລ໌ທໍາອິດແລະການນໍາໃຊ້ --to-last-log ເພື່ອອ່ານຜ່ານສຸດທ້າຍ. ຄວາມແຕກຕ່າງລະຫວ່າງສິ່ງເຫຼົ່ານີ້
ຄໍາສັ່ງແມ່ນວ່າຖ້າເຄື່ອງແມ່ຂ່າຍເກີດຂຶ້ນກັບເປີດ binlog.000133 ກ່ອນ mysqlbinlog
ມາຮອດທ້າຍຂອງ binlog.000132, ຄໍາສັ່ງທໍາອິດຈະບໍ່ອ່ານມັນ, ແຕ່ທີສອງ
ຄໍາສັ່ງຈະ.

· ເພື່ອ​ເຮັດ​ໃຫ້​ສໍາ​ຮອງ​ຂໍ້​ມູນ​ທີ່​ມີ​ຊີ​ວິດ​ mysqlbinlog ເລີ່ມຕົ້ນດ້ວຍ binlog.000130 ເພື່ອສຳເນົາທີ່ມີຢູ່ແລ້ວ
ໄຟລ໌ບັນທຶກ, ຈາກນັ້ນເຊື່ອມຕໍ່ເພື່ອຄັດລອກເຫດການໃຫມ່ຍ້ອນວ່າເຄື່ອງແມ່ຂ່າຍສ້າງພວກມັນ:

mysqlbinlog --read-from-remote-server --host=host_name -- ດິບ
--stop-never binlog.000130

ກັບ --ຢຸດ-ບໍ່ເຄີຍ, ມັນບໍ່ຈໍາເປັນຕ້ອງລະບຸ --to-last-log ເພື່ອອ່ານຈົນສຸດທ້າຍ
ໄຟລ໌ບັນທຶກເນື່ອງຈາກວ່າທາງເລືອກນັ້ນແມ່ນຫມາຍເຖິງ.
Output File Naming.PP ໂດຍບໍ່ມີການ -- ດິບ, mysqlbinlog ຜົນຜະລິດຂໍ້ຄວາມແລະ
--ຜົນໄດ້ຮັບ-ໄຟລ໌ ທາງເລືອກ, ຖ້າໃຫ້, ລະບຸຊື່ຂອງໄຟລ໌ດຽວທີ່ຜົນຜະລິດທັງຫມົດ
ຖືກຂຽນ. ກັບ -- ດິບ, mysqlbinlog ຂຽນນຶ່ງໄຟລ໌ຜົນຜະລິດຖານສອງສໍາລັບແຕ່ລະໄຟລ໌ບັນທຶກ
ໂອນຈາກເຄື່ອງແມ່ຂ່າຍ. ໂດຍຄ່າເລີ່ມຕົ້ນ, mysqlbinlog ຂຽນໄຟລ໌ໃນປະຈຸບັນ
ໄດເລກະທໍລີທີ່ມີຊື່ດຽວກັນກັບໄຟລ໌ບັນທຶກຕົ້ນສະບັບ. ເພື່ອແກ້ໄຂຊື່ໄຟລ໌ຜົນຜະລິດ,
ການນໍາໃຊ້ --ຜົນໄດ້ຮັບ-ໄຟລ໌ ທາງເລືອກ. ສົມທົບກັບ -- ດິບ, ການ --ຜົນໄດ້ຮັບ-ໄຟລ໌ ຄ່າທາງເລືອກແມ່ນ
ຖືກປະຕິບັດເປັນຄໍານໍາຫນ້າທີ່ດັດແປງຊື່ໄຟລ໌ຜົນຜະລິດ.

ສົມມຸດວ່າປະຈຸບັນເຄື່ອງແມ່ຂ່າຍມີໄຟລ໌ບັນທຶກສອງຊື່ binlog.000999 ຂຶ້ນໄປ. ຖ້າ​ເຈົ້າ
ການນໍາໃຊ້ mysqlbinlog -- ດິບ ເພື່ອສໍາຮອງຂໍ້ມູນໄຟລ໌, ໄດ້ --ຜົນໄດ້ຮັບ-ໄຟລ໌ ທາງ​ເລືອກ​ຜະ​ລິດ​ໄຟລ​໌​ຜົນ​ຜະ​ລິດ​
ຊື່ທີ່ສະແດງຢູ່ໃນຕາຕະລາງຕໍ່ໄປນີ້. ທ່ານສາມາດຂຽນໄຟລ໌ໃສ່ໄດເລກະທໍລີສະເພາະໂດຍ
ເລີ່ມ​ຕົ້ນ --ຜົນໄດ້ຮັບ-ໄຟລ໌ ຄ່າກັບເສັ້ນທາງໄດເລກະທໍລີ. ຖ້າ --ຜົນໄດ້ຮັບ-ໄຟລ໌ ມູນຄ່າ
ປະກອບດ້ວຍຊື່ໄດເລກະທໍລີເທົ່ານັ້ນ, ຄ່າຕ້ອງສິ້ນສຸດດ້ວຍຕົວແຍກຊື່ເສັ້ນທາງ
ລັກສະນະ. ໄຟລ໌ຜົນຜະລິດຈະຖືກຂຽນທັບຖ້າພວກມັນມີຢູ່.

┌──────────────────────────── ┬──────────────── ─┐
--ຜົນໄດ້ຮັບ-ໄຟລ໌ ທາງເລືອກ │ ຜົນຜະລິດ ເອກະສານ ຊື່
├─────────────────────────────────────────────── ─┤
--result-file=x │ xbinlog.000999 ຂຶ້ນໄປ │
├─────────────────────────────────────────────── ─┤
--result-file=/ tmp / │ /tmp/binlog.000999 ຂຶ້ນໄປ │
├─────────────────────────────────────────────── ─┤
--result-file=/tmp/x │ /tmp/xbinlog.000999 ຂຶ້ນໄປ │
└──────────────────────── ┴───────────────── ─┘
ຕົວຢ່າງ: mysqldump + mysqlbinlog ສໍາລັບ Backup ແລະ Restore.PP ຕົວຢ່າງຕໍ່ໄປນີ້ອະທິບາຍ
ສະຖານະການທີ່ງ່າຍດາຍທີ່ສະແດງໃຫ້ເຫັນວິທີການນໍາໃຊ້ mysqldum ແລະ mysqlbinlog ຮ່ວມກັນເພື່ອສໍາຮອງຂໍ້ມູນ a
ຂໍ້​ມູນ​ຂອງ​ເຊີບ​ເວີ​ແລະ​ບັນ​ທຶກ​ຖານ​ສອງ, ແລະ​ວິ​ທີ​ການ​ນໍາ​ໃຊ້​ສໍາ​ຮອງ​ຂໍ້​ມູນ​ໃນ​ການ​ຟື້ນ​ຟູ​ເຄື່ອງ​ແມ່​ຂ່າຍ​ຖ້າ​ຫາກ​ວ່າ​ການ​ສູນ​ເສຍ​ຂໍ້​ມູນ
ເກີດຂຶ້ນ. ຕົວຢ່າງສົມມຸດວ່າເຄື່ອງແມ່ຂ່າຍກໍາລັງແລ່ນຢູ່ໃນໂຮດ host_name ແລະຄັ້ງທໍາອິດຂອງມັນ
ໄຟລ໌ບັນທຶກຄູ່ມີຊື່ binlog.000999. ໃສ່ແຕ່ລະຄໍາສັ່ງໃນແຖວດຽວ.

ການນໍາໃຊ້ mysqlbinlog ເພື່ອເຮັດໃຫ້ການສໍາຮອງຂໍ້ມູນຢ່າງຕໍ່ເນື່ອງຂອງບັນທຶກຖານສອງ:

mysqlbinlog --read-from-remote-server --host=host_name -- ດິບ
--stop-never binlog.000999

ການນໍາໃຊ້ mysqldum ເພື່ອສ້າງໄຟລ໌ dump ເປັນພາບລວມຂອງຂໍ້ມູນຂອງເຄື່ອງແມ່ຂ່າຍ. ໃຊ້
--ຖານຂໍ້ມູນທັງໝົດ, --ເຫດການ, ແລະ -- ປົກກະຕິ ເພື່ອສໍາຮອງຂໍ້ມູນຂໍ້ມູນທັງຫມົດ, ແລະ --master-data=2 to
ປະ​ກອບ​ມີ​ການ​ປະ​ສານ​ງານ​ບັນ​ທຶກ​ຄູ່​ປະ​ຈຸ​ບັນ​ໃນ​ໄຟລ​໌ dump​.

mysqldump --host=host_name --all-databases --events --routines --master-data=2> dump_file

ປະຕິບັດການ mysqldum ຄຳສັ່ງແຕ່ລະໄລຍະເພື່ອສ້າງພາບຖ່າຍໃໝ່ໆຕາມທີ່ຕ້ອງການ.

ຖ້າ​ຫາກ​ວ່າ​ການ​ສູນ​ເສຍ​ຂໍ້​ມູນ​ເກີດ​ຂຶ້ນ (ສໍາ​ລັບ​ການ​ຍົກ​ຕົວ​ຢ່າງ​, ຖ້າ​ຫາກ​ວ່າ​ເຄື່ອງ​ແມ່​ຂ່າຍ​ເກີດ​ອຸ​ປະ​ສັກ​)​, ໃຫ້​ນໍາ​ໃຊ້​ໄຟລ​໌ dump ທີ່​ຜ່ານ​ມາ​ທີ່​ສຸດ​ເພື່ອ​
ຟື້ນ​ຟູ​ຂໍ້​ມູນ​:

mysql --host=host_name -u ຮາກ -p dump_file

ຫຼັງ​ຈາກ​ນັ້ນ​, ການ​ນໍາ​ໃຊ້​ສໍາ​ຮອງ​ຂໍ້​ມູນ​ບັນ​ທຶກ​ຖານ​ສອງ​ເພື່ອ Re​: ປະ​ຕິ​ບັດ​ເຫດ​ການ​ທີ່​ໄດ້​ຮັບ​ການ​ຂຽນ​ຫຼັງ​ຈາກ​
ພິກັດທີ່ລະບຸໄວ້ໃນໄຟລ໌ dump. ສົມມຸດວ່າຈຸດປະສານງານໃນໄຟລ໌ເບິ່ງຄືວ່າ
ນີ້:

-- ປ່ຽນ MASTER ເປັນ MASTER_LOG_FILE='binlog.001002', MASTER_LOG_POS=27284;

ຖ້າໄຟລ໌ບັນທຶກທີ່ສຳຮອງໄວ້ຫຼ້າສຸດມີຊື່ binlog.001004, ປະຕິບັດເຫດການບັນທຶກຄືນໃໝ່
ເຊັ່ນນີ້:

mysqlbinlog --start-position=27284 binlog.001002 binlog.001003 binlog.001004
| mysql --host=host_name -u ຮາກ -p

ທ່ານ​ອາດ​ຈະ​ເຫັນ​ວ່າ​ມັນ​ງ່າຍ​ຂຶ້ນ​ທີ່​ຈະ​ສໍາ​ເນົາ​ໄຟລ​໌​ສໍາ​ຮອງ​ຂໍ້​ມູນ (ໄຟລ​໌ dump ແລະ​ໄຟລ​໌​ບັນ​ທຶກ​ຖານ​ສອງ​) ກັບ​
ເຊີບເວີໂຮດເພື່ອເຮັດໃຫ້ມັນງ່າຍຕໍ່ການດໍາເນີນການຟື້ນຟູ, ຫຼືຖ້າ MySQL ບໍ່ອະນຸຍາດ
ການເຂົ້າເຖິງຮາກທາງໄກ.

ລະບຸ ການ MYSQLBINLOG ຜູ້ໃຫ້ບໍລິການ ID


ໃນ​ເວ​ລາ​ທີ່​ຮຽກ​ຮ້ອງ​ໃຫ້​ມີ​ --read-from-remote-server ທາງເລືອກ, mysqlbinlog ເຊື່ອມຕໍ່ກັບ MySQL
ເຊີບເວີ, ລະບຸ ID ເຊີບເວີເພື່ອລະບຸຕົວຂອງມັນເອງ, ແລະຮ້ອງຂໍໄຟລ໌ບັນທຶກຖານສອງຈາກ
ເຊີບເວີ. ທ່ານສາມາດນໍາໃຊ້ mysqlbinlog ເພື່ອຮ້ອງຂໍໄຟລ໌ບັນທຶກຈາກເຄື່ອງແມ່ຂ່າຍໃນຫຼາຍວິທີ:

· ລະບຸຊຸດໄຟລ໌ທີ່ມີຊື່ຢ່າງຈະແຈ້ງ: ສໍາລັບແຕ່ລະໄຟລ໌, mysqlbinlog ເຊື່ອມ​ຕໍ່​ແລະ​
ອອກຄຳສັ່ງ Binlog dump. ເຊີບເວີສົ່ງໄຟລ໌ແລະຕັດການເຊື່ອມຕໍ່. ມີຫນຶ່ງ
ການເຊື່ອມຕໍ່ຕໍ່ໄຟລ໌.

·ລະບຸໄຟລ໌ເລີ່ມຕົ້ນແລະ --to-last-log: mysqlbinlog ເຊື່ອມຕໍ່ແລະອອກ Binlog
ຄໍາສັ່ງ dump ສໍາລັບໄຟລ໌ທັງຫມົດ. ເຄື່ອງແມ່ຂ່າຍສົ່ງໄຟລ໌ທັງຫມົດແລະຕັດການເຊື່ອມຕໍ່.

·ລະບຸໄຟລ໌ເລີ່ມຕົ້ນແລະ --ຢຸດ-ບໍ່ເຄີຍ (ຊຶ່ງຫມາຍຄວາມວ່າ --to-last-log): mysqlbinlog
ເຊື່ອມຕໍ່ແລະອອກຄໍາສັ່ງ dump Binlog ສໍາລັບໄຟລ໌ທັງຫມົດ. ເຊີບເວີສົ່ງໄຟລ໌ທັງໝົດ,
ແຕ່ບໍ່ໄດ້ຕັດການເຊື່ອມຕໍ່ຫຼັງຈາກສົ່ງອັນສຸດທ້າຍ.

ກັບ --read-from-remote-server ເທົ່ານັ້ນ, mysqlbinlog ເຊື່ອມຕໍ່ໂດຍໃຊ້ server ID ຂອງ 0, ເຊິ່ງ
ບອກເຊີບເວີໃຫ້ຕັດການເຊື່ອມຕໍ່ຫຼັງຈາກສົ່ງໄຟລ໌ບັນທຶກທີ່ຮ້ອງຂໍຫຼ້າສຸດ.

ກັບ --read-from-remote-server ແລະ --ຢຸດ-ບໍ່ເຄີຍ, mysqlbinlog ເຊື່ອມຕໍ່ໂດຍໃຊ້ nonzero
ID ເຊີບເວີ, ດັ່ງນັ້ນເຄື່ອງແມ່ຂ່າຍບໍ່ຕັດການເຊື່ອມຕໍ່ຫຼັງຈາກສົ່ງໄຟລ໌ບັນທຶກສຸດທ້າຍ. ເຊີບເວີ
ID ແມ່ນ 65535 ໂດຍຄ່າເລີ່ມຕົ້ນ, ແຕ່ນີ້ສາມາດປ່ຽນແປງໄດ້ດ້ວຍ --stop-never-slave-server-id.

ດັ່ງນັ້ນ, ສໍາລັບສອງວິທີທໍາອິດຂອງການຮ້ອງຂໍໄຟລ໌, ເຄື່ອງແມ່ຂ່າຍຕັດການເຊື່ອມຕໍ່ເພາະວ່າ
mysqlbinlog ລະບຸ ID ເຊີບເວີຂອງ 0. ມັນບໍ່ໄດ້ຕັດການເຊື່ອມຕໍ່ຖ້າ --ຢຸດ-ບໍ່ເຄີຍ ແມ່ນໃຫ້
ເນື່ອງຈາກວ່າ mysqlbinlog ລະບຸ ID ເຊີບເວີທີ່ບໍ່ແມ່ນສູນ.

COPYRIGHT


ສະຫງວນລິຂະສິດ © 1997, 2014, Oracle ແລະ/ຫຼື ສາຂາຂອງມັນ. ສະຫງວນລິຂະສິດທັງໝົດ.

ເອກະສານນີ້ແມ່ນຊອບແວຟຣີ; ທ່ານ​ສາ​ມາດ​ແຈກ​ຢາຍ​ມັນ​ແລະ / ຫຼື​ປັບ​ປຸງ​ແກ້​ໄຂ​ມັນ​ພຽງ​ແຕ່​ພາຍ​ໃຕ້​ການ​
ຂໍ້ກໍານົດຂອງໃບອະນຸຍາດສາທາລະນະທົ່ວໄປຂອງ GNU ທີ່ຈັດພີມມາໂດຍມູນນິທິຊອບແວຟຣີ;
ສະບັບ 2 ຂອງໃບອະນຸຍາດ.

ເອກະສານນີ້ໄດ້ຖືກແຈກຢາຍໂດຍຫວັງວ່າມັນຈະເປັນປະໂຫຍດ, ແຕ່ບໍ່ມີອັນໃດ
ການຮັບປະກັນ; ໂດຍບໍ່ມີການຮັບປະກັນໂດຍຫຍໍ້ຂອງ MERCHANTABILITY ຫຼື FITNESS ສໍາລັບສະເພາະ.
ຈຸດປະສົງ. ເບິ່ງໃບອະນຸຍາດສາທາລະນະທົ່ວໄປຂອງ GNU ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.

ທ່ານຄວນໄດ້ຮັບສໍາເນົາຂອງໃບອະນຸຍາດສາທາລະນະທົ່ວໄປ GNU ພ້ອມກັບໂຄງການ;
ຖ້າບໍ່ແມ່ນ, ຂຽນຫາ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301 USA ຫຼືເບິ່ງ http://www.gnu.org/licenses/.

ຫມາຍເຫດ


1. MySQL Internals: The Binary Log
http://dev.mysql.com/doc/internals/en/binary-log.html

ໃຊ້ mysqlbinlog ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

Linux ຄຳ ສັ່ງ

Ad




×
ການ​ໂຄ​ສະ​ນາ
?ຊື້ເຄື່ອງ, ຈອງ, ຫຼືຊື້ທີ່ນີ້ — ບໍ່ມີຄ່າໃຊ້ຈ່າຍ, ຊ່ວຍໃຫ້ການບໍລິການຟຣີ.