InglesPransesEspanyol

Ad


OnWorks favicon

pt-archiverp - Online sa Cloud

Patakbuhin ang pt-archiverp sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command na pt-archiverp na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


pt-archiver - I-archive ang mga row mula sa isang MySQL table papunta sa isa pang table o isang file.

SINOPSIS


Paggamit: pt-archiver [OPTIONS] --source DSN --where WHERE

Ang pt-archiver ay kumukuha ng mga tala mula sa isang MySQL table. Ang --source at --dest na argumento ay gumagamit ng DSN
syntax; kung oo ang COPY, ang --dest ay nagde-default sa value ng key mula sa --source.

Halimbawa:

I-archive ang lahat ng row mula sa oltp_server hanggang olap_server at sa isang file:

pt-archiver --source h=oltp_server,D=test,t=tbl --dest h=olap_server \
--file '/var/log/archive/%Y-%m-%d-%D.%t' \
--kung saan "1=1" --limit 1000 --commit-bawat isa

I-purge (tanggalin) ang mga orphan row mula sa child table:

pt-archiver --source h=host,D=db,t=child --purge \
--where 'NOT EXISTS(SELECT * FROM parent WHERE col=child.col)'

PELIGRASO


Ang Percona Toolkit ay mature, napatunayan sa totoong mundo, at mahusay na nasubok, ngunit lahat ng database
Ang mga tool ay maaaring magdulot ng panganib sa system at sa database server. Bago gamitin ang tool na ito,
mangyaring:

· Basahin ang dokumentasyon ng tool

· Suriin ang kilalang "BUGS" ng tool

· Subukan ang tool sa isang server na hindi produksyon

· I-backup ang iyong production server at i-verify ang mga backup

DESCRIPTION


Ang pt-archiver ay ang tool na ginagamit ko sa pag-archive ng mga talahanayan tulad ng inilarawan sa
<http://tinyurl.com/mysql-archiving>. Ang layunin ay isang mababang epekto, pasulong-lamang na trabaho sa
kumagat ng lumang data mula sa talahanayan nang hindi gaanong naaapektuhan ang mga query sa OLTP. Maaari mong ipasok ang
data sa isa pang talahanayan, na hindi kailangang nasa parehong server. Maaari mo ring isulat ito sa a
file sa isang format na angkop para sa LOAD DATA INFILE. O hindi mo magagawa ang alinman, kung saan ito ay
incremental DELETE lang.

Ang pt-archiver ay napapalawak sa pamamagitan ng mekanismo ng plugin. Maaari kang mag-inject ng sarili mong code para idagdag
advanced na lohika sa pag-archive na maaaring maging kapaki-pakinabang para sa pag-archive ng nakadependeng data, paglalapat
kumplikadong mga panuntunan sa negosyo, o pagbuo ng warehouse ng data sa panahon ng proseso ng pag-archive.

Kailangan mong maingat na pumili ng mga halaga para sa ilang opsyon. Ang pinakamahalaga ay "--limit",
"--retries", at "--txn-size".

Ang diskarte ay upang mahanap ang unang hilera (mga), pagkatapos ay i-scan ang ilang index pasulong-lamang upang makahanap ng higit pa
mga hilera nang mahusay. Ang bawat kasunod na query ay hindi dapat i-scan ang buong talahanayan; dapat itong hanapin
sa index, pagkatapos ay i-scan hanggang sa makakita ito ng higit pang mga na-archive na row. Pagtukoy sa index na may
ang 'i' na bahagi ng argumentong "--source" ay maaaring maging mahalaga para dito; gamitin ang "--dry-run" sa
suriin ang nabuong mga query at siguraduhing IPALIWANAG ang mga ito upang makita kung mahusay ang mga ito
(Kadalasan, malamang na gusto mong i-scan ang PRIMARY key, na siyang default). Kahit na
mas mabuti, suriin ang pagkakaiba sa mga counter ng status ng Handler bago at pagkatapos patakbuhin ang
query, at tiyaking hindi nito ini-scan ang buong talahanayan sa bawat query.

Maaari mong hindi paganahin ang paghahanap-pagkatapos-pag-scan ng mga pag-optimize nang bahagya o buo gamit ang "--no-ascend"
at "--umakyat-una". Minsan ito ay maaaring mas mahusay para sa mga multi-column key. Maging
alam na ang pt-archiver ay binuo upang magsimula sa simula ng index na pipiliin at i-scan nito
ito pasulong-lamang. Ito ay maaaring magresulta sa mahabang pag-scan ng talahanayan kung sinusubukan mong kumagat
ang dulo ng talahanayan sa pamamagitan ng isang index maliban sa isa na gusto nito. Tingnan ang "--source" at basahin
ang dokumentasyon sa bahaging "i" kung naaangkop ito sa iyo.

percona XtraDB Kumpol


Gumagana ang pt-archiver sa Percona XtraDB Cluster (PXC) 5.5.28-23.7 at mas bago, ngunit mayroong
tatlong limitasyon na dapat mong isaalang-alang bago mag-archive sa isang cluster:

Error sa commit
Hindi sinusuri ng pt-archiver ang error kapag gumawa ito ng mga transaksyon. Maaaring mag-commit sa PXC
nabigo, ngunit hindi pa sinusuri o muling sinusubukan ng tool ang transaksyon kapag nangyari ito.
Kung nangyari ito, ang tool ay mamamatay.

Mga talahanayan ng MyISAM
Gumagana ang pag-archive ng mga talahanayan ng MyISAM, ngunit ang suporta ng MyISAM sa PXC ay eksperimental pa rin sa
oras ng paglabas na ito. Mayroong ilang mga kilalang bug sa PXC, MyISAM table, at
Mga column na "AUTO_INCREMENT". Samakatuwid, dapat mong tiyakin na ang pag-archive ay hindi direkta
o hindi direktang nagreresulta sa paggamit ng mga default na "AUTO_INCREMENT" na halaga para sa isang talahanayan ng MyISAM.
Halimbawa, nangyayari ito sa "--dest" kung "--columns" ang ginagamit at ang
Hindi kasama ang column na "AUTO_INCREMENT." Hindi sinusuri ito ng tool!

Mga opsyon na hindi cluster
Ang ilang mga opsyon ay maaaring gumana o hindi. Halimbawa, kung ang isang cluster node ay hindi rin a
alipin, pagkatapos ay "--check-slave-lag" ay hindi gumagana. At dahil kadalasan ang mga talahanayan ng PXC
InnoDB, ngunit hindi sinusuportahan ng InnoDB ang "INSERT DELAYED", at ang "--delayed-insert" ay hindi
trabaho. Maaaring hindi rin gumana ang iba pang mga opsyon, ngunit hindi sinusuri ng tool ang mga ito, samakatuwid
dapat mong subukan ang pag-archive sa isang test cluster bago ang pag-archive sa iyong tunay na cluster.

oUTPUT


Kung tinukoy mo ang "--progress", ang output ay isang header row, kasama ang status output sa mga pagitan.
Ang bawat hilera sa output ng status ay naglilista ng kasalukuyang petsa at oras, ilang segundo pt-
tumatakbo ang archiver, at kung ilang row ang na-archive nito.

Kung tinukoy mo ang "--statistics", ang "pt-archiver" ay naglalabas ng timing at iba pang impormasyon na makakatulong
tinutukoy mo kung aling bahagi ng iyong proseso ng pag-archive ang tumatagal ng pinakamaraming oras.

MALING PAGHAWAK


Sinusubukan ng pt-archiver na kumuha ng mga signal at lumabas nang maganda; halimbawa, kung ipapadala mo ito
SIGTERM (Ctrl-C sa mga sistema ng UNIX-ish), sasaluhin nito ang signal, mag-print ng mensahe tungkol sa
signal, at lumabas nang normal. Hindi nito isasagawa ang "--analyze" o "--optimize",
dahil ang mga ito ay maaaring tumagal ng mahabang panahon upang matapos. Ito ay tatakbo sa lahat ng iba pang code nang normal,
kasama ang pagtawag after_finish() sa anumang mga plugin (tingnan ang "EXTENDING").

Sa madaling salita, ang isang senyales, kung mahuli, ay lalabas sa pangunahing loop ng pag-archive at lalaktawan
i-optimize/suriin.

Opsyon


Tukuyin ang hindi bababa sa isa sa "--dest", "--file", o "--purge".

Ang "--ignore" at "--replace" ay kapwa eksklusibo.

Ang "--txn-size" at "--commit-each" ay kapwa eksklusibo.

Ang "--low-priority-insert" at "--delayed-insert" ay kapwa eksklusibo.

Ang "--share-lock" at "--for-update" ay kapwa eksklusibo.

Ang "--analyze" at "--optimize" ay kapwa eksklusibo.

Ang "--no-ascend" at "--no-delete" ay kapwa eksklusibo.

Ang mga halaga ng DSN sa "--dest" ay default sa mga halaga mula sa "--source" kung ang COPY ay oo.

--suriin
uri: string

Patakbuhin ang ANALYZE TABLE pagkatapos sa "--source" at/o "--dest".

Tumatakbo ANALYZE TABLE pagkatapos matapos. Ang argumento ay isang arbitrary string. Kung ito
naglalaman ng mga titik na 's', susuriin ang pinagmulan. Kung naglalaman ito ng 'd', ang
susuriin ang destinasyon. Maaari mong tukuyin ang alinman o pareho. Halimbawa, ang
susuriin ng mga sumusunod ang pareho:

--analyze=ds

Tingnan mohttp://dev.mysql.com/doc/en/analyze-table.html> para sa mga detalye sa ANALYZE TABLE.

--umakyat-una
Umakyat lamang sa unang column ng index.

Kung gusto mong gamitin ang ascending index optimization (tingnan ang "--no-ascend"), ngunit huwag
gusto mong magkaroon ng overhead ng pag-akyat sa isang malaking multi-column index, maaari mong gamitin ito
opsyon na sabihin sa pt-archiver na umakyat lamang sa pinakakaliwang column ng index. Maaari itong
magbigay ng isang makabuluhang pagpapalakas ng pagganap sa hindi pag-akyat sa index sa lahat, habang
pag-iwas sa gastos ng pag-akyat sa buong index.

Tingnan ang "EXTENDING" para sa talakayan kung paano ito nakikipag-ugnayan sa mga plugin.

--magtanong-pasa
Mag-prompt para sa isang password kapag kumokonekta sa MySQL.

--buffer
Buffer output sa "--file" at flush sa commit.

Hindi pinapagana ang autoflushing sa "--file" at nag-flush ng "--file" sa disk kapag may transaksyon
ginagawa. Karaniwan itong nangangahulugan na ang file ay na-block-flush ng operating system, kaya
maaaring mayroong ilang mga implicit na pag-flush sa disk sa pagitan ng mga commit. Ang default ay sa
i-flush ang "--file" sa disk pagkatapos ng bawat row.

Ang panganib ay ang pag-crash ay maaaring magdulot ng pagkawala ng data.

Ang pagtaas ng pagganap na nakita ko mula sa paggamit ng "--buffer" ay humigit-kumulang 5 hanggang 15 porsiyento.
Maaaring mag-iba ang iyong mileage.

--bulk-delete
Tanggalin ang bawat tipak na may isang pahayag (nagpapahiwatig ng "--commit-each").

Tanggalin ang bawat tipak ng mga hilera nang maramihan gamit ang isang "DELETE" na pahayag. Ang pahayag
tinatanggal ang bawat row sa pagitan ng una at huling row ng chunk, kasama. Ito ay nagpapahiwatig
"--commit-each", dahil hindi magandang ideya na "INSERT" ang mga row nang paisa-isa at
i-commit ang mga ito bago ang maramihang "DELETE".

Ang normal na paraan ay tanggalin ang bawat hilera sa pamamagitan ng pangunahing key nito. Ang maramihang pagtatanggal ay maaaring a
mas mabilis. Sila Rin maaari hindi be mas mabilis kung mayroon kang kumplikadong sugnay na "WHERE".

Ang pagpipiliang ito ay ganap na ipinagpaliban ang lahat ng "DELETE" na pagpoproseso hanggang sa ang tipak ng mga hilera ay
tapos na. Kung mayroon kang plugin sa pinagmulan, ang "before_delete" na paraan nito ay hindi magiging
tinawag. Sa halip, ang pamamaraang "before_bulk_delete" nito ay tinatawag sa ibang pagkakataon.

BABALA: kung mayroon kang isang plugin sa pinagmulan na kung minsan ay hindi nagbabalik ng totoo mula sa
"is_archivable()", dapat mo lang gamitin ang opsyong ito kung naiintindihan mo kung ano ang ginagawa nito. Kung
ang plugin ay nagtuturo sa "pt-archiver" na huwag mag-archive ng isang row, tatanggalin pa rin ito ng
ang bulk delete!

--[no]bulk-delete-limit
default: oo

Magdagdag ng "--limit" sa "--bulk-delete" na pahayag.

Isa itong advanced na opsyon at hindi mo ito dapat i-disable maliban kung alam mo kung ano ka
ginagawa at bakit! Bilang default, ang "--bulk-delete" ay nagdaragdag ng "--limit" na sugnay sa maramihan
tanggalin ang SQL statement. Sa ilang mga kaso, ang sugnay na ito ay maaaring tanggalin sa pamamagitan ng pagtukoy
"--no-bulk-delete-limit". Dapat pa ring tukuyin ang "--limit".

--bulk-insert
Ipasok ang bawat chunk na may LOAD DATA INFILE (nagpapahiwatig ng "--bulk-delete" "--commit-each").

Ipasok ang bawat tipak ng mga hilera na may "LOAD DATA LOCAL INFILE". Ito ay maaaring mas mabilis kaysa sa
paglalagay ng isang hilera sa isang pagkakataon na may mga "INSERT" na mga pahayag. Ito ay ipinatutupad sa pamamagitan ng paglikha ng a
pansamantalang file para sa bawat tipak ng mga row, at isulat ang mga row sa file na ito sa halip na
pagpasok sa kanila. Kapag natapos na ang tipak, ina-upload nito ang mga hilera.

Upang protektahan ang kaligtasan ng iyong data, pinipilit ng opsyong ito ang maramihang pagtanggal na gamitin. Ito
ay hindi ligtas na tanggalin ang bawat row dahil ito ay natagpuan, bago ipasok ang mga row sa
unang destinasyon. Ang pagpilit ng maramihang pagtanggal ay ginagarantiyahan na ang pagtanggal ay maghihintay hanggang sa
matagumpay ang pagpasok.

Gumagana dito ang "--low-priority-insert", "--replace", at "--ignore"
opsyon, ngunit ang "--delayed-insert" ay hindi.

Kung ang "LOAD DATA LOCAL INFILE" ay naghagis ng error sa mga linya ng "The used command is not
pinapayagan sa bersyon ng MySQL na ito", sumangguni sa dokumentasyon para sa opsyong "L" na DSN.

--charset
maikling anyo: -A; uri: string

Default na set ng character. Kung ang value ay utf8, itatakda ang binmode ng Perl sa STDOUT sa utf8,
ipinapasa ang mysql_enable_utf8 na opsyon sa DBD::mysql, at pinapatakbo ang SET NAMES UTF8 pagkatapos
pagkonekta sa MySQL. Ang anumang iba pang value ay nagtatakda ng binmode sa STDOUT nang walang utf8 layer,
at nagpapatakbo ng SET NAMES pagkatapos kumonekta sa MySQL.

Tandaan na ang mga charset lamang na kilala ng MySQL ang kinikilala; Kaya halimbawa, "UTF8" ay
gumagana, ngunit ang "UTF-8" ay hindi.

Tingnan din ang "--[no]check-charset".

--[no]check-charset
default: oo

Tiyaking magkapareho ang koneksyon at mga set ng character ng talahanayan. Maaaring hindi paganahin ang pagsusuring ito
maging sanhi ng maling pag-convert ng teksto mula sa isang set ng character patungo sa isa pa (karaniwan ay mula sa
utf8 hanggang latin1) na maaaring magdulot ng pagkawala ng data o mojibake. Maaaring hindi paganahin ang pagsusuring ito
kapaki-pakinabang o kinakailangan kapag ang mga conversion set ng character ay nilayon.

--[no]check-column
default: oo

Tiyaking may parehong column ang "--source" at "--dest."

Pinagana bilang default; nagiging sanhi ng pt-archiver upang suriin na ang pinagmulan at patutunguhan na mga talahanayan
magkaroon ng parehong mga column. Hindi nito sinusuri ang pagkakasunud-sunod ng hanay, uri ng data, atbp. Ito lang
sinusuri na ang lahat ng mga column sa source ay umiiral sa destinasyon at vice versa. Kung
mayroong anumang mga pagkakaiba, lalabas ang pt-archiver nang may error.

Upang huwag paganahin ang pagsusuring ito, tukuyin ang --no-check-columns.

--check-interval
uri: oras; default: 1s

Kung ang "--check-slave-lag" ay ibinigay, ito ay tumutukoy kung gaano katagal i-pause ng tool ang bawat isa
oras na natuklasan na ang isang alipin ay nahuhuli.
Isinasagawa ang pagsusuring ito tuwing 100 hilera.

--check-slave-lag
uri: string; nauulit: oo

I-pause ang pag-archive hanggang ang tinukoy na slave lag ng DSN ay mas mababa sa "--max-lag". Ito
ang opsyon ay maaaring tukuyin ng maraming beses para sa pagsuri ng higit sa isang alipin.

--mga hanay
maikling anyo: -c; uri: array

Listahan ng mga column na pinaghihiwalay ng kuwit upang i-archive.

Tumukoy ng listahan ng mga column na pinaghihiwalay ng kuwit na kukunin, isusulat sa file, at ilalagay
ang talahanayan ng patutunguhan. Kung tinukoy, binabalewala ng pt-archiver ang iba pang mga column maliban kung ito
kailangang idagdag ang mga ito sa "PUMILI" na pahayag para sa pag-akyat ng isang index o pagtanggal ng mga hilera.
Kinukuha at ginagamit nito ang mga karagdagang column na ito sa loob, ngunit hindi isinusulat ang mga ito sa
file o sa destination table. Ito ang ipasa ang mga ito sa mga plugin.

Tingnan din ang "--primary-key-only".

--commit-bawat isa
I-commit ang bawat hanay ng mga kinukuha at na-archive na mga row (hindi pinapagana ang "--txn-size").

Nagsasagawa ng mga transaksyon at nag-flush ng "--file" pagkatapos ma-archive ang bawat hanay ng mga row,
bago kunin ang susunod na hanay ng mga row, at bago matulog kung "--sleep" ay tinukoy.
Hindi pinapagana ang "--txn-size"; gamitin ang "--limit" para makontrol ang laki ng transaksyon gamit ang
"--commit-bawat".

Ang pagpipiliang ito ay kapaki-pakinabang bilang isang shortcut upang gawing parehong halaga ang "--limit" at "--txn-size",
ngunit higit na mahalaga, iniiwasan nito ang mga transaksyon na bukas habang naghahanap ng higit pa
mga hilera. Halimbawa, isipin na nag-a-archive ka ng mga lumang row mula sa simula ng isang very
malaking mesa, na may "--limit" 1000 at "--txn-size" 1000. Pagkatapos ng ilang panahon ng paghahanap
at pag-archive ng 1000 row sa isang pagkakataon, hinahanap ng pt-archiver ang huling 999 na row at archive
kanila, pagkatapos ay ipapatupad ang susunod na SELECT para makahanap ng higit pang mga row. Ini-scan nito ang natitirang bahagi ng
talahanayan, ngunit hindi na nakahanap ng higit pang mga hilera. Ito ay nagbukas ng isang transaksyon sa napakatagal na panahon
oras, para lamang matukoy na tapos na ito. Maaari mong gamitin ang "--commit-each" para maiwasan
na ito.

--config
uri: Array

Basahin itong listahan na pinaghihiwalay ng kuwit ng mga config file; kung tinukoy, ito dapat ang una
opsyon sa command line.

--database
maikling anyo: -D; uri: string

Kumonekta sa database na ito.

--delayed-insert
Idagdag ang DELAYED modifier sa INSERT statement.

Idinaragdag ang DELAYED modifier sa INSERT o REPLACE statement. Tingnan mo
<http://dev.mysql.com/doc/en/insert.html> para sa mga detalye.

--dest
uri: DSN

Tinutukoy ng DSN ang talahanayan kung saan i-archive.

Tinutukoy ng item na ito ang isang talahanayan kung saan maglalagay ang pt-archiver ng mga row na na-archive
"--pinagmulan". Gumagamit ito ng parehong key=val na format ng argumento bilang "--source". Karamihan nawawala
ang mga value ay default sa parehong mga halaga bilang "--source", kaya hindi mo na kailangang ulitin ang mga opsyon
na pareho sa "--source" at "--dest". Gamitin ang opsyong "--help" upang makita kung alin
ang mga halaga ay kinopya mula sa "--source".

BABALA: Paggamit ng default na mga opsyon file (F) DSN na opsyon na tumutukoy sa isang socket para sa
Ang "--source" ay nagiging sanhi ng pt-archiver na kumonekta sa "--dest" gamit ang socket na iyon maliban kung isa pa
ang socket para sa "--dest" ay tinukoy. Nangangahulugan ito na maaaring maling kumonekta ang pt-archiver
sa "--source" kapag kumokonekta ito sa "--dest". Halimbawa:

--source F=host1.cnf,D=db,t=tbl --dest h=host2

Kapag kumonekta ang pt-archiver sa "--dest", host2, ito ay kumonekta sa pamamagitan ng "--source",
host1, socket na tinukoy sa host1.cnf.

--dry-run
Mag-print ng mga query at lumabas nang walang ginagawa.

Nagiging sanhi ng paglabas ng pt-archiver pagkatapos i-print ang filename at mga SQL statement na gagamitin nito.

--file
uri: string

File na i-archive, kasama DATE_FORMAT()-tulad ng pag-format.

Filename kung saan isusulatan ng mga naka-archive na row. Isang subset ng MySQL's DATE_FORMAT() -format
pinapayagan ang mga code sa filename, tulad ng sumusunod:

%d Araw ng buwan, numero (01..31)
%H Oras (00..23)
%i Minuto, numero (00..59)
%m Buwan, numero (01..12)
%s Segundo (00..59)
%Y Taon, numeric, apat na digit

Maaari mo ring gamitin ang sumusunod na mga karagdagang format na code:

%D Pangalan ng database
%t Pangalan ng talahanayan

Halimbawa:

--file '/var/log/archive/%Y-%m-%d-%D.%t'

Ang mga nilalaman ng file ay nasa parehong format na ginamit ng SELECT INTO OUTFILE, gaya ng nakadokumento
sa manwal ng MySQL: mga hilera na tinapos ng mga bagong linya, mga haligi na tinapos ng mga tab, NULL
ang mga character ay kinakatawan ng \N, at ang mga espesyal na character ay tinatakasan ng \. Hinahayaan nito
nire-reload mo ang isang file na may mga default na setting ng LOAD DATA INFILE.

Kung gusto mo ng column header sa itaas ng file, tingnan ang "--header". Ang file ay awtomatikong
na-flush bilang default; tingnan ang "--buffer".

--para sa pag-update
Idinaragdag ang FOR UPDATE modifier sa mga SELECT statement.

Para sa mga detalye, tingnanhttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

--header
I-print ang header ng column sa itaas ng "--file".

Nagsusulat ng mga pangalan ng column bilang unang linya sa file na ibinigay ng "--file". Kung ang file
umiiral, hindi nagsusulat ng mga header; pinapanatili nitong ma-load ang file na may LOAD DATA INFILE in
kaso dagdagan mo pa ang output dito.

- Tumulong
Ipakita ang tulong at lumabas.

--high-priority-select
Idinaragdag ang HIGH_PRIORITY modifier sa mga SELECT statement.

Tingnan mohttp://dev.mysql.com/doc/en/select.html> para sa mga detalye.

--host
maikling anyo: -h; uri: string

Kumonekta sa host.

--Huwag pansinin
Gamitin ang IGNORE para sa INSERT statement.

Nagiging INSERT IGNORE ang mga INSERT sa "--dest".

--limitasyon
uri: int; default: 1

Bilang ng mga row na kukunin at i-archive sa bawat statement.

Nililimitahan ang bilang ng mga row na ibinalik ng mga SELECT statement na kumukuha ng mga row
archive. Ang default ay isang row. Maaaring mas mahusay na taasan ang limitasyon, ngunit maging
mag-ingat kung bihira kang mag-archive, lumalaktaw sa maraming row; ito ay maaaring potensyal
magdulot ng higit pang pagtatalo sa iba pang mga query, depende sa storage engine, transaksyon
antas ng paghihiwalay, at mga opsyon gaya ng "--for-update".

--lokal
Huwag magsulat ng OPTIMIZE o ANALYZE query sa binlog.

Idinaragdag ang NO_WRITE_TO_BINLOG modifier upang ANALYZE at OPTIMIZE ang mga query. Tingnan ang "--analyze"
para sa mga detalye.

--low-priority-delete
Idinaragdag ang LOW_PRIORITY modifier sa DELETE na mga pahayag.

Tingnan mohttp://dev.mysql.com/doc/en/delete.html> para sa mga detalye.

--low-priority-insert
Idinaragdag ang LOW_PRIORITY modifier sa INSERT o REPLACE na mga pahayag.

Tingnan mohttp://dev.mysql.com/doc/en/insert.html> para sa mga detalye.

--max-flow-ctl
uri: lumutang

Medyo katulad ng --max-lag ngunit para sa mga kumpol ng PXC. Suriin ang average na oras na ginugol ng cluster
pag-pause para sa Flow Control at gawing i-pause ang tool kung lumampas ito sa porsyentong ipinahiwatig
sa opsyon. Ang default ay walang pagsuri sa Flow Control. Available ang opsyong ito para sa PXC
bersyon 5.6 o mas mataas.

--max-lag
uri: oras; default: 1s

I-pause ang pag-archive kung ang slave na ibinigay ng "--check-slave-lag" ay lags.

Ang pagpipiliang ito ay nagiging sanhi ng pt-archiver upang tumingin sa alipin sa tuwing ito ay malapit nang kunin
isa pang hilera. Kung ang lag ng alipin ay mas malaki kaysa sa halaga ng opsyon, o kung ang alipin
ay hindi tumatakbo (kaya ang lag nito ay NULL), ang pt-table-checksum ay natutulog para sa "--check-interval"
segundo at pagkatapos ay tumingin muli sa lag. Nauulit ito hanggang sa mahuli ang alipin,
pagkatapos ay magpapatuloy sa pagkuha at pag-archive ng row.

Maaaring alisin ng opsyong ito ang pangangailangan para sa "--sleep" o "--sleep-coef".

--walang-aakyat
Huwag gumamit ng ascending index optimization.

Ang default na ascending-index optimization ay nagdudulot ng paulit-ulit na pag-optimize ng "pt-archiver".
"PUMILI" na mga query upang hanapin nila ang index kung saan natapos ang nakaraang query, pagkatapos ay i-scan
kasama nito, sa halip na mag-scan mula sa simula ng talahanayan sa bawat oras. Ito ay
pinagana bilang default dahil ito ay karaniwang isang mahusay na diskarte para sa paulit-ulit na pag-access.

Ang malalaking, maramihang-column index ay maaaring maging sanhi ng WHERE clause na maging sapat na kumplikado
ito ay maaaring talagang hindi gaanong mahusay. Isaalang-alang halimbawa ang isang apat na hanay na PANGUNAHING SUSI
sa (a, b, c, d). Ang sugnay na WHERE na magsisimula kung saan natapos ang huling query ay ang mga sumusunod:

SAAN (a > ?)
O (a = ? AT b > ?)
O (a = ? AT b = ? AT c > ?)
O (a = ? AT b = ? AT c = ? AT d >= ?)

Ang pagpo-populate sa mga placeholder na may mga halaga ay gumagamit ng memorya at CPU, nagdaragdag ng trapiko sa network at
pag-parse sa itaas, at maaaring gawing mas mahirap ang query para sa MySQL na i-optimize. Isang apat na hanay
Ang key ay hindi isang malaking deal, ngunit isang sampung-column key kung saan ang bawat column ay nagbibigay-daan sa "NULL" na maaaring
maging.

Ang pag-akyat sa index ay maaaring hindi kinakailangan kung alam mong nag-aalis ka lang ng mga hilera
mula sa simula ng talahanayan sa mga chunks, ngunit hindi nag-iiwan ng anumang mga butas, kaya simula sa
ang simula ng talahanayan ay talagang ang pinaka mahusay na bagay na dapat gawin.

Tingnan din ang "--umakyat-una". Tingnan ang "EXTENDING" para sa talakayan kung paano ito nakikipag-ugnayan
may mga plugin.

--walang-delete
Huwag tanggalin ang mga naka-archive na row.

Nagiging sanhi ng "pt-archiver" na hindi magtanggal ng mga row pagkatapos iproseso ang mga ito. Ito ay hindi pinapayagan
"--no-ascend", dahil ang pagpapagana sa kanilang dalawa ay magdudulot ng walang katapusang loop.

Kung mayroong isang plugin sa pinagmulang DSN, ang pamamaraang "before_delete" ay tinatawag pa rin,
kahit na hindi isasagawa ng "pt-archiver" ang pagtanggal. Tingnan ang "EXTENDING" para sa higit pa sa
mga plugin.

--optimize
uri: string

Patakbuhin ang OPTIMIZE TABLE pagkatapos sa "--source" at/o "--dest".

Tumatakbo ang OPTIMIZE TABLE pagkatapos matapos. Tingnan ang "--analyze" para sa opsyong syntax at
<http://dev.mysql.com/doc/en/optimize-table.html> para sa mga detalye sa OPTIMIZE TABLE.

--password
maikling anyo: -p; uri: string

Password na gagamitin kapag kumokonekta. Kung ang password ay naglalaman ng mga kuwit, dapat silang i-escape
na may backslash: "exam\,ple"

--pid
uri: string

Lumikha ng ibinigay na PID file. Hindi magsisimula ang tool kung mayroon nang PID file at
iba ang PID na nilalaman nito kaysa sa kasalukuyang PID. Gayunpaman, kung ang PID file
umiiral at ang PID na nilalaman nito ay hindi na tumatakbo, ang tool ay magpapatungan sa PID
file na may kasalukuyang PID. Awtomatikong tinanggal ang PID file kapag lumabas ang tool.

--isaksak
uri: string

Perl na pangalan ng module na gagamitin bilang isang generic na plugin.

Tukuyin ang pangalan ng Perl module ng isang pangkalahatang layunin na plugin. Ito ay kasalukuyang ginagamit lamang
para sa mga istatistika (tingnan ang "--statistics") at dapat mayroong "new()" at isang "statistics()" na paraan.

Ang "new( src =" $src, dst => $dst, opts => $o )> method ay nakakakuha ng source at
mga patutunguhang DSN, at ang kanilang mga koneksyon sa database, tulad ng partikular sa koneksyon
ginagawa ng mga plugin. Nakakakuha din ito ng object na OptionParser ($o) para sa pag-access sa command-line
mga pagpipilian (halimbawa: "$o-"get('purge');>).

Ang pamamaraang "statistics(\%stats, $time)" ay nakakakuha ng hashref ng mga istatistikang nakolekta ng
ang trabaho sa pag-archive, at ang oras na nagsimula ang buong trabaho.

--port
maikling anyo: -P; uri: int

Port number na gagamitin para sa koneksyon.

--pangunahing-susi-lamang
Mga hanay ng pangunahing key lamang.

Isang shortcut para sa pagtukoy ng "--columns" na may mga pangunahing key na column. Ito ay isang
kahusayan kung gusto mo lamang na linisin ang mga hilera; iniiwasan nitong kunin ang buong row, kapag
ang mga pangunahing key na column lang ang kailangan para sa mga statement na "DELETE". Tingnan din ang "--purge".

--pag-unlad
uri: int

I-print ang impormasyon ng pag-unlad sa bawat X row.

Nagpi-print ng kasalukuyang oras, lumipas na oras, at mga row na naka-archive sa bawat X row.

--purga
Purge sa halip na i-archive; nagbibigay-daan sa pag-alis ng "--file" at "--dest".

Nagbibigay-daan sa pag-archive nang walang "--file" o "--dest" na argumento, na epektibong purge
dahil ang mga hilera ay kakatanggal lang.

Kung gusto mo lang mag-purge ng mga row, isaalang-alang ang pagtukoy sa mga pangunahing hanay ng key ng talahanayan
na may "--primary-key-only". Pipigilan nito ang pagkuha ng lahat ng column mula sa server para sa
walang dahilan.

--mabilis-tanggal
Idinaragdag ang QUICK modifier sa DELETE na mga pahayag.

Tingnan mohttp://dev.mysql.com/doc/en/delete.html> para sa mga detalye. Gaya ng nakasaad sa
dokumentasyon, sa ilang mga kaso maaaring mas mabilis na gumamit ng DELETE QUICK na sinusundan ng OPTIMIZE
TABLE. Maaari mong gamitin ang "--optimize" para dito.

--tahimik
maikling anyo: -q

Huwag mag-print ng anumang output, tulad ng para sa "--statistics".

Pinipigilan ang normal na output, kabilang ang output ng "--statistics", ngunit hindi pinipigilan
ang output mula sa "--why-quit".

--palitan
Nagiging sanhi ng mga INSERT sa "--dest" na isulat bilang REPLACE.

--sinusubukan muli
uri: int; default: 1

Bilang ng mga muling pagsubok sa bawat timeout o deadlock.

Tinutukoy ang dami ng beses na dapat subukang muli ng pt-archiver kapag mayroong InnoDB lock
maghintay ng timeout o deadlock. Kapag naubos na ang mga muling pagsubok, lalabas ang pt-archiver na may
error.

Pag-isipang mabuti kung ano ang gusto mong mangyari kapag nag-a-archive ka sa pagitan ng pinaghalong
transactional at non-transactional storage engine. Ang INSERT sa "--dest" at
Ang DELETE mula sa "--source" ay nasa magkahiwalay na koneksyon, kaya hindi talaga
lumahok sa parehong transaksyon kahit na sila ay nasa parehong server. Gayunpaman, pt-
nagpapatupad ang archiver ng mga simpleng ipinamamahaging transaksyon sa code, kaya nagko-commit at nag-rollback
dapat mangyari ayon sa ninanais sa dalawang koneksyon.

Sa oras na ito ay hindi pa ako nagsulat ng anumang code upang mahawakan ang mga error sa transactional storage
mga makina maliban sa InnoDB. Hilingin ang tampok na iyon kung kailangan mo ito.

--run-time
uri: oras

Oras na para tumakbo bago lumabas.

Opsyonal na suffix s=segundo, m=minuto, h=oras, d=araw; kung walang panlapi, s ang ginagamit.

--[no]safe-auto-increment
default: oo

Huwag i-archive ang row na may max AUTO_INCREMENT.

Nagdaragdag ng dagdag na sugnay na WHERE upang pigilan ang pt-archiver na alisin ang pinakabagong row kung kailan
pataas sa isang solong column na AUTO_INCREMENT key. Ito ay nagbabantay laban sa muling paggamit
AUTO_INCREMENT halaga kung ang server ay mag-restart, at ito ay pinagana bilang default.

Ang dagdag na sugnay na WHERE ay naglalaman ng maximum na halaga ng column ng auto-increment mula noong
ang simula ng archive o purge job. Kung ang mga bagong row ay ipinasok habang ang pt-archiver
ay tumatakbo, hindi nito makikita ang mga ito.

--sentinel
uri: string; default: /tmp/pt-archiver-sentinel

Lumabas kung umiiral ang file na ito.

Ang pagkakaroon ng file na tinukoy ng "--sentinel" ay magiging sanhi ng paghinto ng pt-archiver
pag-archive at paglabas. Ang default ay /tmp/pt-archiver-sentinel. Baka mahanap mo ito
madaling ihinto ang mga cron job nang maganda kung kinakailangan. Tingnan din ang "--stop".

--set-vars
uri: Array

Itakda ang mga variable ng MySQL sa listahang pinaghihiwalay ng kuwit na ito ng mga pares na "variable=value".

Bilang default, itinatakda ng tool ang:

wait_timeout=10000

Ino-override ng mga variable na tinukoy sa command line ang mga default na ito. Halimbawa,
ang pagtukoy ng "--set-vars wait_timeout=500" ay na-override ang default na halaga ng 10000.

Ang tool ay nagpi-print ng babala at magpapatuloy kung ang isang variable ay hindi maitakda.

--share-lock
Idinaragdag ang LOCK IN SHARE MODE modifier sa mga SELECT statement.

Tingnan mohttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

--skip-foreign-key-checks
Hindi pinapagana ang mga foreign key check gamit ang SET FOREIGN_KEY_CHECKS=0.

--tulog
uri: int

Oras ng pagtulog sa pagitan ng mga pagkuha.

Tinutukoy kung gaano katagal matulog sa pagitan ng mga SELECT statement. Default ay hindi matulog sa
lahat. Ang mga transaksyon ay HINDI ginawa, at ang "--file" na file ay HINDI na-flush, dati
natutulog. Tingnan ang "--txn-size" para makontrol iyon.

Kung tinukoy ang "--commit-each", nangyayari ang commit at flushing bago matulog.

--sleep-coef
uri: lumutang

Kalkulahin ang "--sleep" bilang isang multiple ng huling PUMILI oras.

Kung tinukoy ang opsyong ito, matutulog ang pt-archiver para sa oras ng query sa huli
SELECT pinarami ng tinukoy na koepisyent.

Ito ay isang bahagyang mas sopistikadong paraan upang i-throttle ang mga SELECT: matulog nang iba-iba
tagal ng oras sa pagitan ng bawat SELECT, depende sa kung gaano katagal ang mga SELECT.

--saksakan
maikling porma; uri: string

Socket file na gagamitin para sa koneksyon.

--pinagmulan
uri: DSN

Tinutukoy ng DSN ang talahanayan kung saan i-archive (kinakailangan). Ang argumentong ito ay isang DSN. Tingnan mo
"DSN OPTIONS" para sa syntax. Kinokontrol ng karamihan sa mga opsyon kung paano kumokonekta ang pt-archiver sa MySQL,
ngunit may ilang pinahabang opsyon sa DSN sa syntax ng tool na ito. Ang D, t, at i
mga pagpipilian pumili ng isang talahanayan upang i-archive:

--source h=my_server,D=my_database,t=my_tbl

Tinutukoy ng opsyon ang database na itatakda bilang default ng koneksyon sa USE. Kung
totoo ang opsyong b, hindi nito pinapagana ang binary logging gamit ang SQL_LOG_BIN. Ang m opsyon
tumutukoy sa mga pluggable na pagkilos, na maaaring ibigay ng external na Perl module. Ang nag-iisang
kinakailangang bahagi ay ang talahanayan; iba pang bahagi ay maaaring basahin mula sa iba't ibang lugar sa
kapaligiran (tulad ng mga file ng opsyon).

Ang 'i' na bahagi ay nararapat na espesyal na banggitin. Sinasabi nito sa pt-archiver kung aling index ang dapat
i-scan upang i-archive. Lumilitaw ito sa isang FORCE INDEX o USE INDEX na hint sa SELECT
mga pahayag na ginamit upang kunin ang mga na-archive na row. Kung wala kang tinukoy, pt-archiver
ay awtomatikong makakatuklas ng isang magandang index, mas pinipili ang isang "PANGUNAHING SUSI" kung mayroon. Sa aking
maranasan na ito ay karaniwang gumagana nang maayos, kaya kadalasan ay maaari mo na lang tanggalin ang
bahagi ko.

Ang index ay ginagamit upang i-optimize ang paulit-ulit na pag-access sa talahanayan; Naaalala ni pt-archiver
ang huling row na kinukuha nito mula sa bawat SELECT statement, at ginagamit ito upang bumuo ng WHERE
clause, gamit ang mga column sa tinukoy na index, na dapat magpapahintulot sa MySQL na simulan ang
susunod na PUMILI kung saan natapos ang huli, sa halip na posibleng mag-scan mula sa
simula ng talahanayan sa bawat sunud-sunod na PILI. Kung gumagamit ka ng panlabas
mga plugin, pakitingnan ang "EXTENDING" para sa talakayan kung paano sila nakikipag-ugnayan sa pataas
index.

Ang 'a' at 'b' na mga opsyon ay nagbibigay-daan sa iyo na kontrolin kung paano dumadaloy ang mga pahayag sa binary
log. Kung tinukoy mo ang 'b' na opsyon, ang binary logging ay idi-disable sa tinukoy
koneksyon. Kung tinukoy mo ang opsyong 'a', "GAMIT" ng koneksyon ang tinukoy
database, na maaari mong gamitin upang pigilan ang mga alipin na isagawa ang binary log na mga kaganapan
na may mga opsyong "--replicate-ignore-db". Ang dalawang opsyon na ito ay maaaring gamitin bilang magkaiba
pamamaraan upang makamit ang parehong layunin: i-archive ang data sa master, ngunit iwanan ito sa
alipin. Halimbawa, maaari kang magpatakbo ng purge job sa master at pigilan ito
nangyayari sa alipin gamit ang iyong paraan ng pagpili.

BABALA: Paggamit ng default na mga opsyon file (F) DSN na opsyon na tumutukoy sa isang socket para sa
Ang "--source" ay nagiging sanhi ng pt-archiver na kumonekta sa "--dest" gamit ang socket na iyon maliban kung isa pa
ang socket para sa "--dest" ay tinukoy. Nangangahulugan ito na maaaring maling kumonekta ang pt-archiver
sa "--source" kapag ito ay sinadya upang kumonekta sa "--dest". Halimbawa:

--source F=host1.cnf,D=db,t=tbl --dest h=host2

Kapag kumonekta ang pt-archiver sa "--dest", host2, ito ay kumonekta sa pamamagitan ng "--source",
host1, socket na tinukoy sa host1.cnf.

--mga istatistika
Mangolekta at mag-print ng mga istatistika ng timing.

Nagiging sanhi ng pt-archiver upang mangolekta ng mga istatistika ng timing tungkol sa kung ano ang ginagawa nito. Ang mga istatistikang ito
ay magagamit sa plugin na tinukoy ng "--plugin"

Maliban kung tinukoy mo ang "--quiet", ini-print ng "pt-archiver" ang mga istatistika kapag lumabas ito. Ang
ganito ang hitsura ng mga istatistika:

Started at 2008-07-18T07:18:53, ended at 2008-07-18T07:18:53
Pinagmulan: D=db,t=table
PUMILI 4
INSERT 4
TANGGALIN 4
Aksyon Bilang Oras Pct
gumawa 10 0.1079 88.27
piliin ang 5 0.0047 3.87
tinatanggal ang 4 0.0028 2.29
pagpasok ng 4 0.0028 2.28
iba pa 0 0.0040 3.29

Ang unang dalawa (o tatlong) linya ay nagpapakita ng mga oras at ang pinagmulan at patutunguhan na mga talahanayan. Ang
Ang susunod na tatlong linya ay nagpapakita kung gaano karaming mga hilera ang kinuha, ipinasok, at tinanggal.

Ang natitirang mga linya ay nagpapakita ng mga bilang at timing. Ang mga column ay ang aksyon, ang kabuuan
ilang beses na-time ang pagkilos na iyon, ang kabuuang oras na inabot nito, at ang porsyento ng
kabuuang runtime ng programa. Ang mga hilera ay pinagsunod-sunod sa pababang kabuuang oras. Ang
ang huling row ay ang natitirang oras na hindi tahasang iniuugnay sa anuman. Ang mga aksyon ay
nag-iiba depende sa mga opsyon sa command-line.

Kung ibibigay ang "--why-quit", bahagyang nababago ang ugali nito. Ang pagpipiliang ito ay nagdudulot nito
i-print ang dahilan ng pag-alis kahit na ito ay dahil lamang sa wala nang mga hilera.

Ang opsyong ito ay nangangailangan ng karaniwang Time::HiRes module, na bahagi ng core Perl on
makatwirang bagong paglabas ng Perl.

--tumigil ka
Ihinto ang pagpapatakbo ng mga instance sa pamamagitan ng paggawa ng sentinel file.

Nagiging sanhi ng pt-archiver na lumikha ng sentinel file na tinukoy ng "--sentinel" at lumabas.
Ito ay dapat magkaroon ng epekto ng pagpapahinto sa lahat ng mga tumatakbong pagkakataon na nanonood ng
parehong sentinel file.

--txn-laki
uri: int; default: 1

Bilang ng mga row sa bawat transaksyon.

Tinutukoy ang laki, sa bilang ng mga hilera, ng bawat transaksyon. Hindi pinapagana ng Zero ang mga transaksyon
sama-sama. Pagkatapos iproseso ng pt-archiver ang maraming row na ito, ginagawa nito ang parehong
"--source" at ang "--dest" kung ibinigay, at i-flush ang file na ibinigay ng "--file".

Ang parameter na ito ay kritikal sa pagganap. Kung nag-archive ka mula sa isang live na server,
na halimbawa ay gumagawa ng mabigat na gawaing OLTP, kailangan mong pumili ng magandang balanse sa pagitan
laki ng transaksyon at commit overhead. Ang mas malalaking transaksyon ay lumikha ng posibilidad ng
mas maraming lock contention at deadlocks, ngunit mas madalas ang nagiging sanhi ng mas maliliit na transaksyon
gumawa ng overhead, na maaaring maging makabuluhan. Upang magbigay ng ideya, sa isang maliit na set ng pagsubok I
nagtrabaho kasama habang nagsusulat ng pt-archiver, isang halaga na 500 ang dahilan ng pag-archive na tumagal ng humigit-kumulang 2
segundo bawat 1000 hilera sa isang tahimik na halimbawa ng MySQL sa aking desktop machine,
pag-archive sa disk at sa isa pang talahanayan. Hindi pagpapagana ng mga transaksyon na may halagang zero,
na nag-o-on sa autocommit, bumaba sa performance sa 38 segundo bawat libong row.

Kung hindi ka nag-archive mula sa o papunta sa isang transactional storage engine, maaaring gusto mo
huwag paganahin ang mga transaksyon para hindi subukan ng pt-archiver na mag-commit.

--gumagamit
maikling anyo: -u; uri: string

User para sa pag-login kung hindi kasalukuyang user.

--bersyon
Ipakita ang bersyon at lumabas.

--[no] version-check
default: oo

Tingnan ang pinakabagong bersyon ng Percona Toolkit, MySQL, at iba pang mga program.

Isa itong karaniwang feature na "awtomatikong suriin ang mga update", na may dalawang karagdagang
mga tampok. Una, sinusuri ng tool ang bersyon ng iba pang mga program sa lokal na sistema sa
karagdagan sa sarili nitong bersyon. Halimbawa, sinusuri nito ang bersyon ng bawat MySQL server
kumokonekta ito sa, Perl, at sa Perl module na DBD::mysql. Pangalawa, ito ay nagsusuri at nagbabala
tungkol sa mga bersyon na may mga kilalang problema. Halimbawa, ang MySQL 5.5.25 ay may kritikal na bug at
ay muling inilabas bilang 5.5.25a.

Ang anumang mga update o kilalang problema ay naka-print sa STDOUT bago ang normal na output ng tool.
Ang tampok na ito ay hindi dapat makagambala sa normal na operasyon ng tool.

Para sa karagdagang impormasyon, bisitahin ang .

--saan
uri: string

WHERE clause upang limitahan kung aling mga row ang i-archive (kinakailangan).

Tinutukoy ang isang sugnay na WHERE upang limitahan kung aling mga hilera ang naka-archive. Huwag isama ang salita
SAAN. Maaaring kailanganin mong banggitin ang argumento upang maiwasan ang iyong shell na bigyang-kahulugan ito.
Halimbawa:

--where 'ts < current_date - interval 90 araw'

Para sa kaligtasan, "--kung saan" ay kinakailangan. Kung hindi mo kailangan ng sugnay na WHERE, gamitin
"--saan" 1=1.

--bakit-huminto
I-print ang dahilan ng pag-alis maliban kung naubos na ang mga hilera.

Nagiging sanhi ng pt-archiver na mag-print ng isang mensahe kung ito ay lumabas para sa anumang dahilan maliban sa pagtakbo
wala sa mga hilera upang i-archive. Maaari itong maging kapaki-pakinabang kung mayroon kang cron job na may "--run-time"
tinukoy, halimbawa, at gusto mong makatiyak na natapos na ang pt-archiver
nauubusan ng oras.

Kung ang "--statistics" ay ibinigay, ang pag-uugali ay bahagyang nabago. Ipi-print nito ang
dahilan para lumabas kahit wala na lang row.

Ang output na ito ay nagpi-print kahit na "--tahimik" ang ibinigay. Iyon ay upang mailagay mo ang "pt-archiver".
isang "cron" na trabaho at makatanggap ng email kung mayroong abnormal na paglabas.

DNS Opsyon


Ang mga opsyong DSN na ito ay ginagamit upang lumikha ng isang DSN. Ang bawat opsyon ay ibinibigay tulad ng "option=value".
Ang mga opsyon ay case-sensitive, kaya ang P at p ay hindi magkaparehong opsyon. hindi pwede
whitespace bago o pagkatapos ng "=" at kung ang value ay naglalaman ng whitespace dapat itong sipi.
Ang mga opsyon sa DSN ay pinaghihiwalay ng kuwit. Tingnan ang percona-toolkit manpage para sa buong detalye.

· a

kopya: hindi

Database na GAMITIN kapag nagsasagawa ng mga query.

· AT

dsn: charset; kopya: oo

Default na set ng character.

· B

kopya: hindi

Kung totoo, huwag paganahin ang binlog gamit ang SQL_LOG_BIN.

· D

dsn: database; kopya: oo

Database na naglalaman ng talahanayan.

· F

dsn: mysql_read_default_file; kopya: oo

Basahin lamang ang mga default na opsyon mula sa ibinigay na file

· H

dsn: host; kopya: oo

Kumonekta sa host.

· i

kopya: oo

Index na gagamitin.

· L

kopya: oo

Tahasang paganahin ang LOAD DATA LOCAL INFILE.

Para sa ilang kadahilanan, ang ilang mga vendor ay nag-compile ng libmysql nang walang --enable-local-infile
opsyon, na hindi pinapagana ang pahayag. Maaari itong humantong sa mga kakaibang sitwasyon, tulad ng
pinahihintulutan ng server ang LOCAL INFILE, ngunit ang kliyente ay naghagis ng mga pagbubukod kung ito ay ginagamit.

Gayunpaman, hangga't pinapayagan ng server ang LOAD DATA, madali itong muling paganahin ng mga kliyente; Tingnan mo
at
<http://search.cpan.org/~capttofu/DBD-mysql/lib/DBD/mysql.pm>. Ginagawa ng pagpipiliang ito
eksakto iyon.

Bagama't wala kaming nakitang kaso kung saan ang pagpihit sa opsyong ito ay humahantong sa mga error o pagkakaiba
pag-uugali, upang maging ligtas, ang opsyong ito ay hindi naka-on bilang default.

· M

kopya: hindi

Pangalan ng module ng plugin.

· p

dsn: password; kopya: oo

Password na gagamitin kapag kumokonekta. Kung ang password ay naglalaman ng mga kuwit, dapat silang i-escape
na may backslash: "exam\,ple"

· P

dsn: port; kopya: oo

Port number na gagamitin para sa koneksyon.

· S

dsn: mysql_socket; kopya: oo

Socket file na gagamitin para sa koneksyon.

· t

kopya: oo

Talahanayan upang i-archive mula/papunta.

· ikaw

dsn: gumagamit; kopya: oo

User para sa pag-login kung hindi kasalukuyang user.

PAGPAPALAW


Ang pt-archiver ay napapalawak sa pamamagitan ng pag-plug sa mga panlabas na Perl module upang mahawakan ang ilang lohika at/o
mga aksyon. Maaari mong tukuyin ang isang module para sa parehong "--source" at ang "--dest", na may 'm'
bahagi ng espesipikasyon. Halimbawa:

--source D=test,t=test1,m=My::Module1 --dest m=My::Module2,t=test2

Magiging sanhi ito ng pt-archiver na i-load ang My::Module1 at My::Module2 packages, lumikha
mga pagkakataon ng mga ito, at pagkatapos ay tumawag sa kanila sa panahon ng proseso ng pag-archive.

Maaari ka ring tumukoy ng isang plugin na may "--plugin".

Dapat ibigay ng module ang interface na ito:

bago(dbh => $dbh, db => $db_name, tbl => $tbl_name)
Ang constructor ng plugin ay ipinasa ng isang reference sa database handle, ang database
pangalan, at pangalan ng talahanayan. Ang plugin ay nilikha pagkatapos lamang na buksan ng pt-archiver ang
koneksyon, at bago nito suriin ang talahanayan na ibinigay sa mga argumento. Ito ay nagbibigay ng
ang plugin ay isang pagkakataon na lumikha at mag-populate ng mga pansamantalang talahanayan, o gumawa ng iba pang gawain sa pag-setup.

before_begin(cols => \@cols, allcols => \@allcols)
Tinatawag ang pamamaraang ito bago magsimula ang pt-archiver sa pag-ulit sa mga row at
pag-archive sa mga ito, ngunit pagkatapos nitong gawin ang lahat ng iba pang gawain sa pag-setup (pagsusuri sa mga istruktura ng talahanayan,
pagdidisenyo ng mga query sa SQL, at iba pa). Ito ang tanging pagkakataon na sasabihin ng pt-archiver ang plugin
mga pangalan ng column para sa mga row na ipapasa nito sa plugin habang nag-a-archive.

Ang argumentong "cols" ay ang mga pangalan ng column na hiniling ng user na i-archive, alinman ni
default o sa pamamagitan ng opsyong "--columns". Ang argumentong "allcols" ay ang listahan ng column
ang mga pangalan para sa bawat hilera ay kukunin ng pt-archiver mula sa source table. Maaari itong makakuha ng higit pa
mga column kaysa sa hiniling ng user, dahil kailangan nito ng ilang column para sa sarili nitong paggamit. Kailan
ang kasunod na mga function ng plugin ay tumatanggap ng isang row, ito ang buong row na naglalaman ng lahat ng dagdag
mga column, kung mayroon man, idinagdag sa dulo.

is_archivable(row => \@row)
Ang pamamaraang ito ay tinatawag para sa bawat hilera upang matukoy kung ito ay maaaring i-archive. Ito
nalalapat lamang sa "--source". Ang argumento ay ang hilera mismo, bilang isang arrayref. Kung ang
method ay nagbabalik true, ang row ay i-archive; kung hindi ay lalaktawan.

Ang paglaktaw sa isang row ay nagdaragdag ng mga komplikasyon para sa mga hindi natatanging index. Karaniwan ang pt-archiver ay gumagamit ng a
WHERE clause na idinisenyo upang i-target ang huling naprosesong row bilang lugar upang simulan ang pag-scan
para sa susunod na SELECT statement. Kung nilaktawan mo ang row sa pamamagitan ng pagbabalik ng false mula sa
is_archivable(), maaaring makapasok ang pt-archiver sa isang walang katapusang loop dahil ang row ay pa rin
umiiral. Samakatuwid, kapag tumukoy ka ng isang plugin para sa argumentong "--source", pt-archiver
ay bahagyang babaguhin ang sugnay na WHERE nito. Sa halip na magsimula sa "greater than or equal
sa" huling naprosesong hilera, magsisimula itong "mahigpit na mas malaki kaysa." Gagana ito
fine sa mga natatanging index tulad ng mga pangunahing key, ngunit maaari itong laktawan ang mga hilera (mag-iwan ng mga butas) sa
mga di-natatanging index o kapag pataas lang sa unang column ng isang index.

Babaguhin ng "pt-archiver" ang sugnay sa parehong paraan kung tinukoy mo ang "--no-delete",
dahil muli ang isang walang katapusang loop ay posible.

Kung tinukoy mo ang opsyong "--bulk-delete" at nagbalik ng mali mula sa paraang ito,
Maaaring hindi gawin ng "pt-archiver" ang gusto mo. Ang row ay hindi ia-archive, ngunit ito ay magiging
tinanggal, dahil gumagana ang maramihang pagtanggal sa mga hanay ng mga row at hindi alam kung aling mga row ang
piniling plugin upang panatilihin.

Kung tutukuyin mo ang opsyong "--bulk-insert", makakaimpluwensya ang return value ng paraang ito
kung ang row ay nakasulat sa pansamantalang file para sa bulk insert, kaya maramihang pagsingit
gagana gaya ng inaasahan. Gayunpaman, ang mga maramihang pagsingit ay nangangailangan ng maramihang pagtanggal.

before_delete(row => \@row)
Ang pamamaraang ito ay tinatawag para sa bawat hilera bago ito matanggal. Nalalapat lamang ito sa
"--pinagmulan". Ito ay isang magandang lugar para sa iyo na pangasiwaan ang mga dependency, tulad ng pagtanggal
mga bagay na foreign-key sa row na tatanggalin mo. Maaari mo ring gamitin
ito upang muling i-archive ang lahat ng mga nakadependeng talahanayan.

Ang paraan ng plugin na ito ay tinatawag kahit na "--no-delete" ay ibinigay, ngunit hindi kung
"--bulk-delete" ay ibinigay.

before_bulk_delete(first_row => \@row, last_row => \@row)
Ang pamamaraang ito ay tinatawag na bago ang isang bulk delete ay naisakatuparan. Ito ay katulad ng
"before_delete" na paraan, maliban sa mga argumento nito ay ang una at huling row ng range
na tinanggal. Ito ay tinatawag kahit na "--no-delete" ay ibinigay.

before_insert(row => \@row)
Ang pamamaraang ito ay tinatawag para sa bawat hilera bago ito maipasok. Nalalapat lamang ito sa
"--dest". Maaari mong gamitin ito upang ipasok ang hilera sa maraming mga talahanayan, marahil ay may isang
SA DUPLICATE KEY UPDATE na sugnay upang bumuo ng mga talahanayan ng buod sa isang warehouse ng data.

Ang pamamaraang ito ay hindi tinatawag kung ang "--bulk-insert" ay ibinigay.

before_bulk_insert(first_row => \@row, last_row => \@row, filename =>
bulk_insert_filename)
Ang pamamaraang ito ay tinatawag bago ang isang bulk insert ay naisakatuparan. Ito ay katulad ng
"before_insert" na pamamaraan, maliban sa mga argumento nito ay ang una at huling hilera ng hanay
na tinanggal.

custom_sth(row => \@row, sql => $sql)
Ang pamamaraang ito ay tinatawag bago ipasok ang hilera, ngunit pagkatapos ng "before_insert()". Ito
nagbibigay-daan sa plugin na tumukoy ng ibang "INSERT" na pahayag kung ninanais. Ang pagbabalik
halaga (kung mayroon man) ay dapat na isang DBI statement handle. Ang parameter na "sql" ay ang teksto ng SQL
ginamit upang ihanda ang default na "INSERT" na pahayag. Ang pamamaraang ito ay hindi tinatawag kung ikaw
tukuyin ang "--bulk-insert".

Kung walang ibinalik na halaga, gagamitin ang default na "INSERT" statement handle.

Nalalapat lang ang paraang ito sa plugin na tinukoy para sa "--dest", kaya kung hindi ang iyong plugin
ginagawa ang iyong inaasahan, tingnan kung tinukoy mo ito para sa patutunguhan at hindi sa
pinagmulan.

custom_sth_bulk(first_row => \@row, last_row => \@row, sql => $sql, filename =>
$bulk_insert_filename)
Kung tinukoy mo ang "--bulk-insert", ang paraang ito ay tinatawag na bago ang bulk
ipasok, ngunit pagkatapos "before_bulk_insert()", at magkaiba ang mga argumento.

Ang return value ng pamamaraang ito atbp ay katulad ng "custom_sth()"pamamaraan.

after_finish()
Ang pamamaraang ito ay tinatawag pagkatapos lumabas ang pt-archiver sa archiving loop, nagsasagawa ng lahat ng database
humahawak, nagsasara ng "--file", at nagpi-print ng panghuling istatistika, ngunit bago tumakbo ang pt-archiver
ANALYZE o OPTIMIZE (tingnan ang "--analyze" at "--optimize").

Kung tumukoy ka ng plugin para sa parehong "--source" at "--dest", pt-archiver constructs, calls
before_begin(), at mga tawag after_finish() sa dalawang plugin sa ayos na "--source",
"--dest".

Ipinapalagay ng pt-archiver na kinokontrol nito ang mga transaksyon, at ang plugin ay HINDI magko-commit o mag-roll
ibalik ang database handle. Ang database handle na ipinasa sa constructor ng plugin ay ang
parehong handle pt-archiver ay gumagamit ng sarili nito. Tandaan na ang "--source" at "--dest" ay magkahiwalay
humahawak.

Maaaring ganito ang hitsura ng isang sample na module:

package My::Module;

sub new {
my ($class, %args ) = @_;
return bless(\%args, $class);
}

sub before_begin {
my ($self, %args ) = @_;
# I-save ang mga pangalan ng column para sa ibang pagkakataon
$self->{cols} = $args{cols};
}

sub is_archivable {
my ($self, %args ) = @_;
# Gumawa ng ilang advanced na lohika gamit ang $args{row}
1 bumalik;
}

sub before_delete {} # Huwag kumilos
sub before_insert {} # Huwag kang kumilos
sub custom_sth {} # Huwag kumilos
sub after_finish {} # Huwag kang kumilos

1;

Kapaligiran


Ang environment variable na "PTDEBUG" ay nagbibigay-daan sa verbose debugging na output sa STDERR. Upang paganahin
pag-debug at pagkuha ng lahat ng output sa isang file, patakbuhin ang tool tulad ng:

PTDEBUG=1 pt-archiver ... > FILE 2>&1

Mag-ingat: ang pag-debug ng output ay malaki at maaaring makabuo ng ilang megabytes ng output.

SYSTEM MGA KINAKAILANGAN


Kailangan mo ng Perl, DBI, DBD::mysql, at ilang mga pangunahing pakete na dapat i-install sa anumang
makatwirang bagong bersyon ng Perl.

Gamitin ang pt-archiverp online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

  • 1
    DivKit
    DivKit
    Ang DivKit ay isang open source na Server-Driven
    Framework ng UI (SDUI). Pinapayagan ka nitong
    ilunsad ang mga update mula sa server sa
    iba't ibang bersyon ng app. Gayundin, maaari itong maging
    ginagamit para...
    I-download ang DivKit
  • 2
    subconverter
    subconverter
    Utility upang i-convert sa pagitan ng iba't-ibang
    format ng subscription. Mga gumagamit ng Shadowrocket
    dapat gumamit ng ss, ssr o v2ray bilang target.
    Maaari mong idagdag ang &remark= sa
    Telegram-like na HT...
    I-download ang subconverter
  • 3
    SWASH
    SWASH
    Ang SWASH ay isang pangkalahatang layunin na numero
    tool para sa pagtulad sa hindi matatag,
    non-hydrostatic, free-surface,
    rotational flow at transport phenomena
    sa tubig sa baybayin bilang ...
    I-download ang SWASH
  • 4
    VBA-M (Naka-archive - Ngayon sa Github)
    VBA-M (Naka-archive - Ngayon sa Github)
    Lumipat ang proyekto sa
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Mga Tampok:Paglikha ng cheatsave statesmulti
    system, sumusuporta sa gba, gbc, gb, sgb,
    sgb2Tu...
    I-download ang VBA-M (Naka-archive - Ngayon sa Github)
  • 5
    Stacer
    Stacer
    Linux System Optimizer at Pagsubaybay
    Github Repository:
    https://github.com/oguzhaninan/Stacer.
    Audience: Mga End User/Desktop. Gumagamit
    interface: Qt. Programming La...
    I-download ang Stacer
  • 6
    orangefox
    orangefox
    Fork ng TeamWinRecoveryProject(TWRP)
    na may maraming karagdagang pag-andar, muling idisenyo
    at higit pang Mga Tampok:Sinusuportahan ang Treble at
    non-Treble ROMsUp-to-date Oreo kernel,
    binuo...
    I-download ang OrangeFox
  • Marami pa »

Linux command

Ad