ນີ້ແມ່ນຄໍາສັ່ງ pt-online-schema-changep ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
pt-online-schema-change - ປ່ຽນແປງຕາຕະລາງໂດຍບໍ່ມີການລັອກພວກມັນ.
ສະຫຼຸບສັງລວມ
ການນໍາໃຊ້: pt-online-schema-change [OPTIONS] DSN
pt-online-schema-change ປ່ຽນແປງໂຄງສ້າງຂອງຕາຕະລາງໂດຍບໍ່ມີການຂັດຂວາງການອ່ານຫຼືຂຽນ.
ລະບຸຖານຂໍ້ມູນ ແລະຕາຕະລາງໃນ DSN. ຢ່າໃຊ້ເຄື່ອງມືນີ້ກ່ອນທີ່ຈະອ່ານມັນ
ເອກະສານແລະການກວດສອບການສໍາຮອງຂໍ້ມູນຂອງທ່ານຢ່າງລະມັດລະວັງ.
ເພີ່ມຖັນໃສ່ sakila.actor:
pt-online-schema-change --alter "ADD COLUMN c1 INT" D=sakila,t=ນັກສະແດງ
ປ່ຽນ sakila.actor ເປັນ InnoDB, ປະຕິບັດ OPTIMIZE TABLE ຢ່າງມີປະສິດຕິຜົນໃນແບບບໍ່ປິດກັ້ນ.
ຄົນອັບເດດ: ເນື່ອງຈາກວ່າມັນເປັນຕາຕະລາງ InnoDB ແລ້ວ:
pt-online-schema-change --alter "ENGINE=InnoDB" D=sakila,t=ນັກສະແດງ
RISKS
Percona Toolkit ແມ່ນຜູ້ໃຫຍ່, ພິສູດໃນໂລກທີ່ແທ້ຈິງ, ແລະທົດສອບໄດ້ດີ, ແຕ່ຖານຂໍ້ມູນທັງຫມົດ
ເຄື່ອງມືສາມາດສ້າງຄວາມສ່ຽງຕໍ່ລະບົບແລະເຄື່ອງແມ່ຂ່າຍຂອງຖານຂໍ້ມູນ. ກ່ອນທີ່ຈະໃຊ້ເຄື່ອງມືນີ້,
ກະລຸນາ:
· ອ່ານເອກະສານຂອງເຄື່ອງມື
·ທົບທວນເຄື່ອງມືທີ່ຮູ້ຈັກ "BUGS"
· ທົດສອບເຄື່ອງມືໃນເຊີບເວີທີ່ບໍ່ແມ່ນການຜະລິດ
·ສໍາຮອງເຄື່ອງແມ່ຂ່າຍການຜະລິດຂອງທ່ານແລະກວດສອບການສໍາຮອງຂໍ້ມູນ
ລາຍລະອຽດ
pt-online-schema-change emulates ວິທີທີ່ MySQL ປ່ຽນແປງຕາຕະລາງພາຍໃນ, ແຕ່ມັນເຮັດວຽກ.
ຢູ່ໃນສຳເນົາຂອງຕາຕະລາງທີ່ທ່ານຕ້ອງການປ່ຽນແປງ. ນີ້ຫມາຍຄວາມວ່າຕາຕະລາງຕົ້ນສະບັບບໍ່ແມ່ນ
ຖືກລັອກ, ແລະລູກຄ້າອາດຈະສືບຕໍ່ອ່ານແລະປ່ຽນຂໍ້ມູນໃນມັນ.
pt-online-schema-change ເຮັດວຽກໂດຍການສ້າງສໍາເນົາຫວ່າງເປົ່າຂອງຕາຕະລາງເພື່ອແກ້ໄຂ, ດັດແປງ
ມັນຕາມທີ່ຕ້ອງການ, ແລະຫຼັງຈາກນັ້ນຄັດລອກແຖວຈາກຕາຕະລາງຕົ້ນສະບັບເຂົ້າໄປໃນຕາຕະລາງໃຫມ່. ໃນເວລາທີ່
ສໍາເນົາສໍາເລັດສົມບູນ, ມັນຍ້າຍອອກຕາຕະລາງຕົ້ນສະບັບແລະທົດແທນທີ່ມັນມີອັນໃຫມ່. ໂດຍ
ຄ່າເລີ່ມຕົ້ນ, ມັນຍັງຫຼຸດລົງຕາຕະລາງຕົ້ນສະບັບ.
ຂະບວນການສໍາເນົາຂໍ້ມູນແມ່ນປະຕິບັດໃນຂະຫນາດນ້ອຍຂອງຂໍ້ມູນ, ທີ່ແຕກຕ່າງກັນເພື່ອພະຍາຍາມ
ເຮັດໃຫ້ພວກເຂົາປະຕິບັດໃນຈໍານວນເວລາສະເພາະ (ເບິ່ງ "--chunk-time"). ຂະບວນການນີ້ແມ່ນຫຼາຍ
ຄ້າຍຄືກັນກັບວິທີການເຄື່ອງມືອື່ນໆ, ເຊັ່ນ: pt-table-checksum, ເຮັດວຽກ. ການດັດແກ້ໃດໆກັບຂໍ້ມູນໃນ
ຕາຕະລາງຕົ້ນສະບັບໃນລະຫວ່າງການສໍາເນົາຈະຖືກສະທ້ອນໃຫ້ເຫັນໃນຕາຕະລາງໃຫມ່, ເພາະວ່າເຄື່ອງມື
ສ້າງ triggers ໃນຕາຕະລາງຕົ້ນສະບັບເພື່ອປັບປຸງແຖວທີ່ສອດຄ້ອງກັນໃນຕາຕະລາງໃຫມ່.
ການໃຊ້ triggers ຫມາຍຄວາມວ່າເຄື່ອງມືຈະບໍ່ເຮັດວຽກຖ້າ triggers ໃດຖືກກໍານົດແລ້ວ
ເທິງໂຕະ.
ເມື່ອເຄື່ອງມືສໍາເລັດການຄັດລອກຂໍ້ມູນເຂົ້າໄປໃນຕາຕະລາງໃຫມ່, ມັນຈະໃຊ້ "RENAME TABLE" ປະລໍາມະນູ.
ການດໍາເນີນງານເພື່ອປ່ຽນຊື່ຕາຕະລາງຕົ້ນສະບັບແລະໃຫມ່ພ້ອມໆກັນ. ຫຼັງຈາກນີ້ສໍາເລັດ,
ເຄື່ອງມືຫຼຸດລົງຕາຕະລາງຕົ້ນສະບັບ.
ກະແຈຕ່າງປະເທດເຮັດໃຫ້ການເຮັດວຽກຂອງເຄື່ອງມືສັບສົນ ແລະແນະນຳຄວາມສ່ຽງເພີ່ມເຕີມ. ເຕັກນິກ
ຂອງການປ່ຽນຊື່ແບບປະລໍາມະນູຂອງຕາຕະລາງຕົ້ນສະບັບແລະໃຫມ່ບໍ່ໄດ້ເຮັດວຽກໃນເວລາທີ່ກະແຈຕ່າງປະເທດອ້າງອີງ
ກັບຕາຕະລາງ. ເຄື່ອງມືຕ້ອງປັບປຸງລະຫັດຕ່າງປະເທດເພື່ອອ້າງອີງໃສ່ຕາຕະລາງໃຫມ່ຫຼັງຈາກ schema
ການປ່ຽນແປງແມ່ນສໍາເລັດ. ເຄື່ອງມືສະຫນັບສະຫນູນສອງວິທີການສໍາລັບການສໍາເລັດນີ້. ເຈົ້າສາມາດອ່ານໄດ້
ເພີ່ມເຕີມກ່ຽວກັບເລື່ອງນີ້ໃນເອກະສານສໍາລັບ "--alter-foreign-keys-method".
ກະແຈຕ່າງປະເທດຍັງເຮັດໃຫ້ເກີດຜົນຂ້າງຄຽງບາງຢ່າງ. ຕາຕະລາງສຸດທ້າຍຈະມີກະແຈຕ່າງປະເທດຄືກັນ
ແລະດັດສະນີເປັນຕາຕະລາງຕົ້ນສະບັບ (ເວັ້ນເສຍແຕ່ວ່າທ່ານກໍານົດແຕກຕ່າງກັນໃນ ALTER ຂອງທ່ານ
statement), ແຕ່ຊື່ຂອງວັດຖຸອາດຈະມີການປ່ຽນແປງເລັກນ້ອຍເພື່ອຫຼີກເວັ້ນການຊື່ວັດຖຸ
ການປະທະກັນໃນ MySQL ແລະ InnoDB.
ເພື່ອຄວາມປອດໄພ, ເຄື່ອງມືບໍ່ດັດແປງຕາຕະລາງເວັ້ນເສຍແຕ່ວ່າທ່ານລະບຸທາງເລືອກ "--execute",
ເຊິ່ງບໍ່ໄດ້ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ. ເຄື່ອງມືສະຫນັບສະຫນູນຄວາມຫລາກຫລາຍຂອງມາດຕະການອື່ນໆເພື່ອປ້ອງກັນ
ການໂຫຼດທີ່ບໍ່ຕ້ອງການຫຼືບັນຫາອື່ນໆ, ລວມທັງການກວດສອບອັດຕະໂນມັດ replicas, ເຊື່ອມຕໍ່ກັບ
ເຂົາເຈົ້າ, ແລະນໍາໃຊ້ການກວດສອບຄວາມປອດໄພດັ່ງຕໍ່ໄປນີ້:
· ໃນກໍລະນີຫຼາຍທີ່ສຸດ, ເຄື່ອງມືຈະປະຕິເສດການເຮັດວຽກ ເວັ້ນເສຍແຕ່ວ່າລະຫັດຫຼັກ ຫຼື UNIQUE INDEX ແມ່ນ.
ມີຢູ່ໃນຕາຕະລາງ. ເບິ່ງ "--alter" ສໍາລັບລາຍລະອຽດ.
· ເຄື່ອງມືປະຕິເສດການດໍາເນີນການຖ້າຫາກວ່າມັນກວດພົບການກັ່ນຕອງການຈໍາລອງ. ເບິ່ງ
"--[no]check-replication-filters" ສໍາລັບລາຍລະອຽດ.
· ເຄື່ອງມືຢຸດການດໍາເນີນງານສໍາເນົາຂໍ້ມູນໄວ້ຊົ່ວຄາວຖ້າຫາກວ່າມັນສັງເກດເຫັນ replicas ໃດທີ່ຊັກຊ້າ
ໃນການຈໍາລອງ. ເບິ່ງ "--max-lag" ສໍາລັບລາຍລະອຽດ.
· ເຄື່ອງມືຢຸດຊົ່ວຄາວຫຼືຍົກເລີກການດໍາເນີນງານຂອງຕົນຖ້າຫາກວ່າມັນກວດພົບການໂຫຼດຫຼາຍເກີນໄປໃນເຄື່ອງແມ່ຂ່າຍ. ເບິ່ງ
"--max-load" ແລະ "--critical-load" ສໍາລັບລາຍລະອຽດ.
· ເຄື່ອງມືກໍານົດ "innodb_lock_wait_timeout=1" ແລະ (ສໍາລັບ MySQL 5.5 ແລະໃຫມ່ກວ່າ)
"lock_wait_timeout=60" ເພື່ອໃຫ້ມັນເປັນໄປໄດ້ຫຼາຍກວ່າທີ່ຈະຕົກເປັນເຫຍື່ອຂອງການລັອກໃດໆ
ການຂັດແຍ້ງ, ແລະມີໂອກາດຫນ້ອຍທີ່ຈະລົບກວນການເຮັດທຸລະກໍາອື່ນໆ. ຄຸນຄ່າເຫຼົ່ານີ້ສາມາດເປັນ
ມີການປ່ຽນແປງໂດຍການລະບຸ "--set-vars".
· ເຄື່ອງມືປະຕິເສດທີ່ຈະປ່ຽນແປງຕາຕະລາງຖ້າຫາກວ່າຂໍ້ຈໍາກັດທີ່ສໍາຄັນຂອງຕ່າງປະເທດອ້າງອີງມັນ, ເວັ້ນເສຍແຕ່
ທ່ານລະບຸ "--alter-foreign-keys-method".
· ເຄື່ອງມືບໍ່ສາມາດປ່ຽນແປງຕາຕະລາງ MyISAM ກ່ຽວກັບ "Percona XtraDB Cluster" nodes.
ເປຍໂນ XtraDB ກຸ່ມບ້ານ
pt-online-schema-change ເຮັດວຽກກັບ Percona XtraDB Cluster (PXC) 5.5.28-23.7 ແລະໃຫມ່ກວ່າ, ແຕ່.
ມີສອງຂໍ້ຈໍາກັດ: ພຽງແຕ່ຕາຕະລາງ InnoDB ທີ່ສາມາດປ່ຽນແປງໄດ້, ແລະ "wsrep_OSU_method" ຕ້ອງ.
ຖືກຕັ້ງເປັນ "TOI" (ການໂດດດ່ຽວຄໍາສັ່ງທັງຫມົດ). ເຄື່ອງມືອອກດ້ວຍຄວາມຜິດພາດຖ້າຫາກວ່າແມ່ຂ່າຍແມ່ນ a
cluster node ແລະຕາຕະລາງແມ່ນ MyISAM ຫຼືຖືກປ່ຽນເປັນ MyISAM ("ENGINE=MyISAM"), ຫຼື
ຖ້າ "wsrep_OSU_method" ບໍ່ແມ່ນ "TOI". ບໍ່ມີວິທີທີ່ຈະປິດການກວດສອບເຫຼົ່ານີ້.
OUTPUT
ເຄື່ອງມືພິມຂໍ້ມູນກ່ຽວກັບກິດຈະກໍາຂອງມັນກັບ STDOUT ເພື່ອໃຫ້ທ່ານສາມາດເບິ່ງເຫັນໄດ້ວ່າມັນເປັນແນວໃດ
ເຮັດ. ໃນລະຫວ່າງການສໍາເນົາຂໍ້ມູນໃນໄລຍະ, ມັນພິມ "--progress" ລາຍງານໃຫ້ STDERR. ທ່ານສາມາດໄດ້ຮັບ
ຂໍ້ມູນເພີ່ມເຕີມໂດຍການລະບຸ "--print".
ຖ້າ "--statistics" ຖືກລະບຸ, ບົດລາຍງານການນັບເຫດການພາຍໃນຕ່າງໆຈະຖືກພິມຢູ່ທີ່
ທີ່ສຸດ, ເຊັ່ນ:
# ຈຳນວນເຫດການ
# ====== =====
# ແຊກ 1
OPTIONS
"--dry-run" ແລະ "--execute" ແມ່ນສະເພາະເຊິ່ງກັນແລະກັນ.
ເຄື່ອງມືນີ້ຍອມຮັບການໂຕ້ຖຽງແຖວຄໍາສັ່ງເພີ່ມເຕີມ. ອ້າງອີງເຖິງ "SYNOPSIS" ແລະການນໍາໃຊ້
ຂໍ້ມູນສໍາລັບລາຍລະອຽດ.
--ປ່ຽນ
ປະເພດ: string
ການດັດແກ້ schema, ໂດຍບໍ່ມີຄໍາ ALTER TABLE. ທ່ານສາມາດປະຕິບັດຫຼາຍ
ການດັດແປງຕາຕະລາງໂດຍການລະບຸພວກມັນດ້ວຍເຄື່ອງໝາຍຈຸດ. ກະລຸນາອ້າງອີງເຖິງ MySQL
ຄູ່ມືສໍາລັບ syntax ຂອງ ALTER TABLE.
ຂໍ້ຈໍາກັດຕໍ່ໄປນີ້ນໍາໃຊ້, ຖ້າພະຍາຍາມ, ຈະເຮັດໃຫ້ເຄື່ອງມືລົ້ມເຫລວ
ວິທີທີ່ບໍ່ສາມາດຄາດເດົາໄດ້:
· ໃນເກືອບທຸກກໍລະນີ ລະຫັດຫຼັກ ຫຼື UNIQUE INDEX ຕ້ອງມີຢູ່ໃນ
ໂຕະ. ນີ້ແມ່ນສິ່ງຈໍາເປັນເພາະວ່າເຄື່ອງມືສ້າງ DELETE trigger ເພື່ອຮັກສາ
ຕາຕະລາງໃຫມ່ໄດ້ຮັບການປັບປຸງໃນຂະນະທີ່ຂະບວນການກໍາລັງເຮັດວຽກ.
ຂໍ້ຍົກເວັ້ນທີ່ໂດດເດັ່ນແມ່ນເມື່ອກະແຈຫຼັກ ຫຼື UNIQUE INDEX ຖືກສ້າງຂຶ້ນຈາກ
ມີຢູ່ແລ້ວ ຄໍລໍາ ເປັນສ່ວນຫນຶ່ງຂອງຂໍ້ ALTER; ໃນກໍລະນີດັ່ງກ່າວນີ້, ມັນຈະນໍາໃຊ້
ຖັນສຳລັບ DELETE trigger.
· ຂໍ້ຄວາມ "RENAME" ບໍ່ສາມາດໃຊ້ເພື່ອປ່ຽນຊື່ຕາຕະລາງໄດ້.
·ຖັນບໍ່ສາມາດຖືກປ່ຽນຊື່ໂດຍການວາງລົງແລະເພີ່ມໃຫມ່ດ້ວຍຊື່ໃຫມ່. ເຄື່ອງມື
ຈະບໍ່ສຳເນົາຂໍ້ມູນຂອງຖັນຕົ້ນສະບັບໃສ່ຖັນໃໝ່.
· ຖ້າຫາກທ່ານເພີ່ມຖັນໂດຍບໍ່ມີຄ່າເລີ່ມຕົ້ນແລະເຮັດໃຫ້ມັນບໍ່ເປັນ NULL, ເຄື່ອງມືຈະ
ລົ້ມເຫລວ, ຍ້ອນວ່າມັນຈະບໍ່ພະຍາຍາມເດົາຄ່າເລີ່ມຕົ້ນສໍາລັບທ່ານ; ທ່ານຕ້ອງລະບຸ
Default
· "DROP FOREIGN KEY constraint_name" ຮຽກຮ້ອງໃຫ້ມີການລະບຸ "_constraint_name" ແທນ.
ກ່ວາ "constraint_name". ເນື່ອງຈາກຂໍ້ຈໍາກັດໃນ MySQL, pt-online-schema-
ການປ່ຽນແປງເພີ່ມຄະແນນນໍາຫນ້າກັບຊື່ຈໍາກັດທີ່ສໍາຄັນຂອງຕ່າງປະເທດໃນເວລາທີ່ການສ້າງ
ຕາຕະລາງໃຫມ່. ຕົວຢ່າງ, ເພື່ອຍົກເລີກຂໍ້ຈໍາກັດນີ້:
CONSTRAINT `fk_foo` ກະແຈຕ່າງປະເທດ (`foo_id`) ການອ້າງອີງ `bar` (`foo_id`)
ທ່ານຕ້ອງລະບຸ "--alter "DROP FOREIGN KEY _fk_foo"".
· ເຄື່ອງມືບໍ່ໄດ້ໃຊ້ "LOCK IN SHARE MODE" ກັບ MySQL 5.0 ເນື່ອງຈາກວ່າມັນສາມາດເຮັດໃຫ້ເກີດການ
slave error ທີ່ breaks replication:
ການສອບຖາມເຮັດໃຫ້ເກີດຄວາມຜິດພາດທີ່ແຕກຕ່າງກັນກ່ຽວກັບແມ່ບົດແລະທາດ. ຄວາມຜິດພາດໃນແມ່ບົດ:
'Deadlock ພົບໃນເວລາທີ່ພະຍາຍາມທີ່ຈະໄດ້ຮັບການລັອກ; ລອງເລີ່ມທຸລະກຳຄືນໃໝ່' (1213),
Error on slave: 'ບໍ່ມີຂໍ້ຜິດພາດ' (0). ຖານຂໍ້ມູນເລີ່ມຕົ້ນ: 'pt_osc'.
ຄໍາຖາມ: 'INSERT INTO pt_osc.t (id, c) VALUES ('730', 'ແຖວໃໝ່')'
ຂໍ້ຜິດພາດເກີດຂຶ້ນເມື່ອປ່ຽນຕາຕະລາງ MyISAM ເປັນ InnoDB ເພາະວ່າ MyISAM ບໍ່ແມ່ນ
ການເຮັດທຸລະກໍາແຕ່ InnoDB ແມ່ນການເຮັດທຸລະກໍາ. MySQL 5.1 ແລະໃຫມ່ກວ່າຈັດການກັບກໍລະນີນີ້
ຢ່າງຖືກຕ້ອງ, ແຕ່ການທົດສອບເຮັດໃຫ້ເກີດຄວາມຜິດພາດ 5% ຂອງເວລາທີ່ມີ MySQL 5.0.
ນີ້ແມ່ນ bug MySQL, ຄ້າຍຄືກັນກັບhttp://bugs.mysql.com/bug.php?id=45694>, ແຕ່
ບໍ່ມີການແກ້ໄຂຫຼືການແກ້ໄຂໃນ MySQL 5.0. ໂດຍບໍ່ມີ "LOCK IN SHARE MODE", ການທົດສອບ
ຜ່ານ 100% ຂອງເວລາ, ສະນັ້ນຄວາມສ່ຽງຂອງການສູນເສຍຂໍ້ມູນຫຼື breaking replication ຄວນຈະເປັນ
ເລີຍ.
Be ໃຫ້ແນ່ໃຈວ່າ to ກວດສອບ ໄດ້ ໃຫມ່ ຕາຕະລາງ if ການນໍາໃຊ້ MySQL 5.0 ແລະ ການປ່ຽນແປງ ຈາກ MyISAM to
InnoDB!
--alter-foreign-keys-method
ປະເພດ: string
ວິທີການດັດແປງຄີຕ່າງປະເທດເພື່ອໃຫ້ພວກເຂົາອ້າງອີງຕາຕະລາງໃຫມ່. ກະແຈຕ່າງປະເທດນັ້ນ
ການອ້າງອີງຕາຕະລາງທີ່ຈະປ່ຽນແປງຕ້ອງໄດ້ຮັບການປະຕິບັດເປັນພິເສດເພື່ອຮັບປະກັນວ່າພວກເຂົາ
ສືບຕໍ່ການອ້າງອີງຕາຕະລາງທີ່ຖືກຕ້ອງ. ເມື່ອເຄື່ອງມືປ່ຽນຊື່ຕາຕະລາງຕົ້ນສະບັບເປັນ
ໃຫ້ໃຫມ່ເອົາສະຖານທີ່ຂອງຕົນ, ກະແຈຕ່າງປະເທດ "ປະຕິບັດຕາມ" ຕາຕະລາງປ່ຽນຊື່, ແລະຕ້ອງ
ຖືກປ່ຽນໄປອ້າງອີງຕາຕະລາງໃໝ່ແທນ.
ເຄື່ອງມືສະຫນັບສະຫນູນສອງເຕັກນິກເພື່ອບັນລຸເປົ້າຫມາຍນີ້. ມັນອັດຕະໂນມັດຊອກຫາ "ເດັກນ້ອຍ
ຕາຕະລາງ" ທີ່ອ້າງອີງຕາຕະລາງທີ່ຈະປ່ຽນແປງ.
ອັດຕະໂນມັດ
ອັດຕະໂນມັດກໍານົດວິທີການທີ່ດີທີ່ສຸດ. ເຄື່ອງມືດັ່ງກ່າວໃຊ້ "rebuild_constraints"
ຖ້າເປັນໄປໄດ້ (ເບິ່ງລາຍລະອຽດຂອງວິທີການນັ້ນສໍາລັບລາຍລະອຽດ), ແລະຖ້າບໍ່ແມ່ນ, ຫຼັງຈາກນັ້ນມັນ
ໃຊ້ "drop_swap".
rebuild_constraints
ວິທີການນີ້ໃຊ້ "ALTER TABLE" ເພື່ອລຸດລົງແລະເພີ່ມຂໍ້ຈໍາກັດທີ່ສໍາຄັນຂອງຕ່າງປະເທດ
ອ້າງອີງຕາຕະລາງໃຫມ່. ນີ້ແມ່ນເຕັກນິກທີ່ຕ້ອງການ, ເວັ້ນເສຍແຕ່ວ່າຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ
ຕາຕະລາງ "ເດັກນ້ອຍ" ແມ່ນໃຫຍ່ຫຼາຍທີ່ "ALTER" ຈະໃຊ້ເວລາດົນເກີນໄປ. ເຄື່ອງມື
ກໍານົດວ່າໂດຍການປຽບທຽບຈໍານວນແຖວໃນຕາຕະລາງເດັກນ້ອຍກັບອັດຕາຢູ່ທີ່
ເຊິ່ງເຄື່ອງມືສາມາດຄັດລອກແຖວຈາກຕາຕະລາງເກົ່າໄປຫາຕາຕະລາງໃຫມ່. ຖ້າ
ເຄື່ອງມືຄາດຄະເນວ່າຕາຕະລາງເດັກນ້ອຍສາມາດປ່ຽນແປງໄດ້ໃນເວລາຫນ້ອຍກວ່າ
"--chunk-time", ຫຼັງຈາກນັ້ນມັນຈະໃຊ້ເຕັກນິກນີ້. ສໍາລັບຈຸດປະສົງຂອງການຄາດຄະເນ
ເວລາທີ່ຕ້ອງການເພື່ອປ່ຽນແປງຕາຕະລາງເດັກນ້ອຍ, ເຄື່ອງມື multiplies ອັດຕາການຄັດລອກແຖວ
ໂດຍ "--chunk-size-limit", ເນື່ອງຈາກວ່າ MySQL's "ALTER TABLE" ໂດຍທົ່ວໄປແມ່ນໄວກວ່າຫຼາຍ.
ກ່ວາຂະບວນການພາຍນອກຂອງການຄັດລອກແຖວ.
ເນື່ອງຈາກຂໍ້ຈໍາກັດໃນ MySQL, ກະແຈຕ່າງປະເທດຈະບໍ່ມີຊື່ດຽວກັນຫຼັງຈາກ
ປ່ຽນແປງທີ່ເຂົາເຈົ້າໄດ້ເຮັດກ່ອນມັນ. ເຄື່ອງມືຕ້ອງປ່ຽນຊື່ລະຫັດຕ່າງປະເທດເມື່ອມັນ
redefines ມັນ, ເຊິ່ງເພີ່ມ underscore ນໍາກັບຊື່. ໃນບາງກໍລະນີ, MySQL
ຍັງປ່ຽນຊື່ອັດຕະໂນມັດໃນດັດຊະນີທີ່ຕ້ອງການສໍາລັບກະແຈຕ່າງປະເທດ.
drop_swap
ປິດການກວດສອບກະແຈຕ່າງປະເທດ (FOREIGN_KEY_CHECKS=0), ຈາກນັ້ນວາງຕາຕະລາງຕົ້ນສະບັບ
ກ່ອນທີ່ຈະປ່ຽນຊື່ຕາຕະລາງໃຫມ່ເຂົ້າໄປໃນສະຖານທີ່ຂອງມັນ. ນີ້ແມ່ນແຕກຕ່າງຈາກປົກກະຕິ
ວິທີການແລກປ່ຽນຕາຕະລາງເກົ່າແລະໃຫມ່, ເຊິ່ງໃຊ້ "RENAME" ປະລໍາມະນູ
undetectable ກັບຄໍາຮ້ອງສະຫມັກຂອງລູກຄ້າ.
ວິທີການນີ້ແມ່ນໄວຂຶ້ນແລະບໍ່ຕັນ, ແຕ່ມັນມີຄວາມສ່ຽງຫຼາຍສໍາລັບສອງເຫດຜົນ.
ຫນ້າທໍາອິດ, ໃນເວລາສັ້ນໆລະຫວ່າງການຫຼຸດລົງຕາຕະລາງຕົ້ນສະບັບແລະການປ່ຽນຊື່
ຕາຕະລາງຊົ່ວຄາວ, ຕາຕະລາງທີ່ຈະປ່ຽນແປງພຽງແຕ່ບໍ່ມີ, ແລະການສອບຖາມ
ຕໍ່ກັບມັນຈະສົ່ງຜົນໃຫ້ເກີດຄວາມຜິດພາດ. ອັນທີສອງ, ຖ້າມີຂໍ້ຜິດພາດແລະໃຫມ່
ຕາຕະລາງບໍ່ສາມາດໄດ້ຮັບການປ່ຽນຊື່ເຂົ້າໄປໃນສະຖານທີ່ຂອງອາຍຸໄດ້, ຫຼັງຈາກນັ້ນມັນສາຍເກີນໄປ
ເອົາລູກອອກ, ເພາະວ່າຕາຕະລາງເກົ່າຫມົດໄປຢ່າງຖາວອນ.
ວິທີການນີ້ບັງຄັບ "--no-swap-tables" ແລະ "--no-drop-old-table".
none
ວິທີການນີ້ແມ່ນຄ້າຍຄື "drop_swap" ໂດຍບໍ່ມີການ "swap". ກະແຈຕ່າງປະເທດອັນໃດ
ການອ້າງອີງຕາຕະລາງຕົ້ນສະບັບໃນປັດຈຸບັນຈະອ້າງອີງຕາຕະລາງທີ່ບໍ່ມີຢູ່ແລ້ວ. ນີ້ຈະ
ໂດຍປົກກະຕິເຮັດໃຫ້ເກີດການລະເມີດກະແຈຕ່າງປະເທດທີ່ເຫັນໄດ້ໃນ "ສະແດງເຄື່ອງຈັກ INNODB
STATUS", ຄ້າຍຄືກັນກັບຕໍ່ໄປນີ້:
ພະຍາຍາມເພີ່ມໃສ່ດັດຊະນີ `idx_fk_staff_id` tuple:
DATA TUPLE: 2 ຊ່ອງຂໍ້ມູນ;
0: ເລນ 1; hex 05; asc ;;
1: ເລນ 4; hex 80000001; asc ;;
ແຕ່ຕາຕະລາງພໍ່ແມ່ `sakila`.`staff_old`
ຫຼືໄຟລ໌ .ibd ຂອງມັນບໍ່ມີຢູ່ແລ້ວ!
ນີ້ແມ່ນຍ້ອນວ່າຕາຕະລາງຕົ້ນສະບັບ (ໃນກໍລະນີນີ້, sakila.staff) ຖືກປ່ຽນຊື່ເປັນ
sakila.staff_old ແລະຫຼັງຈາກນັ້ນຫຼຸດລົງ. ວິທີການຈັດການກັບຂໍ້ຈໍາກັດທີ່ສໍາຄັນຂອງຕ່າງປະເທດ
ໄດ້ຖືກສະຫນອງໃຫ້ເພື່ອໃຫ້ຜູ້ເບິ່ງແຍງຖານຂໍ້ມູນສາມາດປິດການທໍາງານຂອງເຄື່ອງມືໃນຕົວ
ການທໍາງານຖ້າຫາກວ່າຕ້ອງການ.
--[ບໍ່]ວິເຄາະ-ກ່ອນ-swap
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ປະຕິບັດຕາຕະລາງການວິເຄາະໃນຕາຕະລາງໃຫມ່ກ່ອນທີ່ຈະ swap ກັບອັນເກົ່າ. ໂດຍຄ່າເລີ່ມຕົ້ນ,
ນີ້ເກີດຂື້ນພຽງແຕ່ເມື່ອແລ່ນ MySQL 5.6 ແລະໃຫມ່ກວ່າ, ແລະ "innodb_stats_persistent" ແມ່ນ
ເປີດໃຊ້ງານ. ລະບຸທາງເລືອກຢ່າງຈະແຈ້ງເພື່ອເປີດໃຊ້ ຫຼືປິດມັນໂດຍບໍ່ຄໍານຶງເຖິງ MySQL
ສະບັບແລະ "innodb_stats_persistent".
ນີ້ຫລີກລ້ຽງບັນຫາທີ່ອາດຈະຮ້າຍແຮງທີ່ກ່ຽວຂ້ອງກັບສະຖິຕິການເພີ່ມປະສິດທິພາບຂອງ InnoDB.
ຖ້າຕາຕະລາງທີ່ຖືກແຈ້ງເຕືອນບໍ່ຫວ່າງແລະເຄື່ອງມືສໍາເລັດຢ່າງໄວວາ, ຕາຕະລາງໃຫມ່ຈະ
ບໍ່ມີສະຖິຕິ optimizer ຫຼັງຈາກຖືກ swapped. ນີ້ສາມາດເຮັດໃຫ້ໄວ, ດັດສະນີການນໍາໃຊ້
ສອບຖາມເພື່ອເຮັດການສະແກນຕາຕະລາງເຕັມຈົນກ່ວາສະຖິຕິ optimizer ໄດ້ຖືກປັບປຸງ (ປົກກະຕິແລ້ວຫຼັງຈາກນັ້ນ
10 ວິນາທີ). ຖ້າຕາຕະລາງມີຂະຫນາດໃຫຍ່ແລະເຄື່ອງແມ່ຂ່າຍຫວ່າງຫຼາຍ, ນີ້ສາມາດເຮັດໃຫ້ເກີດໄຟໄຫມ້.
--ຖາມຜ່ານ
ເຕືອນລະຫັດຜ່ານເມື່ອເຊື່ອມຕໍ່ກັບ MySQL.
--ຊຸດຕົວອັກສອນ
ຮູບແບບສັ້ນ: -A; ປະເພດ: string
ຕັ້ງຕົວອັກສອນເລີ່ມຕົ້ນ. ຖ້າຄ່າແມ່ນ utf8, ຕັ້ງ binmode ຂອງ Perl ໃນ STDOUT ເປັນ utf8,
ຜ່ານຕົວເລືອກ mysql_enable_utf8 ໄປ DBD::mysql, ແລະແລ່ນ SET NAMES UTF8 ຫຼັງຈາກ.
ເຊື່ອມຕໍ່ກັບ MySQL. ຄ່າອື່ນໃດກຳນົດ binmode ໃນ STDOUT ໂດຍບໍ່ມີຊັ້ນ utf8,
ແລະດໍາເນີນການ SET NAMES ຫຼັງຈາກເຊື່ອມຕໍ່ກັບ MySQL.
--[ບໍ່]ກວດແກ້
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ວິເຄາະ "--alter" ທີ່ລະບຸໄວ້ ແລະພະຍາຍາມເຕືອນເຖິງພຶດຕິກຳທີ່ບໍ່ຕັ້ງໃຈທີ່ເປັນໄປໄດ້.
ໃນປັດຈຸບັນ, ມັນກວດສອບສໍາລັບ:
ປ່ຽນຊື່ຖັນ
ໃນລຸ້ນກ່ອນໜ້າຂອງເຄື່ອງມື, ການປ່ຽນຊື່ຖັນກັບ "ປ່ຽນຊື່ຖັນ
new_name" ຈະເຮັດໃຫ້ຂໍ້ມູນຂອງຖັນນັ້ນຖືກສູນເສຍ
ປ່ຽນແປງຄໍາຖະແຫຼງການແລະພະຍາຍາມຈັບກໍລະນີເຫຼົ່ານີ້, ດັ່ງນັ້ນຖັນທີ່ປ່ຽນຊື່ຄວນຈະມີ
ຂໍ້ມູນດຽວກັນກັບຕົ້ນສະບັບ. ຢ່າງໃດກໍຕາມ, ລະຫັດທີ່ເຮັດນີ້ບໍ່ແມ່ນເຕັມ.
blown SQL parser, ດັ່ງນັ້ນທໍາອິດທ່ານຄວນດໍາເນີນການເຄື່ອງມືທີ່ມີ "--dry-run" ແລະ "--print"
ແລະກວດສອບວ່າມັນກວດພົບຖັນທີ່ຖືກປ່ຽນຊື່ຢ່າງຖືກຕ້ອງ.
ວາງກະແຈຫຼັກ
ຖ້າ "--alter" ມີ "DROP PRIMARY KEY" (ຕົວພິມນ້ອຍແລະພື້ນທີ່ບໍ່ອ່ອນໄຫວ), ການເຕືອນ.
ຖືກພິມອອກແລະເຄື່ອງມືຈະອອກເວັ້ນເສຍແຕ່ "--dry-run" ຖືກກໍານົດ. ການປ່ຽນແປງ
ລະຫັດຫຼັກສາມາດເປັນອັນຕະລາຍ, ແຕ່ເຄື່ອງມືສາມາດຈັດການກັບມັນໄດ້. ຜົນກະທົບຂອງເຄື່ອງມື,
ໂດຍສະເພາະ DELETE trigger, ໄດ້ຮັບຜົນກະທົບຫຼາຍທີ່ສຸດໂດຍການປ່ຽນແປງລະຫັດຫຼັກ
ເນື່ອງຈາກວ່າເຄື່ອງມືດັ່ງກ່າວມັກໃຊ້ລະຫັດຫຼັກສໍາລັບຕົວກະຕຸ້ນຂອງມັນ. ເຈົ້າຄວນ
ທໍາອິດແລ່ນເຄື່ອງມືດ້ວຍ "--dry-run" ແລະ "--print" ແລະກວດສອບວ່າ triggers ແມ່ນ.
ຖືກຕ້ອງ.
--check-interval
ປະເພດ: ເວລາ; ຄ່າເລີ່ມຕົ້ນ: 1
ເວລານອນລະຫວ່າງການກວດສອບ "--max-lag".
--[ບໍ່]ແຜນກວດກາ
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ກວດເບິ່ງແຜນການປະຕິບັດການສອບຖາມເພື່ອຄວາມປອດໄພ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ທາງເລືອກນີ້ເຮັດໃຫ້ເຄື່ອງມືເຮັດວຽກ
ອະທິບາຍກ່ອນທີ່ຈະດໍາເນີນການສອບຖາມທີ່ຫມາຍເຖິງການເຂົ້າເຖິງຈໍານວນຂະຫນາດນ້ອຍຂອງຂໍ້ມູນ, ແຕ່ວ່າ
ເຊິ່ງສາມາດເຂົ້າເຖິງຫຼາຍແຖວຖ້າ MySQL ເລືອກແຜນການປະຕິບັດທີ່ບໍ່ດີ. ເຫຼົ່ານີ້ລວມມີ
ການສອບຖາມເພື່ອກໍານົດຂອບເຂດ chunk ແລະ chunk queries ດ້ວຍຕົນເອງ. ຖ້າມັນປາກົດ
ວ່າ MySQL ຈະໃຊ້ແຜນການປະຕິບັດການສອບຖາມທີ່ບໍ່ດີ, ເຄື່ອງມືຈະຂ້າມຊິ້ນສ່ວນຂອງ
ຕາຕະລາງ.
ເຄື່ອງມືດັ່ງກ່າວໃຊ້ heuristics ຫຼາຍໆຢ່າງເພື່ອກໍານົດວ່າແຜນການປະຕິບັດແມ່ນບໍ່ດີ. ໄດ້
ທໍາອິດແມ່ນວ່າ EXPLAIN ລາຍງານວ່າ MySQL ຕັ້ງໃຈໃຊ້ດັດສະນີທີ່ຕ້ອງການເພື່ອເຂົ້າເຖິງ
ແຖວ. ຖ້າ MySQL ເລືອກດັດສະນີທີ່ແຕກຕ່າງກັນ, ເຄື່ອງມືພິຈາລະນາການສອບຖາມທີ່ບໍ່ປອດໄພ.
ເຄື່ອງມືຍັງກວດເບິ່ງຈໍານວນດັດສະນີທີ່ MySQL ລາຍງານວ່າມັນຈະໃຊ້ສໍາລັບ
ສອບຖາມ. ຜົນອອກມາຂອງ EXPLAIN ສະແດງອັນນີ້ຢູ່ໃນຖັນ key_len. ເຄື່ອງມືຈື່ໄດ້
key_len ໃຫຍ່ທີ່ສຸດທີ່ເຫັນ, ແລະຂ້າມ chunks ບ່ອນທີ່ MySQL ລາຍງານວ່າມັນຈະໃຊ້ຂະຫນາດນ້ອຍກວ່າ
ຄໍານໍາຫນ້າຂອງດັດຊະນີ. heuristic ນີ້ສາມາດເຂົ້າໃຈໄດ້ວ່າເປັນການຂ້າມ chunks ທີ່ມີ a
ແຜນການປະຕິບັດຮ້າຍແຮງກ່ວາ chunks ອື່ນໆ.
ເຄື່ອງມືພິມຄໍາເຕືອນຄັ້ງທໍາອິດທີ່ chunk ຖືກຂ້າມເນື່ອງຈາກການປະຕິບັດບໍ່ດີ
ວາງແຜນໃນແຕ່ລະຕາຕະລາງ. chunks ຕໍ່ມາແມ່ນຂ້າມຢ່າງງຽບໆ, ເຖິງແມ່ນວ່າທ່ານສາມາດເບິ່ງໄດ້
ຈໍານວນການຂ້າມຜ່ານໃນຖັນ SKIPPED ໃນຜົນຜະລິດຂອງເຄື່ອງມື.
ຕົວເລືອກນີ້ເພີ່ມການເຮັດວຽກຂອງການຕິດຕັ້ງບາງຢ່າງໃຫ້ກັບແຕ່ລະຕາຕະລາງແລະ chunk. ເຖິງແມ່ນວ່າການເຮັດວຽກບໍ່ແມ່ນ
intrusive ສໍາລັບ MySQL, ມັນສົ່ງຜົນໃຫ້ມີການເດີນທາງຫຼາຍຮອບໄປຫາເຄື່ອງແມ່ຂ່າຍ, ເຊິ່ງບໍລິໂພກ
ເວລາ. ການເຮັດໃຫ້ຕ່ອນນ້ອຍເກີນໄປຈະເຮັດໃຫ້ສ່ວນເທິງໃຫຍ່ຂຶ້ນ. ມັນ
ດັ່ງນັ້ນຈຶ່ງແນະນໍາໃຫ້ທ່ານບໍ່ເຮັດໃຫ້ chunks ຂະຫນາດນ້ອຍເກີນໄປ, ເນື່ອງຈາກວ່າເຄື່ອງມືອາດຈະໃຊ້ເວລາ
ເວລາດົນນານທີ່ຈະເຮັດສໍາເລັດຖ້າທ່ານເຮັດ.
--[no]check-replication-filters
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ຍົກເລີກຖ້າຕົວກອງການຈຳລອງຖືກຕັ້ງຢູ່ໃນເຊີບເວີໃດນຶ່ງ. ເຄື່ອງມືຊອກຫາເຄື່ອງແມ່ຂ່າຍ
ຕົວເລືອກທີ່ກັ່ນຕອງການຈຳລອງເຊັ່ນ binlog_ignore_db ແລະ replicate_do_db. ຖ້າຫາກວ່າມັນ
ພົບເຫັນຕົວກອງດັ່ງກ່າວ, ມັນຍົກເລີກດ້ວຍຄວາມຜິດພາດ.
ຖ້າການຈໍາລອງຖືກຕັ້ງຄ່າດ້ວຍຕົວເລືອກການກັ່ນຕອງໃດໆ, ທ່ານຄວນລະວັງບໍ່
ແກ້ໄຂຖານຂໍ້ມູນ ຫຼືຕາຕະລາງທີ່ມີຢູ່ໃນຕົ້ນສະບັບ ແລະບໍ່ແມ່ນການຈໍາລອງ,
ເນື່ອງຈາກວ່າມັນສາມາດເຮັດໃຫ້ການຈໍາລອງລົ້ມເຫລວ. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການຈໍາລອງ
ກົດລະບຽບ, ເບິ່ງhttp://dev.mysql.com/doc/en/replication-rules.html>.
--check-slave-lag
ປະເພດ: string
ຢຸດການສຳເນົາຂໍ້ມູນໄວ້ຊົ່ວຄາວຈົນກວ່າຄວາມຊັກຊ້າຂອງເຄື່ອງສຳເນົານີ້ໜ້ອຍກວ່າ "--max-lag". ມູນຄ່າແມ່ນ a
DSN ທີ່ສືບທອດຄຸນສົມບັດຈາກຕົວເລືອກການເຊື່ອມຕໍ່ ("--ພອດ", "--ຜູ້ໃຊ້",
ແລະອື່ນໆ). ທາງເລືອກນີ້ overrides ພຶດຕິກໍາປົກກະຕິຂອງການຊອກຫາແລະຢ່າງຕໍ່ເນື່ອງ
ການຕິດຕາມການຈໍາລອງແບບ lag ຢູ່ໃນການຈໍາລອງທີ່ເຊື່ອມຕໍ່ທັງໝົດ. ຖ້າຫາກວ່າທ່ານບໍ່ຕ້ອງການທີ່ຈະຕິດຕາມກວດກາ
replicas ທັງ ຫມົດ, ແຕ່ ວ່າ ທ່ານ ຕ້ອງ ການ ຫຼາຍ ກ ່ ວາ ພຽງ ແຕ່ ຫນຶ່ງ replica ໄດ້ ຮັບ ການ ຕິດ ຕາມ, ຫຼັງ ຈາກ ນັ້ນ ນໍາ ໃຊ້
ທາງເລືອກ DSN ກັບທາງເລືອກ "--recursion-method" ແທນທີ່ຈະເປັນທາງເລືອກນີ້.
--chunk-index
ປະເພດ: string
ຕ້ອງການດັດຊະນີນີ້ສໍາລັບຕາຕະລາງ chunking. ໂດຍຄ່າເລີ່ມຕົ້ນ, ເຄື່ອງມືເລືອກຫຼາຍທີ່ສຸດ
ດັດຊະນີທີ່ເຫມາະສົມສໍາລັບ chunking. ທາງເລືອກນີ້ເຮັດໃຫ້ທ່ານລະບຸດັດຊະນີທີ່ທ່ານ
ມັກ. ຖ້າດັດຊະນີບໍ່ມີ, ຫຼັງຈາກນັ້ນເຄື່ອງມືຈະກັບຄືນສູ່ຄ່າເລີ່ມຕົ້ນຂອງມັນ
ພຶດຕິກໍາການເລືອກດັດສະນີ. ເຄື່ອງມືເພີ່ມດັດຊະນີໃສ່ຄໍາຖະແຫຼງ SQL ໃນ a
ຂໍ້ "FORCE INDEX". ຈົ່ງລະມັດລະວັງໃນເວລາໃຊ້ທາງເລືອກນີ້; ທາງເລືອກທີ່ບໍ່ດີຂອງດັດຊະນີສາມາດ
ເຮັດໃຫ້ເກີດການປະຕິບັດທີ່ບໍ່ດີ.
--chunk-index-columns
ປະເພດ: int
ໃຊ້ພຽງແຕ່ຖັນຊ້າຍສຸດຂອງ "--chunk-index". ນີ້ເຮັດວຽກພຽງແຕ່ສໍາລັບ
ດັດສະນີປະສົມ, ແລະເປັນປະໂຫຍດໃນກໍລະນີທີ່ມີຂໍ້ຜິດພາດໃນຕົວເພີ່ມປະສິດທິພາບການສອບຖາມ MySQL
(ຜູ້ວາງແຜນ) ເຮັດໃຫ້ມັນສະແກນແຖວເກັດທີ່ຢູ່ຂະຫນາດໃຫຍ່ແທນທີ່ຈະໃຊ້ດັດສະນີເພື່ອຊອກຫາສະຖານທີ່
ຈຸດເລີ່ມຕົ້ນ ແລະຈຸດສິ້ນສຸດຢ່າງຊັດເຈນ. ບັນຫານີ້ບາງຄັ້ງກໍ່ເກີດຂື້ນໃນດັດສະນີທີ່ມີ
ຫຼາຍຖັນ, ເຊັ່ນ 4 ຫຼືຫຼາຍກວ່ານັ້ນ. ຖ້າສິ່ງນີ້ເກີດຂຶ້ນ, ເຄື່ອງມືອາດຈະພິມຄໍາເຕືອນ
ກ່ຽວຂ້ອງກັບຕົວເລືອກ "--[no]check-plan". ແນະນໍາເຄື່ອງມືການນໍາໃຊ້ພຽງແຕ່ທໍາອິດ
N ຖັນຂອງດັດຊະນີແມ່ນການແກ້ໄຂສໍາລັບ bug ໃນບາງກໍລະນີ.
--chunk-size
ປະເພດ: ຂະຫນາດ; ຄ່າເລີ່ມຕົ້ນ: 1000
ຈຳນວນແຖວທີ່ຈະເລືອກສຳລັບແຕ່ລະອັນທີ່ສຳເນົາ. ຄໍາຕໍ່ທ້າຍທີ່ອະນຸຍາດແມ່ນ k, M, G.
ທາງເລືອກນີ້ສາມາດ override ພຶດຕິກໍາໃນຕອນຕົ້ນ, ເຊິ່ງແມ່ນການປັບຂະຫນາດ chunk
ແບບໄດນາມິກເພື່ອພະຍາຍາມເຮັດໃຫ້ chunks ແລ່ນໃນ "--chunk-time" ວິນາທີທີ່ແນ່ນອນ. ເມື່ອນີ້
ທາງເລືອກບໍ່ໄດ້ຖືກຕັ້ງຢ່າງຊັດເຈນ, ຄ່າເລີ່ມຕົ້ນຂອງມັນຖືກນໍາໃຊ້ເປັນຈຸດເລີ່ມຕົ້ນ, ແຕ່ຫຼັງຈາກນັ້ນ
ວ່າ, ເຄື່ອງມືບໍ່ສົນໃຈມູນຄ່າທາງເລືອກນີ້. ຖ້າເຈົ້າຕັ້ງຕົວເລືອກນີ້ຢ່າງຈະແຈ້ງ,
ແນວໃດກໍ່ຕາມ, ຫຼັງຈາກນັ້ນມັນປິດການທໍາງານການປັບຕົວແບບເຄື່ອນໄຫວແລະພະຍາຍາມເຮັດໃຫ້ chunks ທັງຫມົດ
ກົງກັບຈໍານວນແຖວທີ່ລະບຸ.
ມີຄວາມອ່ອນໂຍນ: ຖ້າດັດຊະນີ chunk ບໍ່ເປັນເອກະລັກ, ມັນເປັນໄປໄດ້ວ່າ chunks
ຈະໃຫຍ່ກວ່າທີ່ຕ້ອງການ. ຕົວຢ່າງ, ຖ້າຕາຕະລາງຖືກ chunked ໂດຍດັດຊະນີທີ່
ມີ 10,000 ຂອງຄ່າທີ່ໃຫ້, ບໍ່ມີວິທີທີ່ຈະຂຽນ WHERE clause ທີ່ກົງກັນ.
ພຽງແຕ່ 1,000 ຂອງຄ່າ, ແລະ chunk ນັ້ນຈະເປັນຢ່າງຫນ້ອຍ 10,000 ແຖວຂະຫນາດໃຫຍ່. ດັ່ງກ່າວເປັນ
chunk ອາດຈະຖືກຂ້າມເນື່ອງຈາກ "--chunk-size-limit".
--chunk-size-ຈໍາກັດ
ປະເພດ: ລອຍ; ຄ່າເລີ່ມຕົ້ນ: 4.0
ຫ້າມຄັດລອກຊິ້ນສ່ວນທີ່ໃຫຍ່ກວ່າຂະໜາດທີ່ຕ້ອງການ.
ເມື່ອຕາຕະລາງບໍ່ມີດັດຊະນີທີ່ເປັນເອກະລັກ, ຂະຫນາດຂອງ chunk ສາມາດບໍ່ຖືກຕ້ອງ. ທາງເລືອກນີ້
ກໍານົດຂອບເຂດຈໍາກັດສູງສຸດທີ່ທົນທານຕໍ່ຄວາມບໍ່ຖືກຕ້ອງ. ເຄື່ອງມືທີ່ໃຊ້ ກັບ
ຄາດຄະເນວ່າມີຈັກແຖວຢູ່ໃນ chunk. ຖ້າຫາກວ່າການຄາດຄະເນນັ້ນເກີນຂະຫນາດທີ່ຕ້ອງການ
ຂະຫນາດເທົ່າຈໍາກັດ, ຫຼັງຈາກນັ້ນເຄື່ອງມືຂ້າມ chunk ໄດ້.
ຄ່າຕໍາ່ສຸດທີ່ສໍາລັບທາງເລືອກນີ້ແມ່ນ 1, ຊຶ່ງຫມາຍຄວາມວ່າບໍ່ມີ chunk ສາມາດໃຫຍ່ກວ່າ
"--chunk-size". ທ່ານອາດຈະບໍ່ຕ້ອງການທີ່ຈະລະບຸ 1, ເນື່ອງຈາກວ່າແຖວລາຍງານໂດຍ
ອະທິບາຍແມ່ນການຄາດຄະເນ, ເຊິ່ງສາມາດແຕກຕ່າງຈາກຈໍານວນທີ່ແທ້ຈິງຂອງແຖວໃນ
ກ້ອນ. ທ່ານສາມາດປິດການກວດສອບ chunk ທີ່ມີຂະຫນາດໃຫຍ່ໂດຍການລະບຸຄ່າຂອງ 0.
ເຄື່ອງມືຍັງໃຊ້ທາງເລືອກນີ້ເພື່ອກໍານົດວິທີການຈັດການກະແຈຕ່າງປະເທດທີ່ອ້າງອີງ
ຕາຕະລາງທີ່ຈະປ່ຽນແປງ. ເບິ່ງ "--alter-foreign-keys-method" ສໍາລັບລາຍລະອຽດ.
--chunk-time
ປະເພດ: ລອຍ; ຄ່າເລີ່ມຕົ້ນ: 0.5
ປັບຂະໜາດຂອງຊິ້ນສ່ວນແບບໄດນາມິກເພື່ອໃຫ້ແຕ່ລະແບບສອບຖາມການສຳເນົາຂໍ້ມູນໃຊ້ເວລາດົນນີ້ເພື່ອດຳເນີນການ.
ເຄື່ອງມືຕິດຕາມອັດຕາການຄັດລອກ (ແຖວຕໍ່ວິນາທີ) ແລະປັບຂະຫນາດ chunk ຫຼັງຈາກແຕ່ລະຄົນ
data-copy query, ດັ່ງນັ້ນການສອບຖາມຕໍ່ໄປໃຊ້ເວລາຈໍານວນນີ້ (ເປັນວິນາທີ) ເພື່ອ
ປະຕິບັດ. ມັນຮັກສາການເສື່ອມໂຊມແບບເລັ່ງລັດການເຄື່ອນຍ້າຍໂດຍສະເລ່ຍຂອງການສອບຖາມຕໍ່ວິນາທີ, ດັ່ງນັ້ນ
ວ່າຖ້າການປະຕິບັດຂອງເຄື່ອງແມ່ຂ່າຍມີການປ່ຽນແປງເນື່ອງຈາກການປ່ຽນແປງການໂຫຼດຂອງເຄື່ອງແມ່ຂ່າຍ, ເຄື່ອງມື
ປັບຕົວໄດ້ໄວ.
ຖ້າຕົວເລືອກນີ້ຖືກຕັ້ງເປັນສູນ, ຂະໜາດຂອງ chunk ຈະບໍ່ປັບອັດຕະໂນມັດ, ສະນັ້ນເວລາສອບຖາມຈະ.
ແຕກຕ່າງກັນ, ແຕ່ຂະຫນາດ chunk ສອບຖາມຈະບໍ່. ອີກວິທີຫນຶ່ງທີ່ຈະເຮັດສິ່ງດຽວກັນແມ່ນການກໍານົດ a
ຄ່າສໍາລັບ "--chunk-size" ຢ່າງຊັດເຈນ, ແທນທີ່ຈະປ່ອຍໃຫ້ມັນເປັນຄ່າເລີ່ມຕົ້ນ.
--config
ປະເພດ: Array
ອ່ານລາຍຊື່ໄຟລ໌ config ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດນີ້; ຖ້າລະບຸ, ນີ້ຈະຕ້ອງເປັນອັນທໍາອິດ
ທາງເລືອກໃນແຖວຄໍາສັ່ງ.
--critical-load
ປະເພດ: Array; ຄ່າເລີ່ມຕົ້ນ: Threads_running=50
ກວດເບິ່ງສະຖານະທົ່ວໂລກຫຼັງຈາກທຸກຊິ້ນ, ແລະຍົກເລີກຖ້າການໂຫຼດສູງເກີນໄປ. ໄດ້
ທາງເລືອກຮັບເອົາບັນຊີລາຍການທີ່ແຍກດ້ວຍເຄື່ອງຫມາຍຈຸດຂອງຕົວແປສະຖານະພາບ MySQL ແລະເກນ. ອັນ
ທາງເລືອກ "=MAX_VALUE" (ຫຼື ":MAX_VALUE") ສາມາດປະຕິບັດຕາມແຕ່ລະຕົວແປ. ຖ້າບໍ່ໃຫ້, ໄດ້
ເຄື່ອງມືກໍານົດຂອບເຂດໂດຍການກວດເບິ່ງມູນຄ່າປະຈຸບັນໃນຕອນເລີ່ມຕົ້ນແລະເພີ່ມຂຶ້ນສອງເທົ່າ.
ເບິ່ງ "--max-load" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ. ທາງເລືອກເຫຼົ່ານີ້ເຮັດວຽກຄ້າຍຄືກັນ, ຍົກເວັ້ນນີ້
ທາງເລືອກຈະຍົກເລີກການດໍາເນີນງານຂອງເຄື່ອງມືແທນທີ່ຈະຢຸດຊົ່ວຄາວ, ແລະຄ່າເລີ່ມຕົ້ນແມ່ນ
ຄິດໄລ່ແຕກຕ່າງກັນຖ້າທ່ານລະບຸບໍ່ມີເກນ. ເຫດຜົນສໍາລັບທາງເລືອກນີ້ແມ່ນເປັນ
ການກວດສອບຄວາມປອດໄພໃນກໍລະນີທີ່ triggers ໃນຕາຕະລາງຕົ້ນສະບັບເພີ່ມການໂຫຼດຫຼາຍກັບເຄື່ອງແມ່ຂ່າຍ
ວ່າມັນເຮັດໃຫ້ເກີດການຢຸດເຮັດວຽກ. ອາດຈະບໍ່ມີຄ່າດຽວຂອງ Threads_running ນັ້ນຄື
ຜິດພາດສໍາລັບທຸກໆເຄື່ອງແມ່ຂ່າຍ, ແຕ່ຄ່າເລີ່ມຕົ້ນຂອງ 50 ເບິ່ງຄືວ່າຈະສູງທີ່ບໍ່ສາມາດຍອມຮັບໄດ້
ເຄື່ອງແມ່ຂ່າຍສ່ວນໃຫຍ່, ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານຄວນໄດ້ຮັບການຍົກເລີກທັນທີ.
--ຖານຂໍ້ມູນ
ຮູບແບບສັ້ນ: -D; ປະເພດ: string
ເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນນີ້.
--ເຄື່ອງຈັກເລີ່ມຕົ້ນ
ເອົາ "ເຄື່ອງຈັກ" ອອກຈາກຕາຕະລາງໃຫມ່.
ໂດຍຄ່າເລີ່ມຕົ້ນ, ຕາຕະລາງໃຫມ່ຖືກສ້າງຂື້ນດ້ວຍຕົວເລືອກຕາຕະລາງດຽວກັນກັບຕາຕະລາງຕົ້ນສະບັບ,
ດັ່ງນັ້ນຖ້າຕາຕະລາງຕົ້ນສະບັບໃຊ້ InnoDB, ຫຼັງຈາກນັ້ນຕາຕະລາງໃຫມ່ຈະໃຊ້ InnoDB. ໃນແນ່ນອນ
ກໍລະນີທີ່ກ່ຽວຂ້ອງກັບການຈໍາລອງ, ນີ້ອາດຈະເຮັດໃຫ້ເກີດການປ່ຽນແປງທີ່ບໍ່ໄດ້ຕັ້ງໃຈກ່ຽວກັບການຈໍາລອງທີ່ໃຊ້ a
ເຄື່ອງຈັກທີ່ແຕກຕ່າງກັນສໍາລັບຕາຕະລາງດຽວກັນ. ການລະບຸທາງເລືອກນີ້ເຮັດໃຫ້ຕາຕະລາງໃຫມ່
ຖືກສ້າງຂື້ນດ້ວຍເຄື່ອງຈັກເລີ່ມຕົ້ນຂອງລະບົບ.
--defaults-file
ຮູບແບບສັ້ນ: -F; ປະເພດ: string
ພຽງແຕ່ອ່ານຕົວເລືອກ mysql ຈາກໄຟລ໌ທີ່ໃຫ້. ທ່ານຕ້ອງໃຫ້ຊື່ເສັ້ນທາງຢ່າງແທ້ຈິງ.
--[ບໍ່] drop-new-table
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ວາງຕາຕະລາງໃຫມ່ຖ້າການຄັດລອກຕາຕະລາງຕົ້ນສະບັບລົ້ມເຫລວ.
ການລະບຸ "--no-drop-new-table" ແລະ "--no-swap-tables" ອອກຈາກສຳເນົາທີ່ປ່ຽນແປງໃໝ່.
ຂອງຕາຕະລາງໂດຍບໍ່ມີການດັດແປງຕາຕະລາງຕົ້ນສະບັບ. ເບິ່ງ "--new-table-name".
--no-drop-new-table ບໍ່ເຮັດວຽກກັບ "alter-foreign-keys-method drop_swap".
--[ບໍ່]ວາງຕາຕະລາງເກົ່າ
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ວາງຕາຕະລາງຕົ້ນສະບັບຫຼັງຈາກປ່ຽນຊື່ມັນ. ຫຼັງຈາກຕາຕະລາງຕົ້ນສະບັບໄດ້
ການປ່ຽນຊື່ຢ່າງສໍາເລັດຜົນເພື່ອໃຫ້ຕາຕະລາງໃຫມ່ເຂົ້າມາແທນ, ແລະຖ້າບໍ່ມີຂໍ້ຜິດພາດ,
ເຄື່ອງມືຫຼຸດລົງຕາຕະລາງຕົ້ນສະບັບໂດຍຄ່າເລີ່ມຕົ້ນ. ຖ້າມີຂໍ້ຜິດພາດ, ເຄື່ອງມືຈະອອກໄປ
ຕາຕະລາງຕົ້ນສະບັບຢູ່ໃນສະຖານທີ່.
ຖ້າ "--no-swap-tables" ຖືກລະບຸ, ຫຼັງຈາກນັ້ນບໍ່ມີຕາຕະລາງເກົ່າທີ່ຈະລຸດລົງ.
--[ບໍ່]drop-triggers
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ວາງ triggers ໃນຕາຕະລາງເກົ່າ. "--no-drop-triggers" ບັງຄັບ "--no-drop-old-table".
-- ແລ່ນແຫ້ງ
ສ້າງ ແລະປ່ຽນແປງຕາຕະລາງໃໝ່, ແຕ່ຢ່າສ້າງ triggers, ສຳເນົາຂໍ້ມູນ ຫຼືປ່ຽນແທນ
ຕາຕະລາງຕົ້ນສະບັບ.
-- ປະຕິບັດ
ຊີ້ບອກວ່າເຈົ້າໄດ້ອ່ານເອກະສານແລ້ວ ແລະຕ້ອງການປ່ຽນຕາຕະລາງ. ເຈົ້າຕ້ອງ
ລະບຸຕົວເລືອກນີ້ເພື່ອປ່ຽນຕາຕະລາງ. ຖ້າທ່ານບໍ່ເຮັດ, ຫຼັງຈາກນັ້ນເຄື່ອງມືພຽງແຕ່ຈະປະຕິບັດ
ການກວດສອບຄວາມປອດໄພບາງຢ່າງແລະອອກ. ນີ້ຊ່ວຍໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ອ່ານເອກະສານ
ແລະເຂົ້າໃຈວິທີການນໍາໃຊ້ເຄື່ອງມືນີ້. ຖ້າທ່ານຍັງບໍ່ໄດ້ອ່ານເອກະສານ, ຫຼັງຈາກນັ້ນເຮັດ
ບໍ່ລະບຸທາງເລືອກນີ້.
--ກຳລັງ
ຕົວເລືອກນີ້ຂ້າມການຢືນຢັນໃນກໍລະນີທີ່ໃຊ້ alter-foreign-keys-method = none ,
ທີ່ອາດຈະທໍາລາຍຂໍ້ຈໍາກັດທີ່ສໍາຄັນຂອງຕ່າງປະເທດ.
- ຊ່ວຍ
ສະແດງການຊ່ວຍເຫຼືອ ແລະອອກ.
-ເຈົ້າພາບ
ຮູບແບບສັ້ນ: -h; ປະເພດ: string
ເຊື່ອມຕໍ່ຫາເຈົ້າພາບ.
--max-flow-ctl
ປະເພດ: ລອຍ
ຄ້າຍຄືກັນກັບ --max-lag ແຕ່ສໍາລັບກຸ່ມ PXC. ກວດເບິ່ງກຸ່ມເວລາສະເລ່ຍທີ່ໃຊ້
ຢຸດຊົ່ວຄາວສໍາລັບ Flow Control ແລະເຮັດໃຫ້ເຄື່ອງມືຢຸດຊົ່ວຄາວຖ້າມັນເກີນອັດຕາສ່ວນທີ່ລະບຸ
ໃນທາງເລືອກ. ຄ່າຂອງ 0 ຈະເຮັດໃຫ້ເຄື່ອງມືຢຸດຊົ່ວຄາວເມື່ອ *any* Flow Control
ກວດພົບການເຄື່ອນໄຫວ. ຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ມີການກວດສອບການຄວບຄຸມການໄຫຼ. ທາງເລືອກນີ້ສາມາດໃຊ້ໄດ້
ສໍາລັບ PXC ລຸ້ນ 5.6 ຫຼືສູງກວ່າ.
--max-lag
ປະເພດ: ເວລາ; ຄ່າເລີ່ມຕົ້ນ: 1s
ຢຸດການສຳເນົາຂໍ້ມູນໄວ້ຊົ່ວຄາວຈົນກວ່າການຈຳລອງທັງໝົດຈະໜ້ອຍກວ່າຄ່ານີ້. ຫຼັງຈາກຂໍ້ມູນແຕ່ລະຄົນ -
ສໍາເນົາການສອບຖາມ (ແຕ່ລະ chunk), ເຄື່ອງມືເບິ່ງ lag ການທົດລອງຂອງ replicas ທັງຫມົດທີ່ຈະ
ທີ່ມັນເຊື່ອມຕໍ່, ໂດຍໃຊ້ Seconds_Behind_Master. ຖ້າຫາກວ່າການທົດລອງໃດທີ່ຊ້າຫຼາຍກ່ວາ
ຄ່າຂອງຕົວເລືອກນີ້, ຫຼັງຈາກນັ້ນເຄື່ອງມືຈະນອນສໍາລັບ "--check-interval" ວິນາທີ,
ຈາກນັ້ນກວດເບິ່ງການຈໍາລອງທັງໝົດອີກຄັ້ງ. ຖ້າທ່ານລະບຸ "--check-slave-lag", ຫຼັງຈາກນັ້ນເຄື່ອງມືເທົ່ານັ້ນ
ກວດເບິ່ງເຊີບເວີນັ້ນສໍາລັບຄວາມຊັກຊ້າ, ບໍ່ແມ່ນເຄື່ອງແມ່ຂ່າຍທັງຫມົດ. ຖ້າຫາກວ່າທ່ານຕ້ອງການທີ່ຈະຄວບຄຸມທີ່ແທ້ຈິງ
ເຊີບເວີຕິດຕາມກວດກາເຄື່ອງມື, ໃຊ້ຄ່າ DSN ກັບ "--recursion-method".
ເຄື່ອງມືລໍຖ້າຕະຫຼອດໄປເພື່ອການຈໍາລອງເພື່ອຢຸດການຊັກຊ້າ. ຖ້າ replica ໃດຖືກຢຸດ, ໄດ້
ເຄື່ອງມືລໍຖ້າຕະຫຼອດໄປຈົນກ່ວາການຈໍາລອງຈະເລີ່ມຕົ້ນ. ສຳເນົາຂໍ້ມູນຍັງສືບຕໍ່ເມື່ອທັງໝົດ
replicas ແມ່ນແລ່ນແລະບໍ່ຊັກຊ້າເກີນໄປ.
ເຄື່ອງມືພິມບົດລາຍງານຄວາມຄືບຫນ້າໃນຂະນະທີ່ລໍຖ້າ. ຖ້າການຈໍາລອງຖືກຢຸດ, ມັນຈະພິມ a
ລາຍງານຄວາມຄືບໜ້າທັນທີ, ຈາກນັ້ນອີກເທື່ອໜຶ່ງໃນທຸກໆໄລຍະລາຍງານຄວາມຄືບໜ້າ.
--ການໂຫຼດສູງສຸດ
ປະເພດ: Array; ຄ່າເລີ່ມຕົ້ນ: Threads_running=25
ກວດເບິ່ງສະຖານະທົ່ວໂລກຫຼັງຈາກທຸກຊິ້ນ, ແລະຢຸດຊົ່ວຄາວຖ້າຕົວແປສະຖານະໃດ
ສູງກວ່າເກນຂອງພວກເຂົາ. ຕົວເລືອກຍອມຮັບບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງ MySQL
ຕົວແປສະຖານະ. ທາງເລືອກ "=MAX_VALUE" (ຫຼື ":MAX_VALUE") ສາມາດປະຕິບັດຕາມແຕ່ລະອັນ
ຕົວແປ. ຖ້າບໍ່ໄດ້ໃຫ້, ເຄື່ອງມືກໍານົດຂອບເຂດໂດຍການກວດເບິ່ງກະແສໄຟຟ້າ
ມູນຄ່າແລະເພີ່ມຂຶ້ນ 20%.
ຕົວຢ່າງ, ຖ້າທ່ານຕ້ອງການໃຫ້ເຄື່ອງມືຢຸດຊົ່ວຄາວເມື່ອ Threads_connected ສູງເກີນໄປ, ທ່ານ
ສາມາດລະບຸ "Threads_connected", ແລະເຄື່ອງມືຈະກວດສອບມູນຄ່າປັດຈຸບັນໃນເວລາທີ່ມັນ
ເລີ່ມເຮັດວຽກແລະເພີ່ມ 20% ໃຫ້ກັບມູນຄ່ານັ້ນ. ຖ້າມູນຄ່າປະຈຸບັນແມ່ນ 100, ຫຼັງຈາກນັ້ນ, ເຄື່ອງມື
ຈະຢຸດຊົ່ວຄາວເມື່ອ Threads_connected ເກີນ 120, ແລະສືບຕໍ່ເຮັດວຽກເມື່ອມັນຕ່ຳກວ່າ 120.
ອີກເທື່ອຫນຶ່ງ. ຖ້າທ່ານຕ້ອງການກໍານົດຂອບເຂດທີ່ຊັດເຈນ, ເຊັ່ນ: 110, ທ່ານສາມາດນໍາໃຊ້ໄດ້
"Threads_connected:110" ຫຼື "Threads_connected=110".
ຈຸດປະສົງຂອງທາງເລືອກນີ້ແມ່ນເພື່ອປ້ອງກັນບໍ່ໃຫ້ເຄື່ອງມືຈາກການເພີ່ມການໂຫຼດຫຼາຍເກີນໄປໃສ່
ເຊີບເວີ. ຖ້າການສອບຖາມການສໍາເນົາຂໍ້ມູນແມ່ນ intrusive, ຫຼືຖ້າຫາກວ່າພວກເຂົາເຈົ້າເຮັດໃຫ້ການລໍຖ້າການລັອກ, ຫຼັງຈາກນັ້ນ
ການສອບຖາມອື່ນໆໃນເຊີບເວີຈະມີແນວໂນ້ມທີ່ຈະບລັອກແລະຄິວ. ນີ້ໂດຍທົ່ວໄປຈະເຮັດໃຫ້
Threads_running ເພີ່ມຂຶ້ນ, ແລະເຄື່ອງມືສາມາດກວດພົບວ່າໂດຍການແລ່ນ SHOW GLOBAL
STATUS ທັນທີຫຼັງຈາກແຕ່ລະຄໍາຖາມສໍາເລັດ. ຖ້າທ່ານກໍານົດຂອບເຂດສໍາລັບການນີ້
ປ່ຽນແປງໄດ້, ຫຼັງຈາກນັ້ນທ່ານສາມາດສັ່ງໃຫ້ເຄື່ອງມືລໍຖ້າຈົນກ່ວາການສອບຖາມເຮັດວຽກເປັນປົກກະຕິ
ອີກເທື່ອຫນຶ່ງ. ນີ້ຈະບໍ່ປ້ອງກັນການຈັດແຖວ, ຢ່າງໃດກໍຕາມ; ມັນຈະໃຫ້ໂອກາດກັບເຄື່ອງແມ່ຂ່າຍເທົ່ານັ້ນ
ເພື່ອຟື້ນຕົວຈາກການຈັດແຖວ. ຖ້າທ່ານສັງເກດເຫັນການຈັດແຖວ, ມັນດີທີ່ສຸດທີ່ຈະຫຼຸດລົງ
ທີ່ໃຊ້ເວລາ chunk.
--new-table-name
ປະເພດ: ຊ່ອຍແນ່; ຄ່າເລີ່ມຕົ້ນ: %T_new
ຊື່ຕາຕະລາງໃຫມ່ກ່ອນທີ່ຈະຖືກ swapped. %T ຖືກແທນທີ່ດ້ວຍຊື່ຕາຕະລາງຕົ້ນສະບັບ.
ເມື່ອໃຊ້ຄ່າເລີ່ມຕົ້ນ, ເຄື່ອງມືຈະນຳໜ້າຊື່ທີ່ມີສູງສຸດ 10 "_" (ຂີດກ້ອງ) ເປັນ.
ຊອກຫາຊື່ຕາຕະລາງທີ່ເປັນເອກະລັກ. ຖ້າຊື່ຕາຕະລາງຖືກລະບຸ, ເຄື່ອງມືບໍ່ໄດ້ນໍາຫນ້າມັນ
ດ້ວຍ "_", ດັ່ງນັ້ນຕາຕະລາງຈະຕ້ອງບໍ່ມີຢູ່.
-ລະຫັດຜ່ານ
ຮູບແບບສັ້ນ: -p; ປະເພດ: string
ລະຫັດຜ່ານທີ່ຈະໃຊ້ໃນເວລາເຊື່ອມຕໍ່. ຖ້າລະຫັດຜ່ານມີເຄື່ອງໝາຍຈຸດ, ພວກມັນຈະຕ້ອງຖືກຫລົບໜີ
ກັບ backslash: "ການສອບເສັງ, ple"
--pid
ປະເພດ: string
ສ້າງໄຟລ໌ PID ທີ່ໃຫ້. ເຄື່ອງມືຈະບໍ່ເລີ່ມຕົ້ນຖ້າໄຟລ໌ PID ມີຢູ່ແລ້ວແລະ
PID ທີ່ມັນມີຢູ່ແຕກຕ່າງຈາກ PID ໃນປັດຈຸບັນ. ຢ່າງໃດກໍຕາມ, ຖ້າໄຟລ໌ PID
ມີຢູ່ ແລະ PID ທີ່ມັນບັນຈຸບໍ່ໄດ້ເຮັດວຽກອີກຕໍ່ໄປ, ເຄື່ອງມືຈະຂຽນທັບ PID
ໄຟລ໌ທີ່ມີ PID ໃນປັດຈຸບັນ. ໄຟລ໌ PID ຈະຖືກລຶບອອກໂດຍອັດຕະໂນມັດເມື່ອເຄື່ອງມືອອກ.
--ປລັກອິນ
ປະເພດ: string
ໄຟລ໌ໂມດູນ Perl ທີ່ກໍານົດຫ້ອງຮຽນ "pt_online_schema_change_plugin". ປລັກອິນ
ອະນຸຍາດໃຫ້ທ່ານຂຽນໂມດູນ Perl ທີ່ສາມາດຕິດຢູ່ໃນຫຼາຍພາກສ່ວນຂອງ pt-online-schema-
ການປ່ຽນແປງ. ນີ້ຮຽກຮ້ອງໃຫ້ມີຄວາມຮູ້ທີ່ດີຂອງສົນທິສັນຍາ Perl ແລະ Percona Toolkit, ເຊິ່ງ
ເກີນຂອບເຂດຂອງເອກະສານນີ້. ກະລຸນາຕິດຕໍ່ Percona ຖ້າທ່ານມີ
ຄໍາຖາມຫຼືຕ້ອງການຄວາມຊ່ວຍເຫຼືອ.
ເບິ່ງ "PLUGIN" ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
--ພອດ
ຮູບແບບສັ້ນ: -P; ປະເພດ: int
ໝາຍເລກພອດເພື່ອໃຊ້ສຳລັບການເຊື່ອມຕໍ່.
--ພິມ
ພິມຄຳຖະແຫຼງ SQL ໃສ່ STDOUT. ການລະບຸທາງເລືອກນີ້ອະນຸຍາດໃຫ້ທ່ານເຂົ້າໄປເບິ່ງສ່ວນໃຫຍ່ຂອງ
ຖະແຫຼງການທີ່ເຄື່ອງມືປະຕິບັດ. ທ່ານສາມາດນໍາໃຊ້ທາງເລືອກນີ້ກັບ "--dry-run", ສໍາລັບ
ຍົກຕົວຢ່າງ.
- ແມ່ຍິງ
ປະເພດ: array; ຄ່າເລີ່ມຕົ້ນ: ເວລາ, 30
ພິມລາຍງານຄວາມຄືບໜ້າໃສ່ STDERR ໃນຂະນະທີ່ສຳເນົາແຖວ. ຄ່າແມ່ນເຄື່ອງໝາຍຈຸດທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ
ບັນຊີລາຍຊື່ທີ່ມີສອງພາກສ່ວນ. ສ່ວນທໍາອິດສາມາດເປັນເປີເຊັນ, ເວລາ, ຫຼືການຊໍ້າຄືນ; ໄດ້
ພາກທີສອງລະບຸວ່າການປັບປຸງຄວນຈະໄດ້ຮັບການພິມເລື້ອຍໆ, ໃນອັດຕາສ່ວນ, ວິນາທີ,
ຫຼືຈໍານວນຂອງການຊໍ້າຄືນ.
--ງຽບ
ຮູບແບບສັ້ນ: -q
ຢ່າພິມຂໍ້ຄວາມໄປຫາ STDOUT (ປິດການໃຊ້ງານ "--progress"). ຄວາມຜິດພາດແລະການເຕືອນໄພແມ່ນ
ຍັງພິມເປັນ STDERR.
-- ຊ້ຳ
ປະເພດ: int
ຈໍານວນຂອງລະດັບທີ່ຈະ recurse ໃນລໍາດັບໃນເວລາທີ່ຄົ້ນພົບ replicas. ຄ່າເລີ່ມຕົ້ນແມ່ນ
ອັນເປັນນິດ. ເບິ່ງ "--recursion-method".
--recursion ວິທີການ
ປະເພດ: array; ຄ່າເລີ່ມຕົ້ນ: processlist, hosts
ວິທີການ recursion ທີ່ຕ້ອງການສໍາລັບການຄົ້ນພົບ replicas. ວິທີການທີ່ເປັນໄປໄດ້ແມ່ນ:
ວິທີການນໍາໃຊ້
=========== ==================
ລາຍການຂະບວນການສະແດງລາຍການຂະບວນການ
ເຈົ້າພາບສະແດງ SLAVE HOSTS
dsn=DSN DSNs ຈາກຕາຕະລາງ
none ຢ່າຊອກຫາທາດ
ວິທີການບັນຊີລາຍການເປັນຄ່າເລີ່ມຕົ້ນ, ເພາະວ່າ SHOW SLAVE HOSTS ບໍ່ໜ້າເຊື່ອຖື.
ຢ່າງໃດກໍ່ຕາມ, ວິທີການໂຮດສາມາດເຮັດວຽກໄດ້ດີກວ່າຖ້າເຄື່ອງແມ່ຂ່າຍໃຊ້ພອດທີ່ບໍ່ແມ່ນມາດຕະຖານ (ບໍ່ແມ່ນ
3306). ເຄື່ອງມືປົກກະຕິແລ້ວເຮັດສິ່ງທີ່ຖືກຕ້ອງແລະຊອກຫາ replicas ທັງຫມົດ, ແຕ່ວ່າທ່ານອາດຈະໃຫ້
ວິທີການທີ່ຕ້ອງການແລະມັນຈະຖືກນໍາໃຊ້ກ່ອນ.
ວິທີການໂຮດຕ້ອງການ replicas ທີ່ຈະ configured ກັບ report_host, report_port,
ແລະອື່ນໆ
ວິທີການ dsn ແມ່ນພິເສດ: ມັນກໍານົດຕາຕະລາງທີ່ສາຍ DSN ອື່ນໆຖືກອ່ານ.
DSN ທີ່ກໍານົດໄວ້ຕ້ອງລະບຸ D ແລະ t, ຫຼືຖານຂໍ້ມູນທີ່ມີຄຸນສົມບັດ t. ຕາຕະລາງ DSN
ຄວນຈະມີໂຄງສ້າງດັ່ງຕໍ່ໄປນີ້:
ສ້າງຕາຕະລາງ `dsns` (
`id` int(11) ບໍ່ແມ່ນ AUTO_INCREMENT NULL,
`parent_id` int(11) default NULL,
`dsn` ຕົວປ່ຽນ(255) ບໍ່ແມ່ນ NULL,
ຄີຫຼັກ (`id`)
);
ເພື່ອເຮັດໃຫ້ເຄື່ອງມືຕິດຕາມກວດກາພຽງແຕ່ hosts 10.10.1.16 ແລະ 10.10.1.17 ສໍາລັບ replication lag,
ໃສ່ຄ່າ "h=10.10.1.16" ແລະ "h=10.10.1.17" ເຂົ້າໃນຕາຕະລາງ. ໃນປັດຈຸບັນ, ໄດ້
DSNs ຖືກສັ່ງໂດຍ id, ແຕ່ id ແລະ parent_id ແມ່ນຖືກລະເລີຍເປັນຢ່າງອື່ນ.
--set-vars
ປະເພດ: Array
ກໍານົດຕົວແປ MySQL ໃນບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຄູ່ "variable=value".
ໂດຍຄ່າເລີ່ມຕົ້ນ, ເຄື່ອງມືກໍານົດ:
wait_timeout=10000
innodb_lock_wait_timeout=1
lock_wait_timeout=60
ຕົວແປທີ່ລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງ override ຄ່າເລີ່ມຕົ້ນເຫຼົ່ານີ້. ຍົກຕົວຢ່າງ,
ການລະບຸ "--set-vars wait_timeout=500" ລົບລ້າງຄ່າເລີ່ມຕົ້ນຂອງ 10000.
ເຄື່ອງມືພິມຄໍາເຕືອນແລະສືບຕໍ່ຖ້າຫາກວ່າຕົວປ່ຽນແປງບໍ່ສາມາດໄດ້ຮັບການຕັ້ງຄ່າ.
-- ນອນ
ປະເພດ: ລອຍ; ຄ່າເລີ່ມຕົ້ນ: 0
ດົນປານໃດທີ່ຈະນອນ (ເປັນວິນາທີ) ຫຼັງຈາກຄັດລອກແຕ່ລະ chunk. ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດໃນເວລາທີ່
throttling ໂດຍ "--max-lag" ແລະ "--max-load" ແມ່ນເປັນໄປບໍ່ໄດ້. ຂະຫນາດນ້ອຍ, ວິນາທີຍ່ອຍ
ຄ່າຄວນຖືກໃຊ້, ເຊັ່ນ 0.1, ຖ້າບໍ່ດັ່ງນັ້ນເຄື່ອງມືອາດຈະໃຊ້ເວລາດົນຫຼາຍໃນການຄັດລອກ
ໂຕະໃຫຍ່.
--ຊັອກເກັດ
ຮູບແບບສັ້ນ: -S; ປະເພດ: string
ໄຟລ໌ socket ໃຊ້ສໍາລັບການເຊື່ອມຕໍ່.
--ສະຖິຕິ
ພິມສະຖິຕິກ່ຽວກັບຕົວນັບພາຍໃນ. ນີ້ແມ່ນເປັນປະໂຫຍດທີ່ຈະເຫັນການເຕືອນໄພຈໍານວນຫຼາຍ
ໄດ້ຖືກສະກັດກັ້ນເມື່ອທຽບໃສ່ກັບຈໍານວນຂອງ INSERT.
--[ບໍ່] swap-tables
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ແລກປ່ຽນຕາຕະລາງຕົ້ນສະບັບແລະຕາຕະລາງໃຫມ່, ມີການປ່ຽນແປງ. ຂັ້ນຕອນນີ້ເຮັດໃຫ້ສໍາເລັດອອນໄລນ໌
ຂະບວນການປ່ຽນແປງ schema ໂດຍການເຮັດໃຫ້ຕາຕະລາງທີ່ມີ schema ໃຫມ່ເອົາສະຖານທີ່ຂອງ
ຕາຕະລາງຕົ້ນສະບັບ. ຕາຕະລາງຕົ້ນສະບັບກາຍເປັນ "ຕາຕະລາງເກົ່າ," ແລະເຄື່ອງມືຫຼຸດລົງມັນ
ເວັ້ນເສຍແຕ່ວ່າທ່ານປິດການໃຊ້ງານ "--[no]drop-old-table".
--ພະຍາຍາມ
ປະເພດ: array
ພະຍາຍາມປະຕິບັດການທີ່ສໍາຄັນຫຼາຍປານໃດ. ຖ້າການດໍາເນີນການບາງຢ່າງລົ້ມເຫລວເນື່ອງຈາກການບໍ່
ຄວາມຜິດພາດທີ່ຮ້າຍແຮງທີ່ສາມາດຟື້ນຟູໄດ້, ເຄື່ອງມືລໍຖ້າແລະພະຍາຍາມການດໍາເນີນງານອີກເທື່ອຫນຶ່ງ. ພວກນີ້ແມ່ນ
ການດໍາເນີນງານທີ່ຖືກພະຍາຍາມໃຫມ່, ດ້ວຍຈໍານວນການພະຍາຍາມເລີ່ມຕົ້ນແລະເວລາລໍຖ້າຂອງພວກເຂົາ
ລະຫວ່າງຄວາມພະຍາຍາມ (ໃນວິນາທີ):
ການດໍາເນີນງານພະຍາຍາມລໍຖ້າ
=================== ===== ====
create_triggers 10 1
drop_triggers 10 1
copy_rows 10 0.25
swap_tables 10 1
update_foreign_keys 10 1
ຕາຕະລາງການວິເຄາະ 10 1
ເພື່ອປ່ຽນຄ່າເລີ່ມຕົ້ນ, ໃຫ້ລະບຸຄ່າໃໝ່ເຊັ່ນ:
--tries ສ້າງ_triggers:5:0.5,drop_triggers:5:0.5
ທີ່ເຮັດໃຫ້ເຄື່ອງມືພະຍາຍາມ "create_triggers" ແລະ "drop_triggers" 5 ເທື່ອດ້ວຍ 0.5.
ລໍຖ້າທີສອງລະຫວ່າງຄວາມພະຍາຍາມ. ດັ່ງນັ້ນຮູບແບບແມ່ນ:
ການດໍາເນີນງານ:ພະຍາຍາມ:ລໍຖ້າ[,ການດໍາເນີນງານ:ພະຍາຍາມ:ລໍຖ້າ]
ທັງສາມຄ່າຈະຕ້ອງຖືກລະບຸ.
ໃຫ້ສັງເກດວ່າການດໍາເນີນງານສ່ວນໃຫຍ່ໄດ້ຮັບຜົນກະທົບພຽງແຕ່ໃນ MySQL 5.5 ແລະໃຫມ່ກວ່າໂດຍ
"lock_wait_timeout" (ເບິ່ງ "--set-vars") ເນື່ອງຈາກການລັອກເມຕາເດຕາ. "copy_rows"
ການດໍາເນີນງານໄດ້ຮັບຜົນກະທົບໃນ MySQL ຮຸ່ນໃດກໍ່ຕາມໂດຍ "innodb_lock_wait_timeout".
ສໍາລັບການສ້າງແລະການຫຼຸດລົງ triggers, ຈໍານວນຂອງການທົດລອງໃຊ້ກັບແຕ່ລະ "CREATE
TRIGGER ແລະ "DROP TRIGGER" ຄໍາສັ່ງສໍາລັບແຕ່ລະ trigger. ສໍາລັບການຄັດລອກແຖວ, ຈໍານວນ
ຂອງຄວາມພະຍາຍາມໃຊ້ກັບແຕ່ລະ chunk, ບໍ່ແມ່ນຕາຕະລາງທັງຫມົດ. ສໍາລັບຕາຕະລາງ swapping, ຈໍານວນ
ປົກກະຕິແລ້ວການທົດລອງໃຊ້ຄັ້ງດຽວເພາະວ່າປົກກະຕິແລ້ວມີພຽງອັນດຽວ "RENAME TABLE"
ຖະແຫຼງການ. ສໍາລັບການກໍ່ສ້າງໃຫມ່ຂໍ້ຈໍາກັດທີ່ສໍາຄັນຂອງຕ່າງປະເທດ, ຈໍານວນຂອງຄວາມພະຍາຍາມນໍາໃຊ້ກັບ
ແຕ່ລະຖະແຫຼງການ ("ALTER" ຖະແຫຼງການສໍາລັບ "rebuild_constraints"
"--alter-foreign-keys-method"; ຄໍາຖະແຫຼງອື່ນໆສໍາລັບວິທີການ "drop_swap").
ເຄື່ອງມືທົດລອງແຕ່ລະການດໍາເນີນງານຖ້າຫາກວ່າຄວາມຜິດພາດເຫຼົ່ານີ້ເກີດຂຶ້ນ:
ລັອກເວລາລໍຖ້າ (innodb_lock_wait_timeout ແລະ lock_wait_timeout)
ພົບ Deadlock
Query ຖືກຂ້າຕາຍ (KILL QUERY )
ການເຊື່ອມຕໍ່ຖືກຂ້າ (KILL CONNECTION )
ສູນເສຍການເຊື່ອມຕໍ່ກັບ MySQL
ໃນກໍລະນີຂອງການເຊື່ອມຕໍ່ທີ່ສູນເສຍແລະເສຍຊີວິດ, ເຄື່ອງມືຈະເຊື່ອມຕໍ່ຄືນໃຫມ່ໂດຍອັດຕະໂນມັດ.
ຄວາມລົ້ມເຫຼວແລະການພະຍາຍາມຄືນໃຫມ່ໄດ້ຖືກບັນທຶກໄວ້ໃນ "-- ສະຖິຕິ".
-ຜູ້ໃຊ້
ຮູບແບບສັ້ນ: -u; ປະເພດ: string
ຜູ້ໃຊ້ສໍາລັບການເຂົ້າສູ່ລະບົບຖ້າບໍ່ແມ່ນຜູ້ໃຊ້ປະຈຸບັນ.
- ການປ່ຽນແປງ
ສະແດງສະບັບແລະອອກ.
--[ບໍ່ມີການກວດສອບສະບັບ
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ກວດເບິ່ງເວີຊັນຫຼ້າສຸດຂອງ Percona Toolkit, MySQL, ແລະໂຄງການອື່ນໆ.
ນີ້ແມ່ນມາດຕະຖານ "ກວດສອບການປັບປຸງອັດຕະໂນມັດ" ຄຸນນະສົມບັດ, ມີສອງເພີ່ມເຕີມ
ຄຸນລັກສະນະ. ຫນ້າທໍາອິດ, ເຄື່ອງມືກວດສອບສະບັບຂອງບັນດາໂຄງການອື່ນໆໃນລະບົບທ້ອງຖິ່ນໃນ
ນອກຈາກສະບັບຂອງຕົນເອງ. ຕົວຢ່າງ, ມັນກວດເບິ່ງເວີຊັນຂອງທຸກເຄື່ອງແມ່ຂ່າຍ MySQL
ມັນເຊື່ອມຕໍ່ກັບ, Perl, ແລະໂມດູນ Perl DBD::mysql. ອັນທີສອງ, ມັນກວດເບິ່ງແລະເຕືອນ
ກ່ຽວກັບສະບັບທີ່ມີບັນຫາທີ່ຮູ້ຈັກ. ຕົວຢ່າງ, MySQL 5.5.25 ມີ bug ທີ່ສໍາຄັນແລະ
ໄດ້ຖືກປ່ອຍອອກມາເມື່ອ 5.5.25a.
ການອັບເດດ ຫຼືບັນຫາທີ່ຮູ້ຈັກຈະຖືກພິມໃສ່ STDOUT ກ່ອນທີ່ເຄື່ອງມືຈະອອກມາປົກກະຕິ.
ຄຸນສົມບັດນີ້ບໍ່ຄວນລົບກວນການເຮັດວຽກປົກກະຕິຂອງເຄື່ອງມື.
ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ໄປຢ້ຽມຢາມ .
ປລັກ
ໄຟລ໌ທີ່ລະບຸໂດຍ "--plugin" ຈະຕ້ອງກໍານົດຫ້ອງຮຽນ (ເຊັ່ນ: ຊຸດ) ເອີ້ນວ່າ
"pt_online_schema_change_plugin" ກັບ "new()" subroutine. ເຄື່ອງມືຈະສ້າງ
ຕົວຢ່າງຂອງຊັ້ນຮຽນນີ້ແລະໂທຫາ hooks ທີ່ມັນກໍານົດ. ບໍ່ຈໍາເປັນຕ້ອງມີ hooks, ແຕ່ a
plugin ບໍ່ມີປະໂຫຍດຫຼາຍໂດຍບໍ່ມີພວກມັນ.
hooks ເຫຼົ່ານີ້, ໃນຄໍາສັ່ງນີ້, ເອີ້ນວ່າຖ້າຫາກວ່າກໍານົດ:
ໃນມັນ
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
ກ່ອນອອກ
get_slave_lag
ແຕ່ລະ hook ແມ່ນຜ່ານການໂຕ້ຖຽງທີ່ແຕກຕ່າງກັນ. ເພື່ອເບິ່ງວ່າການໂຕ້ແຍ້ງໃດຖືກສົ່ງໄປຫາ hook,
ຊອກຫາຊື່ຂອງ hook ໃນລະຫັດແຫຼ່ງຂອງເຄື່ອງມື, ເຊັ່ນ:
# --plugin hook
ຖ້າ ($plugin && $plugin->can('init') ) {
$plugin->init(
orig_tbl => $orig_tbl,
child_tables => $child_tables,
renamed_cols => $renamed_cols,
ຂ້າທາດ => $slaves,
slave_lag_cxns => $slave_lag_cxns,
);
}
ຄຳເຫັນ "# --plugin hook" ມາກ່ອນທຸກສາຍ hook.
ກະລຸນາຕິດຕໍ່ Percona ຖ້າທ່ານມີຄໍາຖາມຫຼືຕ້ອງການຄວາມຊ່ວຍເຫຼືອ.
DSN OPTIONS
ຕົວເລືອກ DSN ເຫຼົ່ານີ້ຖືກໃຊ້ເພື່ອສ້າງ DSN. ແຕ່ລະທາງເລືອກແມ່ນໃຫ້ຄື "option=value".
ຕົວເລືອກແມ່ນຕົວພິມນ້ອຍ, ດັ່ງນັ້ນ P ແລະ p ບໍ່ແມ່ນທາງເລືອກດຽວກັນ. ບໍ່ສາມາດມີ
ຊ່ອງຫວ່າງກ່ອນ ຫຼືຫຼັງ "=" ແລະຖ້າຄ່າມີຊ່ອງຫວ່າງມັນຈະຕ້ອງຖືກອ້າງອີງ.
ຕົວເລືອກ DSN ແມ່ນຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ. ເບິ່ງ manpage percona-toolkit ສໍາລັບລາຍລະອຽດເຕັມ.
ກ
dsn: charset; ສຳເນົາ: ແມ່ນແລ້ວ
ຕັ້ງຕົວອັກສອນເລີ່ມຕົ້ນ.
·ດ
dsn: ຖານຂໍ້ມູນ; ສຳເນົາ: ແມ່ນແລ້ວ
ຖານຂໍ້ມູນສໍາລັບຕາຕະລາງເກົ່າແລະໃຫມ່.
· F
dsn: mysql_read_default_file; ສຳເນົາ: ແມ່ນແລ້ວ
ອ່ານພຽງແຕ່ຕົວເລືອກເລີ່ມຕົ້ນຈາກໄຟລ໌ທີ່ໃຫ້
h
dsn: ເຈົ້າພາບ; ສຳເນົາ: ແມ່ນແລ້ວ
ເຊື່ອມຕໍ່ຫາເຈົ້າພາບ.
· ປ
dsn: ລະຫັດຜ່ານ; ສຳເນົາ: ແມ່ນແລ້ວ
ລະຫັດຜ່ານທີ່ຈະໃຊ້ໃນເວລາເຊື່ອມຕໍ່. ຖ້າລະຫັດຜ່ານມີເຄື່ອງໝາຍຈຸດ, ພວກມັນຈະຕ້ອງຖືກຫລົບໜີ
ກັບ backslash: "ການສອບເສັງ, ple"
·ປ
dsn: ພອດ; ສຳເນົາ: ແມ່ນແລ້ວ
ໝາຍເລກພອດເພື່ອໃຊ້ສຳລັບການເຊື່ອມຕໍ່.
·ສ
dsn: mysql_socket; ສຳເນົາ: ແມ່ນແລ້ວ
ໄຟລ໌ socket ໃຊ້ສໍາລັບການເຊື່ອມຕໍ່.
· ທ
dsn: ຕາຕະລາງ; ສຳເນົາ: ບໍ່
ຕາຕະລາງການປ່ຽນແປງ.
· ເຈົ້າ
dsn: ຜູ້ໃຊ້; ສຳເນົາ: ແມ່ນແລ້ວ
ຜູ້ໃຊ້ສໍາລັບການເຂົ້າສູ່ລະບົບຖ້າບໍ່ແມ່ນຜູ້ໃຊ້ປະຈຸບັນ.
ENVIRONMENT
ຕົວແປສະພາບແວດລ້ອມ "PTDEBUG" ເປີດໃຊ້ຜົນການແກ້ບັນຫາ verbose ໄປຫາ STDERR. ເພື່ອເປີດໃຊ້ງານ
debugging ແລະເກັບກໍາຜົນຜະລິດທັງຫມົດໄປຍັງໄຟລ໌, ດໍາເນີນການເຄື່ອງມືເຊັ່ນ:
PTDEBUG=1 pt-online-schema-change ... > FILE 2>&1
ຈົ່ງລະວັງ: ການດີບັ໊ກຜົນອອກແມ່ນ voluminous ແລະສາມາດສ້າງຜົນຜະລິດຫຼາຍ megabytes.
SYSTEM ສິ່ງທີ່ຕ້ອງມີ
ທ່ານຕ້ອງການ Perl, DBI, DBD::mysql, ແລະບາງແພັກເກັດຫຼັກທີ່ຄວນຈະຖືກຕິດຕັ້ງຢູ່ໃນໃດກໍ່ຕາມ.
ສະບັບໃຫມ່ທີ່ສົມເຫດສົມຜົນຂອງ Perl.
ເຄື່ອງມືນີ້ເຮັດວຽກພຽງແຕ່ໃນ MySQL 5.0.2 ແລະຮຸ່ນໃຫມ່ກວ່າ, ເພາະວ່າຮຸ່ນກ່ອນຫນ້ານີ້ບໍ່ມີ
ສະຫນັບສະຫນູນຜົນກະທົບຕໍ່.
ໃຊ້ pt-online-schema-changep ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net