Ubuntu Online, Fedora Online, Windows online emulator അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന pgreplay കമാൻഡ് ഇതാണ്.
പട്ടിക:
NAME
pgreplay - പ്രകടന പരിശോധനകൾക്കായുള്ള PostgreSQL ലോഗ് ഫയൽ റീപ്ലേയർ
സിനോപ്സിസ്
pgreplay [പാഴ്സ് ഓപ്ഷനുകൾ] [വീണ്ടും പ്ലേ ചെയ്യുക ഓപ്ഷനുകൾ] [-d ലെവൽ] [infile]
pgreplay -f [പാഴ്സ് ഓപ്ഷനുകൾ] [-o ഔട്ട്ഫിൽ] [-d ലെവൽ] [infile]
pgreplay -r [വീണ്ടും പ്ലേ ചെയ്യുക ഓപ്ഷനുകൾ] [-d ലെവൽ] [infile]
വിവരണം
pgreplay ഒരു PostgreSQL ലോഗ് ഫയൽ വായിക്കുന്നു (അല്ല ഒരു WAL ഫയൽ), SQL പ്രസ്താവനകൾ എക്സ്ട്രാക്റ്റുചെയ്യുന്നു
ഒരു PostgreSQL ഡാറ്റാബേസ് ക്ലസ്റ്ററിനെതിരെ അതേ ക്രമത്തിലും ആപേക്ഷിക സമയത്തിലും അവ നടപ്പിലാക്കുന്നു.
ഒരു അന്തിമ റിപ്പോർട്ട് നിങ്ങളുടെ ജോലിഭാരത്തെയും അതിന്റെ നിർവ്വഹണത്തെയും കുറിച്ചുള്ള ഉപയോഗപ്രദമായ സ്ഥിതിവിവര വിശകലനം നൽകുന്നു.
ആദ്യ ഫോമിൽ, ലോഗ് ഫയൽ infile വായിക്കുന്ന സമയത്ത് വീണ്ടും പ്ലേ ചെയ്യുന്നു.
കൂടെ -f ഓപ്ഷൻ, pgreplay പ്രസ്താവനകൾ എക്സിക്യൂട്ട് ചെയ്യില്ല, പക്ഷേ അവ ഒരു 'റീപ്ലേ'യിലേക്ക് എഴുതുക
ഫയൽ' ഔട്ട്ഫിൽ അത് മൂന്നാം ഫോം ഉപയോഗിച്ച് വീണ്ടും പ്ലേ ചെയ്യാം.
കൂടെ -r ഓപ്ഷൻ, pgreplay റീപ്ലേ ഫയലിലെ പ്രസ്താവനകൾ എക്സിക്യൂട്ട് ചെയ്യും infile ആ
രണ്ടാമത്തെ ഫോം സൃഷ്ടിച്ചത്.
പ്രസ്താവനകളുടെ നിർവ്വഹണം സമയക്രമം പിന്നിട്ടാൽ, മുന്നറിയിപ്പ് സന്ദേശങ്ങൾ പുറപ്പെടുവിക്കും
സെർവറിന് സമയബന്ധിതമായി ലോഡ് കൈകാര്യം ചെയ്യാൻ കഴിയില്ലെന്ന് സൂചിപ്പിക്കുക. എന്നതാണ് ആശയം
ഒരു യഥാർത്ഥ ലോക ഡാറ്റാബേസ് വർക്ക്ലോഡ് കഴിയുന്നത്ര കൃത്യമായി റീപ്ലേ ചെയ്യുക.
പാഴ്സ് ചെയ്യാൻ കഴിയുന്ന ഒരു ലോഗ് ഫയൽ സൃഷ്ടിക്കാൻ pgreplay, നിങ്ങൾ ഇനിപ്പറയുന്നവ സജ്ജീകരിക്കേണ്ടതുണ്ട്
ലെ പാരാമീറ്ററുകൾ postgresql.conf:
log_min_messages=പിശക് (അല്ലെങ്കിൽ കൂടുതൽ)
log_min_error_statement=ലോഗ് (അല്ലെങ്കിൽ കൂടുതൽ)
log_connections=on
log_disconnections=on
log_line_prefix='%m|%u|%d|%c|' (നിങ്ങൾ CSV ലോഗിംഗ് ഉപയോഗിക്കുന്നില്ലെങ്കിൽ)
log_statement='എല്ലാം'
lc_messages ഇംഗ്ലീഷിലേക്ക് സജ്ജമാക്കിയിരിക്കണം (എൻകോഡിംഗ് പ്രശ്നമല്ല)
bytea_output=രക്ഷപ്പെടുക (പതിപ്പ് 9.0-ൽ നിന്ന്, നിങ്ങൾക്ക് 8.4-ൽ ലോഗ് റീപ്ലേ ചെയ്യണമെങ്കിൽ മാത്രം
അല്ലെങ്കിൽ നേരത്തെ)
നിങ്ങൾ SQL പ്രസ്താവനകൾ റീപ്ലേ ചെയ്യുന്ന ഡാറ്റാബേസ് ക്ലസ്റ്റർ അതിന്റെ ഒരു ക്ലോണായിരിക്കണം
ആ സമയം മുതൽ ലോഗുകൾ സൃഷ്ടിച്ച ഡാറ്റാബേസ് ക്ലസ്റ്റർ ഉടനെ മുമ്പ് രേഖകൾ ആയിരുന്നു
സൃഷ്ടിച്ചത്.
pgreplay പ്രകടന പരിശോധനകൾക്ക് ഉപയോഗപ്രദമാണ്, പ്രത്യേകിച്ച് ഇനിപ്പറയുന്ന സാഹചര്യങ്ങളിൽ:
* നിങ്ങളുടെ PostgreSQL ആപ്ലിക്കേഷന്റെ പ്രകടനം വ്യത്യസ്തമായി താരതമ്യം ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു
ഹാർഡ്വെയർ അല്ലെങ്കിൽ വ്യത്യസ്ത ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ.
* നിങ്ങളുടെ ഡാറ്റാബേസ് അപ്ഗ്രേഡ് ചെയ്യാനും പുതിയ ഡാറ്റാബേസ് പതിപ്പാണെന്ന് ഉറപ്പാക്കാനും നിങ്ങൾ ആഗ്രഹിക്കുന്നു
നിങ്ങളെ ബാധിക്കുന്ന പെർഫോമൻസ് റിഗ്രഷനുകളിൽ നിന്ന് കഷ്ടപ്പെടുന്നില്ല.
മാത്രമല്ല, pgreplay നിങ്ങളുടെ അപേക്ഷ എങ്ങനെ എന്നതിനെ കുറിച്ച് നിങ്ങൾക്ക് കുറച്ച് തോന്നൽ നൽകാൻ കഴിയും ശക്തി സ്കെയിൽ പ്രകാരം
ഉയർന്ന വേഗതയിൽ ജോലിഭാരം വീണ്ടും പ്ലേ ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു. എന്നിരുന്നാലും, 500 എന്ന് മുന്നറിയിപ്പ് നൽകുക
ഇരട്ട വേഗതയിൽ പ്രവർത്തിക്കുന്ന ഉപയോക്താക്കൾ സാധാരണ പ്രവർത്തിക്കുന്ന 1000 ഉപയോക്താക്കൾക്ക് തുല്യമല്ല
വേഗത.
ഓപ്ഷനുകൾ
പാഴ്സ് ഓപ്ഷനുകൾ:
-c ലോഗ് ഫയൽ 'csvlog' ഫോർമാറ്റിലാണെന്നും (വളരെയധികം ശുപാർശ ചെയ്യപ്പെടുന്നു) അല്ലെന്നും വ്യക്തമാക്കുന്നു
'stderr' ഫോർമാറ്റ്.
-b ടൈംസ്റ്റാമ്പ്
ആ ടൈംസ്റ്റാമ്പിന് തുല്യമോ വലുതോ ആയ ലോഗ് എൻട്രികൾ മാത്രമേ പാഴ്സ് ചെയ്യൂ. ഫോർമാറ്റ് ആണ്
YYYY-MM-DD HH:MM:SS.FFF ലോഗ് ഫയലിലെ പോലെ. ഒരു ഓപ്ഷണൽ സമയ മേഖല ഭാഗം ആയിരിക്കും
അവഗണിച്ചു.
-e ടൈംസ്റ്റാമ്പ്
ആ ടൈംസ്റ്റാമ്പിന് തുല്യമോ കുറവോ ഉള്ള ലോഗ് എൻട്രികൾ മാത്രമേ പാഴ്സ് ചെയ്യൂ. ഫോർമാറ്റ് ആണ്
YYYY-MM-DD HH:MM:SS.FFF ലോഗ് ഫയലിലെ പോലെ. ഒരു ഓപ്ഷണൽ സമയ മേഖല ഭാഗം ആയിരിക്കും
അവഗണിച്ചു.
-q ലളിതമായ ഒരു സ്ട്രിംഗിലുള്ള ബാക്ക്സ്ലാഷ് ഇനിപ്പറയുന്നവയിൽ നിന്ന് രക്ഷപ്പെടുമെന്ന് വ്യക്തമാക്കുന്നു
ഒറ്റ ഉദ്ധരണി. ഇത് പോലുള്ള കോൺഫിഗറേഷൻ ഓപ്ഷനുകളെ ആശ്രയിച്ചിരിക്കുന്നു
standard_conforming_strings സെർവർ പതിപ്പ് 9.0-നും അതിൽ കുറവിനും സ്ഥിരസ്ഥിതിയാണ്.
റീപ്ലേ ഓപ്ഷനുകൾ:
-h ഹോസ്റ്റ്നാമം
ടാർഗെറ്റ് ഡാറ്റാബേസ് ക്ലസ്റ്റർ പ്രവർത്തിക്കുന്ന ഹോസ്റ്റിന്റെ പേര് (അല്ലെങ്കിൽ UNIX ഉള്ള ഡയറക്ടറി
സോക്കറ്റ് കണ്ടെത്താനാകും). പ്രാദേശിക കണക്ഷനുകളിലേക്കുള്ള ഡിഫോൾട്ടുകൾ.
ഇത് പോലെ തന്നെ പ്രവർത്തിക്കുന്നു -h ഓപ്ഷൻ psql.
-p തുറമുഖം
ടാർഗെറ്റ് ഡാറ്റാബേസ് ക്ലസ്റ്ററിൽ എത്തിച്ചേരാൻ കഴിയുന്ന TCP പോർട്ട്.
-W പാസ്വേഡ്
സ്ഥിരസ്ഥിതിയായി, pgreplay ടാർഗെറ്റ് ഡാറ്റാബേസ് ക്ലസ്റ്റർ കോൺഫിഗർ ചെയ്തിട്ടുണ്ടെന്ന് അനുമാനിക്കുന്നു
ആശ്രയം പ്രാമാണീകരണം. കൂടെ -W ഐച്ഛികം നിങ്ങൾക്ക് ഒരു പാസ്വേഡ് വ്യക്തമാക്കാം
ക്ലസ്റ്ററിലെ എല്ലാ ഉപയോക്താക്കൾക്കും ഉപയോഗിക്കുന്നു.
-s ഘടകം
ഡിഫോൾട്ടായി റീപ്ലേയ്ക്കുള്ള സ്പീഡ് ഫാക്ടർ 1. ഇത് ഏതെങ്കിലും സാധുവായ പോസിറ്റീവ് ഫ്ലോട്ടിംഗ് ആകാം
പോയിന്റ് നമ്പർ. എ ഘടകം 1-ൽ താഴെയുള്ളവർ 'സ്ലോ മോഷനിൽ' ജോലിഭാരം റീപ്ലേ ചെയ്യും
a ഘടകം 1 നേക്കാൾ വലുത് എന്നതിനർത്ഥം 'ഫാസ്റ്റ് ഫോർവേഡ്' എന്നാണ്.
-E എൻകോഡിംഗ്
ക്ലയന്റ് എൻകോഡിംഗായി ഉപയോഗിക്കുന്ന ലോഗ് ഫയലിന്റെ എൻകോഡിംഗ് വ്യക്തമാക്കുന്നു
റീപ്ലേ സമയത്ത്. അത് ഒഴിവാക്കിയാൽ, നിങ്ങളുടെ ഡിഫോൾട്ട് ക്ലയന്റ് എൻകോഡിംഗ് ഉപയോഗിക്കും.
-j എല്ലാ കണക്ഷനുകളും നിഷ്ക്രിയമാണെങ്കിൽ, ഉറങ്ങുന്നതിന് പകരം അടുത്ത അഭ്യർത്ഥനയിലേക്ക് പോകുക.
ഇത് റീപ്ലേ വേഗത്തിലാക്കും. നിർവ്വഹണ കാലതാമസം ഇപ്പോഴും ശരിയായി റിപ്പോർട്ട് ചെയ്യും, പക്ഷേ
റീപ്ലേ സ്ഥിതിവിവരക്കണക്കുകളിൽ നിഷ്ക്രിയ സമയം അടങ്ങിയിരിക്കില്ല.
ഔട്ട്പുട്ട് ഓപ്ഷനുകൾ:
-o ഔട്ട്ഫിൽ
പിന്നീട് റീപ്ലേയ്ക്കായി സ്റ്റേറ്റ്മെന്റുകൾ എഴുതുന്ന റീപ്ലേ ഫയൽ വ്യക്തമാക്കുന്നു.
ഡീബഗ് ചെയ്യുക ഓപ്ഷനുകൾ:
-d ലെവൽ
ട്രെയ്സ് ലെവൽ വ്യക്തമാക്കുന്നു (1 നും 3 നും ഇടയിൽ). അളവ് കൂടുന്നത് കൂടുതൽ ഉത്പാദിപ്പിക്കും
എന്തിനെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ pgreplay ചെയ്യുന്നു.
-v പ്രോഗ്രാം പതിപ്പ് പ്രിന്റ് ചെയ്ത് പുറത്തുകടക്കുന്നു.
ENVIRONMENT
PGHOST എന്നതിനായുള്ള ഡിഫോൾട്ട് മൂല്യം വ്യക്തമാക്കുന്നു -h ഓപ്ഷൻ.
PGPORT എന്നതിനായുള്ള ഡിഫോൾട്ട് മൂല്യം വ്യക്തമാക്കുന്നു -p ഓപ്ഷൻ.
പിജി ക്ലയന്റൻകോഡിംഗ്
എന്നതിനായുള്ള ഡിഫോൾട്ട് മൂല്യം വ്യക്തമാക്കുന്നു -E ഓപ്ഷൻ.
പരിമിതികൾ
pgreplay PostgreSQL ലോഗ് ചെയ്തത് മാത്രമേ റീപ്ലേ ചെയ്യാൻ കഴിയൂ. ഇത് ചില പരിമിതികളിലേക്ക് നയിക്കുന്നു:
* പകർത്തുക കോപ്പി ഡാറ്റ ലോഗ് ചെയ്യാത്തതിനാൽ പ്രസ്താവനകൾ വീണ്ടും പ്ലേ ചെയ്യില്ല.
* ഫാസ്റ്റ്-പാത്ത് API ഫംഗ്ഷൻ കോളുകൾ ലോഗ് ചെയ്തിട്ടില്ല, വീണ്ടും പ്ലേ ചെയ്യുകയുമില്ല. നിർഭാഗ്യവശാൽ,
ഇതിൽ വലിയ ഒബ്ജക്റ്റ് API ഉൾപ്പെടുന്നു.
* ലോഗ് ഫയൽ എല്ലായ്പ്പോഴും സെർവർ എൻകോഡിംഗിലായതിനാൽ (ഇത് ഉപയോഗിച്ച് നിങ്ങൾക്ക് വ്യക്തമാക്കാൻ കഴിയും -E
സ്വിച്ച് pgreplay), എല്ലാം സെറ്റ് ക്ലയന്റ്_എൻകോഡിംഗ് പ്രസ്താവനകൾ അവഗണിക്കപ്പെടും.
* തയ്യാറാക്കിയ പ്രസ്താവനകൾ തയ്യാറാക്കുന്ന സമയം ലോഗ് ചെയ്തിട്ടില്ലാത്തതിനാൽ (അല്ലാതെ
log_min_messages is ഡീബഗ്2 അല്ലെങ്കിൽ കൂടുതൽ), ഈ പ്രസ്താവനകൾ ഉടനടി തയ്യാറാക്കും
റീപ്ലേ സമയത്ത് അവ ആദ്യം നടപ്പിലാക്കുന്നതിന് മുമ്പ്.
* ലോഗ് ഫയലിൽ ടെക്സ്റ്റ് മാത്രമേ ഉള്ളൂ എന്നതിനാൽ, അന്വേഷണ പാരാമീറ്ററുകളും റിട്ടേൺ മൂല്യങ്ങളും
എല്ലായ്പ്പോഴും വാചകത്തിലായിരിക്കുക, ഒരിക്കലും ബൈനറി ഫോർമാറ്റിൽ ആയിരിക്കരുത്. നിങ്ങൾ ബൈനറി മോഡ് ഉപയോഗിക്കുകയാണെങ്കിൽ, പറയുക, കൈമാറുക
വലിയ ബൈനറി ഡാറ്റ, pgreplay എന്നതിനേക്കാൾ ഗണ്യമായ കൂടുതൽ നെറ്റ്വർക്ക് ട്രാഫിക്കിന് കാരണമാകും
യഥാർത്ഥ ഓട്ടം.
* ചിലപ്പോൾ, ഒരു കണക്ഷൻ പൂർത്തിയാകാൻ കൂടുതൽ സമയമെടുക്കുകയാണെങ്കിൽ, സെഷൻ ഐഡി അപ്രതീക്ഷിതമായി
PostgreSQL ലോഗ് ഫയലിലെ മാറ്റങ്ങൾ. ഇത് കാരണമാകുന്നു pgreplay സെഷനെ രണ്ടായി കണക്കാക്കാൻ
വ്യത്യസ്തമായവ, ഒരു അധിക കണക്ഷനിലേക്ക് നയിക്കുന്നു. ഇതൊരു ബഗ് ഇൻ ആണെന്ന് പറയാം
PostgreSQL.
onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് pgreplay ഓൺലൈനായി ഉപയോഗിക്കുക