InglesPransesEspanyol

OnWorks favicon

pt-online-schema-changep - Online sa Cloud

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

Ito ang command na pt-online-schema-changep 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-online-schema-change - ALTER table nang hindi nilala-lock ang mga ito.

SINOPSIS


Paggamit: pt-online-schema-change [OPTIONS] DSN

Binabago ng pt-online-schema-change ang istraktura ng talahanayan nang hindi hinaharangan ang mga pagbabasa o pagsusulat.
Tukuyin ang database at talahanayan sa DSN. Huwag gamitin ang tool na ito bago basahin ito
dokumentasyon at maingat na suriin ang iyong mga backup.

Magdagdag ng column sa sakila.actor:

pt-online-schema-change --alter "ADD COLUMN c1 INT" D=sakila,t=actor

Baguhin ang sakila.actor sa InnoDB, epektibong gumaganap ng OPTIMIZE TABLE sa isang hindi pagharang
fashion dahil isa na itong talahanayan ng InnoDB:

pt-online-schema-change --alter "ENGINE=InnoDB" D=sakila,t=actor

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


Ginagaya ng pt-online-schema-change ang paraan kung paano binabago ng MySQL ang mga talahanayan sa loob, ngunit gumagana ito
sa isang kopya ng talahanayan na nais mong baguhin. Nangangahulugan ito na ang orihinal na talahanayan ay hindi
naka-lock, at maaaring patuloy na basahin at baguhin ng mga kliyente ang data dito.

Gumagana ang pt-online-schema-change sa pamamagitan ng paglikha ng isang walang laman na kopya ng talahanayan upang baguhin, baguhin
ito ayon sa ninanais, at pagkatapos ay kopyahin ang mga hilera mula sa orihinal na talahanayan patungo sa bagong talahanayan. Kapag ang
kumpleto na ang kopya, inilalayo nito ang orihinal na talahanayan at pinapalitan ito ng bago. Sa pamamagitan ng
default, ibinabagsak din nito ang orihinal na talahanayan.

Ang proseso ng pagkopya ng data ay ginagawa sa maliliit na piraso ng data, na iba-iba upang subukan
gawin silang isagawa sa isang tiyak na tagal ng oras (tingnan ang "--chunk-time"). Ang prosesong ito ay napaka
katulad ng kung paano gumagana ang ibang mga tool, gaya ng pt-table-checksum. Anumang pagbabago sa data sa
ang orihinal na mga talahanayan sa panahon ng kopya ay makikita sa bagong talahanayan, dahil ang tool
lumilikha ng mga trigger sa orihinal na talahanayan upang i-update ang kaukulang mga hilera sa bagong talahanayan.
Ang paggamit ng mga trigger ay nangangahulugan na ang tool ay hindi gagana kung anumang trigger ay natukoy na
sa mesa.

Kapag natapos na ng tool ang pagkopya ng data sa bagong talahanayan, gumagamit ito ng atomic na "RENAME TABLE"
operasyon upang sabay na palitan ang pangalan ng orihinal at bagong mga talahanayan. Matapos ito ay makumpleto,
ibinaba ng tool ang orihinal na talahanayan.

Ang mga dayuhang key ay nagpapalubha sa pagpapatakbo ng tool at nagpapakilala ng karagdagang panganib. Ang teknik
ng atomically renaming ang orihinal at bagong mga talahanayan ay hindi gumagana kapag ang mga dayuhang key ay tumutukoy
sa mesa. Dapat na i-update ng tool ang mga foreign key para sumangguni sa bagong talahanayan pagkatapos ng schema
kumpleto na ang pagbabago. Sinusuportahan ng tool ang dalawang paraan para magawa ito. Mababasa mo
higit pa tungkol dito sa dokumentasyon para sa "--alter-foreign-keys-method".

Ang mga dayuhang key ay nagdudulot din ng ilang mga side effect. Ang huling talahanayan ay magkakaroon ng parehong mga dayuhang key
at ini-index bilang orihinal na talahanayan (maliban kung iba ang iyong tinukoy sa iyong ALTER
statement), ngunit ang mga pangalan ng mga bagay ay maaaring bahagyang baguhin upang maiwasan ang pangalan ng bagay
mga banggaan sa MySQL at InnoDB.

Para sa kaligtasan, hindi binabago ng tool ang talahanayan maliban kung tinukoy mo ang opsyong "--execute",
na hindi pinagana bilang default. Sinusuportahan ng tool ang iba't ibang mga hakbang upang maiwasan
hindi gustong pagkarga o iba pang mga problema, kabilang ang awtomatikong pag-detect ng mga replika, pagkonekta sa
sa kanila, at gamit ang mga sumusunod na pagsusuri sa kaligtasan:

· Sa karamihan ng mga kaso ang tool ay tatangging gumana maliban kung ang isang PRIMARY KEY o NATATANGING INDEX ay
naroroon sa talahanayan. Tingnan ang "--alter" para sa mga detalye.

· Ang tool ay tumangging gumana kung nakita nito ang mga filter ng pagtitiklop. Tingnan mo
"--[no]check-replication-filters" para sa mga detalye.

· Pino-pause ng tool ang operasyon ng pagkopya ng data kung may nakita itong mga replika na naantala
sa pagtitiklop. Tingnan ang "--max-lag" para sa mga detalye.

· Ang tool ay nag-pause o nag-abort ng operasyon nito kung ito ay nakakita ng masyadong maraming load sa server. Tingnan mo
"--max-load" at "--critical-load" para sa mga detalye.

· Ang tool ay nagtatakda ng "innodb_lock_wait_timeout=1" at (para sa MySQL 5.5 at mas bago)
"lock_wait_timeout=60" para mas malamang na maging biktima ito ng anumang lock
pagtatalo, at mas malamang na makagambala sa iba pang mga transaksyon. Ang mga halagang ito ay maaaring
binago sa pamamagitan ng pagtukoy ng "--set-vars".

· Tumanggi ang tool na baguhin ang talahanayan kung ang mga hadlang sa dayuhang key ay tumutukoy dito, maliban kung
tinukoy mo ang "--alter-foreign-keys-method".

· Hindi maaaring baguhin ng tool ang mga talahanayan ng MyISAM sa mga node na "Percona XtraDB Cluster".

percona XtraDB Kumpol


Gumagana ang pt-online-schema-change sa Percona XtraDB Cluster (PXC) 5.5.28-23.7 at mas bago, ngunit
mayroong dalawang limitasyon: ang mga talahanayan ng InnoDB lamang ang maaaring baguhin, at ang "wsrep_OSU_method" ay dapat
itakda sa "TOI" (kabuuang pagkakabukod ng pagkakasunud-sunod). Lalabas ang tool nang may error kung ang host ay a
cluster node at ang talahanayan ay MyISAM o kino-convert sa MyISAM ("ENGINE=MyISAM"), o
kung ang "wsrep_OSU_method" ay hindi "TOI". Walang paraan upang hindi paganahin ang mga pagsusuring ito.

oUTPUT


Ang tool ay nagpi-print ng impormasyon tungkol sa mga aktibidad nito sa STDOUT upang makita mo kung ano ito
ginagawa. Sa yugto ng pagkopya ng data, nagpi-print ito ng mga ulat ng "--progress" sa STDERR. Makukuha mo
karagdagang impormasyon sa pamamagitan ng pagtukoy ng "--print".

Kung ang "--statistics" ay tinukoy, ang isang ulat ng iba't ibang internal na bilang ng kaganapan ay naka-print sa
sa wakas, tulad ng:

# Bilang ng Kaganapan
# ====== =====
# INSERT 1

Opsyon


Ang "--dry-run" at "--execute" ay kapwa eksklusibo.

Tumatanggap ang tool na ito ng mga karagdagang argumento sa command-line. Sumangguni sa "SYNOPSIS" at paggamit
impormasyon para sa mga detalye.

--baguhin
uri: string

Ang pagbabago ng schema, nang walang mga keyword na ALTER TABLE. Maaari kang magsagawa ng maramihan
mga pagbabago sa talahanayan sa pamamagitan ng pagtukoy sa mga ito gamit ang mga kuwit. Mangyaring sumangguni sa MySQL
manual para sa syntax ng ALTER TABLE.

Nalalapat ang mga sumusunod na limitasyon na, kung susubukan, ay magiging sanhi ng pagbagsak ng tool
hindi mahuhulaan na mga paraan:

· Sa halos lahat ng kaso, kailangang mayroong PRIMARY KEY o UNIQUE INDEX sa
mesa. Ito ay kinakailangan dahil ang tool ay gumagawa ng DELETE trigger upang panatilihin ang
na-update ang bagong talahanayan habang tumatakbo ang proseso.

Ang isang kapansin-pansing exception ay kapag ang isang PRIMARY KEY o UNIQUE INDEX ay ginawa mula sa
nabubuhay haligi bilang bahagi ng ALTER clause; sa kasong iyon ay gagamitin nito ang mga ito
(mga) column para sa DELETE trigger.

· Ang sugnay na "RENAME" ay hindi maaaring gamitin upang palitan ang pangalan ng talahanayan.

· Ang mga column ay hindi maaaring palitan ng pangalan sa pamamagitan ng pag-drop at muling pagdaragdag gamit ang bagong pangalan. Ang kasangkapan
hindi kokopyahin ang data ng orihinal na column sa bagong column.

· Kung nagdagdag ka ng column na walang default na value at gagawin itong HINDI NULL, gagawin ng tool
mabibigo, dahil hindi nito susubukang hulaan ang isang default na halaga para sa iyo; Dapat mong tukuyin ang
default.

· Ang "DROP FOREIGN KEY constraint_name" ay nangangailangan ng pagtukoy ng "_constraint_name" sa halip
kaysa sa tunay na "constraint_name". Dahil sa isang limitasyon sa MySQL, pt-online-schema-
ang pagbabago ay nagdaragdag ng nangungunang underscore sa mga pangalan ng hadlang sa dayuhang key kapag lumilikha ng
bagong mesa. Halimbawa, upang i-drop ang hadlang na ito:

CONSTRAINT `fk_foo` FOREIGN KEY (`foo_id`) MGA SANGGUNIAN `bar` (`foo_id`)

Dapat mong tukuyin ang "--alter "DROP FOREIGN KEY _fk_foo"".

· Ang tool ay hindi gumagamit ng "LOCK IN SHARE MODE" sa MySQL 5.0 dahil maaari itong magdulot ng a
slave error na sumisira sa pagtitiklop:

Nagdulot ng iba't ibang error ang query sa master at slave. Error sa master:
'Nakita ang deadlock kapag sinusubukang kunin ang lock; subukang i-restart ang transaksyon' (1213),
Error sa alipin: 'walang error' (0). Default na database: 'pt_osc'.
Query: 'INSERT INTO pt_osc.t (id, c) VALUES ('730', 'new row')'

Nangyayari ang error kapag nagko-convert ng talahanayan ng MyISAM sa InnoDB dahil ang MyISAM ay hindi-
transactional ngunit ang InnoDB ay transactional. Ang MySQL 5.1 at mas bago ay humahawak sa kasong ito
tama, ngunit ang pagsubok ay nagpaparami ng error 5% ng oras sa MySQL 5.0.

Ito ay isang MySQL bug, katulad nghttp://bugs.mysql.com/bug.php?id=45694>, ngunit
walang fix o workaround sa MySQL 5.0. Nang walang "LOCK IN SHARE MODE", mga pagsubok
pumasa sa 100% ng oras, kaya ang panganib ng pagkawala ng data o paglabag sa pagtitiklop ay dapat na
bale-wala

Be sigurado sa patunayan ang bago mesa if paggamit MySQL 5.0 at convert mula MyISAM sa
InnoDB!

--alter-foreign-keys-method
uri: string

Paano baguhin ang mga dayuhang key upang matukoy nila ang bagong talahanayan. Foreign keys yan
reference ang talahanayan na babaguhin ay dapat tratuhin ng espesyal upang matiyak na sila
patuloy na sumangguni sa tamang talahanayan. Kapag pinalitan ng tool ang orihinal na talahanayan sa
hayaan ang bago ang pumalit sa lugar nito, ang mga dayuhang key ay "sumunod" sa pinalitan ng pangalan na talahanayan, at dapat
baguhin upang i-reference ang bagong talahanayan sa halip.

Sinusuportahan ng tool ang dalawang pamamaraan upang makamit ito. Awtomatiko nitong nahahanap ang "bata
mga talahanayan" na tumutukoy sa talahanayang babaguhin.

kotse
Awtomatikong matukoy kung aling paraan ang pinakamahusay. Gumagamit ang tool ng "rebuild_constraints"
kung maaari (tingnan ang paglalarawan ng paraang iyon para sa mga detalye), at kung hindi, pagkatapos ay ito
gumagamit ng "drop_swap".

rebuild_constraints
Gumagamit ang pamamaraang ito ng "ALTER TABLE" upang i-drop at muling idagdag ang mga hadlang sa dayuhang key
sumangguni sa bagong talahanayan. Ito ang ginustong pamamaraan, maliban kung isa o higit pa sa
ang mga talahanayan ng "bata" ay napakalaki na ang "ALTER" ay magtatagal ng masyadong mahaba. Ang kasangkapan
tinutukoy iyon sa pamamagitan ng paghahambing ng bilang ng mga row sa child table sa rate sa
na kayang kopyahin ng tool ang mga hilera mula sa lumang talahanayan patungo sa bagong talahanayan. Kung ang
Tinatantya ng tool na ang talahanayan ng bata ay maaaring baguhin sa mas kaunting oras kaysa sa
"--chunk-time", pagkatapos ay gagamitin nito ang diskarteng ito. Para sa mga layunin ng pagtantya ng
oras na kinakailangan para baguhin ang child table, pinaparami ng tool ang row-copying rate
sa pamamagitan ng "--chunk-size-limit", dahil ang "ALTER TABLE" ng MySQL ay karaniwang mas mabilis
kaysa sa panlabas na proseso ng pagkopya ng mga hilera.

Dahil sa isang limitasyon sa MySQL, ang mga dayuhang key ay hindi magkakaroon ng parehong mga pangalan pagkatapos ng
ALTER na ginawa nila bago ito. Kailangang palitan ng pangalan ng tool ang foreign key kapag ito
muling tukuyin ito, na nagdaragdag ng nangungunang underscore sa pangalan. Sa ilang mga kaso, ang MySQL
awtomatikong pinapalitan din ang pangalan ng mga index na kinakailangan para sa foreign key.

drop_swap
Huwag paganahin ang mga foreign key check (FOREIGN_KEY_CHECKS=0), pagkatapos ay i-drop ang orihinal na talahanayan
bago palitan ang pangalan ng bagong talahanayan sa lugar nito. Ito ay iba sa karaniwan
paraan ng pagpapalit ng luma at bagong talahanayan, na gumagamit ng atomic na "RENAME" ibig sabihin
hindi matukoy sa mga aplikasyon ng kliyente.

Ang pamamaraang ito ay mas mabilis at hindi humaharang, ngunit ito ay mas mapanganib sa dalawang kadahilanan.
Una, sa maikling panahon sa pagitan ng pag-drop sa orihinal na talahanayan at pagpapalit ng pangalan ng
pansamantalang talahanayan, ang talahanayan na babaguhin ay hindi umiiral, at mga query
laban dito ay magreresulta sa isang pagkakamali. Pangalawa, kung may mali at bago
Ang talahanayan ay hindi maaaring palitan ng pangalan sa lugar ng luma, pagkatapos ay huli na
i-abort, dahil ang lumang mesa ay nawala nang tuluyan.

Pinipilit ng pamamaraang ito ang "--no-swap-tables" at "--no-drop-old-table".

wala
Ang pamamaraang ito ay parang "drop_swap" na walang "swap". Anumang mga dayuhang susi na
na isinangguni ang orihinal na talahanayan ay sasangguni na ngayon sa isang hindi umiiral na talahanayan. Ito ay
karaniwang nagdudulot ng mga paglabag sa foreign key na nakikita sa "SHOW ENGINE INNODB
STATUS", katulad ng sumusunod:

Sinusubukang idagdag sa index na `idx_fk_staff_id` tuple:
DATA TUPLE: 2 field;
0: len 1; hex 05; asc ;;
1: len 4; hex 80000001; asc ;;
Pero ang parent table `sakila`.`staff_old`
o ang .ibd file nito ay kasalukuyang hindi umiiral!

Ito ay dahil ang orihinal na talahanayan (sa kasong ito, sakila.staff) ay pinalitan ng pangalan
sakila.staff_old at saka bumaba. Ang pamamaraang ito ng paghawak ng mga hadlang sa dayuhang key
ay ibinigay upang ang database administrator ay maaaring hindi paganahin ang built-in na tool
functionality kung ninanais.

--[no]analyse-before-swap
default: oo

Ipatupad ang ANALYZE TABLE sa bagong table bago magpalit sa luma. Bilang default,
nangyayari lamang ito kapag nagpapatakbo ng MySQL 5.6 at mas bago, at ang "innodb_stats_persistent" ay
pinagana. Tahasang tukuyin ang opsyon upang paganahin o huwag paganahin ito anuman ang MySQL
bersyon at "innodb_stats_persistent".

Iniiwasan nito ang isang potensyal na seryosong isyu na nauugnay sa mga istatistika ng InnoDB optimizer.
Kung abala ang talahanayang inaalerto at mabilis na makumpleto ang tool, gagawin ng bagong talahanayan
walang mga istatistika ng optimizer pagkatapos na mapalitan. Maaari itong maging sanhi ng mabilis, paggamit ng index
mga query na magsagawa ng buong pag-scan ng talahanayan hanggang sa ma-update ang mga istatistika ng optimizer (karaniwan ay pagkatapos
10 segundo). Kung ang mesa ay malaki at ang server ay abala, maaari itong maging sanhi ng pagkawala.

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

--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.

--[no]check-alter
default: oo

Pino-parse ang "--alter" na tinukoy at sinusubukang bigyan ng babala ang posibleng hindi sinasadyang pag-uugali.
Sa kasalukuyan, sinusuri nito ang:

Pinapalitan ang pangalan ng column
Sa mga nakaraang bersyon ng tool, pinapalitan ang pangalan ng column na may "CHANGE COLUMN name
new_name" ay hahantong sa pagkawala ng data ng column na iyon. Pina-parse na ngayon ng tool ang
baguhin ang pahayag at sinusubukang hulihin ang mga kasong ito, kaya dapat mayroon ang pinalitan ng pangalan na mga column
ang parehong data tulad ng mga orihinal. Gayunpaman, ang code na gumagawa nito ay hindi isang buong-
blown SQL parser, kaya dapat mo munang patakbuhin ang tool gamit ang "--dry-run" at "--print"
at i-verify na natukoy nito nang tama ang mga pinangalanang column.

DROP PRIMARY KEY
Kung ang "--alter" ay naglalaman ng "DROP PRIMARY KEY" (case- at space-insensitive), isang babala
ay naka-print at ang tool ay lalabas maliban kung ang "--dry-run" ay tinukoy. Binabago ang
Maaaring mapanganib ang pangunahing key, ngunit kakayanin ito ng tool. Ang mga trigger ng tool,
lalo na ang DELETE trigger, ay pinaka-apektado sa pamamagitan ng pagbabago sa pangunahing key
dahil mas gusto ng tool na gamitin ang pangunahing key para sa mga trigger nito. Dapat mo
patakbuhin muna ang tool gamit ang "--dry-run" at "--print" at i-verify na ang mga nag-trigger ay
iwasto.

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

Oras ng pagtulog sa pagitan ng mga pagsusuri para sa "--max-lag".

--[no]check-plan
default: oo

Suriin ang mga plano sa pagpapatupad ng query para sa kaligtasan. Bilang default, ang pagpipiliang ito ay nagiging sanhi ng paggana ng tool
IPALIWANAG bago magpatakbo ng mga query na nilalayong ma-access ang isang maliit na halaga ng data, ngunit
na maaaring ma-access ang maraming mga hilera kung pipiliin ng MySQL ang isang masamang plano sa pagpapatupad. Kabilang dito ang
mga query para matukoy ang chunk boundaries at ang chunk query mismo. Kung ito ay lilitaw
na gagamit ang MySQL ng masamang plano sa pagpapatupad ng query, laktawan ng tool ang tipak ng
table.

Gumagamit ang tool ng ilang heuristic upang matukoy kung masama ang isang plano sa pagpapatupad. Ang
una ay kung EXPLAIN ang mga ulat na ang MySQL ay nagnanais na gamitin ang nais na index upang ma-access
ang mga hilera. Kung pipili ang MySQL ng ibang index, itinuturing ng tool na hindi ligtas ang query.

Sinusuri din ng tool kung gaano karami sa index ang ulat ng MySQL na gagamitin nito para sa
tanong. Ang EXPLAIN output ay nagpapakita nito sa key_len column. Naaalala ng tool ang
pinakamalaking key_len na nakita, at nilalaktawan ang mga chunks kung saan iniulat ng MySQL na gagamit ito ng mas maliit
prefix ng index. Ang heuristic na ito ay maaaring maunawaan bilang paglaktaw ng mga chunks na mayroong a
mas masamang plano ng pagpapatupad kaysa sa iba pang mga chunks.

Ang tool ay nagpi-print ng babala sa unang pagkakataon na ang isang tipak ay nilaktawan dahil sa isang hindi magandang pagpapatupad
plano sa bawat talahanayan. Ang mga kasunod na tipak ay nilaktawan nang tahimik, bagama't makikita mo ang
bilang ng mga nilaktawan na chunks sa SKIPPED column sa output ng tool.

Ang opsyong ito ay nagdaragdag ng ilang gawain sa pag-setup sa bawat talahanayan at tipak. Kahit na ang trabaho ay hindi
mapanghimasok para sa MySQL, nagreresulta ito sa mas maraming round-trip sa server, na kumukonsumo
oras. Ang paggawa ng mga tipak na masyadong maliit ay magiging sanhi ng paglaki ng overhead. Ito
samakatuwid ay inirerekomenda na huwag kang gumawa ng mga tipak na masyadong maliit, dahil maaaring tumagal ang tool
napakahabang oras upang makumpleto kung gagawin mo.

--[no]check-replication-filter
default: oo

I-abort kung nakatakda ang anumang replication filter sa anumang server. Hinahanap ng tool ang server
mga opsyon na nag-filter ng pagtitiklop, gaya ng binlog_ignore_db at replicate_do_db. Kung ito
nakakahanap ng anumang ganoong mga filter, ito ay na-abort nang may error.

Kung ang mga replika ay na-configure na may anumang mga opsyon sa pag-filter, dapat kang mag-ingat na huwag
upang baguhin ang anumang mga database o mga talahanayan na umiiral sa master at hindi ang mga replika,
dahil maaari itong maging sanhi ng pag-uulit upang mabigo. Para sa karagdagang impormasyon sa pagtitiklop
mga panuntunan, tingnanhttp://dev.mysql.com/doc/en/replication-rules.html>.

--check-slave-lag
uri: string

I-pause ang kopya ng data hanggang sa mas mababa sa "--max-lag" ang lag ng replica na ito. Ang halaga ay a
DSN na nagmamana ng mga katangian mula sa mga opsyon sa koneksyon ("--port", "--user",
atbp.). Ino-override ng opsyong ito ang normal na gawi ng paghahanap at patuloy
pagsubaybay ng replication lag sa LAHAT ng konektadong mga replika. Kung ayaw mong magmonitor
LAHAT ng mga replika, ngunit gusto mo ng higit sa isang replika na masubaybayan, pagkatapos ay gamitin ang
Opsyon ng DSN sa opsyong "--recursion-method" sa halip na opsyong ito.

--chunk-index
uri: string

Mas gusto ang index na ito para sa chunking table. Bilang default, ang tool ang pinakamaraming pinipili
naaangkop na index para sa chunking. Ang pagpipiliang ito ay nagbibigay-daan sa iyong tukuyin ang index na ikaw
mas gusto. Kung wala ang index, babalik ang tool sa default nito
pag-uugali ng pagpili ng isang index. Ang tool ay nagdaragdag ng index sa mga SQL statement sa a
"FORCE INDEX" clause. Mag-ingat kapag ginagamit ang pagpipiliang ito; isang mahinang pagpili ng index ay maaaring
maging sanhi ng masamang pagganap.

--chunk-index-column
uri: int

Gamitin lamang itong maraming kaliwang column ng isang "--chunk-index." Gumagana lamang ito para sa
compound index, at kapaki-pakinabang sa mga kaso kung saan ang isang bug sa MySQL query optimizer
(tagaplano) nagiging sanhi ito upang mag-scan ng malaking hanay ng mga hilera sa halip na gamitin ang index upang mahanap
tumpak na simula at pagtatapos na mga punto. Minsan nangyayari ang problemang ito sa mga index na may
maraming column, gaya ng 4 o higit pa. Kung mangyari ito, maaaring mag-print ng babala ang tool
nauugnay sa opsyong "--[no]check-plan". Pagtuturo sa tool na gamitin lamang ang una
Ang N column ng index ay isang solusyon para sa bug sa ilang mga kaso.

--laki ng tipak
uri: laki; default: 1000

Bilang ng mga row na pipiliin para sa bawat chunk na kinopya. Ang mga pinapayagang suffix ay k, M, G.

Maaaring i-override ng opsyong ito ang default na gawi, na isaayos ang laki ng chunk
dynamic na subukang patakbuhin ang mga chunks sa eksaktong "--chunk-time" na mga segundo. Kapag ganito
ang opsyon ay hindi tahasang itinakda, ang default na halaga nito ay ginagamit bilang panimulang punto, ngunit pagkatapos
na, binabalewala ng tool ang halaga ng opsyong ito. Kung tahasan mong itinakda ang opsyong ito,
gayunpaman, pagkatapos ay hindi nito pinapagana ang dynamic na pag-uugali ng pagsasaayos at sinusubukang gawin ang lahat ng mga chunks
eksakto ang tinukoy na bilang ng mga hilera.

Mayroong isang subtlety: kung ang index ng tipak ay hindi natatangi, kung gayon posible ang mga tipak na iyon
ay magiging mas malaki kaysa sa ninanais. Halimbawa, kung ang isang talahanayan ay tiniyak ng isang index na iyon
naglalaman ng 10,000 ng isang naibigay na halaga, walang paraan upang magsulat ng sugnay na WHERE na tumutugma
1,000 lang sa mga value, at ang chunk na iyon ay hindi bababa sa 10,000 row ang malaki. Ang nasabing a
malamang na lalaktawan ang chunk dahil sa "--chunk-size-limit".

--chunk-size-limit
uri: lumutang; default: 4.0

Huwag kopyahin ang mga tipak na mas malaki kaysa sa nais na laki ng tipak.

Kapag ang isang talahanayan ay walang natatanging mga index, ang mga sukat ng tipak ay maaaring hindi tumpak. Ang pagpipiliang ito
ay tumutukoy sa isang maximum na matitiis na limitasyon sa kamalian. Ginagamit ang tool sa
tantyahin kung gaano karaming mga hilera ang nasa tipak. Kung ang pagtatantya na iyon ay lumampas sa nais na tipak
ang laki ay di-mino sa limitasyon, pagkatapos ay nilalaktawan ng tool ang tipak.

Ang pinakamababang halaga para sa opsyong ito ay 1, na nangangahulugan na walang tipak na maaaring mas malaki kaysa sa
"--chunk-size". Marahil ay hindi mo gustong tukuyin ang 1, dahil ang mga hilera ay iniulat ni
Ang EXPLAIN ay mga pagtatantya, na maaaring iba sa tunay na bilang ng mga row sa
tipak. Maaari mong i-disable ang oversized chunk checking sa pamamagitan ng pagtukoy ng value na 0.

Ginagamit din ng tool ang opsyong ito upang matukoy kung paano pangasiwaan ang mga foreign key na tinutukoy
ang talahanayan na babaguhin. Tingnan ang "--alter-foreign-keys-method" para sa mga detalye.

--tipak-oras
uri: lumutang; default: 0.5

I-adjust ang laki ng chunk nang pabago-bago upang ang bawat query sa pagkopya ng data ay tumagal nang ganito katagal upang maisagawa.
Sinusubaybayan ng tool ang rate ng pagkopya (mga hilera bawat segundo) at inaayos ang laki ng tipak pagkatapos ng bawat isa
data-copy query, upang ang susunod na query ay tumagal ng ganitong tagal (sa mga segundo).
isagawa. Pinapanatili nito ang isang exponentially decay na moving average ng mga query sa bawat segundo, kaya
na kung nagbabago ang pagganap ng server dahil sa mga pagbabago sa pag-load ng server, ang tool
mabilis na umaayon.

Kung ang opsyong ito ay nakatakda sa zero, ang laki ng chunk ay hindi awtomatikong mag-a-adjust, kaya ang mga oras ng query ay gagawin
mag-iiba, ngunit ang mga laki ng tipak ng query ay hindi. Ang isa pang paraan upang gawin ang parehong bagay ay ang tukuyin ang a
halaga para sa "--chunk-size" nang tahasan, sa halip na iwanan ito sa default.

--config
uri: Array

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

--kritikal-load
uri: Array; default: Threads_running=50

Suriin ang SHOW GLOBAL STATUS pagkatapos ng bawat tipak, at i-abort kung masyadong mataas ang load. Ang
tumatanggap ang opsyon ng listahang pinaghihiwalay ng kuwit ng mga variable at threshold ng katayuan ng MySQL. An
ang opsyonal na "=MAX_VALUE" (o ":MAX_VALUE") ay maaaring sundin ang bawat variable. Kung hindi ibinigay, ang
Tinutukoy ng tool ang isang threshold sa pamamagitan ng pagsusuri sa kasalukuyang halaga sa pagsisimula at pagdodoble nito.

Tingnan ang "--max-load" para sa karagdagang detalye. Parehong gumagana ang mga opsyong ito, maliban na ito
opsyon ay abort ang pagpapatakbo ng tool sa halip na i-pause ito, at ang default na halaga ay
iba ang pag-compute kung wala kang tinukoy na threshold. Ang dahilan para sa pagpipiliang ito ay bilang a
pag-check sa kaligtasan kung sakaling ang mga trigger sa orihinal na talahanayan ay magdagdag ng napakaraming load sa server
na nagdudulot ito ng downtime. Marahil ay walang iisang halaga ng Threads_running iyon
mali para sa bawat server, ngunit ang default na 50 ay tila hindi katanggap-tanggap na mataas para sa
karamihan sa mga server, na nagpapahiwatig na ang operasyon ay dapat na kanselahin kaagad.

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

Kumonekta sa database na ito.

--default-engine
Alisin ang "ENGINE" mula sa bagong talahanayan.

Bilang default, ang bagong talahanayan ay nilikha gamit ang parehong mga pagpipilian sa talahanayan tulad ng orihinal na talahanayan,
kaya kung ang orihinal na talahanayan ay gumagamit ng InnoDB, ang bagong talahanayan ay gagamit ng InnoDB. Sa tiyak
mga kaso na kinasasangkutan ng pagtitiklop, ito ay maaaring magdulot ng hindi sinasadyang mga pagbabago sa mga replika na gumagamit ng a
magkaibang makina para sa parehong mesa. Ang pagtukoy sa opsyong ito ay nagiging sanhi ng bagong talahanayan
malikha gamit ang default na makina ng system.

--defaults-file
maikling anyo: -F; uri: string

Basahin lamang ang mga pagpipilian sa mysql mula sa ibinigay na file. Dapat kang magbigay ng ganap na pathname.

--[no]drop-new-table
default: oo

I-drop ang bagong talahanayan kung nabigo ang pagkopya sa orihinal na talahanayan.

Ang pagtukoy sa "--no-drop-new-table" at "--no-swap-tables" ay nag-iiwan ng bago, binagong kopya
ng talahanayan nang hindi binabago ang orihinal na talahanayan. Tingnan ang "--new-table-name".

--no-drop-new-table ay hindi gumagana sa "alter-foreign-keys-method drop_swap".

--[no]drop-old-table
default: oo

I-drop ang orihinal na talahanayan pagkatapos itong palitan ng pangalan. Matapos ang orihinal na talahanayan ay
matagumpay na pinalitan ng pangalan upang hayaang mapalitan ang bagong talahanayan, at kung walang mga error,
ibinabagsak ng tool ang orihinal na talahanayan bilang default. Kung mayroong anumang mga error, umalis ang tool
ang orihinal na talahanayan sa lugar.

Kung ang "--no-swap-tables" ay tinukoy, pagkatapos ay walang lumang talahanayan na ibababa.

--[walang] mga drop-trigger
default: oo

I-drop ang mga trigger sa lumang mesa. Pinipilit ng "--no-drop-triggers" ang "--no-drop-old-table".

--dry-run
Gumawa at baguhin ang bagong talahanayan, ngunit huwag gumawa ng mga trigger, kopyahin ang data, o palitan ang
orihinal na talahanayan.

--isagawa
Ipahiwatig na nabasa mo na ang dokumentasyon at gusto mong baguhin ang talahanayan. Kailangan mo
tukuyin ang opsyong ito upang baguhin ang talahanayan. Kung hindi mo gagawin, ang tool ay gagana lamang
ilang mga pagsusuri sa kaligtasan at paglabas. Nakakatulong ito na matiyak na nabasa mo ang dokumentasyon
at maunawaan kung paano gamitin ang tool na ito. Kung hindi mo pa nabasa ang dokumentasyon, pagkatapos ay gawin
hindi tukuyin ang pagpipiliang ito.

--puwersa
Ang mga opsyong ito ay lumalampas sa kumpirmasyon kung sakaling gumamit ng alter-foreign-keys-method = wala ,
na maaaring masira ang mga hadlang sa dayuhang key.

- Tumulong
Ipakita ang tulong at lumabas.

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

Kumonekta sa host.

--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 halaga na 0 ay magpapa-pause sa tool kapag *anumang* Flow Control
ang aktibidad ay nakita. Ang default ay walang pagsuri sa Flow Control. Available ang opsyong ito
para sa PXC na bersyon 5.6 o mas mataas.

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

I-pause ang kopya ng data hanggang ang lahat ng lag ng replika ay mas mababa sa halagang ito. Pagkatapos ng bawat datos-
kopyahin ang query (bawat tipak), tinitingnan ng tool ang replication lag ng lahat ng replika sa
na ikinokonekta nito, gamit ang Seconds_Behind_Master. Kung ang anumang replika ay nahuhuli nang higit sa
ang halaga ng opsyong ito, pagkatapos ay matutulog ang tool para sa "--check-interval" na mga segundo,
pagkatapos ay suriin muli ang lahat ng mga replika. Kung tinukoy mo ang "--check-slave-lag", ang tool lang
sinusuri ang server na iyon para sa lag, hindi lahat ng mga server. Kung gusto mong kontrolin nang eksakto kung alin
server ang tool na sinusubaybayan, gamitin ang halaga ng DSN sa "--recursion-method".

Ang tool ay naghihintay magpakailanman para sa mga replika na huminto sa pagkahuli. Kung ang anumang kopya ay itinigil, ang
Ang tool ay naghihintay magpakailanman hanggang sa magsimula ang replika. Ang kopya ng data ay nagpapatuloy kapag lahat
tumatakbo ang mga replika at hindi masyadong nahuhuli.

Ang tool ay nagpi-print ng mga ulat ng pag-unlad habang naghihintay. Kung ang isang kopya ay itinigil, ito ay nagpi-print ng a
ulat ng pag-unlad kaagad, pagkatapos ay muli sa bawat pagitan ng ulat ng pag-unlad.

--todong kargahe
uri: Array; default: Threads_running=25

Suriin ang SHOW GLOBAL STATUS pagkatapos ng bawat chunk, at i-pause kung mayroong mga variable ng status
mas mataas kaysa sa kanilang mga limitasyon. Ang opsyon ay tumatanggap ng comma-separated list ng MySQL
mga variable ng katayuan. Maaaring sundin ng opsyonal na "=MAX_VALUE" (o ":MAX_VALUE") ang bawat isa
variable. Kung hindi ibinigay, tinutukoy ng tool ang isang threshold sa pamamagitan ng pagsusuri sa kasalukuyang
halaga at pagtaas nito ng 20%.

Halimbawa, kung gusto mong i-pause ang tool kapag masyadong mataas ang Threads_connected, ikaw
maaaring tukuyin ang "Threads_connected", at susuriin ng tool ang kasalukuyang halaga kapag ito
nagsisimulang gumana at magdagdag ng 20% ​​sa halagang iyon. Kung ang kasalukuyang halaga ay 100, kung gayon ang tool
ay magpo-pause kapag ang Threads_connected ay lumampas sa 120, at magpapatuloy sa pagtatrabaho kapag ito ay mas mababa sa 120
muli. Kung gusto mong tumukoy ng tahasang threshold, gaya ng 110, maaari mong gamitin ang alinman
"Threads_connected:110" o "Threads_connected=110".

Ang layunin ng opsyong ito ay pigilan ang tool na magdagdag ng masyadong maraming load sa
server. Kung ang mga query sa pagkopya ng data ay mapanghimasok, o kung nagiging sanhi sila ng paghihintay ng lock, kung gayon
iba pang mga query sa server ay may posibilidad na harangan at pila. Ito ay karaniwang sanhi
Threads_running to increase, at matutukoy iyon ng tool sa pamamagitan ng pagpapatakbo ng SHOW GLOBAL
STATUS kaagad pagkatapos ng bawat query. Kung tumukoy ka ng threshold para dito
variable, pagkatapos ay maaari mong turuan ang tool na maghintay hanggang sa gumana nang normal ang mga query
muli. Hindi nito mapipigilan ang pagpila, gayunpaman; bibigyan lang nito ng pagkakataon ang server
para makabawi sa pagpila. Kung mapapansin mo ang pagpila, pinakamahusay na bawasan ang
oras ng tipak.

--new-table-name
uri: string; default: %T_new

Bagong pangalan ng talahanayan bago ito palitan. Ang %T ay pinalitan ng orihinal na pangalan ng talahanayan.
Kapag ginamit ang default, inilalagay ng tool ang pangalan ng hanggang sa 10 "_" (underscore) sa
maghanap ng natatanging pangalan ng talahanayan. Kung tinukoy ang pangalan ng talahanayan, hindi ito nilalagay ng tool sa prefix
na may "_", kaya hindi dapat umiral ang talahanayan.

--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 module file na tumutukoy sa isang "pt_online_schema_change_plugin" na klase. Isang plugin
ay nagbibigay-daan sa iyo na magsulat ng isang Perl module na maaaring kumabit sa maraming bahagi ng pt-online-schema-
pagbabago. Nangangailangan ito ng mahusay na kaalaman sa mga kombensiyon ng Perl at Percona Toolkit, na
ay lampas sa saklaw na ito ng dokumentasyong ito. Mangyaring makipag-ugnayan sa Percona kung mayroon ka
mga katanungan o nangangailangan ng tulong.

Tingnan ang "PLUGIN" para sa higit pang impormasyon.

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

Port number na gagamitin para sa koneksyon.

--print
Mag-print ng mga SQL statement sa STDOUT. Ang pagtukoy sa opsyong ito ay nagbibigay-daan sa iyong makita ang karamihan sa
mga pahayag na isinasagawa ng tool. Maaari mong gamitin ang opsyong ito sa "--dry-run", para sa
Halimbawa.

--pag-unlad
uri: array; default: oras,30

Mag-print ng mga ulat sa pag-unlad sa STDERR habang kumukopya ng mga row. Ang halaga ay pinaghihiwalay ng kuwit
listahan na may dalawang bahagi. Ang unang bahagi ay maaaring porsyento, oras, o mga pag-ulit; ang
ang pangalawang bahagi ay tumutukoy kung gaano kadalas dapat i-print ang isang update, sa porsyento, segundo,
o bilang ng mga pag-ulit.

--tahimik
maikling anyo: -q

Huwag mag-print ng mga mensahe sa STDOUT (idi-disable ang "--progress"). Ang mga pagkakamali at babala ay
naka-print pa rin sa STDERR.

--recurse
uri: int

Bilang ng mga antas na mauulit sa hierarchy kapag nakatuklas ng mga replika. Default ay
walang hanggan. Tingnan din ang "--recursion-method".

--recursion-paraan
uri: array; default: processlist, mga host

Mas gustong paraan ng recursion para sa pagtuklas ng mga replika. Ang mga posibleng pamamaraan ay:

GINAGAMIT NG PARAAN
========================== ==================
processlist IPAKITA ANG PROCESSLIST
host IPAKITA SLAVE HOSTS
dsn=DSN DSNs mula sa isang table
wala Huwag maghanap ng mga alipin

Ang processlist method ay ang default, dahil hindi maaasahan ang SHOW SLAVE HOSTS.
Gayunpaman, ang paraan ng mga host ay maaaring gumana nang mas mahusay kung ang server ay gumagamit ng isang hindi karaniwang port (hindi
3306). Karaniwang ginagawa ng tool ang tamang bagay at hinahanap ang lahat ng mga replika, ngunit maaari kang magbigay
isang ginustong pamamaraan at ito ang unang gagamitin.

Ang paraan ng mga host ay nangangailangan ng mga replika upang mai-configure sa report_host, report_port,
at iba pa

Espesyal ang paraan ng dsn: tinutukoy nito ang isang talahanayan kung saan binabasa ang iba pang mga string ng DSN.
Ang tinukoy na DSN ay dapat tumukoy ng isang D at t, o isang database-qualified na t. Ang talahanayan ng DSN
dapat magkaroon ng sumusunod na istraktura:

GUMAWA NG TABLE `dsns` (
"id" int(11) HINDI NULL AUTO_INCREMENT,
`magulang_id` int(11) DEFAULT NULL,
`dsn` varchar(255) HINDI NULL,
PANGUNAHING SUSI (`id`)
);

Upang gawin ang tool na masubaybayan lamang ang mga host 10.10.1.16 at 10.10.1.17 para sa replication lag,
ipasok ang mga halagang "h=10.10.1.16" at "h=10.10.1.17" sa talahanayan. Sa kasalukuyan, ang
Ang mga DSN ay inayos ayon sa id, ngunit ang id at parent_id ay hindi pinapansin.

--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
innodb_lock_wait_timeout=1
lock_wait_timeout=60

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.

--tulog
uri: lumutang; default: 0

Gaano katagal matulog (sa mga segundo) pagkatapos kopyahin ang bawat tipak. Ang pagpipiliang ito ay kapaki-pakinabang kapag
Ang throttling ng "--max-lag" at "--max-load" ay hindi posible. Isang maliit, sub-segundo
dapat gamitin ang value, tulad ng 0.1, kung hindi, maaaring tumagal ang tool upang makopya
malalaking mesa.

--saksakan
maikling porma; uri: string

Socket file na gagamitin para sa koneksyon.

--mga istatistika
Mag-print ng mga istatistika tungkol sa mga panloob na counter. Ito ay kapaki-pakinabang upang makita kung gaano karaming mga babala
ay pinigilan kumpara sa bilang ng INSERT.

--[no]swap-table
default: oo

Pagpalitin ang orihinal na talahanayan at ang bago, binagong talahanayan. Kinukumpleto ng hakbang na ito ang online
proseso ng pagbabago ng schema sa pamamagitan ng paggawa ng talahanayan na may bagong schema na pumalit sa
orihinal na talahanayan. Ang orihinal na talahanayan ay nagiging "lumang talahanayan," at ibinabagsak ito ng tool
maliban kung hindi mo pinagana ang "--[no]drop-old-table".

--sinusubukan
uri: array

Ilang beses susubukan ang mga kritikal na operasyon. Kung nabigo ang ilang operasyon dahil sa hindi
nakamamatay, mababawi na mga error, ang tool ay naghihintay at sinusubukang muli ang operasyon. Ang mga ito ay
ang mga operasyon na muling sinubukan, kasama ang kanilang default na bilang ng mga pagsubok at oras ng paghihintay
sa pagitan ng mga pagsubok (sa mga segundo):

OPERATION SUBUKAN MAGHINTAY
=================== ===== ====
create_triggers 10 1
drop_triggers 10 1
copy_rows 10 0.25
swap_tables 10 1
update_foreign_keys 10 1
analysis_table 10 1

Upang baguhin ang mga default, tukuyin ang mga bagong halaga tulad ng:

--subukan ang create_triggers:5:0.5,drop_triggers:5:0.5

Dahil dito, sinusubukan ng tool ang "create_triggers" at "drop_triggers" nang 5 beses na may 0.5
pangalawang paghihintay sa pagitan ng mga pagsubok. Kaya ang format ay:

operation:try:wait[,operation:try:wait]

Dapat tukuyin ang lahat ng tatlong halaga.

Tandaan na karamihan sa mga operasyon ay apektado lamang sa MySQL 5.5 at mas bago sa pamamagitan ng
"lock_wait_timeout" (tingnan ang "--set-vars") dahil sa mga metadata lock. Ang "copy_rows"
Ang operasyon ay apektado sa anumang bersyon ng MySQL ng "innodb_lock_wait_timeout".

Para sa paggawa at pag-drop ng mga trigger, nalalapat ang bilang ng mga pagsubok sa bawat "CREATE
TRIGGER" at "DROP TRIGGER" na pahayag para sa bawat trigger. Para sa pagkopya ng mga row, ang numero
ng mga pagsubok ay nalalapat sa bawat tipak, hindi sa buong talahanayan. Para sa pagpapalit ng mga talahanayan, ang numero
ng mga pagsubok ay karaniwang nalalapat nang isang beses dahil mayroon lamang isang "RENAME TABLE"
pahayag. Para sa muling pagbuo ng mga foreign key na hadlang, nalalapat ang bilang ng mga pagsubok
bawat pahayag ("ALTER" na mga pahayag para sa "rebuild_constraints"
"--alter-foreign-keys-method"; iba pang mga pahayag para sa pamamaraang "drop_swap").

Sinusubukang muli ng tool ang bawat operasyon kung mangyari ang mga error na ito:

I-lock ang wait timeout (innodb_lock_wait_timeout at lock_wait_timeout)
Natagpuan ang deadlock
Napatay ang query (KILL QUERY )
Napatay ang koneksyon (KILL CONNECTION )
Nawalan ng koneksyon sa MySQL

Sa kaso ng nawala at napatay na mga koneksyon, awtomatikong muling kumonekta ang tool.

Ang mga pagkabigo at muling pagsubok ay naitala sa "--statistics".

--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 .

ISAKSAK


Ang file na tinukoy ng "--plugin" ay dapat tukuyin ang isang klase (ibig sabihin, isang package) na tinatawag
"pt_online_schema_change_plugin" na may subroutine na "new()". Ang tool ay lilikha ng isang
halimbawa ng klase na ito at tawagan ang anumang mga kawit na tinukoy nito. Walang mga kawit ang kailangan, ngunit a
hindi masyadong kapaki-pakinabang ang plugin kung wala ang mga ito.

Ang mga kawit na ito, sa ganitong pagkakasunud-sunod, ay tinatawag kung tinukoy:

sa loob
before_create_new_table
after_create_new_table
before_alter_new_table
after_alter_new_table
before_create_triggers
after_create_triggers
before_copy_rows
after_copy_rows
before_swap_tables
after_swap_tables
before_update_foreign_keys
after_update_foreign_keys
before_drop_old_table
after_drop_old_table
before_drop_triggers
bago_lumabas
get_slave_lag

Ang bawat kawit ay nagpapasa ng iba't ibang argumento. Upang makita kung aling mga argumento ang ipinapasa sa isang kawit,
hanapin ang pangalan ng hook sa source code ng tool, tulad ng:

# --plugin hook
kung ($plugin && $plugin->can('init') ) {
$plugin->init(
orig_tbl => $orig_tbl,
child_tables => $child_tables,
renamed_cols => $renamed_cols,
alipin => $alipin,
slave_lag_cxns => $slave_lag_cxns,
);
}

Ang komentong "# --plugin hook" ay nauuna sa bawat tawag sa hook.

Mangyaring makipag-ugnayan sa Percona kung mayroon kang mga tanong o kailangan ng tulong.

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.

· AT

dsn: charset; kopya: oo

Default na set ng character.

· D

dsn: database; kopya: oo

Database para sa luma at bagong 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.

· 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

dsn: talahanayan; kopya: hindi

Talahanayan upang baguhin.

· ikaw

dsn: gumagamit; kopya: oo

User para sa pag-login kung hindi kasalukuyang user.

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-online-schema-change ... > 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.

Gumagana lamang ang tool na ito sa MySQL 5.0.2 at mas bagong mga bersyon, dahil ang mga naunang bersyon ay hindi gumagana
mga trigger ng suporta.

Gumamit ng pt-online-schema-changep online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

Linux command

Ad