Ubuntu Online, Fedora Online, Windows online emulator അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാവുന്ന mysqlbinlog കമാൻഡ് ആണിത്.
പട്ടിക:
NAME
mysqlbinlog - ബൈനറി ലോഗ് ഫയലുകൾ പ്രോസസ്സ് ചെയ്യുന്നതിനുള്ള യൂട്ടിലിറ്റി
സിനോപ്സിസ്
mysqlbinlog [ഓപ്ഷനുകൾ] log_file ...
വിവരണം
സെർവറിന്റെ ബൈനറി ലോഗിൽ പരിഷ്ക്കരണങ്ങൾ വിവരിക്കുന്ന "ഇവന്റുകൾ" അടങ്ങിയ ഫയലുകൾ അടങ്ങിയിരിക്കുന്നു
ഡാറ്റാബേസ് ഉള്ളടക്കങ്ങളിലേക്ക്. സെർവർ ഈ ഫയലുകൾ ബൈനറി ഫോർമാറ്റിൽ എഴുതുന്നു. അവരുടെ പ്രദർശിപ്പിക്കാൻ
ടെക്സ്റ്റ് ഫോർമാറ്റിലുള്ള ഉള്ളടക്കം, ഉപയോഗിക്കുക mysqlbinlog യൂട്ടിലിറ്റി. നിങ്ങൾക്ക് ഉപയോഗിക്കാനും കഴിയും mysqlbinlog ലേക്ക്
ഒരു സ്ലേവ് സെർവർ എഴുതിയ റിലേ ലോഗ് ഫയലുകളുടെ ഉള്ളടക്കം ഒരു റെപ്ലിക്കേഷൻ സെറ്റപ്പിൽ പ്രദർശിപ്പിക്കുക
കാരണം റിലേ ലോഗുകൾക്ക് ബൈനറി ലോഗുകളുടെ അതേ ഫോർമാറ്റ് ഉണ്ട്. ബൈനറി ലോഗ്, റിലേ ലോഗ് എന്നിവയാണ്
വിഭാഗം 5.2.4, “ബൈനറി ലോഗ്”, വിഭാഗം 17.2.2, “റെപ്ലിക്കേഷൻ എന്നിവയിൽ കൂടുതൽ ചർച്ചചെയ്യുന്നു
റിലേയും സ്റ്റാറ്റസ് ലോഗുകളും".
ഇൻകോക്ക് ചെയ്യുക mysqlbinlog ഇതുപോലെ:
ഷെൽ> mysqlbinlog [ഓപ്ഷനുകൾ] log_file ...
ഉദാഹരണത്തിന്, binlog.000003 എന്ന പേരിലുള്ള ബൈനറി ലോഗ് ഫയലിന്റെ ഉള്ളടക്കങ്ങൾ പ്രദർശിപ്പിക്കുന്നതിന്, ഇത് ഉപയോഗിക്കുക
കമാൻഡ്:
ഷെൽ> mysqlbinlog ബിൻലോഗ്.0000003
ഔട്ട്പുട്ടിൽ binlog.000003-ൽ അടങ്ങിയിരിക്കുന്ന ഇവന്റുകൾ ഉൾപ്പെടുന്നു. പ്രസ്താവന അടിസ്ഥാനമാക്കിയുള്ള ലോഗിംഗിനായി, ഇവന്റ്
വിവരങ്ങളിൽ SQL പ്രസ്താവന ഉൾപ്പെടുന്നു, അത് എക്സിക്യൂട്ട് ചെയ്ത സെർവറിന്റെ ഐഡി, the
പ്രസ്താവന എക്സിക്യൂട്ട് ചെയ്ത സമയ സ്റ്റാമ്പ്, എത്ര സമയമെടുത്തു, തുടങ്ങിയവ. വേണ്ടി
വരി-അടിസ്ഥാനത്തിലുള്ള ലോഗിംഗ്, ഇവന്റ് ഒരു SQL പ്രസ്താവനയെക്കാൾ ഒരു വരി മാറ്റത്തെ സൂചിപ്പിക്കുന്നു. കാണുക
ലോഗിംഗ് മോഡുകളെക്കുറിച്ചുള്ള വിവരങ്ങൾക്കായി വിഭാഗം 17.1.2, “റെപ്ലിക്കേഷൻ ഫോർമാറ്റുകൾ”.
ഇവന്റുകൾക്ക് മുമ്പായി അധിക വിവരങ്ങൾ നൽകുന്ന ഹെഡർ കമന്റുകളാണ്. ഉദാഹരണത്തിന്:
# 141-ൽ
#100309 9:28:36 സെർവർ ഐഡി 123 end_log_pos 245
Query thread_id=3350 exec_time=11 error_code=0
ആദ്യ വരിയിൽ, ഇനിപ്പറയുന്ന നമ്പർ ഫയൽ ഓഫ്സെറ്റ് അല്ലെങ്കിൽ ആരംഭിക്കുന്നതിനെ സൂചിപ്പിക്കുന്നു
ബൈനറി ലോഗ് ഫയലിലെ സംഭവത്തിന്റെ സ്ഥാനം.
രണ്ടാമത്തെ വരി ആരംഭിക്കുന്നത് ഒരു തീയതിയും സമയവും ഉപയോഗിച്ച് പ്രസ്താവന ആരംഭിക്കുന്നത് എപ്പോഴാണ്
ഇവന്റ് ഉത്ഭവിച്ച സെർവർ. അനുകരണത്തിനായി, ഈ ടൈംസ്റ്റാമ്പ് സ്ലേവിലേക്ക് പ്രചരിപ്പിക്കുന്നു
സെർവറുകൾ. ഇവന്റ് ഉത്ഭവിച്ച സെർവറിന്റെ സെർവർ_ഐഡി മൂല്യമാണ് സെർവർ ഐഡി.
end_log_pos അടുത്ത ഇവന്റ് എവിടെയാണ് ആരംഭിക്കുന്നതെന്ന് സൂചിപ്പിക്കുന്നു (അതായത്, ഇത് ന്റെ അവസാന സ്ഥാനമാണ്
നിലവിലെ ഇവന്റ് + 1). ഏത് ത്രെഡാണ് ഇവന്റ് എക്സിക്യൂട്ട് ചെയ്തതെന്ന് ത്രെഡ്_ഐഡി സൂചിപ്പിക്കുന്നു. exec_time ആണ്
ഒരു മാസ്റ്റർ സെർവറിൽ ഇവന്റ് നടപ്പിലാക്കാൻ ചെലവഴിച്ച സമയം. ഒരു അടിമയിൽ, അത് വ്യത്യാസമാണ്
സ്ലേവിന്റെ അവസാന നിർവ്വഹണ സമയത്തിന്റെ മൈനസ് യജമാനന്റെ പ്രാരംഭ എക്സിക്യൂഷൻ സമയം.
വ്യത്യാസം മാസ്റ്ററെക്കാൾ എത്രമാത്രം പകർപ്പെടുക്കൽ പിന്നിലാണെന്നതിന്റെ സൂചകമായി വർത്തിക്കുന്നു.
Error_code ഇവന്റ് എക്സിക്യൂട്ട് ചെയ്യുന്നതിൽ നിന്നുള്ള ഫലത്തെ സൂചിപ്പിക്കുന്നു. പൂജ്യം എന്നാൽ തെറ്റില്ല എന്നാണ്
സംഭവിച്ചു.
കുറിപ്പ്
ഇവന്റ് ഗ്രൂപ്പുകൾ ഉപയോഗിക്കുമ്പോൾ, ഇവന്റുകളുടെ ഫയൽ ഓഫ്സെറ്റുകൾ ഒരുമിച്ച് ഗ്രൂപ്പുചെയ്യാം
ഇവന്റുകളുടെ അഭിപ്രായങ്ങൾ ഒരുമിച്ച് ഗ്രൂപ്പുചെയ്യാം. ഈ ഗ്രൂപ്പുചെയ്ത ഇവന്റുകൾ എന്ന് തെറ്റിദ്ധരിക്കരുത്
ശൂന്യമായ ഫയൽ ഓഫ്സെറ്റുകൾ.
നിന്നുള്ള output ട്ട്പുട്ട് mysqlbinlog വീണ്ടും എക്സിക്യൂട്ട് ചെയ്യാൻ കഴിയും (ഉദാഹരണത്തിന്, ഇത് ഇൻപുട്ടായി ഉപയോഗിക്കുന്നതിലൂടെ
ക്യു) ലോഗിലെ പ്രസ്താവനകൾ വീണ്ടും ചെയ്യാൻ. a ന് ശേഷമുള്ള വീണ്ടെടുക്കൽ പ്രവർത്തനങ്ങൾക്ക് ഇത് ഉപയോഗപ്രദമാണ്
സെർവർ ക്രാഷ്. മറ്റ് ഉപയോഗ ഉദാഹരണങ്ങൾക്ക്, ഈ വിഭാഗത്തിലും ഇൻറിലുമുള്ള ചർച്ച പിന്നീട് കാണുക
വിഭാഗം 7.5, “ബൈനറി ലോഗ് ഉപയോഗിച്ചുള്ള പോയിന്റ്-ഇൻ-ടൈം (ഇൻക്രിമെന്റൽ) വീണ്ടെടുക്കൽ”.
സാധാരണയായി, നിങ്ങൾ ഉപയോഗിക്കുന്നു mysqlbinlog ബൈനറി ലോഗ് ഫയലുകൾ നേരിട്ട് വായിക്കാനും അവ പ്രയോഗിക്കാനും
പ്രാദേശിക MySQL സെർവർ. ഉപയോഗിച്ച് വിദൂര സെർവറിൽ നിന്ന് ബൈനറി ലോഗുകൾ വായിക്കാനും സാധിക്കും
The --read-from-remote-server ഓപ്ഷൻ. റിമോട്ട് ബൈനറി ലോഗുകൾ വായിക്കാൻ, കണക്ഷൻ പാരാമീറ്റർ
സെർവറിലേക്ക് എങ്ങനെ കണക്റ്റ് ചെയ്യണമെന്ന് സൂചിപ്പിക്കാൻ ഓപ്ഷനുകൾ നൽകാം. ഈ ഓപ്ഷനുകൾ --ഹോസ്റ്റ്,
--password, --പോർട്ട്, --പ്രോട്ടോക്കോൾ, --സോക്കറ്റ്, ഒപ്പം --ഉപയോക്താവ്; നിങ്ങളൊഴികെ അവ അവഗണിക്കപ്പെടുന്നു
എന്നതും ഉപയോഗിക്കുക --read-from-remote-server ഓപ്ഷൻ.
mysqlbinlog ഇനിപ്പറയുന്ന ഓപ്ഷനുകൾ പിന്തുണയ്ക്കുന്നു, അത് കമാൻഡ് ലൈനിൽ അല്ലെങ്കിൽ
ഒരു ഓപ്ഷൻ ഫയലിന്റെ [mysqlbinlog], [ക്ലയന്റ്] ഗ്രൂപ്പുകളിൽ. ഓപ്ഷനെക്കുറിച്ചുള്ള വിവരങ്ങൾക്ക്
MySQL പ്രോഗ്രാമുകൾ ഉപയോഗിക്കുന്ന ഫയലുകൾ, വിഭാഗം 4.2.6, “ഓപ്ഷൻ ഫയലുകൾ ഉപയോഗിക്കുന്നു” കാണുക.
· --സഹായിക്കൂ, -?
ഒരു സഹായ സന്ദേശം പ്രദർശിപ്പിച്ച് പുറത്തുകടക്കുക.
· --base64-output=മൂല്യം
ഇവന്റുകൾ എപ്പോൾ ബേസ്-64 സ്ട്രിംഗുകളായി എൻകോഡ് ചെയ്യണമെന്ന് ഈ ഓപ്ഷൻ നിർണ്ണയിക്കുന്നു
BINLOG പ്രസ്താവനകൾ ഉപയോഗിക്കുന്നു. ഓപ്ഷനിൽ ഈ അനുവദനീയമായ മൂല്യങ്ങളുണ്ട് (കേസ് സെൻസിറ്റീവ് അല്ല):
· AUTO ("ഓട്ടോമാറ്റിക്") അല്ലെങ്കിൽ UNSPEC ("വ്യക്തമാക്കാത്തത്") BINLOG പ്രസ്താവനകൾ പ്രദർശിപ്പിക്കുന്നു
ആവശ്യമുള്ളപ്പോൾ സ്വയമേവ (അതായത്, ഫോർമാറ്റ് വിവരണ പരിപാടികൾക്കും വരികൾക്കും
സംഭവങ്ങൾ). അല്ലെങ്കിൽ --base64-ഔട്ട്പുട്ട് ഓപ്ഷൻ നൽകിയിരിക്കുന്നു, പ്രഭാവം സമാനമാണ്
--base64-output=AUTO.
കുറിപ്പ്
നിങ്ങൾ ഉപയോഗിക്കാൻ ഉദ്ദേശിക്കുന്നുവെങ്കിൽ, സ്വയമേവയുള്ള BINLOG ഡിസ്പ്ലേ മാത്രമാണ് സുരക്ഷിതമായ പെരുമാറ്റം
ട്ട്പുട്ട് mysqlbinlog ബൈനറി ലോഗ് ഫയൽ ഉള്ളടക്കങ്ങൾ വീണ്ടും എക്സിക്യൂട്ട് ചെയ്യാൻ. മറ്റൊരു ഓപ്ഷൻ
മൂല്യങ്ങൾ ഡീബഗ്ഗിംഗ് അല്ലെങ്കിൽ ടെസ്റ്റിംഗ് ആവശ്യങ്ങൾക്കായി മാത്രം ഉദ്ദേശിച്ചിട്ടുള്ളതാണ്, കാരണം അവ ആകാം
എക്സിക്യൂട്ടബിൾ രൂപത്തിൽ എല്ലാ ഇവന്റുകളും ഉൾപ്പെടാത്ത ഔട്ട്പുട്ട് നിർമ്മിക്കുക.
· BINLOG പ്രസ്താവനകൾ പ്രദർശിപ്പിക്കാതിരിക്കാൻ ഒരിക്കലും കാരണമാകരുത്. mysqlbinlog ഒരു ഉപയോഗിച്ച് പുറത്തുകടക്കുന്നു
BINLOG ഉപയോഗിച്ച് പ്രദർശിപ്പിക്കേണ്ട ഒരു വരി ഇവന്റ് കണ്ടെത്തിയാൽ പിശക്.
· ഡീകോഡ്-റോസ് വ്യക്തമാക്കുന്നു mysqlbinlog വരി ഇവന്റുകൾ ഡീകോഡ് ചെയ്യാൻ നിങ്ങൾ ഉദ്ദേശിക്കുന്നു
നിർദ്ദേശിച്ച SQL പ്രസ്താവനകളായി പ്രദർശിപ്പിക്കുകയും ചെയ്യുന്നു --വാക്കുകൾ ഓപ്ഷൻ.
ഒരിക്കലും പോലെ, DECODE-ROWS BINLOG പ്രസ്താവനകളുടെ ഡിസ്പ്ലേയെ അടിച്ചമർത്തുന്നു, എന്നാൽ ഒരിക്കലും പോലെയല്ല,
ഒരു വരി ഇവന്റ് കണ്ടെത്തിയാൽ അത് ഒരു പിശകോടെ പുറത്തുകടക്കില്ല.
പ്രഭാവം കാണിക്കുന്ന ഉദാഹരണങ്ങൾക്ക് --base64-ഔട്ട്പുട്ട് ഒപ്പം --വാക്കുകൾ ഓൺ റോ ഇവന്റ്
ഔട്ട്പുട്ട്, "MYSQLBINLOG റോ ഇവന്റ് ഡിസ്പ്ലേ" എന്ന വിഭാഗം കാണുക.
· --bind-address=IP വിലാസം
ഒന്നിലധികം നെറ്റ്വർക്ക് ഇന്റർഫേസുകളുള്ള ഒരു കമ്പ്യൂട്ടറിൽ, ഏതെന്ന് തിരഞ്ഞെടുക്കാൻ ഈ ഓപ്ഷൻ ഉപയോഗിക്കുക
MySQL സെർവറിലേക്ക് ബന്ധിപ്പിക്കുന്നതിന് ഉപയോഗിക്കേണ്ട ഇന്റർഫേസ്.
MySQL 5.6.1 മുതൽ ഈ ഓപ്ഷൻ പിന്തുണയ്ക്കുന്നു.
· --binlog-row-event-max-size=N
┌────────────────────┬──────────────────────────── ──────────────┐
│കമാൻഡ്-ലൈൻ ഫോർമാറ്റ് │ --binlog-row-event-max-size=# │
├────────────────────┼──────────────────────────── ──────────────┤
│ │ അനുവദനീയമാണ് മൂല്യങ്ങൾ │
│ ──────────────────┬────
│ │ പ്ലാറ്റ്ഫോം ബിറ്റ് വലുപ്പം │ 64 │
│──────────────────┼─────
│ │ ടൈപ്പ് ചെയ്യുക │ സംഖ്യാ │
│──────────────────┼─────
│ │ സ്വതേ │ 4294967040 │
│──────────────────┼─────
│ │ കുറഞ്ഞത് വില │ 256 │
│──────────────────┼─────
│ │ മാക്സ് വില │ 18446744073709547520 │
└────────────────────┴───────────────────┴──────── ──────────────┘
ഒരു വരി അടിസ്ഥാനമാക്കിയുള്ള ബൈനറി ലോഗ് ഇവന്റിന്റെ പരമാവധി വലുപ്പം ബൈറ്റുകളിൽ വ്യക്തമാക്കുക. വരികൾ ഗ്രൂപ്പുചെയ്തിരിക്കുന്നു
സാധ്യമെങ്കിൽ ഈ വലുപ്പത്തേക്കാൾ ചെറിയ ഇവന്റുകളിലേക്ക്. മൂല്യം 256 ന്റെ ഗുണിതമായിരിക്കണം.
സ്ഥിരസ്ഥിതി 4GB ആണ്.
· --character-sets-dir=പാത
ക്യാരക്ടർ സെറ്റുകൾ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്ന ഡയറക്ടറി. വിഭാഗം 10.5, “പ്രതീക സെറ്റ് കാണുക
കോൺഫിഗറേഷൻ".
· --connection-server-id=server_id
BINLOG_DUMP_NON_BLOCK-ന്റെ പിന്തുണയ്ക്കായി ഒരു MySQL സെർവർ പരിശോധിക്കാൻ ഈ ഓപ്ഷൻ ഉപയോഗിക്കുന്നു
MySQL 5.6.5-ൽ അശ്രദ്ധമായി നീക്കംചെയ്ത് MySQL-ൽ പുനഃസ്ഥാപിച്ച കണക്ഷൻ ഫ്ലാഗ്
5.6.20 (ബഗ് #18000079, ബഗ് #71178). സാധാരണ പ്രവർത്തനത്തിന് ഇത് ആവശ്യമില്ല.
ഈ ഓപ്ഷന്റെ ഫലപ്രദമായ ഡിഫോൾട്ടും മിനിമം മൂല്യങ്ങളും എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു mysqlbinlog
തടയൽ മോഡിലോ നോൺ-ബ്ലോക്കിംഗ് മോഡിലോ പ്രവർത്തിക്കുന്നു. എപ്പോൾ mysqlbinlog തടയുന്നതിൽ പ്രവർത്തിക്കുന്നു
മോഡ്, ഡിഫോൾട്ട് (കുറഞ്ഞത്) മൂല്യം 1 ആണ്; നോൺ-ബ്ലോക്കിംഗ് മോഡിൽ പ്രവർത്തിക്കുമ്പോൾ, സ്ഥിരസ്ഥിതി
(കൂടാതെ ഏറ്റവും കുറഞ്ഞ) മൂല്യം 0 ആണ്.
ഈ ഓപ്ഷൻ MySQL 5.6.20-ൽ ചേർത്തു.
· --ഡാറ്റബേസ്=db_ പേര്, -d db_ പേര്
ഈ ഓപ്ഷൻ കാരണമാകുന്നു mysqlbinlog ബൈനറി ലോഗിൽ നിന്ന് എൻട്രികൾ ഔട്ട്പുട്ട് ചെയ്യാൻ (ലോക്കൽ ലോഗ് മാത്രം)
സമയത്ത് സംഭവിക്കുന്നത് db_ പേര് യുഎസ്ഇ ഡിഫോൾട്ട് ഡാറ്റാബേസായി തിരഞ്ഞെടുത്തു.
ദി --ഡാറ്റാബേസ് എന്നതിനുള്ള ഓപ്ഷൻ mysqlbinlog എന്നതിന് സമാനമാണ് --binlog-do-db എന്നതിനുള്ള ഓപ്ഷൻ
mysqld, എന്നാൽ ഒരു ഡാറ്റാബേസ് മാത്രം വ്യക്തമാക്കാൻ ഉപയോഗിക്കാം. എങ്കിൽ --ഡാറ്റാബേസ് ഒന്നിലധികം നൽകിയിരിക്കുന്നു
തവണ, അവസാനത്തെ ഉദാഹരണം മാത്രമാണ് ഉപയോഗിക്കുന്നത്.
ഈ ഓപ്ഷന്റെ ഇഫക്റ്റുകൾ സ്റ്റേറ്റ്മെന്റ് അധിഷ്ഠിതമോ വരി അധിഷ്ഠിതമോ ആയ ലോഗിംഗിനെ ആശ്രയിച്ചിരിക്കുന്നു
ഫോർമാറ്റ് ഉപയോഗത്തിലുണ്ട്, അതുപോലെ തന്നെ --binlog-do-db എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു
പ്രസ്താവന അധിഷ്ഠിത അല്ലെങ്കിൽ വരി അധിഷ്ഠിത ലോഗിംഗ് ഉപയോഗത്തിലാണ്.
പ്രസ്താവന അടിസ്ഥാനമാക്കിയുള്ളത് ലോഗിംഗ്. ദി --ഡാറ്റാബേസ് ഓപ്ഷൻ ഇനിപ്പറയുന്ന രീതിയിൽ പ്രവർത്തിക്കുന്നു:
· അതേസമയം db_ പേര് സ്ഥിരസ്ഥിതി ഡാറ്റാബേസ് ആണ്, അവ പരിഷ്കരിച്ചാലും പ്രസ്താവനകൾ ഔട്ട്പുട്ടാണ്
പട്ടികകൾ db_ പേര് അല്ലെങ്കിൽ മറ്റൊരു ഡാറ്റാബേസ്.
· അല്ലാതെ db_ പേര് സ്ഥിരസ്ഥിതി ഡാറ്റാബേസായി തിരഞ്ഞെടുത്തു, പ്രസ്താവനകൾ ഔട്ട്പുട്ട് അല്ല,
അവർ പട്ടികകൾ പരിഷ്കരിച്ചാലും db_ പേര്.
· ക്രിയേറ്റ് ഡാറ്റാബേസ്, ആൾട്ടർ ഡാറ്റാബേസ്, ഡ്രോപ്പ് ഡാറ്റാബേസ് എന്നിവയ്ക്ക് ഒരു അപവാദമുണ്ട്. ദി
ഡാറ്റാബേസ് സൃഷ്ടിച്ചു, മാറ്റി, or കുറഞ്ഞു സ്ഥിരസ്ഥിതിയായി കണക്കാക്കുന്നു
സ്റ്റേറ്റ്മെന്റ് ഔട്ട്പുട്ട് ചെയ്യണമോ എന്ന് തീരുമാനിക്കുമ്പോൾ ഡാറ്റാബേസ്.
ഈ പ്രസ്താവനകൾ ഉപയോഗിച്ചാണ് ബൈനറി ലോഗ് സൃഷ്ടിച്ചതെന്ന് കരുതുക
പ്രസ്താവന അടിസ്ഥാനമാക്കിയുള്ള ലോഗിംഗ്:
test.t1 (i) ലേക്ക് ചേർക്കുക മൂല്യങ്ങൾ(100);
db2.t2 (j) ലേക്ക് ചേർക്കുക മൂല്യങ്ങൾ(200);
ടെസ്റ്റ് ഉപയോഗിക്കുക;
test.t1 (i) ലേക്ക് ചേർക്കുക മൂല്യങ്ങൾ(101);
t1 (i) ലേക്ക് തിരുകുക മൂല്യങ്ങൾ(102);
db2.t2 (j) ലേക്ക് ചേർക്കുക മൂല്യങ്ങൾ(201);
db2 ഉപയോഗിക്കുക;
test.t1 (i) ലേക്ക് ചേർക്കുക മൂല്യങ്ങൾ(103);
db2.t2 (j) ലേക്ക് ചേർക്കുക മൂല്യങ്ങൾ(202);
t2 (j) ലേക്ക് തിരുകുക മൂല്യങ്ങൾ(203);
mysqlbinlog --ഡാറ്റബേസ്=ടെസ്റ്റ് ആദ്യ രണ്ട് INSERT പ്രസ്താവനകൾ ഔട്ട്പുട്ട് ചെയ്യുന്നില്ല കാരണം
സ്ഥിരസ്ഥിതി ഡാറ്റാബേസ് ഇല്ല. ഉപയോഗത്തെ തുടർന്നുള്ള മൂന്ന് INSERT പ്രസ്താവനകൾ ഇത് ഔട്ട്പുട്ട് ചെയ്യുന്നു
ടെസ്റ്റ്, പക്ഷേ USE db2-ന് ശേഷമുള്ള മൂന്ന് INSERT പ്രസ്താവനകളല്ല.
mysqlbinlog --ഡാറ്റബേസ്=db2 ആദ്യ രണ്ട് INSERT പ്രസ്താവനകൾ ഔട്ട്പുട്ട് ചെയ്യുന്നില്ല കാരണം
സ്ഥിരസ്ഥിതി ഡാറ്റാബേസ് ഇല്ല. ഇനിപ്പറയുന്ന മൂന്ന് INSERT പ്രസ്താവനകൾ ഇത് ഔട്ട്പുട്ട് ചെയ്യുന്നില്ല
ടെസ്റ്റ് ഉപയോഗിക്കുക, എന്നാൽ USE db2-ന് ശേഷം മൂന്ന് ഇൻസേർട്ട് സ്റ്റേറ്റ്മെന്റുകൾ ഔട്ട്പുട്ട് ചെയ്യുന്നു.
വരി അടിസ്ഥാനമാക്കിയുള്ളത് ലോഗിംഗ്. mysqlbinlog ഉൾപ്പെടുന്ന പട്ടികകൾ മാറ്റുന്ന എൻട്രികൾ മാത്രം ഔട്ട്പുട്ട് ചെയ്യുന്നു
db_ പേര്. സ്ഥിരസ്ഥിതി ഡാറ്റാബേസിന് ഇതിൽ യാതൊരു സ്വാധീനവുമില്ല. ബൈനറി ലോഗ് വെറുതെയാണെന്ന് കരുതുക
പ്രസ്താവന അധിഷ്ഠിത ലോഗിംഗിനു പകരം വരി-അടിസ്ഥാന ലോഗിംഗ് ഉപയോഗിച്ചാണ് വിവരിച്ചത്.
mysqlbinlog --ഡാറ്റബേസ്=ടെസ്റ്റ് ടെസ്റ്റിൽ t1 പരിഷ്ക്കരിക്കുന്ന എൻട്രികൾ മാത്രം ഔട്ട്പുട്ട് ചെയ്യുന്നു
ഡാറ്റാബേസ്, USE ഇഷ്യൂ ചെയ്തിട്ടുണ്ടോ അല്ലെങ്കിൽ സ്ഥിരസ്ഥിതി ഡാറ്റാബേസ് എന്താണെന്നത് പരിഗണിക്കാതെ തന്നെ. അത് അങ്ങിനെയെങ്കിൽ
MIXED ആയി സജ്ജീകരിച്ച binlog_format ഉപയോഗിച്ചാണ് സെർവർ പ്രവർത്തിക്കുന്നത്, അത് സാധ്യമാകണമെന്ന് നിങ്ങൾ ആഗ്രഹിക്കുന്നു
ഉപയോഗം mysqlbinlog കൂടെ --ഡാറ്റാബേസ് ഓപ്ഷൻ, പട്ടികകൾ ഉണ്ടെന്ന് നിങ്ങൾ ഉറപ്പാക്കണം
പരിഷ്കരിച്ചത് USE തിരഞ്ഞെടുത്ത ഡാറ്റാബേസിലാണ്. (പ്രത്യേകിച്ച്, ക്രോസ്-ഡാറ്റാബേസ് ഇല്ല
അപ്ഡേറ്റുകൾ ഉപയോഗിക്കണം.)
MySQL 5.6.10-ന് മുമ്പ്, the --ഡാറ്റാബേസ് എഴുതിയ ഒരു ലോഗ് ഉപയോഗിച്ച് ഓപ്ഷൻ ശരിയായി പ്രവർത്തിച്ചില്ല
GTID- പ്രാപ്തമാക്കിയ MySQL സെർവർ വഴി. (ബഗ് #15912728)
· --ഡീബഗ്[=debug_options], -# [debug_options]
ഒരു ഡീബഗ്ഗിംഗ് ലോഗ് എഴുതുക. ഒരു സാധാരണ debug_options സ്ട്രിംഗ് d:t:o,ഫയലിന്റെ പേര്. സ്ഥിരസ്ഥിതി
d:t:o,/tmp/mysqlbinlog.trace ആണ്.
· --ഡീബഗ്-ചെക്ക്
പ്രോഗ്രാം പുറത്തുകടക്കുമ്പോൾ ചില ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ പ്രിന്റ് ചെയ്യുക.
· --ഡീബഗ്-ഇൻഫോ
പ്രോഗ്രാം ചെയ്യുമ്പോൾ ഡീബഗ്ഗിംഗ് വിവരങ്ങളും മെമ്മറിയും CPU ഉപയോഗ സ്ഥിതിവിവരക്കണക്കുകളും പ്രിന്റ് ചെയ്യുക
പുറത്തുകടക്കുന്നു.
· --default-auth=പ്ലഗിൻ
ഉപയോഗിക്കാനുള്ള ക്ലയന്റ് സൈഡ് പ്രാമാണീകരണ പ്ലഗിൻ. വിഭാഗം 6.3.7, “പ്ലഗ്ഗബിൾ
പ്രാമാണീകരണം".
ഈ ഓപ്ഷൻ MySQL 5.6.2-ൽ ചേർത്തു.
· --defaults-extra-file=ഫയലിന്റെ പേര്
ഗ്ലോബൽ ഓപ്ഷൻ ഫയലിന് ശേഷം ഈ ഓപ്ഷൻ ഫയൽ വായിക്കുക, എന്നാൽ ഉപയോക്താവിന് മുമ്പായി (യുണിക്സിൽ).
ഓപ്ഷൻ ഫയൽ. ഫയൽ നിലവിലില്ലെങ്കിലോ അല്ലെങ്കിൽ ആക്സസ് ചെയ്യാൻ കഴിയുന്നില്ലെങ്കിലോ, ഒരു പിശക് സംഭവിക്കുന്നു.
ഫയലിന്റെ പേര് ആപേക്ഷിക പാതയായി നൽകിയാൽ നിലവിലെ ഡയറക്ടറിയുമായി ബന്ധപ്പെടുത്തി വ്യാഖ്യാനിക്കപ്പെടുന്നു
പൂർണ്ണമായ പാത നാമത്തേക്കാൾ പേര്.
· --defaults-file=ഫയലിന്റെ പേര്
നൽകിയിരിക്കുന്ന ഓപ്ഷൻ ഫയൽ മാത്രം ഉപയോഗിക്കുക. ഫയൽ നിലവിലില്ലെങ്കിലോ മറ്റെന്തെങ്കിലും ആണെങ്കിലോ
ആക്സസ് ചെയ്യാൻ കഴിയില്ല, ഒരു പിശക് സംഭവിക്കുന്നു. ഫയലിന്റെ പേര് വൈദ്യുതധാരയുമായി ബന്ധപ്പെട്ട് വ്യാഖ്യാനിക്കപ്പെടുന്നു
മുഴുവൻ പാത്ത് നാമത്തിനും പകരം ആപേക്ഷിക പാത നാമമായി നൽകിയാൽ ഡയറക്ടറി.
· --defaults-group-suffix=str
സാധാരണ ഓപ്ഷൻ ഗ്രൂപ്പുകൾ മാത്രമല്ല, സാധാരണ പേരുകളുള്ള ഗ്രൂപ്പുകളും എ
എന്ന പ്രത്യയം str. ഉദാഹരണത്തിന്, mysqlbinlog സാധാരണയായി [ക്ലയന്റ്], [mysqlbinlog] എന്നിവ വായിക്കുന്നു
ഗ്രൂപ്പുകൾ. എങ്കിൽ --defaults-group-suffix=_other ഓപ്ഷൻ നൽകിയിരിക്കുന്നു, mysqlbinlog എന്നും വായിക്കുന്നു
[client_other] ഉം [mysqlbinlog_other] ഗ്രൂപ്പുകളും.
· --ഡിസേബിൾ-ലോഗ്-ബിൻ, -D
ബൈനറി ലോഗിംഗ് പ്രവർത്തനരഹിതമാക്കുക. നിങ്ങൾ ഉപയോഗിക്കുകയാണെങ്കിൽ അനന്തമായ ലൂപ്പ് ഒഴിവാക്കാൻ ഇത് ഉപയോഗപ്രദമാണ്
--ടു-ലാസ്റ്റ്-ലോഗ് ഓപ്ഷൻ കൂടാതെ ഒരേ MySQL സെർവറിലേക്ക് ഔട്ട്പുട്ട് അയക്കുന്നു. ഈ ഓപ്ഷൻ
നിങ്ങളുടെ പ്രസ്താവനകളുടെ തനിപ്പകർപ്പ് ഒഴിവാക്കാൻ ഒരു ക്രാഷിന് ശേഷം പുനഃസ്ഥാപിക്കുമ്പോഴും ഇത് ഉപയോഗപ്രദമാണ്
ലോഗിൻ ചെയ്തിട്ടുണ്ട്.
ഈ ഓപ്ഷന് നിങ്ങൾക്ക് സൂപ്പർ പ്രിവിലേജ് ആവശ്യമാണ്. അതു കാരണമാകുന്നു mysqlbinlog ലേക്ക്
ബൈനറി ലോഗിംഗ് പ്രവർത്തനരഹിതമാക്കാൻ അതിന്റെ ഔട്ട്പുട്ടിൽ ഒരു SET sql_log_bin = 0 പ്രസ്താവന ഉൾപ്പെടുത്തുക
ശേഷിക്കുന്ന ഔട്ട്പുട്ട്. നിങ്ങൾക്ക് SUPER ഇല്ലെങ്കിൽ SET പ്രസ്താവന ഫലപ്രദമല്ല
പദവി.
· --exclude-gtids=gtid_set
ൽ ലിസ്റ്റ് ചെയ്തിരിക്കുന്ന ഗ്രൂപ്പുകളൊന്നും പ്രദർശിപ്പിക്കരുത് gtid_set. MySQL 5.6.5-ൽ ചേർത്തു.
· --ഫോഴ്സ്-ഇഫ്-ഓപ്പൺ, -F
ബൈനറി ലോഗ് ഫയലുകൾ തുറന്നാലും ശരിയായി അടച്ചിട്ടില്ലെങ്കിലും വായിക്കുക.
· --നിർബന്ധിച്ച് വായിക്കുക, -f
ഈ ഓപ്ഷൻ ഉപയോഗിച്ച്, എങ്കിൽ mysqlbinlog തിരിച്ചറിയാൻ കഴിയാത്ത ഒരു ബൈനറി ലോഗ് ഇവന്റ് വായിക്കുന്നു,
ഇത് ഒരു മുന്നറിയിപ്പ് പ്രിന്റ് ചെയ്യുന്നു, ഇവന്റ് അവഗണിക്കുന്നു, തുടരുന്നു. ഈ ഓപ്ഷൻ ഇല്ലാതെ,
mysqlbinlog അത്തരത്തിലുള്ള ഒരു സംഭവം വായിച്ചാൽ നിർത്തുന്നു.
· --ഹെക്സ്ഡംപ്, -H
എന്ന വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നതുപോലെ, അഭിപ്രായങ്ങളിലെ ലോഗിന്റെ ഒരു ഹെക്സ് ഡംപ് പ്രദർശിപ്പിക്കുക
"MYSQLBINLOG ഹെക്സ് ഡംപ് ഫോർമാറ്റ്". ഹെക്സ് ഔട്ട്പുട്ട് അനുകരണത്തിന് സഹായകമാകും
ഡീബഗ്ഗിംഗ്.
· --ഹോസ്റ്റ്=ഹോസ്റ്റ്_നാമം, -h ഹോസ്റ്റ്_നാമം
നൽകിയിരിക്കുന്ന ഹോസ്റ്റിലെ MySQL സെർവറിൽ നിന്ന് ബൈനറി ലോഗ് നേടുക.
· --include-gtids=gtid_set
ൽ ലിസ്റ്റ് ചെയ്തിരിക്കുന്ന ഗ്രൂപ്പുകൾ മാത്രം പ്രദർശിപ്പിക്കുക gtid_set. MySQL 5.6.5-ൽ ചേർത്തു.
· --local-load=പാത, -l പാത
നിർദ്ദിഷ്ട ഡയറക്ടറിയിൽ ഡാറ്റ INFILE ലോഡുചെയ്യുന്നതിനായി പ്രാദേശിക താൽക്കാലിക ഫയലുകൾ തയ്യാറാക്കുക.
പ്രധാനം
ഈ താൽക്കാലിക ഫയലുകൾ സ്വയമേവ നീക്കം ചെയ്യുന്നതല്ല mysqlbinlog അല്ലെങ്കിൽ മറ്റേതെങ്കിലും
MySQL പ്രോഗ്രാം.
· --login-path=പേര്
.mylogin.cnf ലോഗിൻ ഫയലിൽ പേരിട്ടിരിക്കുന്ന ലോഗിൻ പാതയിൽ നിന്നുള്ള ഓപ്ഷനുകൾ വായിക്കുക. ഒരു "ലോഗിൻ പാത്ത്"
പരിമിതമായ ഒരു കൂട്ടം ഓപ്ഷനുകൾ മാത്രം അനുവദിക്കുന്ന ഒരു ഓപ്ഷൻ ഗ്രൂപ്പാണ്: ഹോസ്റ്റ്, ഉപയോക്താവ്, ഒപ്പം
പാസ്വേഡ്. സെർവർ ഹോസ്റ്റിനെയും സൂചിപ്പിക്കുന്ന മൂല്യങ്ങളുടെ ഒരു കൂട്ടമായി ഒരു ലോഗിൻ പാതയെക്കുറിച്ച് ചിന്തിക്കുക
സെർവർ ഉപയോഗിച്ച് പ്രാമാണീകരിക്കുന്നതിനുള്ള യോഗ്യതാപത്രങ്ങൾ. ലോഗിൻ പാത്ത് ഫയൽ സൃഷ്ടിക്കാൻ, ഉപയോഗിക്കുക
The mysql_config_editor യൂട്ടിലിറ്റി. കാണുക mysql_config_editor(1). ഈ ഓപ്ഷൻ ചേർത്തു
MySQL 5.6.6.
· --നോ-ഡിഫോൾട്ടുകൾ
ഓപ്ഷൻ ഫയലുകളൊന്നും വായിക്കരുത്. അജ്ഞാത ഓപ്ഷനുകൾ വായിക്കുന്നത് കാരണം പ്രോഗ്രാം സ്റ്റാർട്ടപ്പ് പരാജയപ്പെടുകയാണെങ്കിൽ
ഒരു ഓപ്ഷൻ ഫയലിൽ നിന്ന്, --നോ-ഡിഫോൾട്ടുകൾ അവ വായിക്കുന്നത് തടയാൻ ഉപയോഗിക്കാം.
.mylogin.cnf ഫയൽ നിലവിലുണ്ടെങ്കിൽ അത് എല്ലാ സാഹചര്യങ്ങളിലും വായിക്കുന്നു എന്നതാണ് അപവാദം. ഈ
കമാൻഡ് ലൈനിൽ ഉള്ളതിനേക്കാൾ സുരക്ഷിതമായ രീതിയിൽ പാസ്വേഡുകൾ വ്യക്തമാക്കാൻ അനുവദിക്കുന്നു
--നോ-ഡിഫോൾട്ടുകൾ ഉപയോഗിക്കുന്നു. (.mylogin.cnf സൃഷ്ടിച്ചത് mysql_config_editor യൂട്ടിലിറ്റി.
കാണുക mysql_config_editor(1)
· --ഓഫ്സെറ്റ്=N, -o N
ആദ്യത്തേത് ഒഴിവാക്കുക N ലോഗിലെ എൻട്രികൾ.
· --പാസ്വേഡ്[=പാസ്വേഡ്], -p[പാസ്വേഡ്]
സെർവറിലേക്ക് കണക്റ്റ് ചെയ്യുമ്പോൾ ഉപയോഗിക്കേണ്ട പാസ്വേഡ്. നിങ്ങൾ ഹ്രസ്വ ഓപ്ഷൻ ഫോം ഉപയോഗിക്കുകയാണെങ്കിൽ
(-p), നിങ്ങൾ ഒന്നും കഴിയില്ല ഓപ്ഷനും പാസ്വേഡിനും ഇടയിൽ ഒരു ഇടം ഉണ്ടായിരിക്കുക. നിങ്ങൾ ഒഴിവാക്കുകയാണെങ്കിൽ
പാസ്വേഡ് ഇനിപ്പറയുന്ന മൂല്യം --password or -p കമാൻഡ് ലൈനിലെ ഓപ്ഷൻ, mysqlbinlog
ഒന്നിനായി ആവശ്യപ്പെടുന്നു.
കമാൻഡ് ലൈനിൽ ഒരു രഹസ്യവാക്ക് വ്യക്തമാക്കുന്നത് സുരക്ഷിതമല്ലെന്ന് കണക്കാക്കണം. കാണുക
വിഭാഗം 6.1.2.1, “പാസ്വേഡ് സുരക്ഷയ്ക്കായുള്ള അന്തിമ ഉപയോക്തൃ മാർഗ്ഗനിർദ്ദേശങ്ങൾ”. നിങ്ങൾക്ക് ഒരു ഓപ്ഷൻ ഉപയോഗിക്കാം
കമാൻഡ് ലൈനിൽ പാസ്വേഡ് നൽകുന്നത് ഒഴിവാക്കാൻ ഫയൽ.
· --plugin-dir=പാത
പ്ലഗിനുകൾക്കായി തിരയേണ്ട ഡയറക്ടറി. ഈ ഓപ്ഷൻ വ്യക്തമാക്കേണ്ടത് ആവശ്യമായി വന്നേക്കാം
അങ്ങനെയാണെങ്കിൽ --default-auth ഒരു പ്രാമാണീകരണ പ്ലഗിൻ വ്യക്തമാക്കാൻ ഓപ്ഷൻ ഉപയോഗിക്കുന്നു, പക്ഷേ
mysqlbinlog അത് കണ്ടെത്തുന്നില്ല. വിഭാഗം 6.3.7, “പ്ലഗ്ഗബിൾ ആധികാരികത” കാണുക.
ഈ ഓപ്ഷൻ MySQL 5.6.2-ൽ ചേർത്തു.
· --പോർട്ട്=പോർട്ട്_നം, -P പോർട്ട്_നം
ഒരു റിമോട്ട് സെർവറിലേക്ക് കണക്റ്റുചെയ്യുന്നതിന് ഉപയോഗിക്കേണ്ട TCP/IP പോർട്ട് നമ്പർ.
· --പ്രിന്റ്-ഡീഫോൾട്ടുകൾ
പ്രോഗ്രാമിന്റെ പേരും ഓപ്ഷൻ ഫയലുകളിൽ നിന്ന് ലഭിക്കുന്ന എല്ലാ ഓപ്ഷനുകളും പ്രിന്റ് ചെയ്യുക.
· --പ്രോട്ടോക്കോൾ={TCP|സോക്കറ്റ്|പൈപ്പ്|മെമ്മറി}
സെർവറിലേക്ക് ബന്ധിപ്പിക്കുന്നതിന് ഉപയോഗിക്കേണ്ട കണക്ഷൻ പ്രോട്ടോക്കോൾ. എപ്പോൾ ഇത് ഉപയോഗപ്രദമാണ്
മറ്റ് കണക്ഷൻ പാരാമീറ്ററുകൾ സാധാരണയായി ഒരു പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്നതിന് കാരണമാകും
നിങ്ങൾക്ക് ആവശ്യമുള്ള ഒന്ന്. അനുവദനീയമായ മൂല്യങ്ങളെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾക്ക്, വിഭാഗം 4.2.2, “ഇതിലേക്ക് ബന്ധിപ്പിക്കുന്നു
MySQL സെർവർ".
· --റോ
സ്ഥിരസ്ഥിതിയായി, mysqlbinlog ബൈനറി ലോഗ് ഫയലുകൾ വായിക്കുകയും ടെക്സ്റ്റ് ഫോർമാറ്റിൽ ഇവന്റുകൾ എഴുതുകയും ചെയ്യുന്നു. ദി
--റോ ഓപ്ഷൻ പറയുന്നു mysqlbinlog അവയുടെ യഥാർത്ഥ ബൈനറി ഫോർമാറ്റിൽ എഴുതാൻ. അതിന്റെ ഉപയോഗം
അത് ആവശ്യമാണ് --read-from-remote-server ഫയലുകൾ ആവശ്യപ്പെട്ടതിനാൽ ഉപയോഗിക്കുകയും ചെയ്യും
ഒരു സെർവറിൽ നിന്ന്. mysqlbinlog സെർവറിൽ നിന്ന് വായിക്കുന്ന ഓരോ ഫയലിനും ഒരു ഔട്ട്പുട്ട് ഫയൽ എഴുതുന്നു.
ദി --റോ സെർവറിന്റെ ബൈനറി ലോഗിന്റെ ബാക്കപ്പ് ഉണ്ടാക്കാൻ ഓപ്ഷൻ ഉപയോഗിക്കാം. കൂടെ
--നിർത്തരുത്-ഒരിക്കലും ഓപ്ഷൻ, ബാക്കപ്പ് "ലൈവ്" ആയതിനാൽ mysqlbinlog എന്നതുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു
സെർവർ. ഡിഫോൾട്ടായി, ഔട്ട്പുട്ട് ഫയലുകൾ നിലവിലെ ഡയറക്ടറിയിൽ തന്നെ എഴുതിയിരിക്കുന്നു
യഥാർത്ഥ ലോഗ് ഫയലുകളായി പേരുകൾ. ഔട്ട്പുട്ട് ഫയലുകളുടെ പേരുകൾ ഉപയോഗിച്ച് പരിഷ്ക്കരിക്കാനാകും
--ഫല-ഫയൽ ഓപ്ഷൻ. കൂടുതൽ വിവരങ്ങൾക്ക്, “MYSQLBINLOG ഉപയോഗിക്കുന്നു” എന്ന വിഭാഗം കാണുക
ബൈനറി ലോഗ് ഫയലുകൾ ബാക്കപ്പ് ചെയ്യാൻ".
ഈ ഓപ്ഷൻ MySQL 5.6.0-ൽ ചേർത്തു.
· --read-from-remote-master=ടൈപ്പ് ചെയ്യുക
COM_BINLOG_DUMP അല്ലെങ്കിൽ COM_BINLOG_DUMP_GTID ഉപയോഗിച്ച് MySQL സെർവറിൽ നിന്ന് ബൈനറി ലോഗുകൾ വായിക്കുക
ഓപ്ഷൻ മൂല്യം BINLOG-DUMP-NON-GTIDS എന്നതിലേക്കോ അല്ലെങ്കിൽ
യഥാക്രമം BINLOG-DUMP-GTIDS. എങ്കിൽ --read-from-remote-master=BINLOG-DUMP-GTIDS is
സംയോജിച്ച --gtids ഒഴിവാക്കുക, ഇടപാടുകൾ മാസ്റ്ററിൽ ഫിൽട്ടർ ചെയ്യാവുന്നതാണ്,
അനാവശ്യ നെറ്റ്വർക്ക് ട്രാഫിക് ഒഴിവാക്കുന്നു.
എന്നതിനുള്ള വിവരണവും കാണുക --read-from-remote-server.
ഈ ഓപ്ഷൻ MySQL 5.6.5-ൽ ചേർത്തു.
· --read-from-remote-server, -R
ഒരു പ്രാദേശിക ലോഗ് ഫയൽ വായിക്കുന്നതിനുപകരം MySQL സെർവറിൽ നിന്ന് ബൈനറി ലോഗ് വായിക്കുക. ഏതെങ്കിലും
ഈ ഓപ്ഷനും നൽകിയിട്ടില്ലെങ്കിൽ കണക്ഷൻ പാരാമീറ്റർ ഓപ്ഷനുകൾ അവഗണിക്കപ്പെടും. ഇവ
ഓപ്ഷനുകൾ --ഹോസ്റ്റ്, --password, --പോർട്ട്, --പ്രോട്ടോക്കോൾ, --സോക്കറ്റ്, ഒപ്പം --ഉപയോക്താവ്.
ഈ ഓപ്ഷന് റിമോട്ട് സെർവർ പ്രവർത്തിക്കേണ്ടതുണ്ട്. ഇത് ബൈനറി ലോഗിന് മാത്രമേ പ്രവർത്തിക്കൂ
റിമോട്ട് സെർവറിലെ ഫയലുകൾ, റിലേ ലോഗ് ഫയലുകൾ അല്ല.
MySQL 5.6.5 പോലെ, ഈ ഓപ്ഷൻ പോലെയാണ്
--read-from-remote-master=BINLOG-DUMP-NON-GTIDS.
· --ഫലം-ഫയൽ=പേര്, -r പേര്
ഇല്ലാതെ --റോ ഓപ്ഷൻ, ഈ ഐച്ഛികം ഏത് ഫയൽ സൂചിപ്പിക്കുന്നു mysqlbinlog എഴുതുന്നു
ടെക്സ്റ്റ് ഔട്ട്പുട്ട്. കൂടെ --റോ, mysqlbinlog ഓരോ ലോഗ് ഫയലിനും ഒരു ബൈനറി ഔട്ട്പുട്ട് ഫയൽ എഴുതുന്നു
സെർവറിൽ നിന്ന് ട്രാൻസ്ഫർ ചെയ്തു, നിലവിലുള്ള ഡയറക്ടറിയിൽ സ്ഥിരസ്ഥിതിയായി അവ എഴുതുന്നു
യഥാർത്ഥ ലോഗ് ഫയലിന്റെ അതേ പേരുകൾ. ഈ സാഹചര്യത്തിൽ, ദി --ഫല-ഫയൽ ഓപ്ഷൻ മൂല്യം
ഔട്ട്പുട്ട് ഫയലുകളുടെ പേരുകൾ പരിഷ്ക്കരിക്കുന്ന ഒരു പ്രിഫിക്സായി കണക്കാക്കുന്നു.
· --സുരക്ഷിത-ഓത്ത്
പഴയ (പ്രീ-4.1) ഫോർമാറ്റിൽ സെർവറിലേക്ക് പാസ്വേഡുകൾ അയയ്ക്കരുത്. ഇത് കണക്ഷനുകൾ തടയുന്നു
പുതിയ പാസ്വേഡ് ഫോർമാറ്റ് ഉപയോഗിക്കുന്ന സെർവറുകൾ ഒഴികെ. ഈ ഓപ്ഷൻ പ്രവർത്തനക്ഷമമാക്കിയത്
സ്ഥിരസ്ഥിതി; ഉപയോഗിക്കുക --skip-secure-auth അത് പ്രവർത്തനരഹിതമാക്കാൻ. ഈ ഓപ്ഷൻ MySQL 5.6.17-ൽ ചേർത്തു.
കുറിപ്പ്
പ്രീ-4.1 ഹാഷിംഗ് രീതി ഉപയോഗിക്കുന്ന പാസ്വേഡുകൾ പാസ്വേഡുകളേക്കാൾ സുരക്ഷിതമല്ല
നേറ്റീവ് പാസ്വേഡ് ഹാഷിംഗ് രീതി ഉപയോഗിക്കുക, അത് ഒഴിവാക്കണം. പ്രീ-4.1 പാസ്വേഡുകൾ
ഒഴിവാക്കി, ഭാവിയിലെ MySQL റിലീസിൽ അവയ്ക്കുള്ള പിന്തുണ നീക്കം ചെയ്യും. വേണ്ടി
അക്കൗണ്ട് അപ്ഗ്രേഡ് നിർദ്ദേശങ്ങൾ, വിഭാഗം 6.3.8.3, “പ്രീ-4.1 ൽ നിന്ന് മൈഗ്രേറ്റിംഗ് എവേ കാണുക
പാസ്വേഡ് ഹാഷിംഗും mysql_old_password പ്ലഗിനും”.
· --server-id=id
നൽകിയിരിക്കുന്ന സെർവർ ഐഡി ഉള്ള സെർവർ സൃഷ്ടിച്ച ഇവന്റുകൾ മാത്രം പ്രദർശിപ്പിക്കുക.
· --server-id-bits=N
ആദ്യത്തേത് മാത്രം ഉപയോഗിക്കുക N സെർവർ തിരിച്ചറിയാൻ സെർവർ_ഐഡിയുടെ ബിറ്റുകൾ. ബൈനറി ലോഗ് ആണെങ്കിൽ
എ എഴുതിയത് mysqld സെർവർ-ഐഡി-ബിറ്റുകൾ 32-ൽ താഴെയായി സജ്ജീകരിച്ച് ഉപയോക്തൃ ഡാറ്റ സംഭരിച്ചു
ഏറ്റവും പ്രധാനപ്പെട്ട ബിറ്റിൽ, ഓടുന്നു mysqlbinlog കൂടെ --സെർവർ-ഐഡി-ബിറ്റുകൾ 32 ആയി സജ്ജമാക്കുക
ഈ ഡാറ്റ കാണാൻ പ്രാപ്തമാക്കുന്നു.
പതിപ്പുകൾ മാത്രമേ ഈ ഓപ്ഷൻ പിന്തുണയ്ക്കൂ mysqlbinlog MySQL ഉപയോഗിച്ച് വിതരണം ചെയ്തു
ക്ലസ്റ്റർ വിതരണം, അല്ലെങ്കിൽ MySQL ക്ലസ്റ്റർ ഉറവിടങ്ങളിൽ നിന്ന് നിർമ്മിച്ചതാണ്.
· --set-charset=charset_name
ഒരു സെറ്റ് പേരുകൾ ചേർക്കുക charset_name പ്രതീകം സെറ്റ് ചെയ്യുന്നതിനായി ഔട്ട്പുട്ടിലേക്കുള്ള പ്രസ്താവന
ലോഗ് ഫയലുകൾ പ്രോസസ്സ് ചെയ്യുന്നതിന് ഉപയോഗിക്കുന്നു.
· --shared-memory-base-name=പേര്
Windows-ൽ, പങ്കിട്ട മെമ്മറി ഉപയോഗിച്ച് ഉണ്ടാക്കിയ കണക്ഷനുകൾക്ക്, ഉപയോഗിക്കാനുള്ള പങ്കിട്ട മെമ്മറി നാമം
ഒരു പ്രാദേശിക സെർവർ. സ്ഥിരസ്ഥിതി മൂല്യം MYSQL ആണ്. പങ്കിട്ട മെമ്മറി പേര് കേസ് സെൻസിറ്റീവ് ആണ്.
ഉപയോഗിച്ച് സെർവർ ആരംഭിക്കണം --പങ്കിട്ട-ഓർമ്മ പങ്കിട്ട മെമ്മറി പ്രവർത്തനക്ഷമമാക്കാനുള്ള ഓപ്ഷൻ
കണക്ഷനുകൾ.
· --ഹ്രസ്വരൂപം, -s
അധിക വിവരങ്ങളൊന്നും കൂടാതെ ലോഗിൽ അടങ്ങിയിരിക്കുന്ന പ്രസ്താവനകൾ മാത്രം പ്രദർശിപ്പിക്കുക
വരി അടിസ്ഥാനമാക്കിയുള്ള ഇവന്റുകൾ. ഇത് പരിശോധനയ്ക്ക് മാത്രമുള്ളതാണ്, ഉൽപ്പാദനത്തിൽ ഉപയോഗിക്കാൻ പാടില്ല
സിസ്റ്റങ്ങൾ.
· --skip-gtids[=(ശരി|തെറ്റ്)]
ഔട്ട്പുട്ടിൽ GTID-കളൊന്നും പ്രദർശിപ്പിക്കരുത്. ഒരു ഡംപ് ഫയലിലേക്ക് എഴുതുമ്പോൾ ഇത് ആവശ്യമാണ്
ഈ ഉദാഹരണത്തിൽ കാണിച്ചിരിക്കുന്നതുപോലെ, GTID-കൾ അടങ്ങിയ ഒന്നോ അതിലധികമോ ബൈനറി ലോഗുകളിൽ നിന്ന്:
ഷെൽ> mysqlbinlog --skip-gtids ബിൻലോഗ്.000001 > /tmp/dump.sql
ഷെൽ> mysqlbinlog --skip-gtids ബിൻലോഗ്.000002 >> /tmp/dump.sql
ഷെൽ> ക്യു -u വേര് -p -e "ഉറവിടം /tmp/dump.sql"
ഉൽപ്പാദനത്തിൽ ഈ ഓപ്ഷന്റെ ഉപയോഗം സാധാരണയായി ശുപാർശ ചെയ്യുന്നില്ല.
ഈ ഓപ്ഷൻ MySQL 5.6.5-ൽ ചേർത്തു.
· --സോക്കറ്റ്=പാത, -S പാത
ലോക്കൽഹോസ്റ്റിലേക്കുള്ള കണക്ഷനുകൾക്കായി, ഉപയോഗിക്കാനുള്ള Unix സോക്കറ്റ് ഫയൽ, അല്ലെങ്കിൽ, വിൻഡോസിൽ, പേര്
ഉപയോഗിക്കാൻ പേരിട്ടിരിക്കുന്ന പൈപ്പ്.
· --start-datetime=തീയതി സമയം
ബൈനറി ലോഗ് വായിക്കാൻ ആരംഭിക്കുക, ആദ്യ ഇവന്റിന് തുല്യമോ അതിനുശേഷമോ ഉള്ള ടൈംസ്റ്റാമ്പ്
അധികം തീയതി സമയം വാദം. ദി തീയതി സമയം പ്രാദേശിക സമയ മേഖലയുമായി ബന്ധപ്പെട്ടതാണ് മൂല്യം
നിങ്ങൾ പ്രവർത്തിപ്പിക്കുന്ന യന്ത്രം mysqlbinlog. മൂല്യം സ്വീകരിച്ച ഫോർമാറ്റിലായിരിക്കണം
DATETIME അല്ലെങ്കിൽ TIMESTAMP ഡാറ്റ തരങ്ങൾ. ഉദാഹരണത്തിന്:
ഷെൽ> mysqlbinlog --start-datetime="2005-12-25 11:25:56" ബിൻലോഗ്.000003
പോയിന്റ്-ഇൻ-ടൈം വീണ്ടെടുക്കലിന് ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാണ്. വിഭാഗം 7.3, “ഉദാഹരണം ബാക്കപ്പ് കൂടാതെ
വീണ്ടെടുക്കൽ തന്ത്രം".
· --start-position=N, -j N
ബൈനറി ലോഗ് വായിക്കാൻ തുടങ്ങുക, അതിന് തുല്യമോ അതിലധികമോ സ്ഥാനം ഉള്ള ആദ്യ ഇവന്റിൽ
അധികം N. കമാൻഡ് ലൈനിൽ പേരിട്ടിരിക്കുന്ന ആദ്യത്തെ ലോഗ് ഫയലിന് ഈ ഓപ്ഷൻ ബാധകമാണ്.
പോയിന്റ്-ഇൻ-ടൈം വീണ്ടെടുക്കലിന് ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാണ്. വിഭാഗം 7.3, “ഉദാഹരണം ബാക്കപ്പ് കൂടാതെ
വീണ്ടെടുക്കൽ തന്ത്രം".
· --stop-datetime=തീയതി സമയം
ആദ്യ ഇവന്റിൽ ബൈനറി ലോഗ് വായിക്കുന്നത് നിർത്തുക
അധികം തീയതി സമയം വാദം. പോയിന്റ്-ഇൻ-ടൈം വീണ്ടെടുക്കലിന് ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാണ്. കാണുക
യുടെ വിവരണം --ആരംഭ-തീയതി എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾക്കായുള്ള ഓപ്ഷൻ തീയതി സമയം മൂല്യം.
പോയിന്റ്-ഇൻ-ടൈം വീണ്ടെടുക്കലിന് ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാണ്. വിഭാഗം 7.3, “ഉദാഹരണം ബാക്കപ്പ് കൂടാതെ
വീണ്ടെടുക്കൽ തന്ത്രം".
· --നിർത്തരുത്-ഒരിക്കലും
കൂടെ ഈ ഓപ്ഷൻ ഉപയോഗിക്കുന്നു --read-from-remote-server. അത് പറയുന്നു mysqlbinlog അവശേഷിക്കുക
സെർവറുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു. അല്ലെങ്കിൽ mysqlbinlog അവസാന ലോഗ് ഫയൽ ആയിരിക്കുമ്പോൾ പുറത്തുകടക്കുന്നു
സെർവറിൽ നിന്ന് മാറ്റി. --നിർത്തരുത്-ഒരിക്കലും ധ്വനിപ്പിക്കുന്നു --ടു-ലാസ്റ്റ്-ലോഗ്, അതിനാൽ ആദ്യത്തേത് മാത്രം
കൈമാറുന്നതിനുള്ള ലോഗ് ഫയലിന് കമാൻഡ് ലൈനിൽ പേര് നൽകേണ്ടതുണ്ട്.
--നിർത്തരുത്-ഒരിക്കലും കൂടെ സാധാരണയായി ഉപയോഗിക്കുന്നു --റോ ഒരു തത്സമയ ബൈനറി ലോഗ് ബാക്കപ്പ് ഉണ്ടാക്കാൻ, മാത്രമല്ല
ഇല്ലാതെ ഉപയോഗിക്കാം --റോ ലോഗ് ഇവന്റുകളുടെ തുടർച്ചയായ ടെക്സ്റ്റ് ഡിസ്പ്ലേ നിലനിർത്തുന്നതിന്
സെർവർ അവ സൃഷ്ടിക്കുന്നു.
ഈ ഓപ്ഷൻ MySQL 5.6.0-ൽ ചേർത്തു.
· --stop-never-slave-server-id=id
കൂടെ --നിർത്തരുത്-ഒരിക്കലും, mysqlbinlog എന്നതിലേക്ക് കണക്റ്റുചെയ്യുമ്പോൾ 65535 എന്ന സെർവർ ഐഡി റിപ്പോർട്ട് ചെയ്യുന്നു
സെർവർ. --stop-never-slave-server-id റിപ്പോർട്ട് ചെയ്യാനുള്ള സെർവർ ഐഡി വ്യക്തമായി വ്യക്തമാക്കുന്നു. അത്
ഒരു സ്ലേവ് സെർവറിന്റെയോ മറ്റെന്തെങ്കിലുമോ ഐഡിയുമായുള്ള വൈരുദ്ധ്യം ഒഴിവാക്കാൻ ഉപയോഗിക്കാം mysqlbinlog
പ്രക്രിയ. “MYSQLBINLOG സെർവർ ഐഡി വ്യക്തമാക്കുന്നത്” എന്ന വിഭാഗം കാണുക.
ഈ ഓപ്ഷൻ MySQL 5.6.0-ൽ ചേർത്തു.
· --stop-position=N
ബൈനറി ലോഗ് വായിക്കുന്നത് നിർത്തുക
അധികം N. കമാൻഡ് ലൈനിൽ പേരിട്ടിരിക്കുന്ന അവസാന ലോഗ് ഫയലിന് ഈ ഓപ്ഷൻ ബാധകമാണ്.
പോയിന്റ്-ഇൻ-ടൈം വീണ്ടെടുക്കലിന് ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാണ്. വിഭാഗം 7.3, “ഉദാഹരണം ബാക്കപ്പ് കൂടാതെ
വീണ്ടെടുക്കൽ തന്ത്രം".
· --ടു-ലാസ്റ്റ്-ലോഗ്, -t
MySQL സെർവറിൽ നിന്ന് അഭ്യർത്ഥിച്ച ബൈനറി ലോഗിന്റെ അവസാനം നിർത്തരുത്, മറിച്ച്
അവസാന ബൈനറി ലോഗിന്റെ അവസാനം വരെ അച്ചടി തുടരുക. നിങ്ങൾ ഔട്ട്പുട്ട് അയയ്ക്കുകയാണെങ്കിൽ
അതേ MySQL സെർവർ, ഇത് അനന്തമായ ലൂപ്പിലേക്ക് നയിച്ചേക്കാം. ഈ ഓപ്ഷൻ ആവശ്യമാണ്
--read-from-remote-server.
· --ഉപയോക്താവ്=user_name, -u user_name
ഒരു റിമോട്ട് സെർവറിലേക്ക് കണക്റ്റ് ചെയ്യുമ്പോൾ ഉപയോഗിക്കേണ്ട MySQL ഉപയോക്തൃനാമം.
· --വാക്കുകൾ, -v
വരി ഇവന്റുകൾ പുനർനിർമ്മിക്കുകയും അവ കമന്റ് ചെയ്ത SQL പ്രസ്താവനകളായി പ്രദർശിപ്പിക്കുകയും ചെയ്യുക. ഈ ഓപ്ഷൻ ആണെങ്കിൽ
രണ്ടുതവണ നൽകിയിരിക്കുന്നു, കോളം ഡാറ്റ തരങ്ങളും ചിലത് സൂചിപ്പിക്കാനുള്ള കമന്റുകളും ഔട്ട്പുട്ടിൽ ഉൾപ്പെടുന്നു
മെറ്റാഡാറ്റ.
പ്രഭാവം കാണിക്കുന്ന ഉദാഹരണങ്ങൾക്ക് --base64-ഔട്ട്പുട്ട് ഒപ്പം --വാക്കുകൾ ഓൺ റോ ഇവന്റ്
ഔട്ട്പുട്ട്, "MYSQLBINLOG റോ ഇവന്റ് ഡിസ്പ്ലേ" എന്ന വിഭാഗം കാണുക.
· --verify-binlog-checksum, -c
ബൈനറി ലോഗ് ഫയലുകളിൽ ചെക്ക്സം പരിശോധിക്കുക. ഈ ഓപ്ഷൻ 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 കടന്നു ക്യു ഇവന്റുകൾ നടപ്പിലാക്കാൻ ക്ലയന്റ്
ബൈനറി ലോഗിൽ അടങ്ങിയിരിക്കുന്നു. ഒരു തകർച്ച ഉണ്ടാകുമ്പോൾ അതിൽ നിന്ന് കരകയറാൻ ഈ സാങ്കേതികവിദ്യ ഉപയോഗിക്കുന്നു
ഒരു പഴയ ബാക്കപ്പ് (വിഭാഗം 7.5 കാണുക, “പോയിന്റ്-ഇൻ-ടൈം (ഇൻക്രിമെന്റൽ) ബൈനറി ഉപയോഗിച്ച് വീണ്ടെടുക്കൽ
ലോഗ്"). ഉദാഹരണത്തിന്:
ഷെൽ> mysqlbinlog ബിൻലോഗ്.000001 | ക്യു -u വേര് -p
അഥവാ:
ഷെൽ> mysqlbinlog ബിൻലോഗ്.[0-9]* | ക്യു -u വേര് -p
തയ്യാറാക്കിയ പ്രസ്താവനകൾ ആണെങ്കിൽ mysqlbinlog BLOB മൂല്യങ്ങൾ അടങ്ങിയിരിക്കാം, ഇവ കാരണമാകാം
എപ്പോൾ പ്രശ്നങ്ങൾ ക്യു അവരെ പ്രോസസ്സ് ചെയ്യുന്നു. ഈ സാഹചര്യത്തിൽ, അഭ്യർത്ഥിക്കുക ക്യു കൂടെ --ബൈനറി-മോഡ്
ഓപ്ഷൻ.
എന്നതിന്റെ ഔട്ട്പുട്ട് നിങ്ങൾക്ക് റീഡയറക്ട് ചെയ്യാനും കഴിയും mysqlbinlog പകരം ഒരു ടെക്സ്റ്റ് ഫയലിലേക്ക്, നിങ്ങൾക്ക് വേണമെങ്കിൽ
ആദ്യം സ്റ്റേറ്റ്മെന്റ് ലോഗ് പരിഷ്ക്കരിക്കുക (ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് ആവശ്യമില്ലാത്ത പ്രസ്താവനകൾ നീക്കം ചെയ്യാൻ
ചില കാരണങ്ങളാൽ നടപ്പിലാക്കുക). ഫയൽ എഡിറ്റ് ചെയ്ത ശേഷം, അതിൽ അടങ്ങിയിരിക്കുന്ന പ്രസ്താവനകൾ എക്സിക്യൂട്ട് ചെയ്യുക
ഇത് ഇൻപുട്ടായി ഉപയോഗിക്കുന്നതിലൂടെ ക്യു പ്രോഗ്രാം:
ഷെൽ> mysqlbinlog ബിൻലോഗ്.000001 > tmpfile
ഷെൽ>... തിരുത്തുക tmpfile ...
ഷെൽ> ക്യു -u വേര് -p < tmpfile
എപ്പോൾ mysqlbinlog കൂടെ അഭ്യർത്ഥിക്കുന്നു --ആരംഭ സ്ഥാനം ഓപ്ഷൻ, അത് അവ മാത്രം പ്രദർശിപ്പിക്കുന്നു
തന്നിരിക്കുന്ന സ്ഥാനത്തേക്കാൾ വലുതോ തുല്യമോ ആയ ബൈനറി ലോഗിൽ ഓഫ്സെറ്റ് ഉള്ള ഇവന്റുകൾ (ദി
നൽകിയിരിക്കുന്ന സ്ഥാനം ഒരു ഇവന്റിന്റെ തുടക്കവുമായി പൊരുത്തപ്പെടണം). നിർത്താനും ആരംഭിക്കാനുമുള്ള ഓപ്ഷനുകളും ഇതിലുണ്ട്
തന്നിരിക്കുന്ന തീയതിയും സമയവും ഉള്ള ഒരു ഇവന്റ് കാണുമ്പോൾ. പ്രകടനം നടത്താൻ ഇത് നിങ്ങളെ പ്രാപ്തരാക്കുന്നു
ഉപയോഗിച്ച് പോയിന്റ്-ഇൻ-ടൈം വീണ്ടെടുക്കൽ --സ്റ്റോപ്പ്-ഡേറ്റ്ടൈം ഓപ്ഷൻ (ഉദാഹരണത്തിന്, പറയാൻ കഴിയും
"ഇന്ന് രാവിലെ 10:30 ന് എന്റെ ഡാറ്റാബേസുകൾ എങ്ങനെ ഉണ്ടായിരുന്നു എന്നതിലേക്ക് റോൾ ഫോർവേഡ് ചെയ്യുക").
നിങ്ങൾക്ക് MySQL സെർവറിൽ എക്സിക്യൂട്ട് ചെയ്യാൻ ഒന്നിലധികം ബൈനറി ലോഗ് ഉണ്ടെങ്കിൽ, സുരക്ഷിതമായ രീതി
സെർവറിലേക്കുള്ള ഒരൊറ്റ കണക്ഷൻ ഉപയോഗിച്ച് അവയെല്ലാം പ്രോസസ്സ് ചെയ്യുക. അതിനുള്ള ഒരു ഉദാഹരണം ഇതാ
എന്തായിരിക്കാം എന്ന് പ്രകടമാക്കുന്നു സുരക്ഷിതമല്ലാത്തത്:
ഷെൽ> mysqlbinlog ബിൻലോഗ്.000001 | ക്യു -u വേര് -p # അപായം!!
ഷെൽ> mysqlbinlog ബിൻലോഗ്.000002 | ക്യു -u വേര് -p # അപായം!!
സെർവറിലേക്കുള്ള ഒന്നിലധികം കണക്ഷനുകൾ ഉപയോഗിച്ച് ഈ രീതിയിൽ ബൈനറി ലോഗുകൾ പ്രോസസ്സ് ചെയ്യുന്നത് പ്രശ്നങ്ങൾക്ക് കാരണമാകുന്നു
ആദ്യത്തെ ലോഗ് ഫയലിൽ ഒരു താൽക്കാലിക ടേബിൾ പ്രസ്താവനയും രണ്ടാമത്തെ ലോഗും അടങ്ങിയിട്ടുണ്ടെങ്കിൽ
താൽക്കാലിക പട്ടിക ഉപയോഗിക്കുന്ന ഒരു പ്രസ്താവന അടങ്ങിയിരിക്കുന്നു. ആദ്യം എപ്പോൾ ക്യു പ്രക്രിയ
അവസാനിക്കുന്നു, സെർവർ താൽക്കാലിക പട്ടിക ഉപേക്ഷിക്കുന്നു. എപ്പോൾ രണ്ടാമത്തേത് ക്യു പ്രക്രിയ ശ്രമങ്ങൾ
പട്ടിക ഉപയോഗിക്കുന്നതിന്, സെർവർ "അജ്ഞാത പട്ടിക" റിപ്പോർട്ട് ചെയ്യുന്നു.
ഇതുപോലുള്ള പ്രശ്നങ്ങൾ ഒഴിവാക്കാൻ, എ ഉപയോഗിക്കുക സിംഗിൾ ക്യു എല്ലാറ്റിന്റെയും ഉള്ളടക്കം നിർവ്വഹിക്കുന്ന പ്രക്രിയ
നിങ്ങൾ പ്രോസസ്സ് ചെയ്യാൻ ആഗ്രഹിക്കുന്ന ബൈനറി ലോഗുകൾ. അതിനുള്ള ഒരു വഴി ഇതാ:
ഷെൽ> mysqlbinlog ബിൻലോഗ്.000001 ബിൻലോഗ്.000002 | ക്യു -u വേര് -p
മറ്റൊരു സമീപനം എല്ലാ ലോഗുകളും ഒരൊറ്റ ഫയലിലേക്ക് എഴുതുകയും തുടർന്ന് ഫയൽ പ്രോസസ്സ് ചെയ്യുകയുമാണ്:
ഷെൽ> mysqlbinlog ബിൻലോഗ്.000001 > /tmp/statements.sql
ഷെൽ> mysqlbinlog ബിൻലോഗ്.000002 >> /tmp/statements.sql
ഷെൽ> ക്യു -u വേര് -p -e "ഉറവിടം /tmp/statements.sql"
mysqlbinlog കൂടാതെ ഒരു ലോഡ് ഡാറ്റ INFILE പ്രവർത്തനം പുനർനിർമ്മിക്കുന്ന ഔട്ട്പുട്ട് നിർമ്മിക്കാൻ കഴിയും
യഥാർത്ഥ ഡാറ്റ ഫയൽ. mysqlbinlog ഒരു താൽക്കാലിക ഫയലിലേക്ക് ഡാറ്റ പകർത്തി ഒരു ലോഡ് എഴുതുന്നു
ഫയലിനെ സൂചിപ്പിക്കുന്ന ഡാറ്റ ലോക്കൽ INFILE പ്രസ്താവന. ഡയറക്ടറിയുടെ സ്ഥിരസ്ഥിതി സ്ഥാനം
ഈ ഫയലുകൾ എവിടെയാണ് എഴുതിയിരിക്കുന്നത് എന്നത് സിസ്റ്റം-നിർദ്ദിഷ്ടമാണ്. ഒരു ഡയറക്ടറി വ്യക്തമായി വ്യക്തമാക്കുന്നതിന്, ഉപയോഗിക്കുക
The --ലോക്കൽ-ലോഡ് ഓപ്ഷൻ.
കാരണം mysqlbinlog LOAD DATA INFILE പ്രസ്താവനകളെ LOAD DATA LOCAL INFILE ആക്കി മാറ്റുന്നു
പ്രസ്താവനകൾ (അതായത്, ഇത് ലോക്കൽ ചേർക്കുന്നു), നിങ്ങൾ ഉപയോഗിക്കുന്ന ക്ലയന്റും സെർവറും
പ്രാപ്തമാക്കിയ ലോക്കൽ ശേഷി ഉപയോഗിച്ച് സ്റ്റേറ്റ്മെന്റുകൾ ക്രമീകരിച്ചിരിക്കണം. കാണുക
വിഭാഗം 6.1.6, “ലോഡ് ഡാറ്റ ലോക്കലുമായി ബന്ധപ്പെട്ട സുരക്ഷാ പ്രശ്നങ്ങൾ”.
മുന്നറിയിപ്പ്
ലോഡ് ഡാറ്റ ലോക്കൽ സ്റ്റേറ്റ്മെന്റുകൾക്കായി സൃഷ്ടിച്ച താൽക്കാലിക ഫയലുകളാണ് അല്ല ഓട്ടോമാറ്റിയ്ക്കായി
ഇല്ലാതാക്കി, കാരണം നിങ്ങൾ ആ പ്രസ്താവനകൾ നടപ്പിലാക്കുന്നത് വരെ അവ ആവശ്യമാണ്. നിങ്ങൾ
നിങ്ങൾക്ക് സ്റ്റേറ്റ്മെന്റ് ലോഗ് ആവശ്യമില്ലെങ്കിൽ താൽക്കാലിക ഫയലുകൾ സ്വയം ഇല്ലാതാക്കണം.
ഫയലുകൾ താൽക്കാലിക ഫയൽ ഡയറക്ടറിയിൽ കാണാവുന്നതാണ്, കൂടാതെ പേരുകളുമുണ്ട്
യഥാർത്ഥ_ഫയലിന്റെ_പേര്-#-#.
MySQLBINLOG HEX ഡമ്പ് ഫോർമാറ്റ്
ദി --ഹെക്സ്ഡംപ് ഓപ്ഷൻ കാരണങ്ങൾ mysqlbinlog ബൈനറി ലോഗ് ഉള്ളടക്കങ്ങളുടെ ഒരു ഹെക്സ് ഡംപ് നിർമ്മിക്കാൻ:
ഷെൽ> mysqlbinlog --ഹെക്സ്ഡംപ് മാസ്റ്റർ-ബിൻ.000001
ഹെക്സ് ഔട്ട്പുട്ടിൽ #-ൽ ആരംഭിക്കുന്ന കമന്റ് ലൈനുകൾ അടങ്ങിയിരിക്കുന്നു, അതിനാൽ ഔട്ട്പുട്ട് ഇതുപോലെയായിരിക്കാം
മുമ്പത്തെ കമാൻഡിനായി ഇത്:
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 സെറ്റ് @OLD_COMPLETION_TYPE=@@comPLETION_TYPE,COMPLETION_TYPE=0*/;
# 4-ൽ
#051024 17:24:13 സെർവർ ഐഡി 1 end_log_pos 98
# പൊസിഷൻ ടൈംസ്റ്റാമ്പ് തരം മാസ്റ്റർ ഐഡി സൈസ് മാസ്റ്റർ പോസ് ഫ്ലാഗുകൾ
# 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 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...|
# ആരംഭിക്കുക: ബിൻലോഗ് v 4, സെർവർ v 5.0.15-ഡീബഗ്-ലോഗ് സൃഷ്ടിച്ചു 051024 17:24:13
# തുടക്കത്തിൽ
റോൾബാക്ക്;
Hex dump ഔട്ട്പുട്ടിൽ നിലവിൽ ഇനിപ്പറയുന്ന ലിസ്റ്റിലെ ഘടകങ്ങൾ അടങ്ങിയിരിക്കുന്നു. ഈ ഫോർമാറ്റ്
മാറ്റത്തിന് വിധേയമാണ്. (ബൈനറി ലോഗ് ഫോർമാറ്റിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, കാണുക MySQL ആന്തരികങ്ങൾ: ദി
ബൈനറി ലോഗ്[1].
· സ്ഥാനം: ലോഗ് ഫയലിനുള്ളിലെ ബൈറ്റ് സ്ഥാനം.
· ടൈംസ്റ്റാമ്പ്: ഇവന്റ് ടൈംസ്റ്റാമ്പ്. കാണിച്ചിരിക്കുന്ന ഉദാഹരണത്തിൽ, '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 │ ലോഡ് ഡാറ്റയ്ക്കായി ഉപയോഗിച്ചു │
│ │ │ MySQL-ൽ INFILE │
│ │ │ 3.23. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│07 │ SLAVE_EVENT │ ഭാവിയിലെ ഉപയോഗത്തിനായി കരുതിവച്ചിരിക്കുന്നു. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│08 │ CREATE_FILE_EVENT │ ലോഡ് ഡാറ്റയ്ക്കായി ഉപയോഗിച്ചു │
│ │ │ INFILE │
│ │ │ പ്രസ്താവനകൾ. ഇത് │ സൂചിപ്പിക്കുന്നു
│ │ │ തുടക്കം │
│ │ │ അത്തരമൊരു പ്രസ്താവന നടപ്പിലാക്കൽ. എ │
│ │ │ താൽക്കാലിക │
│ │ │ ഫയൽ സൃഷ്ടിച്ചു │
│ │ │ അടിമയിൽ. MySQL 4-ൽ മാത്രം ഉപയോഗിക്കുന്നു. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│09 │ APPEND_BLOCK_EVENT │ ഒരു │ ഉപയോഗത്തിനുള്ള ഡാറ്റ അടങ്ങിയിരിക്കുന്നു
│ │ │ ലോഡ് ഡാറ്റ │
│ │ │ INFILE │
│ │ │ പ്രസ്താവന. ഡാറ്റ │ എന്നതിൽ സംഭരിച്ചിരിക്കുന്നു
│ │ │ താൽക്കാലിക │
│ │ │ സ്ലേവിലെ ഫയൽ. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│0a │ EXEC_LOAD_EVENT │ ലോഡ് ഡാറ്റയ്ക്കായി ഉപയോഗിച്ചു │
│ │ │ INFILE │
│ │ │ പ്രസ്താവനകൾ. │ എന്നതിന്റെ ഉള്ളടക്കം
│ │ │ താൽക്കാലിക ഫയൽ │
│ │ │ അടിമയുടെ പട്ടികയിൽ സൂക്ഷിച്ചിരിക്കുന്നു. │
│ │ │ MySQL 4-ൽ ഉപയോഗിച്ചു
│ │ │ മാത്രം. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│0b │ DELETE_FILE_EVENT │ ഒരു ലോഡ് ഡാറ്റയുടെ റോൾബാക്ക് │
│ │ │ INFILE │
│ │ │ പ്രസ്താവന. താൽക്കാലിക ഫയൽ │
│ │ │ ആയിരിക്കണം │
സ്ലേവിൽ │ │ │ ഇല്ലാതാക്കി. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│0c │ NEW_LOAD_EVENT │ ലോഡ് ഡാറ്റയ്ക്കായി ഉപയോഗിച്ചു │
│ │ │ MySQL-ൽ INFILE │
│ │ │ 4 ഉം അതിനുമുമ്പും. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│0d │ RAND_EVENT │ │ എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ അയയ്ക്കാൻ ഉപയോഗിക്കുന്നു
│ │ │ റാൻഡം മൂല്യങ്ങൾ എങ്കിൽ │
│ │ │ RAND() ഫംഗ്ഷൻ │
│ │ │ ആണ് │
│ │ │ എന്നതിൽ ഉപയോഗിച്ചു
│ │ │ പ്രസ്താവന. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│0e │ USER_VAR_EVENT │ ഉപയോക്തൃ വേരിയബിളുകൾ പകർത്താൻ ഉപയോഗിക്കുന്നു. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│0f │ FORMAT_DESCRIPTION_EVENT │ ഇത് ഒരു ലോഗിന്റെ ആരംഭത്തെ സൂചിപ്പിക്കുന്നു │
│ │ │ MySQL 5 അല്ലെങ്കിൽ അതിനുശേഷമുള്ളത് എഴുതിയ ഫയൽ. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│10 │ XID_EVENT │ ഒരു XA യുടെ പ്രതിബദ്ധത സൂചിപ്പിക്കുന്ന ഇവന്റ് │
│ │ │ ഇടപാട്. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│11 │ BEGIN_LOAD_QUERY_EVENT │ ലോഡ് ഡാറ്റയ്ക്കായി ഉപയോഗിച്ചു │
│ │ │ INFILE │
│ │ │ MySQL 5-ലും അതിനുശേഷമുള്ള പ്രസ്താവനകളും. │
├─────┼──────────────────────────┼──────────────── ─────────────────────┤
│12 │ EXECUTE_LOAD_QUERY_EVENT │ ലോഡ് ഡാറ്റയ്ക്കായി ഉപയോഗിച്ചു │
│ │ │ 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-ൽ ചേർത്തു. │
└─────┴──────────────────────────┴──────────────── ─────────────────────┘
· മാസ്റ്റർ ഐഡി: ഇവന്റ് സൃഷ്ടിച്ച മാസ്റ്ററുടെ സെർവർ ഐഡി.
· വലുപ്പം: ഇവന്റിന്റെ ബൈറ്റുകളിലെ വലുപ്പം.
· മാസ്റ്റർ പോസ്: യഥാർത്ഥ മാസ്റ്റർ ലോഗ് ഫയലിലെ അടുത്ത ഇവന്റിന്റെ സ്ഥാനം.
· പതാകകൾ: 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 വരിയിൽ പരിപാടി DISPLAY
എങ്ങനെയെന്ന് ഇനിപ്പറയുന്ന ഉദാഹരണങ്ങൾ വ്യക്തമാക്കുന്നു mysqlbinlog ഡാറ്റ വ്യക്തമാക്കുന്ന വരി ഇവന്റുകൾ പ്രദർശിപ്പിക്കുന്നു
പരിഷ്ക്കരണങ്ങൾ. ഇവ WRITE_ROWS_EVENT, UPDATE_ROWS_EVENT എന്നിവയുമായുള്ള ഇവന്റുകളുമായി പൊരുത്തപ്പെടുന്നു,
കൂടാതെ DELETE_ROWS_EVENT തരം കോഡുകൾ. ദി --base64-output=ഡീകോഡ്-റോസ് ഒപ്പം --വാക്കുകൾ ഓപ്ഷനുകൾ
വരി ഇവന്റ് ഔട്ട്പുട്ടിനെ ബാധിക്കാൻ ഉപയോഗിച്ചേക്കാം.
സെർവർ റോ-ബേസ്ഡ് ബൈനറി ലോഗിംഗ് ഉപയോഗിക്കുന്നുണ്ടെന്നും നിങ്ങൾ എക്സിക്യൂട്ട് ചെയ്യുന്നുവെന്നും കരുതുക
ഇനിപ്പറയുന്ന പ്രസ്താവനകളുടെ ക്രമം:
പട്ടിക സൃഷ്ടിക്കുക ടി
(
id INT NULL അല്ല,
പേര് വർചാർ(20) ശൂന്യമല്ല,
തീയതി DATE NULL
) എഞ്ചിൻ = InnoDB;
ഇടപാട് ആരംഭിക്കുക;
ടി മൂല്യങ്ങളിലേക്ക് തിരുകുക(1, 'ആപ്പിൾ', NULL);
അപ്ഡേറ്റ് ടി സെറ്റ് പേര് = 'പിയർ', തീയതി = '2009-01-01' എവിടെ ഐഡി = 1;
എവിടെ നിന്ന് ഇല്ലാതാക്കുക id = 1;
കമ്മിറ്റ് ചെയ്യുക;
സ്ഥിരസ്ഥിതിയായി, mysqlbinlog BINLOG ഉപയോഗിച്ച് ബേസ്-64 സ്ട്രിംഗുകളായി എൻകോഡ് ചെയ്ത വരി ഇവന്റുകൾ പ്രദർശിപ്പിക്കുന്നു
പ്രസ്താവനകൾ. അധിക ലൈനുകൾ ഒഴിവാക്കി, നിർമ്മിച്ച വരി ഇവന്റുകളുടെ ഔട്ട്പുട്ട്
മുമ്പത്തെ പ്രസ്താവന ക്രമം ഇതുപോലെ കാണപ്പെടുന്നു:
ഷെൽ> mysqlbinlog log_file
...
# 218-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 258 Write_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
BINLOG'
fAS3SBMBAAAALAAAANoAAAAABEAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAKAAAAAIBAAAQABEAAAAAEAAA//8AQAAAAVhcHBsZQ==
'/*!*/;
...
# 302-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 356 Update_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
BINLOG'
fAS3SBMBAAAALAAAAC4BAAAABEAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAAA////AEAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
...
# 400-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 442 Delete_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
BINLOG'
fAS3SBMBAAAALAAJABAAAAABEAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAKgAAALoBAAAQABEAAAAAAAEAAA//4AQAAAARwZWFyIbIP
'/*!*/;
വരി ഇവന്റുകൾ "pseudo-SQL" പ്രസ്താവനകളുടെ രൂപത്തിൽ കമന്റുകളായി കാണുന്നതിന്, റൺ ചെയ്യുക mysqlbinlog
കൂടെ --വാക്കുകൾ or -v ഓപ്ഷൻ. ഔട്ട്പുട്ടിൽ ### എന്ന് തുടങ്ങുന്ന വരികൾ അടങ്ങിയിരിക്കും:
ഷെൽ> mysqlbinlog -v log_file
...
# 218-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 258 Write_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
BINLOG'
fAS3SBMBAAAALAAAANoAAAAABEAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAKAAAAAIBAAAQABEAAAAAEAAA//8AQAAAAVhcHBsZQ==
'/*!*/;
### test.t-യിലേക്ക് തിരുകുക
### സെറ്റ്
### @1=1
### @2='ആപ്പിൾ'
### @3=NULL
...
# 302-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 356 Update_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
BINLOG'
fAS3SBMBAAAALAAAAC4BAAAABEAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAAA////AEAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
### അപ്ഡേറ്റ് test.t
### എവിടെ
### @1=1
### @2='ആപ്പിൾ'
### @3=NULL
### സെറ്റ്
### @1=1
### @2='പിയർ'
### @3='2009:01:01'
...
# 400-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 442 Delete_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
BINLOG'
fAS3SBMBAAAALAAJABAAAAABEAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAKgAAALoBAAAQABEAAAAAAAEAAA//4AQAAAARwZWFyIbIP
'/*!*/;
### test.t-ൽ നിന്ന് ഇല്ലാതാക്കുക
### എവിടെ
### @1=1
### @2='പിയർ'
### @3='2009:01:01'
വ്യക്തമാക്കുക --വാക്കുകൾ or -v ഡാറ്റാ തരങ്ങളും ഓരോന്നിനും ചില മെറ്റാഡാറ്റയും പ്രദർശിപ്പിക്കാൻ രണ്ടുതവണ
കോളം. ഓരോ കോളം മാറ്റത്തിനും ശേഷം ഔട്ട്പുട്ടിൽ ഒരു അധിക അഭിപ്രായം അടങ്ങിയിരിക്കും:
ഷെൽ> mysqlbinlog -വിവി log_file
...
# 218-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 258 Write_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
BINLOG'
fAS3SBMBAAAALAAAANoAAAAABEAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAKAAAAAIBAAAQABEAAAAAEAAA//8AQAAAAVhcHBsZQ==
'/*!*/;
### test.t-യിലേക്ക് തിരുകുക
### സെറ്റ്
### @1=1 /* INT മെറ്റാ=0 nullable=0 is_null=0 */
### @2='ആപ്പിൾ' /* VARSTRING(20) മെറ്റാ=20 nullable=0 is_null=0 */
### @3=NULL /* VARSTRING(20) മെറ്റാ=0 nullable=1 is_null=1 */
...
# 302-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 356 Update_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
BINLOG'
fAS3SBMBAAAALAAAAC4BAAAABEAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAAA////AEAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
### അപ്ഡേറ്റ് test.t
### എവിടെ
### @1=1 /* INT മെറ്റാ=0 nullable=0 is_null=0 */
### @2='ആപ്പിൾ' /* VARSTRING(20) മെറ്റാ=20 nullable=0 is_null=0 */
### @3=NULL /* VARSTRING(20) മെറ്റാ=0 nullable=1 is_null=1 */
### സെറ്റ്
### @1=1 /* INT മെറ്റാ=0 nullable=0 is_null=0 */
### @2='പിയർ' /* VARSTRING(20) മെറ്റാ=20 nullable=0 is_null=0 */
### @3='2009:01:01' /* DATE മെറ്റാ=0 nullable=1 is_null=0 */
...
# 400-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 442 Delete_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
BINLOG'
fAS3SBMBAAAALAAJABAAAAABEAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAKgAAALoBAAAQABEAAAAAAAEAAA//4AQAAAARwZWFyIbIP
'/*!*/;
### test.t-ൽ നിന്ന് ഇല്ലാതാക്കുക
### എവിടെ
### @1=1 /* INT മെറ്റാ=0 nullable=0 is_null=0 */
### @2='പിയർ' /* VARSTRING(20) മെറ്റാ=20 nullable=0 is_null=0 */
### @3='2009:01:01' /* DATE മെറ്റാ=0 nullable=1 is_null=0 */
നിനക്ക് പറയാം mysqlbinlog വരി ഇവന്റുകൾക്കായി BINLOG പ്രസ്താവനകൾ ഉപയോഗിച്ച് അടിച്ചമർത്താൻ
--base64-output=ഡീകോഡ്-റോസ് ഓപ്ഷൻ. ഇതിന് സമാനമാണ് --base64-output=ഒരിക്കലും പക്ഷേ ചെയ്യുന്നില്ല
ഒരു വരി ഇവന്റ് കണ്ടെത്തിയാൽ ഒരു പിശകോടെ പുറത്തുകടക്കുക. എന്നിവയുടെ സംയോജനം --base64-output=ഡീകോഡ്-റോസ്
ഒപ്പം --വാക്കുകൾ വരി ഇവന്റുകൾ SQL പ്രസ്താവനകളായി മാത്രം കാണുന്നതിന് സൗകര്യപ്രദമായ മാർഗം നൽകുന്നു:
ഷെൽ> mysqlbinlog -v --base64-output=ഡീകോഡ്-റോസ് log_file
...
# 218-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 258 Write_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
### test.t-യിലേക്ക് തിരുകുക
### സെറ്റ്
### @1=1
### @2='ആപ്പിൾ'
### @3=NULL
...
# 302-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 356 Update_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
### അപ്ഡേറ്റ് test.t
### എവിടെ
### @1=1
### @2='ആപ്പിൾ'
### @3=NULL
### സെറ്റ്
### @1=1
### @2='പിയർ'
### @3='2009:01:01'
...
# 400-ൽ
#080828 15:03:08 സെർവർ ഐഡി 1 end_log_pos 442 Delete_rows: table id 17 ഫ്ലാഗുകൾ: STMT_END_F
### test.t-ൽ നിന്ന് ഇല്ലാതാക്കുക
### എവിടെ
### @1=1
### @2='പിയർ'
### @3='2009:01:01'
കുറിപ്പ്
നിങ്ങൾ വീണ്ടും എക്സിക്യൂട്ട് ചെയ്യാൻ ഉദ്ദേശിക്കുന്നുവെങ്കിൽ BINLOG പ്രസ്താവനകൾ അടിച്ചമർത്തരുത് mysqlbinlog
.ട്ട്പുട്ട്.
നിർമ്മിച്ച SQL പ്രസ്താവനകൾ --വാക്കുകൾ വരി ഇവന്റുകൾ എന്നതിനേക്കാൾ കൂടുതൽ വായിക്കാൻ കഴിയും
അനുബന്ധ BINLOG പ്രസ്താവനകൾ. എന്നിരുന്നാലും, അവ യഥാർത്ഥവുമായി കൃത്യമായി പൊരുത്തപ്പെടുന്നില്ല
ഇവന്റുകൾ സൃഷ്ടിച്ച SQL പ്രസ്താവനകൾ. ഇനിപ്പറയുന്ന പരിമിതികൾ ബാധകമാണ്:
· യഥാർത്ഥ കോളത്തിന്റെ പേരുകൾ നഷ്ടപ്പെടുകയും പകരം @ എന്ന് പകരം വയ്ക്കുകയും ചെയ്യുന്നുNഎവിടെ N ഒരു കോളം നമ്പർ ആണ്.
സ്ട്രിംഗിനെ ബാധിക്കുന്ന ബൈനറി ലോഗിൽ പ്രതീക സെറ്റ് വിവരങ്ങൾ ലഭ്യമല്ല
കോളം ഡിസ്പ്ലേ:
· അനുബന്ധ ബൈനറി, നോൺ-ബൈനറി സ്ട്രിംഗുകൾ തമ്മിൽ വേർതിരിവില്ല
തരങ്ങൾ (ബൈനറി, ചാർ, വാർബിനറി, വർചാർ, ബ്ലോബ്, ടെക്സ്റ്റ്). ഔട്ട്പുട്ട് എ ഉപയോഗിക്കുന്നു
നിശ്ചിത ദൈർഘ്യമുള്ള സ്ട്രിംഗുകൾക്കുള്ള STRING എന്നതിന്റെ ഡാറ്റാ തരവും വേരിയബിൾ ദൈർഘ്യത്തിന് VARSTRING എന്നതും
സ്ട്രിംഗുകൾ.
· മൾട്ടിബൈറ്റ് പ്രതീക സെറ്റുകൾക്ക്, ഒരു പ്രതീകത്തിന് പരമാവധി ബൈറ്റുകൾ ഇല്ല
ബൈനറി ലോഗിൽ ഉണ്ട്, അതിനാൽ സ്ട്രിംഗ് തരങ്ങളുടെ നീളം ബൈറ്റുകളിൽ പ്രദർശിപ്പിക്കും
കഥാപാത്രങ്ങളേക്കാൾ. ഉദാഹരണത്തിന്, സ്ട്രിംഗ്(4) ഡാറ്റ തരമായി ഉപയോഗിക്കും
ഈ ഏതെങ്കിലും കോളം തരങ്ങളിൽ നിന്നുള്ള മൂല്യങ്ങൾക്കായി:
ടാങ്ക്(4) ക്യാരക്ടർ സെറ്റ് ലാറ്റിൻ1
ടാങ്ക്(2) പ്രതീക സെറ്റ് ucs2
· UPDATE_ROWS_EVENT, UPDATE പ്രസ്താവനകളുടെ ഇവന്റുകളുടെ സംഭരണ ഫോർമാറ്റ് കാരണം
SET ക്ലോസിന് മുമ്പുള്ള WHERE ക്ലോസിനൊപ്പം പ്രദർശിപ്പിക്കും.
വരി ഇവന്റുകളുടെ ശരിയായ വ്യാഖ്യാനത്തിന് ഫോർമാറ്റ് വിവരണത്തിൽ നിന്നുള്ള വിവരങ്ങൾ ആവശ്യമാണ്
ബൈനറി ലോഗിന്റെ തുടക്കത്തിലെ സംഭവം. കാരണം mysqlbinlog മുൻകൂട്ടി അറിയുന്നില്ല
ലോഗിന്റെ ബാക്കി ഭാഗങ്ങളിൽ വരി ഇവന്റുകൾ ഉണ്ടെങ്കിലും, ഡിഫോൾട്ടായി അത് ഫോർമാറ്റ് പ്രദർശിപ്പിക്കുന്നു
ഔട്ട്പുട്ടിന്റെ പ്രാരംഭ ഭാഗത്ത് ഒരു BINLOG സ്റ്റേറ്റ്മെന്റ് ഉപയോഗിച്ചുള്ള വിവരണ പരിപാടി.
ബൈനറി ലോഗിൽ ഒരു BINLOG പ്രസ്താവന ആവശ്യമുള്ള ഇവന്റുകളൊന്നും അടങ്ങിയിട്ടില്ലെന്ന് അറിയാമെങ്കിൽ (അത്
ആണ്, വരി ഇവന്റുകൾ ഇല്ല), the --base64-output=ഒരിക്കലും ഈ തലക്കെട്ട് തടയാൻ ഓപ്ഷൻ ഉപയോഗിക്കാം
എഴുതിയതിൽ നിന്ന്.
ഉപയോഗിക്കുന്നു MySQLBINLOG TO മടങ്ങുക UP ബൈനറി ലോഗ് ഫയലുകൾ
സ്ഥിരസ്ഥിതിയായി, mysqlbinlog ബൈനറി ലോഗ് ഫയലുകൾ വായിക്കുകയും അവയുടെ ഉള്ളടക്കങ്ങൾ ടെക്സ്റ്റ് ഫോർമാറ്റിൽ പ്രദർശിപ്പിക്കുകയും ചെയ്യുന്നു.
ഫയലുകൾക്കുള്ളിലെ ഇവന്റുകൾ കൂടുതൽ എളുപ്പത്തിൽ പരിശോധിക്കാനും അവ വീണ്ടും എക്സിക്യൂട്ട് ചെയ്യാനും ഇത് നിങ്ങളെ പ്രാപ്തമാക്കുന്നു
(ഉദാഹരണത്തിന്, ഔട്ട്പുട്ട് ഇൻപുട്ടായി ഉപയോഗിക്കുന്നതിലൂടെ ക്യു). mysqlbinlog ലോഗ് ഫയലുകൾ വായിക്കാൻ കഴിയും
പ്രാദേശിക ഫയൽ സിസ്റ്റത്തിൽ നിന്ന് നേരിട്ട്, അല്ലെങ്കിൽ, കൂടെ --read-from-remote-server ഓപ്ഷൻ, അതിന് കഴിയും
ഒരു സെർവറിലേക്ക് കണക്റ്റുചെയ്ത് ആ സെർവറിൽ നിന്ന് ബൈനറി ലോഗ് ഉള്ളടക്കങ്ങൾ അഭ്യർത്ഥിക്കുക. mysqlbinlog എഴുതുന്നു
ടെക്സ്റ്റ് ഔട്ട്പുട്ട് അതിന്റെ സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിലേക്കോ അല്ലെങ്കിൽ മൂല്യമായി പേരിട്ടിരിക്കുന്ന ഫയലിലേക്കോ ആണ്
--ഫലം-ഫയൽ=ഫയലിന്റെ പേര് ആ ഓപ്ഷൻ നൽകിയിട്ടുണ്ടെങ്കിൽ ഓപ്ഷൻ.
MySQL 5.6 മുതൽ, mysqlbinlog ബൈനറി ലോഗ് ഫയലുകൾ വായിക്കാനും അതിൽ അടങ്ങിയിരിക്കുന്ന പുതിയ ഫയലുകൾ എഴുതാനും കഴിയും
ഒരേ ഉള്ളടക്കം-അതായത്, ടെക്സ്റ്റ് ഫോർമാറ്റിന് പകരം ബൈനറി ഫോർമാറ്റിൽ. ഈ കഴിവ് സാധ്യമാക്കുന്നു
ഒരു ബൈനറി ലോഗ് അതിന്റെ യഥാർത്ഥ ഫോർമാറ്റിൽ നിങ്ങൾക്ക് എളുപ്പത്തിൽ ബാക്കപ്പ് ചെയ്യാം. mysqlbinlog ഒരു സ്റ്റാറ്റിക് ഉണ്ടാക്കാം
ബാക്കപ്പ്, ഒരു കൂട്ടം ലോഗ് ഫയലുകൾ ബാക്കപ്പ് ചെയ്യുകയും അവസാന ഫയലിന്റെ അവസാനം ആകുമ്പോൾ നിർത്തുകയും ചെയ്യുന്നു
എത്തി. സെർവറുമായി ബന്ധിപ്പിച്ച് തുടർച്ചയായി ("തത്സമയ") ബാക്കപ്പ് ഉണ്ടാക്കാനും ഇതിന് കഴിയും
അവസാന ലോഗ് ഫയലിന്റെ അവസാനത്തിൽ എത്തുകയും പുതിയ ഇവന്റുകൾ അതേപടി പകർത്തുന്നത് തുടരുകയും ചെയ്യുമ്പോൾ
സൃഷ്ടിച്ചത്. തുടർച്ചയായ ബാക്കപ്പ് പ്രവർത്തനത്തിൽ, mysqlbinlog കണക്ഷൻ അവസാനിക്കുന്നത് വരെ പ്രവർത്തിക്കുന്നു (ഇതിനായി
ഉദാഹരണത്തിന്, സെർവർ പുറത്തുകടക്കുമ്പോൾ) അല്ലെങ്കിൽ mysqlbinlog നിർബന്ധിതമായി അവസാനിപ്പിക്കുന്നു. കണക്ഷൻ ചെയ്യുമ്പോൾ
അവസാനിക്കുന്നു, mysqlbinlog ഒരു സ്ലേവ് റെപ്ലിക്കേഷനിൽ നിന്ന് വ്യത്യസ്തമായി കണക്ഷൻ കാത്തിരിക്കുകയും വീണ്ടും ശ്രമിക്കുകയും ചെയ്യുന്നില്ല
സെർവർ. സെർവർ പുനരാരംഭിച്ചതിന് ശേഷവും ഒരു തത്സമയ ബാക്കപ്പ് തുടരുന്നതിന്, നിങ്ങൾ ഇത് ചെയ്യണം
പുനരാരംഭിക്കുക mysqlbinlog.
ബൈനറി ലോഗ് ബാക്കപ്പിന് നിങ്ങൾ അഭ്യർത്ഥിക്കേണ്ടതുണ്ട് mysqlbinlog കുറഞ്ഞത് രണ്ട് ഓപ്ഷനുകൾക്കൊപ്പം:
· ദി --read-from-remote-server (അഥവാ -R) ഓപ്ഷൻ പറയുന്നു mysqlbinlog ഒരു സെർവറിലേക്ക് ബന്ധിപ്പിക്കാൻ
അതിന്റെ ബൈനറി ലോഗ് അഭ്യർത്ഥിക്കുകയും ചെയ്യുക. (ഇത് ഒരു സ്ലേവ് റെപ്ലിക്കേഷൻ സെർവർ ബന്ധിപ്പിക്കുന്നതിന് സമാനമാണ്
അതിന്റെ മാസ്റ്റർ സെർവറിലേക്ക്.)
· ദി --റോ ഓപ്ഷൻ പറയുന്നു mysqlbinlog റോ (ബൈനറി) ഔട്ട്പുട്ട് എഴുതാൻ, ടെക്സ്റ്റ് ഔട്ട്പുട്ട് അല്ല.
അതിനൊപ്പം --read-from-remote-server, മറ്റ് ഓപ്ഷനുകൾ വ്യക്തമാക്കുന്നത് സാധാരണമാണ്: --ഹോസ്റ്റ്
സെർവർ എവിടെയാണ് പ്രവർത്തിക്കുന്നതെന്ന് സൂചിപ്പിക്കുന്നു, കൂടാതെ നിങ്ങൾ കണക്ഷൻ ഓപ്ഷനുകളും വ്യക്തമാക്കേണ്ടതുണ്ട്
അതുപോലെ --ഉപയോക്താവ് ഒപ്പം --password.
മറ്റ് നിരവധി ഓപ്ഷനുകൾ സംയോജിച്ച് ഉപയോഗപ്രദമാണ് --റോ:
· --നിർത്തരുത്-ഒരിക്കലും: അവസാന ലോഗ് ഫയലിന്റെ അവസാനത്തിൽ എത്തിയതിന് ശേഷം സെർവറുമായി ബന്ധം നിലനിർത്തുക
പുതിയ ഇവന്റുകൾ വായിക്കുന്നത് തുടരുക.
· --stop-never-slave-server-id=id: സെർവർ ഐഡി അത് mysqlbinlog സെർവറിലേക്ക് റിപ്പോർട്ട് ചെയ്യുന്നു
എപ്പോൾ --നിർത്തരുത്-ഒരിക്കലും ഉപയോഗിക്കുന്നു. സ്ഥിരസ്ഥിതി 65535 ആണ്. ഒരു വൈരുദ്ധ്യം ഒഴിവാക്കാൻ ഇത് ഉപയോഗിക്കാം
ഒരു സ്ലേവ് സെർവറിന്റെയോ മറ്റെന്തെങ്കിലുമോ ഐഡി ഉപയോഗിച്ച് mysqlbinlog പ്രക്രിയ. എന്ന വിഭാഗം കാണുക
"MYSQLBINLOG സെർവർ ഐഡി വ്യക്തമാക്കൽ".
· --ഫല-ഫയൽ: ഔട്ട്പുട്ട് ഫയൽ പേരുകൾക്കുള്ള ഒരു പ്രിഫിക്സ്, പിന്നീട് വിവരിച്ചതുപോലെ.
ഒരു സെർവറിന്റെ ബൈനറി ലോഗ് ഫയലുകൾ ബാക്കപ്പ് ചെയ്യാൻ mysqlbinlog, നിങ്ങൾ ഫയലിന്റെ പേരുകൾ വ്യക്തമാക്കണം
യഥാർത്ഥത്തിൽ സെർവറിൽ നിലവിലുണ്ട്. നിങ്ങൾക്ക് പേരുകൾ അറിയില്ലെങ്കിൽ, സെർവറുമായി ബന്ധിപ്പിച്ച് ഉപയോഗിക്കുക
നിലവിലെ പേരുകൾ കാണുന്നതിന് ഷോ ബൈനറി ലോഗ്സ് സ്റ്റേറ്റ്മെന്റ്. പ്രസ്താവന എന്ന് കരുതുക
ഈ ഔട്ട്പുട്ട് ഉത്പാദിപ്പിക്കുന്നു:
mysql> കാണിക്കുക ബൈനറി ലോഗുകൾ;
+---------------+-------------+
| ലോഗ്_നാമം | ഫയൽ_വലിപ്പം |
+---------------+-------------+
| ബിൻലോഗ്.000130 | 27459 |
| ബിൻലോഗ്.000131 | 13719 |
| ബിൻലോഗ്.000132 | 43268 |
+---------------+-------------+
ആ വിവരങ്ങൾ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് ഉപയോഗിക്കാം mysqlbinlog ബൈനറി ലോഗ് കറന്റിലേക്ക് ബാക്കപ്പ് ചെയ്യാൻ
താഴെ പറയുന്ന ഡയറക്ടറി (ഓരോ കമാൻഡും ഒരൊറ്റ വരിയിൽ നൽകുക):
binlog.000130 മുഖേന binlog.000132-ന്റെ സ്റ്റാറ്റിക് ബാക്കപ്പ് ഉണ്ടാക്കാൻ, ഇവയിലേതെങ്കിലും ഉപയോഗിക്കുക
കമാൻഡുകൾ:
mysqlbinlog --read-from-remote-server --host=ഹോസ്റ്റ്_നാമം --റോ
ബിൻലോഗ്.000130 ബിൻലോഗ്.000131 ബിൻലോഗ്.000132
mysqlbinlog --read-from-remote-server --host=ഹോസ്റ്റ്_നാമം --റോ
--ടു-ലാസ്റ്റ്-ലോഗ് ബിൻലോഗ്.000130
ആദ്യ കമാൻഡ് എല്ലാ ഫയലിന്റെ പേരും വ്യക്തമായി വ്യക്തമാക്കുന്നു. രണ്ടാമത്തെ പേരുകൾ മാത്രം
ആദ്യ ഫയലും ഉപയോഗവും --ടു-ലാസ്റ്റ്-ലോഗ് അവസാനമായി വായിക്കാൻ. ഇവ തമ്മിലുള്ള വ്യത്യാസം
സെർവർ binlog.000133 മുമ്പ് തുറക്കുകയാണെങ്കിൽ എന്നതാണ് കമാൻഡുകൾ mysqlbinlog
ബിൻലോഗിന്റെ അവസാനം എത്തുന്നു.000132, ആദ്യ കമാൻഡ് അത് വായിക്കില്ല, എന്നാൽ രണ്ടാമത്തേത്
കമാൻഡ് ചെയ്യും.
· ഇതിൽ ഒരു തത്സമയ ബാക്കപ്പ് ഉണ്ടാക്കാൻ mysqlbinlog നിലവിലുള്ളത് പകർത്താൻ binlog.000130-ൽ ആരംഭിക്കുന്നു
ഫയലുകൾ ലോഗ് ചെയ്യുക, സെർവർ സൃഷ്ടിക്കുന്നതിനനുസരിച്ച് പുതിയ ഇവന്റുകൾ പകർത്താൻ കണക്റ്റ് ചെയ്തിരിക്കുന്നു:
mysqlbinlog --read-from-remote-server --host=ഹോസ്റ്റ്_നാമം --റോ
--stop-never binlog.000130
കൂടെ --നിർത്തരുത്-ഒരിക്കലും, അത് വ്യക്തമാക്കേണ്ടതില്ല --ടു-ലാസ്റ്റ്-ലോഗ് അവസാനം വരെ വായിക്കാൻ
ലോഗ് ഫയൽ കാരണം ആ ഓപ്ഷൻ സൂചിപ്പിച്ചിരിക്കുന്നു.
ഔട്ട്പുട്ട് ഫയൽ നാമകരണം.പിപി ഇല്ലാതെ --റോ, mysqlbinlog ടെക്സ്റ്റ് ഔട്ട്പുട്ട് നിർമ്മിക്കുന്നു
--ഫല-ഫയൽ ഓപ്ഷൻ, നൽകിയിട്ടുണ്ടെങ്കിൽ, എല്ലാ ഔട്ട്പുട്ടിലേക്കും ഒരൊറ്റ ഫയലിന്റെ പേര് വ്യക്തമാക്കുന്നു
എഴുതിയിരിക്കുന്നു. കൂടെ --റോ, mysqlbinlog ഓരോ ലോഗ് ഫയലിനും ഒരു ബൈനറി ഔട്ട്പുട്ട് ഫയൽ എഴുതുന്നു
സെർവറിൽ നിന്ന് മാറ്റി. സ്വതവേ, mysqlbinlog നിലവിലുള്ള ഫയലുകൾ എഴുതുന്നു
യഥാർത്ഥ ലോഗ് ഫയലുകളുടെ അതേ പേരുകളുള്ള ഡയറക്ടറി. ഔട്ട്പുട്ട് ഫയലുകളുടെ പേരുകൾ പരിഷ്ക്കരിക്കുന്നതിന്,
ഉപയോഗിക്കുക --ഫല-ഫയൽ ഓപ്ഷൻ. അതുമായി ബന്ധപെട്ടു --റോ, --ഫല-ഫയൽ ഓപ്ഷൻ മൂല്യം ആണ്
ഔട്ട്പുട്ട് ഫയലുകളുടെ പേരുകൾ പരിഷ്ക്കരിക്കുന്ന ഒരു പ്രിഫിക്സായി കണക്കാക്കുന്നു.
ഒരു സെർവറിന് നിലവിൽ binlog.000999 എന്നതും അതിനുമുകളിലുള്ളതുമായ ബൈനറി ലോഗ് ഫയലുകൾ ഉണ്ടെന്ന് കരുതുക. നിങ്ങൾ എങ്കിൽ
ഉപയോഗം mysqlbinlog --റോ ഫയലുകൾ ബാക്കപ്പ് ചെയ്യാൻ, the --ഫല-ഫയൽ ഓപ്ഷൻ ഔട്ട്പുട്ട് ഫയൽ നിർമ്മിക്കുന്നു
ഇനിപ്പറയുന്ന പട്ടികയിൽ കാണിച്ചിരിക്കുന്നതുപോലെ പേരുകൾ. നിങ്ങൾക്ക് ഒരു നിർദ്ദിഷ്ട ഡയറക്ടറിയിലേക്ക് ഫയലുകൾ എഴുതാം
ആരംഭിക്കുന്നത് --ഫല-ഫയൽ ഡയറക്ടറി പാതയ്ക്കൊപ്പമുള്ള മൂല്യം. എങ്കിൽ --ഫല-ഫയൽ മൂല്യം
ഒരു ഡയറക്ടറി നാമം മാത്രം ഉൾക്കൊള്ളുന്നു, മൂല്യം പാത്ത്നെയിം സെപ്പറേറ്ററിൽ അവസാനിക്കണം
സ്വഭാവം. ഔട്ട്പുട്ട് ഫയലുകൾ നിലവിലുണ്ടെങ്കിൽ അവ തിരുത്തിയെഴുതപ്പെടും.
┌─────────────────────┬─────────────────────────── ─┐
│--ഫല-ഫയൽ ഓപ്ഷൻ │ ഔട്ട്പുട്ട് ഫയല് പേരുകൾ │
├─────────────────────┼─────────────────────────── ─┤
│--ഫലം-ഫയൽ=x │ xbinlog.000999 കൂടാതെ │
├─────────────────────┼─────────────────────────── ─┤
│--ഫലം-ഫയൽ=/ tmp / │ /tmp/binlog.000999 കൂടാതെ │
├─────────────────────┼─────────────────────────── ─┤
│--result-file=/tmp/x │ /tmp/xbinlog.000999 കൂടാതെ │
└─────────────────────┴─────────────────────────── ─┘
ഉദാഹരണം: mysqldump + mysqlbinlog Backup and Restore.PP. ഇനിപ്പറയുന്ന ഉദാഹരണം വിവരിക്കുന്നു
എങ്ങനെ ഉപയോഗിക്കണമെന്ന് കാണിക്കുന്ന ഒരു ലളിതമായ രംഗം mysqldump ഒപ്പം mysqlbinlog ബാക്കപ്പ് ചെയ്യാൻ ഒരുമിച്ച് എ
സെർവറിന്റെ ഡാറ്റയും ബൈനറി ലോഗും, ഡാറ്റ നഷ്ടപ്പെട്ടാൽ സെർവർ പുനഃസ്ഥാപിക്കാൻ ബാക്കപ്പ് എങ്ങനെ ഉപയോഗിക്കാം
സംഭവിക്കുന്നു. സെർവർ ഹോസ്റ്റിൽ പ്രവർത്തിക്കുന്നുവെന്ന് ഉദാഹരണം അനുമാനിക്കുന്നു ഹോസ്റ്റ്_നാമം അതിന്റെ ആദ്യത്തേതും
ബൈനറി ലോഗ് ഫയലിന്റെ പേര് binlog.000999 എന്നാണ്. ഓരോ കമാൻഡും ഒരൊറ്റ വരിയിൽ നൽകുക.
ഉപയോഗം mysqlbinlog ബൈനറി ലോഗിന്റെ തുടർച്ചയായ ബാക്കപ്പ് ഉണ്ടാക്കാൻ:
mysqlbinlog --read-from-remote-server --host=ഹോസ്റ്റ്_നാമം --റോ
--stop-never binlog.000999
ഉപയോഗം mysqldump സെർവറിന്റെ ഡാറ്റയുടെ സ്നാപ്പ്ഷോട്ടായി ഒരു ഡംപ് ഫയൽ സൃഷ്ടിക്കാൻ. ഉപയോഗിക്കുക
--എല്ലാ ഡാറ്റാബേസുകളും, --സംഭവങ്ങൾ, ഒപ്പം --ദിനചര്യകൾ എല്ലാ ഡാറ്റയും ബാക്കപ്പ് ചെയ്യാൻ, കൂടാതെ --master-data=2 ലേക്ക്
ഡംപ് ഫയലിൽ നിലവിലെ ബൈനറി ലോഗ് കോർഡിനേറ്റുകൾ ഉൾപ്പെടുത്തുക.
mysqldump --host=ഹോസ്റ്റ്_നാമം --all-databases --events --routines --master-data=2> dump_file
എക്സിക്യൂട്ട് ചെയ്യുക mysqldump ആവശ്യാനുസരണം പുതിയ സ്നാപ്പ്ഷോട്ടുകൾ സൃഷ്ടിക്കാൻ ഇടയ്ക്കിടെ കമാൻഡ് ചെയ്യുക.
ഡാറ്റ നഷ്ടപ്പെടുകയാണെങ്കിൽ (ഉദാഹരണത്തിന്, സെർവർ തകരാറിലാണെങ്കിൽ), ഏറ്റവും പുതിയ ഡംപ് ഫയൽ ഉപയോഗിക്കുക
ഡാറ്റ പുനഃസ്ഥാപിക്കുക:
mysql --host=ഹോസ്റ്റ്_നാമം -യു റൂട്ട് -പി dump_file
അതിനുശേഷം എഴുതിയ ഇവന്റുകൾ വീണ്ടും എക്സിക്യൂട്ട് ചെയ്യാൻ ബൈനറി ലോഗ് ബാക്കപ്പ് ഉപയോഗിക്കുക
ഡംപ് ഫയലിൽ ലിസ്റ്റ് ചെയ്തിരിക്കുന്ന കോർഡിനേറ്റുകൾ. ഫയലിലെ കോർഡിനേറ്റുകൾ ഇതുപോലെയാണെന്ന് കരുതുക
ഈ:
-- മാസ്റ്ററിനെ MASTER_LOG_FILE='binlog.001002' എന്നതിലേക്ക് മാറ്റുക, MASTER_LOG_POS=27284;
ഏറ്റവും പുതിയ ബാക്കപ്പ് ലോഗ് ഫയലിന് binlog.001004 എന്നാണ് പേരിട്ടിരിക്കുന്നതെങ്കിൽ, ലോഗ് ഇവന്റുകൾ വീണ്ടും പ്രവർത്തിപ്പിക്കുക
ഇതുപോലെ:
mysqlbinlog --start-position=27284 binlog.001002 binlog.001003 binlog.001004
| mysql --host=ഹോസ്റ്റ്_നാമം -യു റൂട്ട് -പി
ഇതിലേക്ക് ബാക്കപ്പ് ഫയലുകൾ (ഡംപ് ഫയലും ബൈനറി ലോഗ് ഫയലുകളും) പകർത്തുന്നത് നിങ്ങൾക്ക് എളുപ്പമാണെന്ന് തോന്നിയേക്കാം
വീണ്ടെടുക്കൽ പ്രവർത്തനം എളുപ്പമാക്കുന്നതിന് സെർവർ ഹോസ്റ്റ്, അല്ലെങ്കിൽ MySQL അനുവദിക്കുന്നില്ലെങ്കിൽ
വിദൂര റൂട്ട് ആക്സസ്.
വ്യക്തമാക്കുന്നത് ദി MySQLBINLOG സെർവർ ID
കൂടെ ആവാഹിച്ചപ്പോൾ --read-from-remote-server ഓപ്ഷൻ, mysqlbinlog ഒരു MySQL-ലേക്ക് ബന്ധിപ്പിക്കുന്നു
സെർവർ, സ്വയം തിരിച്ചറിയാൻ ഒരു സെർവർ ഐഡി വ്യക്തമാക്കുന്നു, കൂടാതെ ബൈനറി ലോഗ് ഫയലുകൾ അഭ്യർത്ഥിക്കുന്നു
സെർവർ. നിങ്ങൾക്ക് ഉപയോഗിക്കാം mysqlbinlog ഒരു സെർവറിൽ നിന്ന് പല തരത്തിൽ ലോഗ് ഫയലുകൾ അഭ്യർത്ഥിക്കാൻ:
· വ്യക്തമായി പേരിട്ടിരിക്കുന്ന ഫയലുകളുടെ ഒരു സെറ്റ് വ്യക്തമാക്കുക: ഓരോ ഫയലിനും, mysqlbinlog ബന്ധിപ്പിക്കുന്നു ഒപ്പം
ഒരു ബിൻലോഗ് ഡംപ് കമാൻഡ് പുറപ്പെടുവിക്കുന്നു. സെർവർ ഫയൽ അയയ്ക്കുകയും വിച്ഛേദിക്കുകയും ചെയ്യുന്നു. ഒന്നുണ്ട്
ഓരോ ഫയലിനും കണക്ഷൻ.
· ആരംഭ ഫയൽ വ്യക്തമാക്കുക ഒപ്പം --ടു-ലാസ്റ്റ്-ലോഗ്: mysqlbinlog ഒരു ബിൻലോഗ് ബന്ധിപ്പിക്കുകയും നൽകുകയും ചെയ്യുന്നു
എല്ലാ ഫയലുകൾക്കും dump കമാൻഡ്. സെർവർ എല്ലാ ഫയലുകളും അയയ്ക്കുകയും വിച്ഛേദിക്കുകയും ചെയ്യുന്നു.
· ആരംഭ ഫയൽ വ്യക്തമാക്കുക ഒപ്പം --നിർത്തരുത്-ഒരിക്കലും (അത് സൂചിപ്പിക്കുന്നു --ടു-ലാസ്റ്റ്-ലോഗ്): mysqlbinlog
എല്ലാ ഫയലുകൾക്കുമായി ഒരു ബിൻലോഗ് ഡംപ് കമാൻഡ് ബന്ധിപ്പിക്കുകയും നൽകുകയും ചെയ്യുന്നു. സെർവർ എല്ലാ ഫയലുകളും അയയ്ക്കുന്നു,
എന്നാൽ അവസാനത്തേത് അയച്ചതിന് ശേഷം വിച്ഛേദിക്കുന്നില്ല.
കൂടെ --read-from-remote-server മാത്രം, mysqlbinlog 0 എന്ന സെർവർ ഐഡി ഉപയോഗിച്ച് ബന്ധിപ്പിക്കുന്നു
അവസാനം ആവശ്യപ്പെട്ട ലോഗ് ഫയൽ അയച്ചതിന് ശേഷം സെർവറിനോട് വിച്ഛേദിക്കാൻ പറയുന്നു.
കൂടെ --read-from-remote-server ഒപ്പം --നിർത്തരുത്-ഒരിക്കലും, mysqlbinlog നോൺസീറോ ഉപയോഗിച്ച് ബന്ധിപ്പിക്കുന്നു
സെർവർ ഐഡി, അതിനാൽ അവസാന ലോഗ് ഫയൽ അയച്ചതിന് ശേഷം സെർവർ വിച്ഛേദിക്കുന്നില്ല. സെർവർ
ഐഡി ഡിഫോൾട്ടായി 65535 ആണ്, എന്നാൽ ഇത് ഉപയോഗിച്ച് മാറ്റാവുന്നതാണ് --stop-never-slave-server-id.
അതിനാൽ, ഫയലുകൾ അഭ്യർത്ഥിക്കുന്നതിനുള്ള ആദ്യ രണ്ട് വഴികൾക്കായി, സെർവർ വിച്ഛേദിക്കുന്നു കാരണം
mysqlbinlog 0 എന്ന സെർവർ ഐഡി വ്യക്തമാക്കുന്നു. എങ്കിൽ അത് വിച്ഛേദിക്കുന്നില്ല --നിർത്തരുത്-ഒരിക്കലും കൊടുത്തു
കാരണം mysqlbinlog പൂജ്യമല്ലാത്ത സെർവർ ഐഡി വ്യക്തമാക്കുന്നു.
പകർപ്പവകാശ
പകർപ്പവകാശം © 1997, 2014, ഒറാക്കിൾ കൂടാതെ/അല്ലെങ്കിൽ അതിന്റെ അനുബന്ധ സ്ഥാപനങ്ങൾ. എല്ലാ അവകാശങ്ങളും നിക്ഷിപ്തം.
ഈ ഡോക്യുമെന്റേഷൻ ഒരു സ്വതന്ത്ര സോഫ്റ്റ്വെയർ ആണ്; നിങ്ങൾക്ക് ഇത് പുനർവിതരണം ചെയ്യാനും കൂടാതെ/അല്ലെങ്കിൽ പരിഷ്ക്കരിക്കാനും കഴിയും
സ്വതന്ത്ര സോഫ്റ്റ്വെയർ ഫൗണ്ടേഷൻ പ്രസിദ്ധീകരിച്ച ഗ്നു ജനറൽ പബ്ലിക് ലൈസൻസിന്റെ നിബന്ധനകൾ;
ലൈസൻസിന്റെ പതിപ്പ് 2.
ഈ ഡോക്യുമെന്റേഷൻ ഉപയോഗപ്രദമാകുമെന്ന പ്രതീക്ഷയിലാണ് വിതരണം ചെയ്യുന്നത്, പക്ഷേ ഒന്നുമില്ലാതെ
വാറന്റി; വ്യാപാരത്തിന്റെയോ പ്രത്യേകമായ ഫിറ്റ്നസിന്റെയോ സൂചിപ്പിച്ച വാറന്റി പോലുമില്ലാതെ
ഉദ്ദേശ്യം. കൂടുതൽ വിവരങ്ങൾക്ക് ഗ്നു ജനറൽ പബ്ലിക് ലൈസൻസ് കാണുക.
പ്രോഗ്രാമിനൊപ്പം നിങ്ങൾക്ക് ഗ്നു ജനറൽ പബ്ലിക് ലൈസൻസിന്റെ ഒരു പകർപ്പ് ലഭിച്ചിരിക്കണം;
ഇല്ലെങ്കിൽ, ഫ്രീ സോഫ്റ്റ്വെയർ ഫൗണ്ടേഷൻ, ഇൻക്., 51 ഫ്രാങ്ക്ലിൻ സ്ട്രീറ്റ്, അഞ്ചാം നില,
ബോസ്റ്റൺ, MA 02110-1301 USA അല്ലെങ്കിൽ കാണുക http://www.gnu.org/licenses/.
കുറിപ്പുകൾ
1. MySQL ഇന്റേണലുകൾ: ബൈനറി ലോഗ്
http://dev.mysql.com/doc/internals/en/binary-log.html
onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് mysqlbinlog ഓൺലൈനായി ഉപയോഗിക്കുക