ພາສາອັງກິດພາສາຝຣັ່ງແອສປາໂຍນ

Ad


OnWorks favicon

pt-archiverp - ອອນລາຍໃນຄລາວ

ດໍາເນີນການ pt-archiverp ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ pt-archiverp ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


pt-archiver - ເກັບແຖວຈາກຕາຕະລາງ MySQL ເຂົ້າໄປໃນຕາຕະລາງອື່ນຫຼືໄຟລ໌.

ສະຫຼຸບສັງລວມ


ການນຳໃຊ້: pt-archiver [ຕົວເລືອກ] --source DSN --where WHERE

pt-archiver nibbles ບັນທຶກຈາກຕາຕະລາງ MySQL. ການໂຕ້ຖຽງ --source ແລະ --dest ໃຊ້ DSN
syntax; ຖ້າ COPY ແມ່ນແລ້ວ, --dest ເລີ່ມຕົ້ນຄ່າຂອງລະຫັດຈາກ --source.

ຕົວຢ່າງ:

ຈັດເກັບແຖວທັງໝົດຈາກ oltp_server ຫາ olap_server ແລະເປັນໄຟລ໌:

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

ລຶບ (ລຶບ) ແຖວເດັກກຳພ້າອອກຈາກຕາຕະລາງເດັກນ້ອຍ:

pt-archiver --source h=host,D=db,t=child --purge \
--ບ່ອນທີ່ 'ບໍ່ມີຢູ່(ເລືອກ *ຈາກພໍ່ແມ່ WHERE col=child.col)'

RISKS


Percona Toolkit ແມ່ນຜູ້ໃຫຍ່, ພິສູດໃນໂລກທີ່ແທ້ຈິງ, ແລະທົດສອບໄດ້ດີ, ແຕ່ຖານຂໍ້ມູນທັງຫມົດ
ເຄື່ອງມືສາມາດສ້າງຄວາມສ່ຽງຕໍ່ລະບົບແລະເຄື່ອງແມ່ຂ່າຍຂອງຖານຂໍ້ມູນ. ກ່ອນທີ່ຈະໃຊ້ເຄື່ອງມືນີ້,
ກະລຸນາ:

· ອ່ານເອກະສານຂອງເຄື່ອງມື

·ທົບທວນເຄື່ອງມືທີ່ຮູ້ຈັກ "BUGS"

· ທົດສອບເຄື່ອງມືໃນເຊີບເວີທີ່ບໍ່ແມ່ນການຜະລິດ

·ສໍາຮອງເຄື່ອງແມ່ຂ່າຍການຜະລິດຂອງທ່ານແລະກວດສອບການສໍາຮອງຂໍ້ມູນ

ລາຍລະອຽດ


pt-archiver ແມ່ນເຄື່ອງມືທີ່ຂ້ອຍໃຊ້ເພື່ອເກັບຕາຕະລາງຕາມທີ່ອະທິບາຍໄວ້ໃນ
<http://tinyurl.com/mysql-archiving>. ເປົ້າ​ຫມາຍ​ແມ່ນ​ມີ​ຜົນ​ກະ​ທົບ​ຕ​່​ໍ​າ​, ວຽກ​ເຮັດ​ງານ​ທໍາ​ຕໍ່​ໄປ​ເທົ່າ​ນັ້ນ​
ເຈາະຂໍ້ມູນເກົ່າອອກຈາກຕາຕະລາງໂດຍບໍ່ມີຜົນກະທົບຕໍ່ການສອບຖາມ OLTP ຫຼາຍ. ທ່ານສາມາດໃສ່
ຂໍ້ມູນເຂົ້າໄປໃນຕາຕະລາງອື່ນ, ເຊິ່ງບໍ່ຈໍາເປັນຕ້ອງຢູ່ໃນເຄື່ອງແມ່ຂ່າຍດຽວກັນ. ທ່ານຍັງສາມາດຂຽນມັນໃສ່ a
ໄຟລ໌ໃນຮູບແບບທີ່ເຫມາະສົມສໍາລັບ LOAD DATA INFILE. ຫຼືທ່ານບໍ່ສາມາດເຮັດໄດ້, ໃນກໍລະນີໃດກໍ່ຕາມ
ພຽງແຕ່ເປັນການເພີ່ມການລຶບ.

pt-archiver ແມ່ນສາມາດຂະຫຍາຍໄດ້ຜ່ານກົນໄກ plugin. ທ່ານສາມາດໃສ່ລະຫັດຂອງທ່ານເອງເພື່ອເພີ່ມ
ເຫດຜົນການຈັດເກັບແບບພິເສດທີ່ສາມາດເປັນປະໂຫຍດສໍາລັບການເກັບຂໍ້ມູນທີ່ຂຶ້ນກັບ, ນໍາໃຊ້
ກົດລະບຽບທຸລະກິດທີ່ຊັບຊ້ອນ, ຫຼືການສ້າງສາງຂໍ້ມູນໃນລະຫວ່າງຂະບວນການເກັບຂໍ້ມູນ.

ທ່ານຈໍາເປັນຕ້ອງເລືອກຄ່າຢ່າງລະມັດລະວັງສໍາລັບບາງທາງເລືອກ. ສິ່ງທີ່ສໍາຄັນທີ່ສຸດແມ່ນ "-- ຈໍາກັດ",
"--retries", ແລະ "--txn-size".

ຍຸດທະສາດແມ່ນເພື່ອຊອກຫາແຖວທໍາອິດ (s), ຫຼັງຈາກນັ້ນສະແກນບາງດັດສະນີໄປຂ້າງຫນ້າເທົ່ານັ້ນເພື່ອຊອກຫາເພີ່ມເຕີມ
ແຖວຢ່າງມີປະສິດທິພາບ. ແຕ່ລະຄໍາຖາມຕໍ່ໄປບໍ່ຄວນສະແກນຕາຕະລາງທັງຫມົດ; ມັນຄວນຈະຊອກຫາ
ເຂົ້າໄປໃນດັດຊະນີ, ຈາກນັ້ນສະແກນຈົນກວ່າມັນຈະພົບເຫັນແຖວທີ່ສາມາດເກັບໄວ້ໄດ້ຫຼາຍຂຶ້ນ. ການກໍານົດດັດຊະນີທີ່ມີ
ສ່ວນ 'i' ຂອງການໂຕ້ຖຽງ "--source" ສາມາດເປັນສິ່ງສໍາຄັນສໍາລັບການນີ້; ໃຊ້ "--dry-run" ເພື່ອ
ກວດເບິ່ງແບບສອບຖາມທີ່ສ້າງຂຶ້ນແລະໃຫ້ແນ່ໃຈວ່າຈະອະທິບາຍໃຫ້ເຂົາເຈົ້າເພື່ອເບິ່ງວ່າພວກເຂົາມີປະສິດທິພາບ
(ເວລາສ່ວນໃຫຍ່ທ່ານອາດຈະຕ້ອງການສະແກນລະຫັດ PRIMARY, ເຊິ່ງເປັນຄ່າເລີ່ມຕົ້ນ). ເຖິງແມ່ນວ່າ
ດີກວ່າ, ກວດເບິ່ງຄວາມແຕກຕ່າງໃນຕົວນັບສະຖານະ Handler ກ່ອນ ແລະຫຼັງຈາກແລ່ນ
query, ແລະໃຫ້ແນ່ໃຈວ່າມັນບໍ່ໄດ້ສະແກນຕາຕະລາງທັງຫມົດທຸກຄໍາຖາມ.

ທ່ານສາມາດປິດການເພີ່ມປະສິດທິພາບການຊອກຫາຈາກນັ້ນສະແກນບາງສ່ວນຫຼືທັງຫມົດດ້ວຍ "--no-ascend"
ແລະ "--ascend-first". ບາງເທື່ອອັນນີ້ອາດຈະມີປະສິດທິພາບຫຼາຍຂຶ້ນສຳລັບກະແຈຫຼາຍຖັນ. ເປັນ
ຮູ້ວ່າ pt-archiver ຖືກສ້າງຂຶ້ນເພື່ອເລີ່ມຕົ້ນໃນຕອນຕົ້ນຂອງດັດສະນີທີ່ມັນເລືອກແລະສະແກນ
ມັນສົ່ງຕໍ່ເທົ່ານັ້ນ. ນີ້ອາດຈະສົ່ງຜົນໃຫ້ການສະແກນຕາຕະລາງຍາວຖ້າຫາກວ່າທ່ານກໍາລັງພະຍາຍາມທີ່ຈະ nibble ຈາກ
ສິ້ນສຸດຕາຕະລາງໂດຍດັດຊະນີອື່ນນອກເຫນືອຈາກອັນທີ່ມັນມັກ. ເບິ່ງ "--source" ແລະອ່ານ
ເອກະສານຢູ່ໃນສ່ວນ "i" ຖ້າອັນນີ້ໃຊ້ກັບເຈົ້າ.

ເປຍໂນ XtraDB ກຸ່ມບ້ານ


pt-archiver ເຮັດວຽກກັບ Percona XtraDB Cluster (PXC) 5.5.28-23.7 ແລະໃຫມ່ກວ່າ, ແຕ່ມີ.
ສາມຂໍ້ຈໍາກັດທີ່ທ່ານຄວນພິຈາລະນາກ່ອນທີ່ຈະເກັບໄວ້ໃນກຸ່ມ:

ເກີດຄວາມຜິດພາດຂຶ້ນ
pt-archiver ບໍ່ໄດ້ກວດສອບຄວາມຜິດພາດເມື່ອມັນເຮັດທຸລະກໍາ. ຄໍາຫມັ້ນສັນຍາກ່ຽວກັບ PXC ສາມາດ
ລົ້ມເຫລວ, ແຕ່ເຄື່ອງມືຍັງບໍ່ກວດສອບ ຫຼືພະຍາຍາມເຮັດທຸລະກຳຄືນໃໝ່ເມື່ອອັນນີ້ເກີດຂຶ້ນ.
ຖ້າມັນເກີດຂຶ້ນ, ເຄື່ອງມືຈະຕາຍ.

ຕາຕະລາງ MyISAM
ການເກັບຕາຕະລາງ MyISAM ເຮັດວຽກ, ແຕ່ການສະຫນັບສະຫນູນ MyISAM ໃນ PXC ແມ່ນຍັງທົດລອງຢູ່
ເວລາຂອງການປ່ອຍນີ້. ມີຫຼາຍແມງໄມ້ທີ່ຮູ້ຈັກກັບ PXC, ຕາຕະລາງ MyISAM, ແລະ
ຖັນ "AUTO_INCREMENT". ດັ່ງນັ້ນ, ທ່ານຕ້ອງຮັບປະກັນວ່າການຈັດເກັບຈະບໍ່ໂດຍກົງ
ຫຼືສົ່ງຜົນໃຫ້ທາງອ້ອມໃນການນໍາໃຊ້ຄ່າເລີ່ມຕົ້ນ "AUTO_INCREMENT" ສໍາລັບຕາຕະລາງ MyISAM.
ຕົວຢ່າງ, ນີ້ເກີດຂື້ນກັບ "--dest" ຖ້າ "--columns" ຖືກໃຊ້ແລະ
ບໍ່ລວມຖັນ "AUTO_INCREMENT". ເຄື່ອງມືບໍ່ໄດ້ກວດສອບນີ້!

ທາງເລືອກທີ່ບໍ່ແມ່ນກຸ່ມ
ທາງເລືອກບາງຢ່າງອາດຈະເຮັດວຽກຫຼືອາດຈະບໍ່ເຮັດວຽກ. ຕົວຢ່າງ, ຖ້າ node cluster ບໍ່ແມ່ນ a
slave, ຫຼັງຈາກນັ້ນ "--check-slave-lag" ບໍ່ເຮັດວຽກ. ແລະນັບຕັ້ງແຕ່ຕາຕະລາງ PXC ແມ່ນປົກກະຕິແລ້ວ
InnoDB, ແຕ່ InnoDB ບໍ່ສະຫນັບສະຫນູນ "INSERT DELAYED", ຫຼັງຈາກນັ້ນ "--delayed-insert" ບໍ່ໄດ້.
ເຮັດວຽກ. ທາງເລືອກອື່ນອາດຈະບໍ່ເຮັດວຽກ, ແຕ່ເຄື່ອງມືບໍ່ໄດ້ກວດເບິ່ງພວກມັນ, ດັ່ງນັ້ນ
ທ່ານຄວນທົດສອບການຈັດເກັບໃນກຸ່ມທົດສອບກ່ອນທີ່ຈະເກັບຢູ່ໃນກຸ່ມຕົວຈິງຂອງເຈົ້າ.

OUTPUT


ຖ້າທ່ານລະບຸ "--progress", ຜົນຜະລິດແມ່ນແຖວຫົວ, ບວກກັບຜົນໄດ້ຮັບຂອງສະຖານະພາບໃນໄລຍະຫ່າງ.
ແຕ່​ລະ​ແຖວ​ໃນ​ຜົນ​ຜະ​ລິດ​ສະ​ຖາ​ນະ​ການ​ລາຍ​ການ​ວັນ​ທີ​ແລະ​ເວ​ລາ​ປະ​ຈຸ​ບັນ​, ວິ​ນາ​ທີ​ຈໍາ​ນວນ​ວິ​ນາ​ທີ pt-
archiver ໄດ້ແລ່ນ, ແລະຈໍານວນແຖວທີ່ມັນຖືກເກັບໄວ້.

ຖ້າທ່ານລະບຸ "--statistics", "pt-archiver" ຜົນໄດ້ຮັບທີ່ໃຊ້ເວລາແລະຂໍ້ມູນອື່ນໆເພື່ອຊ່ວຍ
ທ່ານລະບຸວ່າສ່ວນໃດຂອງຂະບວນການຈັດເກັບຂອງເຈົ້າໃຊ້ເວລາຫຼາຍທີ່ສຸດ.

ຄວາມຜິດພາດການຈັດການ


pt-archiver ພະຍາຍາມຈັບສັນຍານແລະອອກຈາກ gracefully; ຕົວຢ່າງ, ຖ້າທ່ານສົ່ງມັນ
SIGTERM (Ctrl-C ໃນລະບົບ UNIX-ish), ມັນຈະຈັບສັນຍານ, ພິມຂໍ້ຄວາມກ່ຽວກັບ
ສັນຍານ, ແລະອອກຈາກປົກກະຕິ. ມັນຈະບໍ່ດໍາເນີນການ "--analyze" ຫຼື "--optimize",
ເພາະວ່າສິ່ງເຫຼົ່ານີ້ອາດຈະໃຊ້ເວລາດົນເພື່ອສໍາເລັດ. ມັນຈະແລ່ນລະຫັດອື່ນໆທັງຫມົດຕາມປົກກະຕິ,
ລວມທັງການໂທ after_finish() ໃນ plugins ໃດ (ເບິ່ງ "ການຂະຫຍາຍ").

ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ສັນຍານ, ຖ້າຖືກຈັບ, ຈະແຕກອອກຈາກວົງການເກັບຮັກສາຕົ້ນຕໍແລະຂ້າມ
ປັບ / ວິເຄາະ.

OPTIONS


ລະບຸຢ່າງໜ້ອຍໜຶ່ງໃນ "--dest", "--file", ຫຼື "--purge".

"--ignore" ແລະ "--replace" ແມ່ນສະເພາະເຊິ່ງກັນແລະກັນ.

"--txn-size" ແລະ "--commit-ແຕ່ລະ" ແມ່ນສະເພາະເຊິ່ງກັນແລະກັນ.

"--low-priority-insert" ແລະ "--delayed-insert" ແມ່ນສະເພາະເຊິ່ງກັນແລະກັນ.

"--share-lock" ແລະ "--for-update" ແມ່ນສະເພາະເຊິ່ງກັນແລະກັນ.

"--analyze" ແລະ "--optimize" ແມ່ນສະເພາະເຊິ່ງກັນແລະກັນ.

"--no-ascend" ແລະ "--no-delete" ແມ່ນສະເພາະເຊິ່ງກັນແລະກັນ.

ຄ່າ DSN ໃນ "--dest" ຄ່າເລີ່ມຕົ້ນເປັນຄ່າຈາກ "--source" ຖ້າ COPY ແມ່ນແລ້ວ.

-- ວິ​ເຄາະ​
ປະເພດ: string

ດໍາເນີນການຕາຕະລາງການວິເຄາະຫຼັງຈາກນັ້ນໃນ "--source" ແລະ/ຫຼື "--dest".

ແລ່ນຕາຕະລາງການວິເຄາະຫຼັງຈາກສໍາເລັດ. argument ເປັນ string arbitrary. ຖ້າ​ຫາກ​ວ່າ​ມັນ
ມີຕົວອັກສອນ 's', ແຫຼ່ງຈະຖືກວິເຄາະ. ຖ້າມັນມີ 'd', the
ຈຸດໝາຍປາຍທາງຈະຖືກວິເຄາະ. ທ່ານສາມາດລະບຸທັງສອງຫຼືທັງສອງ. ສໍາລັບຕົວຢ່າງ, ໄດ້
ຕໍ່​ໄປ​ນີ້​ຈະ​ວິ​ເຄາະ​ທັງ​ສອງ​:

--analyze=ds

ເບິ່ງhttp://dev.mysql.com/doc/en/analyze-table.html> ສໍາລັບລາຍລະອຽດກ່ຽວກັບຕາຕະລາງການວິເຄາະ.

--ascend-first
ຂຶ້ນພຽງແຕ່ຖັນທຳອິດຂອງດັດຊະນີ.

ຖ້າທ່ານຕ້ອງການໃຊ້ການເພີ່ມປະສິດທິພາບດັດສະນີ ascending (ເບິ່ງ "--no-ascend"), ແຕ່ບໍ່ເຮັດ.
ຕ້ອງການ incur overhead ຂອງ ascending ດັດຊະນີຫຼາຍຖັນຂະຫນາດໃຫຍ່, ທ່ານສາມາດນໍາໃຊ້ນີ້
ທາງເລືອກທີ່ຈະບອກ pt-archiver ໃຫ້ຂຶ້ນພຽງແຕ່ຖັນຊ້າຍສຸດຂອງດັດຊະນີ. ນີ້ສາມາດ
ສະຫນອງການເພີ່ມປະສິດທິພາບທີ່ສໍາຄັນຕໍ່ການບໍ່ຂຶ້ນດັດຊະນີທັງຫມົດ, ໃນຂະນະທີ່
ຫຼີກເວັ້ນການຄ່າໃຊ້ຈ່າຍຂອງ ascending ດັດຊະນີທັງຫມົດ.

ເບິ່ງ "ການຂະຫຍາຍ" ສໍາລັບການສົນທະນາຂອງວິທີການນີ້ພົວພັນກັບ plugins.

--ຖາມຜ່ານ
ເຕືອນລະຫັດຜ່ານເມື່ອເຊື່ອມຕໍ່ກັບ MySQL.

--buffer
Buffer output ກັບ "--file" ແລະ flush ໃນ commit.

ປິດໃຊ້ງານການຟອກອັດຕະໂນມັດໃສ່ "--file" ແລະ flushs "--file" ໃສ່ແຜ່ນສະເພາະເມື່ອມີທຸລະກຳ
ຄໍາຫມັ້ນສັນຍາ. ນີ້ໂດຍທົ່ວໄປຫມາຍຄວາມວ່າໄຟລ໌ຖືກສະກັດໂດຍລະບົບປະຕິບັດການ, ດັ່ງນັ້ນ
ອາດຈະມີການກະຕຸ້ນບາງຢ່າງໃຫ້ກັບແຜ່ນລະຫວ່າງ commits ເຊັ່ນກັນ. ຄ່າເລີ່ມຕົ້ນແມ່ນເພື່ອ
ລ້າງ "--file" ໃສ່ແຜ່ນຫຼັງຈາກທຸກໆແຖວ.

ອັນຕະລາຍແມ່ນວ່າອຸປະຕິເຫດອາດຈະເຮັດໃຫ້ຂໍ້ມູນສູນເສຍ.

ການເພີ່ມຂຶ້ນຂອງການປະຕິບັດທີ່ຂ້ອຍໄດ້ເຫັນຈາກການໃຊ້ "--buffer" ແມ່ນປະມານ 5 ຫາ 15 ສ່ວນຮ້ອຍ.
ໄລຍະເວລາຂອງທ່ານອາດຈະແຕກຕ່າງກັນ.

--ລຶບຫຼາຍ
ລົບແຕ່ລະ chunk ດ້ວຍຄໍາຖະແຫຼງດຽວ (ຫມາຍຄວາມວ່າ "--commit-ແຕ່ລະ").

ລຶບແຕ່ລະແຖວເປັນຊຸດດ້ວຍຄຳສັ່ງ "DELETE" ດຽວ. ຖະແຫຼງການ
ລຶບທຸກແຖວລະຫວ່າງແຖວທຳອິດ ແລະແຖວສຸດທ້າຍຂອງແຖວ, ລວມທັງ. ມັນຫມາຍຄວາມວ່າ
"--commit-ແຕ່ລະ", ເພາະວ່າມັນຈະເປັນຄວາມຄິດທີ່ບໍ່ດີທີ່ຈະ "INSERT" ແຖວຫນຶ່ງຕໍ່ເວລາແລະ.
ຄໍາຫມັ້ນສັນຍາໃຫ້ເຂົາເຈົ້າກ່ອນທີ່ຈະເປັນຈໍານວນຫຼາຍ "DELETE".

ວິທີປົກກະຕິແມ່ນການລຶບທຸກແຖວດ້ວຍລະຫັດຫຼັກຂອງມັນ. ການ​ລົບ​ຈໍາ​ນວນ​ຫຼາຍ​ອາດ​ຈະ​ເປັນ​
ໄວ​ຂຶ້ນ​ຫຼາຍ​. ພວກເຂົາເຈົ້າ ຍັງ ອາດຈະ ບໍ່ be ໄວກວ່າ ຖ້າເຈົ້າມີຂໍ້ “WHERE” ທີ່ຊັບຊ້ອນ.

ທາງເລືອກນີ້ defers ທັງຫມົດ "ລຶບ" ການປະມວນຜົນຈົນກ່ວາ chunk ຂອງແຖວ
ສໍາເລັດ. ຖ້າທ່ານມີ plugin ໃນແຫຼ່ງ, ວິທີການ "before_delete" ຂອງມັນຈະບໍ່ເປັນ
ເອີ້ນວ່າ. ແທນທີ່ຈະ, ວິທີການ "before_bulk_delete" ຂອງມັນຖືກເອີ້ນວ່າຕໍ່ມາ.

ຄໍາເຕືອນ: ຖ້າທ່ານມີ plugin ຢູ່ໃນແຫຼ່ງທີ່ບາງຄັ້ງບໍ່ໄດ້ກັບຄືນຄວາມຈິງຈາກ
"is_archivable()", ທ່ານຄວນໃຊ້ຕົວເລືອກນີ້ພຽງແຕ່ຖ້າທ່ານເຂົ້າໃຈສິ່ງທີ່ມັນເຮັດ. ຖ້າ
plugin ແນະນໍາ "pt-archiver" ບໍ່ໃຫ້ເກັບແຖວ, ມັນຈະຍັງຄົງຖືກລຶບໂດຍ
ລົບຫຼາຍ!

--[ບໍ່]ລຶບ-ຈຳກັດ
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ

ເພີ່ມ "--limit" ໃສ່ "--bulk-delete".

ນີ້ແມ່ນທາງເລືອກຂັ້ນສູງແລະທ່ານບໍ່ຄວນປິດການໃຊ້ງານມັນເວັ້ນເສຍແຕ່ວ່າທ່ານຮູ້ວ່າທ່ານແມ່ນຫຍັງ
ເຮັດແລະເປັນຫຍັງ! ໂດຍຄ່າເລີ່ມຕົ້ນ, "--bulk-delete" ຈະຕໍ່ທ້າຍປະໂຫຍກ "--limit" ໃສ່ເປັນຊຸດ.
ລຶບຄຳຖະແຫຼງ SQL. ໃນບາງກໍລະນີ, ຂໍ້ນີ້ສາມາດຖືກຍົກເລີກໂດຍການລະບຸ
"--no-bulk-delete-limit". "--limit" ຍັງຈະຕ້ອງຖືກລະບຸ.

--bulk-insert
ໃສ່ແຕ່ລະອັນດ້ວຍ LOAD DATA INFILE (ໝາຍເຖິງ "--bulk-delete" "--commit-each").

ໃສ່ແຕ່ລະແຖວດ້ວຍ "LOAD DATA LOCAL INFILE". ນີ້ອາດຈະໄວກວ່າຫຼາຍ
ໃສ່ແຖວຕໍ່ໆກັນດ້ວຍຄຳຖະແຫຼງ "INSERT". ມັນໄດ້ຖືກປະຕິບັດໂດຍການສ້າງ a
ໄຟລ໌ຊົ່ວຄາວສໍາລັບແຕ່ລະ chunk ຂອງແຖວ, ແລະຂຽນແຖວໃສ່ໄຟລ໌ນີ້ແທນທີ່ຈະເປັນ
ໃສ່ພວກມັນ. ເມື່ອ chunk ສໍາເລັດ, ມັນອັບໂຫລດແຖວ.

ເພື່ອປົກປ້ອງຄວາມປອດໄພຂອງຂໍ້ມູນຂອງທ່ານ, ທາງເລືອກນີ້ບັງຄັບໃຫ້ລຶບເປັນຈໍານວນຫຼາຍເພື່ອນໍາໃຊ້. ມັນ
ຈະບໍ່ປອດໄພທີ່ຈະລຶບແຕ່ລະແຖວຕາມທີ່ພົບເຫັນ, ກ່ອນທີ່ຈະໃສ່ແຖວໃສ່ໃນ
ຈຸດຫມາຍປາຍທາງທໍາອິດ. ການບັງຄັບໃຫ້ລຶບເປັນຈໍານວນຫຼາຍຮັບປະກັນວ່າການລຶບລໍຖ້າຈົນກ່ວາການລຶບ
ການແຊກແມ່ນສຳເລັດແລ້ວ.

ຕົວເລືອກ "--low-priority-insert", "--replace", ແລະ "--ignore" ເຮັດວຽກກັບສິ່ງນີ້.
ທາງເລືອກ, ແຕ່ "--delayed-insert" ບໍ່ແມ່ນ.

ຖ້າ "LOAD DATA LOCAL INFILE" ຖິ້ມຄວາມຜິດພາດໃນແຖວຂອງ "ຄໍາສັ່ງທີ່ໃຊ້ແລ້ວບໍ່ແມ່ນ.
ອະນຸຍາດໃຫ້ກັບສະບັບ MySQL ນີ້, ອ້າງອີງໃສ່ເອກະສານສໍາລັບທາງເລືອກ "L" DSN.

--ຊຸດຕົວອັກສອນ
ຮູບແບບສັ້ນ: -A; ປະເພດ: string

ຕັ້ງຕົວອັກສອນເລີ່ມຕົ້ນ. ຖ້າຄ່າແມ່ນ utf8, ຕັ້ງ binmode ຂອງ Perl ໃນ STDOUT ເປັນ utf8,
ຜ່ານຕົວເລືອກ mysql_enable_utf8 ໄປ DBD::mysql, ແລະແລ່ນ SET NAMES UTF8 ຫຼັງຈາກ.
ເຊື່ອມຕໍ່ກັບ MySQL. ຄ່າອື່ນໃດກຳນົດ binmode ໃນ STDOUT ໂດຍບໍ່ມີຊັ້ນ utf8,
ແລະດໍາເນີນການ SET NAMES ຫຼັງຈາກເຊື່ອມຕໍ່ກັບ MySQL.

ໃຫ້ສັງເກດວ່າພຽງແຕ່ charsets ທີ່ຮູ້ຈັກໂດຍ MySQL ໄດ້ຖືກຮັບຮູ້; ດັ່ງນັ້ນ, ສໍາລັບການຍົກຕົວຢ່າງ, "UTF8" ຈະ
ເຮັດວຽກ, ແຕ່ "UTF-8" ຈະບໍ່.

ເບິ່ງ "--[no]check-charset".

--[ບໍ່] check-charset
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ

ໃຫ້ແນ່ໃຈວ່າການເຊື່ອມຕໍ່ ແລະຊຸດຕົວອັກສອນຂອງຕາຕະລາງແມ່ນຄືກັນ. ການປິດການກວດສອບນີ້ອາດຈະ
ເຮັດ​ໃຫ້​ຂໍ້​ຄວາມ​ທີ່​ຈະ​ໄດ້​ຮັບ​ການ​ປ່ຽນ​ແປງ​ຜິດ​ພາດ​ຈາກ​ຕົວ​ອັກ​ສອນ​ທີ່​ກໍາ​ນົດ​ໄວ້​ກັບ​ຕົວ​ອັກ​ສອນ​ອື່ນ (ໂດຍ​ປົກ​ກະ​ຕິ​ແມ່ນ​ຈາກ​
utf8 ກັບ latin1) ເຊິ່ງອາດຈະເຮັດໃຫ້ການສູນເສຍຂໍ້ມູນຫຼື mojibake. ການປິດການກວດສອບນີ້ອາດຈະເປັນ
ເປັນປະໂຫຍດຫຼືມີຄວາມຈໍາເປັນໃນເວລາທີ່ການແປງຊຸດຕົວອັກສອນມີຈຸດປະສົງ.

--[ບໍ່]ກວດເບິ່ງຖັນ
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ

ໃຫ້ແນ່ໃຈວ່າ "--source" ແລະ "--dest" ມີຖັນດຽວກັນ.

ເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ; ເຮັດໃຫ້ pt-archiver ກວດເບິ່ງວ່າຕາຕະລາງແຫຼ່ງແລະປາຍທາງ
ມີຖັນດຽວກັນ. ມັນບໍ່ໄດ້ກວດສອບຄໍາສັ່ງຖັນ, ປະເພດຂໍ້ມູນ, ແລະອື່ນໆ. ມັນພຽງແຕ່
ກວດເບິ່ງວ່າຄໍລໍາທັງຫມົດໃນແຫຼ່ງມີຢູ່ໃນປາຍທາງແລະໃນທາງກັບກັນ. ຖ້າ
ມີຄວາມແຕກຕ່າງໃດໆ, pt-archiver ຈະອອກດ້ວຍຄວາມຜິດພາດ.

ເພື່ອປິດການກວດສອບນີ້, ໃຫ້ລະບຸ --no-check-columns.

--check-interval
ປະເພດ: ເວລາ; ຄ່າເລີ່ມຕົ້ນ: 1s

ຖ້າ "--check-slave-lag" ຖືກມອບໃຫ້, ນີ້ກໍານົດໄລຍະເວລາທີ່ເຄື່ອງມືຢຸດແຕ່ລະອັນ
ທີ່​ໃຊ້​ເວ​ລາ​ມັນ​ຄົ້ນ​ພົບ​ວ່າ​ຂ້າ​ໃຊ້​ແມ່ນ​ຊັກ​ຊ້າ​.
ການກວດສອບນີ້ຖືກປະຕິບັດທຸກໆ 100 ແຖວ.

--check-slave-lag
ປະເພດ: ຊ່ອຍແນ່; ເຮັດຊ້ຳໄດ້: ແມ່ນແລ້ວ

ຢຸດການຈັດເກັບໄວ້ຊົ່ວຄາວຈົນກວ່າວ່າ Slave lag ຂອງ DSN ທີ່ລະບຸແມ່ນໜ້ອຍກວ່າ "--max-lag". ນີ້
ທາງເລືອກສາມາດຖືກກໍານົດຫຼາຍຄັ້ງສໍາລັບການກວດສອບຫຼາຍກວ່າຫນຶ່ງສໍາລອງ.

--ຖັນ
ຮູບແບບສັ້ນ: -c; ປະເພດ: array

ລາຍຊື່ຖັນທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດເພື່ອຈັດເກັບເຂົ້າແຟ້ມ.

ລະບຸລາຍຊື່ຖັນທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດເພື່ອດຶງຂໍ້ມູນ, ຂຽນໃສ່ໄຟລ໌ ແລະແຊກໃສ່
ຕາຕະລາງປາຍທາງ. ຖ້າລະບຸ, pt-archiver ຈະບໍ່ສົນໃຈຖັນອື່ນໆເວັ້ນເສຍແຕ່ວ່າມັນ
ຕ້ອງການເພີ່ມພວກມັນໃສ່ຄໍາຖະແຫຼງການ "SELECT" ສໍາລັບການຕັ້ງຊັນຂຶ້ນດັດສະນີຫຼືລຶບແຖວ.
ມັນດຶງເອົາແລະໃຊ້ຖັນພິເສດເຫຼົ່ານີ້ພາຍໃນ, ແຕ່ບໍ່ໄດ້ຂຽນພວກມັນໃສ່
ໄຟລ໌ຫຼືໄປຫາຕາຕະລາງປາຍທາງ. ມັນ ບໍ່ ຜ່ານພວກມັນໄປຫາ plugins.

ເບິ່ງ "--primary-key-only".

--ຄໍາຫມັ້ນສັນຍາ-ແຕ່ລະຄົນ
ມອບແຕ່ລະຊຸດຂອງແຖວທີ່ດຶງມາ ແລະເກັບໄວ້ (ປິດການໃຊ້ງານ "--txn-size").

ສັນຍາການເຮັດທຸລະກໍາແລະ flushes "--file" ຫຼັງຈາກແຕ່ລະຊຸດຂອງແຖວໄດ້ຖືກເກັບໄວ້,
ກ່ອນທີ່ຈະດຶງຊຸດແຖວຕໍ່ໄປ, ແລະກ່ອນທີ່ຈະນອນຖ້າ "--sleep" ຖືກລະບຸ.
ປິດການໃຊ້ງານ "--txn-size"; ໃຊ້ "--limit" ເພື່ອຄວບຄຸມຂະຫນາດການເຮັດທຸລະກໍາດ້ວຍ
"-- ຄໍາຫມັ້ນສັນຍາແຕ່ລະຄົນ".

ຕົວເລືອກນີ້ມີປະໂຫຍດເປັນທາງລັດເພື່ອເຮັດໃຫ້ "--limit" ແລະ "--txn-size" ມູນຄ່າດຽວກັນ,
ແຕ່ສິ່ງທີ່ ສຳ ຄັນກວ່ານັ້ນມັນຫລີກລ້ຽງການເຮັດທຸລະ ກຳ ທີ່ເປີດໃນຂະນະທີ່ຊອກຫາເພີ່ມເຕີມ
ແຖວ. ຕົວຢ່າງ, ຈິນຕະນາການວ່າທ່ານກໍາລັງເກັບແຖວເກົ່າຈາກຈຸດເລີ່ມຕົ້ນຂອງຫຼາຍ
ຕາຕະລາງຂະຫນາດໃຫຍ່, ດ້ວຍ "--limit" 1000 ແລະ "--txn-size" 1000. ຫຼັງຈາກໄລຍະເວລາຂອງການຊອກຫາບາງ.
ແລະການຈັດເກັບ 1000 ແຖວຕໍ່ຄັ້ງ, pt-archiver ຊອກຫາ 999 ແຖວສຸດທ້າຍ ແລະບ່ອນເກັບມ້ຽນ
ພວກມັນ, ຈາກນັ້ນດຳເນີນການ SELECT ຕໍ່ໄປເພື່ອຊອກຫາແຖວເພີ່ມເຕີມ. ນີ້ສະແກນສ່ວນທີ່ເຫຼືອຂອງ
ຕາຕະລາງ, ແຕ່ບໍ່ເຄີຍຊອກຫາແຖວອີກຕໍ່ໄປ. ມັນໄດ້ເປີດການເຮັດທຸລະກໍາສໍາລັບເວລາດົນນານ
ທີ່ໃຊ້ເວລາ, ພຽງແຕ່ເພື່ອກໍານົດວ່າມັນແມ່ນສໍາເລັດແລ້ວ. ທ່ານສາມາດນໍາໃຊ້ "--commit-in" ເພື່ອຫຼີກເວັ້ນການ
ນີ້.

--config
ປະເພດ: Array

ອ່ານລາຍຊື່ໄຟລ໌ config ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດນີ້; ຖ້າລະບຸ, ນີ້ຈະຕ້ອງເປັນອັນທໍາອິດ
ທາງເລືອກໃນແຖວຄໍາສັ່ງ.

--ຖານຂໍ້ມູນ
ຮູບແບບສັ້ນ: -D; ປະເພດ: string

ເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນນີ້.

--ຊັກຊ້າ-ແຊກ
ເພີ່ມຕົວແກ້ໄຂ DELAYED ໃສ່ INSERT ຖະແຫຼງການ.

ເພີ່ມຕົວແກ້ໄຂ DELAYED ໃສ່ INSERT ຫຼື REPLACE ຖະແຫຼງການ. ເບິ່ງ
<http://dev.mysql.com/doc/en/insert.html> ສໍາລັບລາຍລະອຽດ.

--dest
ປະເພດ: DSN

DSN ລະບຸຕາຕະລາງທີ່ຈະເກັບໄວ້.

ລາຍການນີ້ລະບຸຕາຕະລາງທີ່ pt-archiver ຈະແຊກແຖວທີ່ເກັບໄວ້ຈາກ
"--ແຫຼ່ງ". ມັນໃຊ້ຮູບແບບການໂຕ້ຖຽງ key=val ດຽວກັນເປັນ "--source". ຫາຍສາບສູນຫຼາຍທີ່ສຸດ
ຄ່າເລີ່ມຕົ້ນເປັນຄ່າດຽວກັນກັບ "--source", ດັ່ງນັ້ນທ່ານບໍ່ຈໍາເປັນຕ້ອງເຮັດຊ້ໍາທາງເລືອກ
ທີ່ຄືກັນໃນ "--source" ແລະ "--dest". ໃຊ້ຕົວເລືອກ "--help" ເພື່ອເບິ່ງວ່າອັນໃດ
ຄ່າຖືກຄັດລອກຈາກ "--source".

ຄໍາເຕືອນ: ການນໍາໃຊ້ໄຟລ໌ທາງເລືອກໃນຕອນຕົ້ນ (F) ທາງເລືອກ DSN ທີ່ກໍານົດ socket ສໍາລັບ
"--source" ເຮັດໃຫ້ pt-archiver ເຊື່ອມຕໍ່ກັບ "--dest" ໂດຍໃຊ້ຊັອກເກັດນັ້ນເວັ້ນເສຍແຕ່ວ່າອັນອື່ນ.
socket ສໍາລັບ "--dest" ຖືກລະບຸ. ນີ້ຫມາຍຄວາມວ່າ pt-archiver ອາດຈະເຊື່ອມຕໍ່ບໍ່ຖືກຕ້ອງ
ກັບ "--source" ເມື່ອມັນເຊື່ອມຕໍ່ກັບ "--dest". ຍົກ​ຕົວ​ຢ່າງ:

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

ເມື່ອ pt-archiver ເຊື່ອມຕໍ່ກັບ "--dest", host2, ມັນຈະເຊື່ອມຕໍ່ຜ່ານ "--source",
host1, socket ກໍານົດໃນ host1.cnf.

-- ແລ່ນແຫ້ງ
ພິມແບບສອບຖາມແລະອອກໂດຍບໍ່ຕ້ອງເຮັດຫຍັງ.

ເຮັດໃຫ້ pt-archiver ອອກໄປຫຼັງຈາກການພິມຊື່ໄຟລ໌ແລະຄໍາສັ່ງ SQL ທີ່ມັນຈະໃຊ້.

--file
ປະເພດ: string

ໄຟລ໌ທີ່ຈະເກັບໄວ້, ກັບ DATE_FORMAT()- ຄ້າຍ​ຄື​ຮູບ​ແບບ​.

ຊື່ໄຟລ໌ທີ່ຈະຂຽນແຖວທີ່ເກັບໄວ້ໃນ. ຊຸດຍ່ອຍຂອງ MySQL DATE_FORMAT() ການຈັດຮູບແບບ
ລະ​ຫັດ​ແມ່ນ​ອະ​ນຸ​ຍາດ​ໃຫ້​ໃນ​ຊື່​ໄຟລ​໌​, ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

%d ມື້ຂອງເດືອນ, ຕົວເລກ (01..31)
%H ຊົ່ວໂມງ (00..23)
%i ນາທີ, ຕົວເລກ (00..59)
%m ເດືອນ, ຕົວເລກ (01..12)
%s ວິນາທີ (00..59)
%Y ປີ, ຕົວເລກ, ສີ່ຕົວເລກ

ທ່ານສາມາດນໍາໃຊ້ລະຫັດຮູບແບບເພີ່ມເຕີມດັ່ງຕໍ່ໄປນີ້:

%D ຊື່ຖານຂໍ້ມູນ
%t ຊື່ຕາຕະລາງ

ຕົວຢ່າງ:

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

ເນື້ອໃນຂອງໄຟລ໌ແມ່ນຢູ່ໃນຮູບແບບດຽວກັນທີ່ໃຊ້ໂດຍ SELECT INTO OUTFILE, ຕາມທີ່ບັນທຶກໄວ້
ໃນຄູ່ມື MySQL: ແຖວຖືກຢຸດໂດຍແຖວໃໝ່, ຖັນຖືກຢຸດໂດຍແຖບ, NULL
ຕົວ​ອັກ​ສອນ​ແມ່ນ​ຕົວ​ແທນ​ໂດຍ \N, ແລະ​ຕົວ​ອັກ​ສອນ​ພິ​ເສດ​ແມ່ນ​ຫນີ​ໂດຍ \. ນີ້ເຮັດໃຫ້
ທ່ານໂຫຼດໄຟລ໌ຄືນໃໝ່ດ້ວຍການຕັ້ງຄ່າເລີ່ມຕົ້ນຂອງ LOAD DATA INFILE.

ຖ້າທ່ານຕ້ອງການ header ຖັນຢູ່ເທິງສຸດຂອງໄຟລ໌, ເບິ່ງ "--header". ໄຟລ໌ແມ່ນອັດຕະໂນມັດ -
flushed ໂດຍຄ່າເລີ່ມຕົ້ນ; ເບິ່ງ "--buffer".

--ສໍາ​ລັບ​ການ​ປັບ​ປຸງ​
ເພີ່ມຕົວປັບປ່ຽນ FOR UPDATE ໃສ່ SELECT statements.

ສໍາລັບລາຍລະອຽດ, ເບິ່ງhttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

--ຫົວ
ພິມຫົວຖັນຢູ່ເທິງສຸດຂອງ "--file".

ຂຽນຊື່ຖັນເປັນແຖວທຳອິດໃນໄຟລ໌ທີ່ໃຫ້ໂດຍ "--file". ຖ້າໄຟລ໌
ມີຢູ່, ບໍ່ໄດ້ຂຽນສ່ວນຫົວ; ອັນນີ້ເຮັດໃຫ້ໄຟລ໌ສາມາດໂຫຼດໄດ້ດ້ວຍ LOAD DATA INFILE ໃນ
ກໍລະນີທີ່ທ່ານເພີ່ມຜົນຜະລິດເພີ່ມເຕີມໃສ່ມັນ.

- ຊ່ວຍ
ສະແດງການຊ່ວຍເຫຼືອ ແລະອອກ.

--high-priority-ເລືອກ
ເພີ່ມຕົວແກ້ໄຂ HIGH_PRIORITY ໃສ່ໃບລາຍງານ SELECT.

ເບິ່ງhttp://dev.mysql.com/doc/en/select.html> ສໍາລັບລາຍລະອຽດ.

-ເຈົ້າພາບ
ຮູບແບບສັ້ນ: -h; ປະເພດ: string

ເຊື່ອມຕໍ່ຫາເຈົ້າພາບ.

--ບໍ່ສົນໃຈ
ໃຊ້ IGNORE ສໍາລັບ INSERT ຖະແຫຼງການ.

ເຮັດໃຫ້ INSERTs ເຂົ້າໄປໃນ "--dest" ເປັນ INSERT IGNORE.

-- ຈຳກັດ
ປະເພດ: int; ຄ່າເລີ່ມຕົ້ນ: 1

ຈໍາ​ນວນ​ຂອງ​ແຖວ​ທີ່​ຈະ​ດຶງ​ຂໍ້​ມູນ​ແລະ​ເກັບ​ຕໍ່​ຄໍາ​ຖະ​ແຫຼງ​ການ​.

ຈໍາ​ກັດ​ຈໍາ​ນວນ​ຂອງ​ແຖວ​ທີ່​ໄດ້​ຮັບ​ໂດຍ​ຄໍາ​ສັ່ງ SELECT ທີ່​ດຶງ​ເອົາ​ແຖວ​ມາ​ຫາ
ຮວບຮວມ. ຄ່າເລີ່ມຕົ້ນແມ່ນໜຶ່ງແຖວ. ມັນອາດຈະມີປະສິດທິພາບຫຼາຍຂຶ້ນເພື່ອເພີ່ມຂີດຈໍາກັດ, ແຕ່ເປັນ
ລະ​ມັດ​ລະ​ວັງ​ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ກໍາ​ລັງ​ເກັບ sparsely​, skipping ຫຼາຍ​ແຖວ​ເກັດ​ທີ່​ຢູ່​; ນີ້ອາດຈະເປັນໄປໄດ້
ເຮັດໃຫ້ເກີດຄວາມຂັດແຍ້ງຫຼາຍຂຶ້ນກັບການສອບຖາມອື່ນໆ, ຂຶ້ນກັບເຄື່ອງຈັກການເກັບຮັກສາ, ການເຮັດທຸລະກໍາ
ລະດັບການໂດດດ່ຽວ, ແລະທາງເລືອກເຊັ່ນ "--for-update".

--ທ້ອງຖິ່ນ
ຢ່າຂຽນ OPTIMIZE ຫຼືວິເຄາະຄໍາຖາມໃສ່ binlog.

ເພີ່ມຕົວແກ້ໄຂ NO_WRITE_TO_BINLOG ໃສ່ ANALYZE ແລະ OPTIMIZE queries. ເບິ່ງ "-- ວິເຄາະ"
ສໍາລັບລາຍລະອຽດ.

--low-priority-ລຶບ
ເພີ່ມຕົວແກ້ໄຂ LOW_PRIORITY ໃສ່ DELETE ຖະແຫຼງການ.

ເບິ່ງhttp://dev.mysql.com/doc/en/delete.html> ສໍາລັບລາຍລະອຽດ.

--low-priority-insert
ເພີ່ມຕົວແກ້ໄຂ LOW_PRIORITY ໃສ່ INSERT ຫຼື REPLACE ຖະແຫຼງການ.

ເບິ່ງhttp://dev.mysql.com/doc/en/insert.html> ສໍາລັບລາຍລະອຽດ.

--max-flow-ctl
ປະເພດ: ລອຍ

ຄ້າຍຄືກັນກັບ --max-lag ແຕ່ສໍາລັບກຸ່ມ PXC. ກວດເບິ່ງກຸ່ມເວລາສະເລ່ຍທີ່ໃຊ້
ຢຸດຊົ່ວຄາວສໍາລັບ Flow Control ແລະເຮັດໃຫ້ເຄື່ອງມືຢຸດຊົ່ວຄາວຖ້າມັນເກີນອັດຕາສ່ວນທີ່ລະບຸ
ໃນທາງເລືອກ. ຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ມີການກວດສອບການຄວບຄຸມການໄຫຼ. ຕົວເລືອກນີ້ມີໃຫ້ສໍາລັບ PXC
ຮຸ່ນ 5.6 ຫຼືສູງກວ່າ.

--max-lag
ປະເພດ: ເວລາ; ຄ່າເລີ່ມຕົ້ນ: 1s

ຢຸດການຈັດເກັບໄວ້ຊົ່ວຄາວຖ້າຂ້າໃຊ້ທີ່ໃຫ້ໂດຍ "--check-slave-lag" ຊັກຊ້າ.

ຕົວເລືອກນີ້ເຮັດໃຫ້ pt-archiver ເບິ່ງສໍາລອງທຸກຄັ້ງທີ່ມັນກໍາລັງຈະດຶງຂໍ້ມູນ
ແຖວອື່ນ. ຖ້າຄວາມລ້າຊ້າຂອງທາດແມ່ນຫຼາຍກ່ວາມູນຄ່າທາງເລືອກ, ຫຼືຖ້າທາດ
ບໍ່ໄດ້ເຮັດວຽກ (ສະນັ້ນການຊັກຊ້າຂອງມັນແມ່ນ NULL), pt-table-checksum ນອນສໍາລັບ "--check-interval"
ວິນາທີແລະຫຼັງຈາກນັ້ນເບິ່ງ lag ອີກເທື່ອຫນຶ່ງ. ມັນ​ຊ້ຳ​ອີກ​ຈົນ​ຂ້າ​ໃຊ້​ຖືກ​ຈັບ​ໄດ້,
ຈາກນັ້ນສືບຕໍ່ດຶງຂໍ້ມູນ ແລະຈັດເກັບແຖວ.

ທາງເລືອກນີ້ອາດຈະລົບລ້າງຄວາມຕ້ອງການສໍາລັບ "--sleep" ຫຼື "--sleep-coef".

--ບໍ່ຂຶ້ນ
ຢ່າໃຊ້ການເພີ່ມປະສິດທິພາບດັດສະນີຕັ້ງຊັນຂຶ້ນ.

ການເພີ່ມປະສິດທິພາບດັດສະນີ ascending ເລີ່ມຕົ້ນເຮັດໃຫ້ "pt-archiver" ເພີ່ມປະສິດທິພາບຊ້ໍາກັນ
ຄໍາຖາມ "SELECT" ດັ່ງນັ້ນພວກເຂົາຊອກຫາຢູ່ໃນດັດຊະນີທີ່ຄໍາຖາມທີ່ຜ່ານມາສິ້ນສຸດລົງ, ຫຼັງຈາກນັ້ນສະແກນ
ຕາມມັນ, ແທນທີ່ຈະສະແກນຈາກຈຸດເລີ່ມຕົ້ນຂອງຕາຕະລາງທຸກໆຄັ້ງ. ນີ້​ແມ່ນ
ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນເພາະວ່າໂດຍທົ່ວໄປແລ້ວມັນເປັນຍຸດທະສາດທີ່ດີສໍາລັບການເຂົ້າເຖິງຊ້ໍາຊ້ອນ.

ດັດຊະນີຫຼາຍຖັນຂະໜາດໃຫຍ່ອາດເຮັດໃຫ້ຂໍ້ WHERE ມີຄວາມຊັບຊ້ອນພໍສົມຄວນ
ອັນນີ້ອາດມີປະສິດທິພາບໜ້ອຍລົງ. ພິຈາລະນາຕົວຢ່າງສີ່ຄໍລໍາ PRIMARY KEY
on (a, b, c, d). ຂໍ້ WHERE ເພື່ອເລີ່ມຕົ້ນບ່ອນທີ່ການສອບຖາມສຸດທ້າຍໄດ້ສິ້ນສຸດລົງດັ່ງນີ້:

ຢູ່ໃສ (a > ?)
ຫຼື (a = ? ແລະ b > ?)
ຫຼື (a = ? ແລະ b = ? AND c > ?)
ຫຼື (a = ? AND b = ? AND c = ? AND d >= ?)

ການຕື່ມຂໍ້ມູນໃສ່ຕົວຍຶດດ້ວຍຄ່າຈະໃຊ້ໜ່ວຍຄວາມຈຳ ແລະ CPU, ເພີ່ມການສັນຈອນໃນເຄືອຂ່າຍ ແລະ
parsing overhead, ແລະອາດຈະເຮັດໃຫ້ການສອບຖາມ harder ສໍາລັບ MySQL ທີ່ຈະເພີ່ມປະສິດທິພາບ. A ສີ່ຖັນ
ຄີບໍ່ແມ່ນເລື່ອງໃຫຍ່, ແຕ່ລະຫັດສິບຄໍລໍາທີ່ທຸກໆຄໍລໍາອະນຸຍາດໃຫ້ "NULL" ອາດ
be

ການຂຶ້ນດັດຊະນີອາດຈະບໍ່ຈໍາເປັນຖ້າຫາກວ່າທ່ານຮູ້ວ່າທ່ານກໍາລັງພຽງແຕ່ຖອນແຖວ
ຈາກຈຸດເລີ່ມຕົ້ນຂອງຕາຕະລາງໃນ chunks, ແຕ່ບໍ່ປ່ອຍໃຫ້ຂຸມໃດ, ສະນັ້ນເລີ່ມຕົ້ນທີ່
ການເລີ່ມຕົ້ນຂອງຕາຕະລາງແມ່ນຕົວຈິງແລ້ວເປັນສິ່ງທີ່ມີປະສິດທິພາບທີ່ສຸດທີ່ຈະເຮັດ.

ເບິ່ງ "--ascend-first". ເບິ່ງ "ການຂະຫຍາຍ" ສໍາລັບການສົນທະນາວ່າອັນນີ້ພົວພັນກັນແນວໃດ
ກັບ plugins.

-- ບໍ່ມີການລຶບ
ຢ່າລຶບແຖວທີ່ເກັບໄວ້ໃນແຟ້ມ.

ເຮັດໃຫ້ "pt-archiver" ບໍ່ລຶບແຖວຫຼັງຈາກປະມວນຜົນພວກມັນ. ອັນນີ້ບໍ່ອະນຸຍາດ
"--no-ascend", ເພາະວ່າການເຮັດໃຫ້ພວກເຂົາທັງສອງຈະເຮັດໃຫ້ເກີດການ loop ທີ່ບໍ່ມີຂອບເຂດ.

ຖ້າມີ plugin ຢູ່ໃນແຫຼ່ງ DSN, ວິທີການ "before_delete" ຂອງມັນຖືກເອີ້ນວ່າຢ່າງໃດກໍ່ຕາມ,
ເຖິງແມ່ນວ່າ "pt-archiver" ຈະບໍ່ດໍາເນີນການລຶບ. ເບິ່ງ "EXTENDING" ສໍາລັບການເພີ່ມເຕີມ
plugins

-- optimize
ປະເພດ: string

ດໍາເນີນການ OPTIMIZE TABLE ຫຼັງຈາກນັ້ນໃນ "--source" ແລະ/ຫຼື "--dest".

ດໍາເນີນການ OPTIMIZE TABLE ຫຼັງຈາກສໍາເລັດ. ເບິ່ງ "--analyze" ສໍາລັບ syntax ທາງເລືອກແລະ
<http://dev.mysql.com/doc/en/optimize-table.html> ສໍາລັບລາຍລະອຽດກ່ຽວກັບ OPTIMIZE TABLE.

-ລະຫັດຜ່ານ
ຮູບແບບສັ້ນ: -p; ປະເພດ: string

ລະຫັດຜ່ານທີ່ຈະໃຊ້ໃນເວລາເຊື່ອມຕໍ່. ຖ້າລະຫັດຜ່ານມີເຄື່ອງໝາຍຈຸດ, ພວກມັນຈະຕ້ອງຖືກຫລົບໜີ
ກັບ backslash: "ການສອບເສັງ, ple"

--pid
ປະເພດ: string

ສ້າງໄຟລ໌ PID ທີ່ໃຫ້. ເຄື່ອງມືຈະບໍ່ເລີ່ມຕົ້ນຖ້າໄຟລ໌ PID ມີຢູ່ແລ້ວແລະ
PID ທີ່ມັນມີຢູ່ແຕກຕ່າງຈາກ PID ໃນປັດຈຸບັນ. ຢ່າງໃດກໍຕາມ, ຖ້າໄຟລ໌ PID
ມີຢູ່ ແລະ PID ທີ່ມັນບັນຈຸບໍ່ໄດ້ເຮັດວຽກອີກຕໍ່ໄປ, ເຄື່ອງມືຈະຂຽນທັບ PID
ໄຟລ໌ທີ່ມີ PID ໃນປັດຈຸບັນ. ໄຟລ໌ PID ຈະຖືກລຶບອອກໂດຍອັດຕະໂນມັດເມື່ອເຄື່ອງມືອອກ.

--ປລັກອິນ
ປະເພດ: string

ຊື່ໂມດູນ Perl ເພື່ອໃຊ້ເປັນ plugin ທົ່ວໄປ.

ລະບຸຊື່ໂມດູນ Perl ຂອງ plugin ທີ່ມີຈຸດປະສົງທົ່ວໄປ. ມັນຖືກນໍາໃຊ້ໃນປັດຈຸບັນເທົ່ານັ້ນ
ສໍາລັບສະຖິຕິ (ເບິ່ງ "--statistics") ແລະຕ້ອງມີ "new()" ແລະ "ສະຖິຕິ()" ວິທີການ.

ວິທີການ "new( src = " $src, dst => $dst, opts => $o )> ວິທີການໄດ້ຮັບແຫຼ່ງແລະ
DSNs ຈຸດຫມາຍປາຍທາງ, ແລະການເຊື່ອມຕໍ່ຖານຂໍ້ມູນຂອງເຂົາເຈົ້າ, ຄືກັນກັບການເຊື່ອມຕໍ່ສະເພາະ
plugins ເຮັດ. ມັນຍັງໄດ້ຮັບວັດຖຸ OptionParser ($o) ສໍາລັບການເຂົ້າເຖິງເສັ້ນຄໍາສັ່ງ
ທາງເລືອກ (ຕົວຢ່າງ: "$o-"get('purge');>).

ວິທີການ "ສະຖິຕິ(\%stats, $time)" ໄດ້ຮັບ hashref ຂອງສະຖິຕິທີ່ເກັບກໍາໂດຍ
ວຽກເກັບມ້ຽນ, ແລະເວລາທີ່ວຽກທັງຫມົດເລີ່ມຕົ້ນ.

--ພອດ
ຮູບແບບສັ້ນ: -P; ປະເພດ: int

ໝາຍເລກພອດເພື່ອໃຊ້ສຳລັບການເຊື່ອມຕໍ່.

--primary-key-ເທົ່ານັ້ນ
ຖັນຫຼັກເທົ່ານັ້ນ.

ທາງລັດສຳລັບການລະບຸ "--columns" ກັບຖັນຫຼັກຫຼັກ. ນີ້ແມ່ນ
ປະສິດທິພາບຖ້າຫາກວ່າທ່ານພຽງແຕ່ຕ້ອງການທີ່ຈະລ້າງແຖວ; ມັນຫຼີກເວັ້ນການດຶງແຖວທັງຫມົດ, ເມື່ອ
ຕ້ອງການພຽງແຕ່ຖັນຫຼັກຕົ້ນຕໍສໍາລັບຄໍາຖະແຫຼງ "DELETE". ເບິ່ງ "--purge".

- ແມ່ຍິງ
ປະເພດ: int

ພິມຂໍ້ມູນຄວາມຄືບໜ້າທຸກແຖວ X.

ພິມເວລາປະຈຸບັນ, ເວລາຜ່ານໄປ, ແລະແຖວທີ່ເກັບໄວ້ທຸກ X ແຖວ.

-- ລ້າງ
ລ້າງແທນການເກັບ; ອະນຸຍາດໃຫ້ຍົກເວັ້ນ "--file" ແລະ "--dest".

ອະນຸຍາດໃຫ້ເກັບມ້ຽນໂດຍບໍ່ມີການໂຕ້ຖຽງ "--file" ຫຼື "--dest", ເຊິ່ງເປັນການລຶບລ້າງຢ່າງມີປະສິດທິພາບ.
ເນື່ອງຈາກແຖວຖືກລຶບພຽງແຕ່.

ຖ້າທ່ານຕ້ອງການລຶບແຖວ, ໃຫ້ພິຈາລະນາກໍານົດຖັນຫຼັກຂອງຕາຕະລາງ
ດ້ວຍ "--primary-key-only". ນີ້ຈະປ້ອງກັນບໍ່ໃຫ້ດຶງຄໍລໍາທັງຫມົດຈາກເຄື່ອງແມ່ຂ່າຍສໍາລັບການ
ບໍ່​ມີ​ເຫດ​ຜົນ.

--ລຶບດ່ວນ
ເພີ່ມຕົວແກ້ໄຂດ່ວນເພື່ອລຶບຖະແຫຼງການ.

ເບິ່ງhttp://dev.mysql.com/doc/en/delete.html> ສໍາລັບລາຍລະອຽດ. ດັ່ງທີ່ໄດ້ກ່າວໄວ້ໃນ
ເອກະສານ, ໃນບາງກໍລະນີມັນອາດຈະໄວກວ່າທີ່ຈະໃຊ້ DELETE QUICK ຕາມດ້ວຍ OPTIMIZE
ຕາຕະລາງ. ທ່ານສາມາດໃຊ້ "--optimize" ສໍາລັບການນີ້.

--ງຽບ
ຮູບແບບສັ້ນ: -q

ຢ່າພິມຜົນຜະລິດໃດໆ, ເຊັ່ນ: ສໍາລັບ "--statistics".

ສະກັດກັ້ນຜົນຜະລິດປົກກະຕິ, ລວມທັງຜົນຜະລິດຂອງ "--ສະຖິຕິ", ແຕ່ບໍ່ໄດ້ສະກັດກັ້ນ
ຜົນຜະລິດຈາກ "--why-quit".

--ປ່ຽນແທນ
ເຮັດໃຫ້ INSERTs ເຂົ້າໄປໃນ "--dest" ເພື່ອຂຽນເປັນ REPLACE.

-- ພະຍາຍາມໃໝ່
ປະເພດ: int; ຄ່າເລີ່ມຕົ້ນ: 1

ຈໍາ​ນວນ​ຂອງ​ການ​ທົດ​ລອງ​ຕໍ່​ການ​ຫມົດ​ເວ​ລາ​ຫຼື​ການ​ຢຸດ​ເຊົາ​ການ​.

ລະບຸຈໍານວນເວລາທີ່ pt-archiver ຄວນພະຍາຍາມອີກຄັ້ງເມື່ອມີການລັອກ InnoDB
ລໍຖ້າໝົດເວລາ ຫຼື deadlock. ເມື່ອການລອງຄືນໝົດແລ້ວ, pt-archiver ຈະອອກດ້ວຍ an
ຜິດພາດ.

ພິ​ຈາ​ລະ​ນາ​ຢ່າງ​ລະ​ອຽດ​ສິ່ງ​ທີ່​ທ່ານ​ຕ້ອງ​ການ​ທີ່​ຈະ​ເກີດ​ຂຶ້ນ​ໃນ​ເວ​ລາ​ທີ່​ທ່ານ​ກໍາ​ລັງ​ເກັບ​ລະ​ຫວ່າງ​ການ​ປະ​ສົມ​ຂອງ​
ເຄື່ອງຈັກເກັບຮັກສາທຸລະກໍາແລະບໍ່ທຸລະກໍາ. INSERT ກັບ "--dest" ແລະ
DELETE ຈາກ "--source" ຢູ່ໃນການເຊື່ອມຕໍ່ແຍກຕ່າງຫາກ, ດັ່ງນັ້ນພວກມັນບໍ່ໄດ້ຢູ່ໃນຕົວຈິງ
ເຂົ້າຮ່ວມໃນທຸລະກໍາດຽວກັນເຖິງແມ່ນວ່າພວກເຂົາຢູ່ໃນເຄື່ອງແມ່ຂ່າຍດຽວກັນ. ຢ່າງໃດກໍຕາມ, pt-
Archiver ປະຕິບັດການເຮັດທຸລະກໍາທີ່ແຈກຢາຍແບບງ່າຍດາຍໃນລະຫັດ, ດັ່ງນັ້ນ commits ແລະ rollbacks
ຄວນຈະເກີດຂຶ້ນຕາມທີ່ຕ້ອງການໃນທົ່ວທັງສອງເຊື່ອມຕໍ່.

ໃນເວລານີ້ຂ້າພະເຈົ້າບໍ່ໄດ້ຂຽນລະຫັດໃດໆເພື່ອຈັດການກັບຄວາມຜິດພາດທີ່ມີການເກັບຮັກສາການເຮັດທຸລະກໍາ
ເຄື່ອງຈັກນອກ ເໜືອ ຈາກ InnoDB. ຂໍຄຸນສົມບັດນັ້ນຖ້າທ່ານຕ້ອງການ.

--ເວລາແລ່ນ
ປະເພດ: ເວລາ

ເວລາແລ່ນກ່ອນອອກ.

ຄໍາຕໍ່ທ້າຍທາງເລືອກ s=seconds, m=minutes, h=hours, d=days; ຖ້າບໍ່ມີຄໍາຕໍ່ທ້າຍ, s ຖືກນໍາໃຊ້.

--[ບໍ່]ການເພີ່ມອັດຕະໂນມັດທີ່ປອດໄພ
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ

ຢ່າເກັບແຖວທີ່ມີສູງສຸດ AUTO_INCREMENT.

ເພີ່ມຂໍ້ຄວາມ WHERE ເພີ່ມເຕີມເພື່ອປ້ອງກັນບໍ່ໃຫ້ pt-archiver ຖອນແຖວໃໝ່ສຸດເມື່ອໃດ
ຂຶ້ນເປັນຖັນດຽວ AUTO_INCREMENT ກະແຈ. ອັນນີ້ປ້ອງກັນການ ນຳ ໃຊ້ຄືນ ໃໝ່
ຄ່າ AUTO_INCREMENT ຖ້າເຊີບເວີຣີສະຕາດ, ແລະຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ.

ຂໍ້ເພີ່ມເຕີມ WHERE ປະກອບມີຄ່າສູງສຸດຂອງຖັນເພີ່ມອັດຕະໂນມັດເປັນຂອງ
ການເລີ່ມຕົ້ນຂອງວຽກເກັບມ້ຽນ ຫຼືລຶບລ້າງ. ຖ້າແຖວໃຫມ່ຖືກໃສ່ໃນຂະນະທີ່ pt-archiver
ແມ່ນແລ່ນ, ມັນຈະບໍ່ເຫັນພວກມັນ.

-- ນາຍທະຫານ
ປະເພດ: ຊ່ອຍແນ່; ຄ່າເລີ່ມຕົ້ນ: /tmp/pt-archiver-sentinel

ອອກ ຖ້າໄຟລ໌ນີ້ມີຢູ່.

ການປະກົດຕົວຂອງໄຟລ໌ທີ່ລະບຸໄວ້ໂດຍ "--sentinel" ຈະເຮັດໃຫ້ pt-archiver ຢຸດ
ການເກັບແລະອອກ. ຄ່າເລີ່ມຕົ້ນແມ່ນ /tmp/pt-archiver-sentinel. ເຈົ້າອາດຈະພົບອັນນີ້
ມີປະໂຫຍດໃນການຢຸດວຽກ cron ຢ່າງສະຫງ່າງາມຖ້າຈໍາເປັນ. ເບິ່ງ "--stop".

--set-vars
ປະເພດ: Array

ກໍານົດຕົວແປ MySQL ໃນບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຄູ່ "variable=value".

ໂດຍຄ່າເລີ່ມຕົ້ນ, ເຄື່ອງມືກໍານົດ:

wait_timeout=10000

ຕົວແປທີ່ລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງ override ຄ່າເລີ່ມຕົ້ນເຫຼົ່ານີ້. ຍົກ​ຕົວ​ຢ່າງ,
ການລະບຸ "--set-vars wait_timeout=500" ລົບລ້າງຄ່າເລີ່ມຕົ້ນຂອງ 10000.

ເຄື່ອງ​ມື​ພິມ​ຄໍາ​ເຕືອນ​ແລະ​ສືບ​ຕໍ່​ຖ້າ​ຫາກ​ວ່າ​ຕົວ​ປ່ຽນ​ແປງ​ບໍ່​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ຕັ້ງ​ຄ່າ​.

--share-lock
ເພີ່ມຕົວແກ້ໄຂ LOCK IN SHARE MODE ໃສ່ SELECT statements.

ເບິ່ງhttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

--skip-foreign-key-checks
ປິດການກວດສອບກະແຈຕ່າງປະເທດດ້ວຍ SET FOREIGN_KEY_CHECKS=0.

-- ນອນ
ປະເພດ: int

ເວລານອນລະຫວ່າງການດຶງຂໍ້ມູນ.

ລະບຸໄລຍະເວລາທີ່ຈະນອນລະຫວ່າງຂໍ້ຄວາມ SELECT. ຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ໃຫ້ນອນຢູ່
ທັງໝົດ. ການເຮັດທຸລະກໍາບໍ່ໄດ້ສັນຍາໄວ້, ແລະໄຟລ໌ "--file" ຈະບໍ່ຖືກລ້າງ, ກ່ອນ
ນອນ. ເບິ່ງ "--txn-size" ເພື່ອຄວບຄຸມມັນ.

ຖ້າ "--commit-in" ຖືກລະບຸ, committing ແລະ flushing ເກີດຂຶ້ນກ່ອນທີ່ຈະນອນ.

--sleep-coef
ປະເພດ: ລອຍ

ຄິດໄລ່ "--sleep" ເປັນຄູນຂອງເວລາ SELECT ສຸດທ້າຍ.

ຖ້າຕົວເລືອກນີ້ຖືກລະບຸ, pt-archiver ຈະນອນສໍາລັບເວລາສອບຖາມຂອງສຸດທ້າຍ
SELECT ຄູນດ້ວຍຄ່າສໍາປະສິດທີ່ລະບຸ.

ນີ້ແມ່ນວິທີການທີ່ຊັບຊ້ອນກວ່າເລັກນ້ອຍໃນການຄວບຄຸມ SELECTs: ນອນແຕກຕ່າງກັນ
ໄລຍະເວລາລະຫວ່າງແຕ່ລະ SELECT, ຂຶ້ນກັບໄລຍະເວລາທີ່ SELECTs ໃຊ້ເວລາ.

--ຊັອກເກັດ
ຮູບແບບສັ້ນ: -S; ປະເພດ: string

ໄຟລ​໌ socket ໃຊ້​ສໍາ​ລັບ​ການ​ເຊື່ອມ​ຕໍ່​.

--ແຫຼ່ງ
ປະເພດ: DSN

DSN ລະບຸຕາຕະລາງທີ່ຈະເກັບຈາກ (ຕ້ອງການ). ການໂຕ້ຖຽງນີ້ແມ່ນ DSN. ເບິ່ງ
"ຕົວເລືອກ DSN" ສໍາລັບ syntax. ທາງເລືອກສ່ວນໃຫຍ່ຄວບຄຸມວິທີການ pt-archiver ເຊື່ອມຕໍ່ກັບ MySQL,
ແຕ່ມີບາງທາງເລືອກ DSN ຂະຫຍາຍຢູ່ໃນ syntax ຂອງເຄື່ອງມືນີ້. The D, t, ແລະ i
ຕົວເລືອກເລືອກຕາຕະລາງເພື່ອເກັບໄວ້:

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

ທາງເລືອກທີ່ລະບຸຖານຂໍ້ມູນເພື່ອຕັ້ງເປັນຄ່າເລີ່ມຕົ້ນຂອງການເຊື່ອມຕໍ່ກັບ USE. ຖ້າ
ທາງເລືອກ b ແມ່ນຄວາມຈິງ, ມັນປິດການເຂົ້າສູ່ລະບົບສອງດ້ວຍ SQL_LOG_BIN. ທາງເລືອກ m
ກໍານົດການປະຕິບັດທີ່ສາມາດສຽບໄດ້, ເຊິ່ງໂມດູນ Perl ພາຍນອກສາມາດສະຫນອງໄດ້. ເທົ່ານັ້ນ
ສ່ວນທີ່ຕ້ອງການແມ່ນຕາຕະລາງ; ພາກສ່ວນອື່ນໆອາດຈະຖືກອ່ານຈາກສະຖານທີ່ຕ່າງໆໃນ
ສະພາບແວດລ້ອມ (ເຊັ່ນ: ໄຟລ໌ທາງເລືອກ).

ສ່ວນ 'i' ສົມຄວນໄດ້ຮັບການກ່າວເຖິງພິເສດ. ນີ້ບອກ pt-archiver ທີ່ດັດສະນີມັນຄວນຈະ
ສະແກນເພື່ອເກັບໄວ້. ອັນນີ້ປາກົດຢູ່ໃນ FORCE INDEX ຫຼືໃຊ້ INDEX hint ໃນ SELECT
ຂໍ້ຄວາມທີ່ໃຊ້ເພື່ອດຶງເອົາແຖວທີ່ສາມາດເກັບໄວ້ໄດ້. ຖ້າທ່ານບໍ່ລະບຸຫຍັງ, pt-archiver
ຈະຄົ້ນພົບດັດຊະນີທີ່ດີໂດຍອັດຕະໂນມັດ, ຕ້ອງການ "ກຸນແຈຫຼັກ" ຖ້າມີອັນໃດອັນໜຶ່ງ. ໃນຂອງຂ້ອຍ
ປະສົບການນີ້ປົກກະຕິແລ້ວເຮັດວຽກໄດ້ດີ, ສະນັ້ນຫຼາຍທີ່ສຸດຂອງທີ່ໃຊ້ເວລາທ່ານອາດຈະພຽງແຕ່ omit ໄດ້
ສ່ວນ 'i'.

ດັດຊະນີຖືກນໍາໃຊ້ເພື່ອເພີ່ມປະສິດທິພາບການເຂົ້າຫາຕາຕະລາງຊ້ໍາ; pt-archiver ຈື່
ແຖວສຸດທ້າຍມັນດຶງມາຈາກແຕ່ລະຄໍາຖະແຫຼງທີ່ SELECT, ແລະໃຊ້ມັນເພື່ອສ້າງ WHERE
clause, ການນໍາໃຊ້ຄໍລໍາໃນດັດຊະນີທີ່ກໍານົດໄວ້, ທີ່ຄວນຈະອະນຸຍາດໃຫ້ MySQL ເລີ່ມຕົ້ນການ
SELECT ຕໍ່ໄປບ່ອນທີ່ອັນສຸດທ້າຍສິ້ນສຸດລົງ, ແທນທີ່ຈະມີທ່າແຮງທີ່ຈະສະແກນຈາກ
ການເລີ່ມຕົ້ນຂອງຕາຕະລາງດ້ວຍແຕ່ລະ SELECT ຕິດຕໍ່ກັນ. ຖ້າທ່ານກໍາລັງໃຊ້ພາຍນອກ
plugins, ກະລຸນາເບິ່ງ "EXTENDING" ສໍາລັບການສົນທະນາຂອງວິທີການທີ່ເຂົາເຈົ້າພົວພັນກັບ ascending
ດັດສະນີ.

ຕົວເລືອກ 'a' ແລະ 'b' ຊ່ວຍໃຫ້ທ່ານສາມາດຄວບຄຸມວິທີການຖະແຫຼງການໄຫຼຜ່ານທາງຖານສອງ
ບັນທຶກ. ຖ້າເຈົ້າລະບຸຕົວເລືອກ 'b', ການບັນທຶກຖານສອງຈະຖືກປິດການນຳໃຊ້ຕາມທີ່ລະບຸ
ການເຊື່ອມຕໍ່. ຖ້າທ່ານລະບຸທາງເລືອກ 'a', ການເຊື່ອມຕໍ່ຈະ "ໃຊ້" ທີ່ລະບຸ
ຖານຂໍ້ມູນ, ທີ່ທ່ານສາມາດນໍາໃຊ້ເພື່ອປ້ອງກັນບໍ່ໃຫ້ສໍາລອງປະຕິບັດເຫດການບັນທຶກຄູ່
ດ້ວຍຕົວເລືອກ "--replicate-ignore-db". ທັງສອງທາງເລືອກນີ້ສາມາດຖືກນໍາໃຊ້ເປັນທີ່ແຕກຕ່າງກັນ
ວິທີການເພື່ອບັນລຸເປົ້າຫມາຍດຽວກັນ: ຈັດເກັບຂໍ້ມູນອອກຈາກຕົ້ນສະບັບ, ແຕ່ປ່ອຍໃຫ້ມັນຢູ່ໃນ
ທາດ. ຕົວຢ່າງເຊັ່ນ, ທ່ານສາມາດດໍາເນີນວຽກການລ້າງຢູ່ໃນແມ່ບົດແລະປ້ອງກັນມັນຈາກ
ການ​ເກີດ​ຂຶ້ນ​ກັບ​ສໍາ​ລັບ​ການ​ນໍາ​ໃຊ້​ວິ​ທີ​ການ​ຂອງ​ທ່ານ​ເລືອກ​.

ຄໍາເຕືອນ: ການນໍາໃຊ້ໄຟລ໌ທາງເລືອກໃນຕອນຕົ້ນ (F) ທາງເລືອກ DSN ທີ່ກໍານົດ socket ສໍາລັບ
"--source" ເຮັດໃຫ້ pt-archiver ເຊື່ອມຕໍ່ກັບ "--dest" ໂດຍໃຊ້ຊັອກເກັດນັ້ນເວັ້ນເສຍແຕ່ວ່າອັນອື່ນ.
socket ສໍາລັບ "--dest" ຖືກລະບຸ. ນີ້ຫມາຍຄວາມວ່າ pt-archiver ອາດຈະເຊື່ອມຕໍ່ບໍ່ຖືກຕ້ອງ
ກັບ "--source" ເມື່ອມັນຫມາຍເຖິງການເຊື່ອມຕໍ່ກັບ "--dest". ຍົກ​ຕົວ​ຢ່າງ:

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

ເມື່ອ pt-archiver ເຊື່ອມຕໍ່ກັບ "--dest", host2, ມັນຈະເຊື່ອມຕໍ່ຜ່ານ "--source",
host1, socket ກໍານົດໃນ host1.cnf.

--ສະຖິຕິ
ເກັບກໍາແລະພິມສະຖິຕິເວລາ.

ເຮັດໃຫ້ pt-archiver ເກັບກໍາສະຖິຕິເວລາກ່ຽວກັບສິ່ງທີ່ມັນເຮັດ. ສະຖິຕິເຫຼົ່ານີ້
ສາມາດໃຊ້ໄດ້ກັບ plugin ທີ່ລະບຸໄວ້ໂດຍ "--plugin"

ເວັ້ນເສຍແຕ່ວ່າທ່ານລະບຸ "--quiet", "pt-archiver" ພິມສະຖິຕິເມື່ອມັນອອກ. ໄດ້
ສະ​ຖິ​ຕິ​ເບິ່ງ​ຄື​ນີ້​:

Started at 2008-07-18T07:18:53, ended at 2008-07-18T07:18:53
ທີ່ມາ: D=db,t=table
ເລືອກ 4
ແຊກ 4
ລົບ 4
ການນັບເວລາການປະຕິບັດ Pct
commit 10 0.1079 88.27
ເລືອກ 5 0.0047 3.87
ການລົບ 4 0.0028 2.29
ແຊກ 4 0.0028 2.28
ອື່ນໆ 0 0.0040 3.29

ສອງ (ຫຼືສາມ) ເສັ້ນທໍາອິດສະແດງໃຫ້ເຫັນເວລາແລະຕາຕະລາງແຫຼ່ງແລະປາຍທາງ. ໄດ້
ສາມແຖວຕໍ່ໄປສະແດງໃຫ້ເຫັນວ່າມີຈໍານວນແຖວທີ່ຖືກດຶງ, ໃສ່, ແລະລຶບ.

ເສັ້ນທີ່ຍັງເຫຼືອສະແດງໃຫ້ເຫັນການນັບ ແລະເວລາ. ຖັນແມ່ນການປະຕິບັດ, ຈໍານວນທັງຫມົດ
ຈໍາ​ນວນ​ຂອງ​ເວ​ລາ​ທີ່​ການ​ປະ​ຕິ​ບັດ​ແມ່ນ​ກໍາ​ນົດ​ເວ​ລາ​, ທີ່​ໃຊ້​ເວ​ລາ​ທັງ​ຫມົດ​ທີ່​ໃຊ້​ເວ​ລາ​, ແລະ​ສ່ວນ​ຮ້ອຍ​ຂອງ​
ເວລາແລ່ນທັງໝົດຂອງໂຄງການ. ແຖວຖືກຈັດຮຽງຕາມລຳດັບເວລາທັງໝົດຈາກໃຫຍ່ຫານ້ອຍ. ໄດ້
ແຖວສຸດທ້າຍແມ່ນເວລາທີ່ເຫຼືອບໍ່ໄດ້ລະບຸຢ່າງຈະແຈ້ງກ່ຽວກັບສິ່ງໃດ. ການກະທໍາຈະ
ແຕກຕ່າງກັນໄປຕາມຕົວເລືອກແຖວຄໍາສັ່ງ.

ຖ້າ "--why-quit" ຖືກມອບໃຫ້, ພຶດຕິກໍາຂອງມັນຖືກປ່ຽນແປງເລັກນ້ອຍ. ທາງ​ເລືອກ​ນີ້​ເຮັດ​ໃຫ້​ມັນ​
ພິມເຫດຜົນສໍາລັບການອອກເຖິງແມ່ນວ່າໃນເວລາທີ່ມັນເປັນພຽງແຕ່ເນື່ອງຈາກວ່າບໍ່ມີແຖວຕໍ່ໄປ.

ຕົວເລືອກນີ້ຕ້ອງການເວລາມາດຕະຖານ:: ໂມດູນ HiRes, ເຊິ່ງເປັນສ່ວນຫນຶ່ງຂອງ Perl ຫຼັກ
ການປ່ອຍ Perl ໃຫມ່ຢ່າງສົມເຫດສົມຜົນ.

--ຢຸດ
ຢຸດການແລ່ນຕົວຢ່າງໂດຍການສ້າງໄຟລ໌ sentinel.

ເຮັດໃຫ້ pt-archiver ສ້າງໄຟລ໌ sentinel ທີ່ລະບຸໂດຍ "--sentinel" ແລະອອກ.
ນີ້ຄວນຈະມີຜົນກະທົບຂອງການຢຸດເຊົາການແລ່ນຕົວຢ່າງທັງຫມົດທີ່ກໍາລັງເບິ່ງ
ໄຟລ໌ sentinel ດຽວກັນ.

--txn-size
ປະເພດ: int; ຄ່າເລີ່ມຕົ້ນ: 1

ຈຳນວນແຖວຕໍ່ທຸລະກຳ.

ລະບຸຂະຫນາດ, ໃນຈໍານວນແຖວ, ຂອງແຕ່ລະທຸລະກໍາ. ສູນປິດການເຮັດທຸລະກໍາ
ທັງໝົດ. ຫຼັງຈາກ pt-archiver ປະມວນຜົນຫຼາຍແຖວນີ້, ມັນເຮັດທັງສອງ
"--source" ແລະ "--dest" ຖ້າໃຫ້, ແລະ flushes ໄຟລ໌ທີ່ໃຫ້ໂດຍ "--file".

ພາລາມິເຕີນີ້ແມ່ນສໍາຄັນຕໍ່ການປະຕິບັດ. ຖ້າທ່ານກໍາລັງເກັບຈາກເຄື່ອງແມ່ຂ່າຍສົດ,
ຕົວຢ່າງທີ່ເຮັດວຽກ OLTP ຫນັກ, ທ່ານຈໍາເປັນຕ້ອງເລືອກຄວາມສົມດຸນທີ່ດີລະຫວ່າງ
ຂະຫນາດການເຮັດທຸລະກໍາແລະຄໍາຫມັ້ນສັນຍາ overhead. ການເຮັດທຸລະກໍາຂະຫນາດໃຫຍ່ສ້າງຄວາມເປັນໄປໄດ້ຂອງ
ການຂັດແຍ້ງແລະການຢຸດຊະງັກຫຼາຍຂື້ນ, ແຕ່ການເຮັດທຸລະກໍາທີ່ນ້ອຍກວ່າເຮັດໃຫ້ເກີດເລື້ອຍໆ
ຄໍາຫມັ້ນສັນຍາ overhead, ຊຶ່ງສາມາດມີຄວາມສໍາຄັນ. ເພື່ອໃຫ້ຄວາມຄິດ, ໃນຊຸດທົດສອບຂະຫນາດນ້ອຍ I
ເຮັດວຽກກັບໃນຂະນະທີ່ຂຽນ pt-archiver, ມູນຄ່າ 500 ເຮັດໃຫ້ເກີດການເກັບມ້ຽນໃຊ້ເວລາປະມານ 2.
ວິນາທີຕໍ່ 1000 ແຖວຢູ່ໃນຕົວຢ່າງ MySQL ທີ່ງຽບໆຢູ່ໃນເຄື່ອງ desktop ຂອງຂ້ອຍ,
ເກັບໄວ້ໃນ disk ແລະຕາຕະລາງອື່ນ. ການປິດການເຮັດທຸລະກໍາທີ່ມີຄ່າສູນ,
ເຊິ່ງເປີດໃຊ້ອັດຕະໂນມັດ, ຫຼຸດລົງປະສິດທິພາບເປັນ 38 ວິນາທີຕໍ່ພັນແຖວ.

ຖ້າທ່ານບໍ່ໄດ້ເກັບຈາກຫຼືໄປຫາເຄື່ອງຈັກເກັບຮັກສາການເຮັດທຸລະກໍາ, ທ່ານອາດຈະຕ້ອງການ
ປິດການເຮັດທຸລະກໍາເພື່ອໃຫ້ pt-archiver ບໍ່ພະຍາຍາມເຮັດ.

-ຜູ້ໃຊ້
ຮູບແບບສັ້ນ: -u; ປະເພດ: string

ຜູ້ໃຊ້ສໍາລັບການເຂົ້າສູ່ລະບົບຖ້າບໍ່ແມ່ນຜູ້ໃຊ້ປະຈຸບັນ.

- ການປ່ຽນແປງ
ສະແດງສະບັບແລະອອກ.

--[ບໍ່​ມີ​ການ​ກວດ​ສອບ​ສະ​ບັບ​
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ

ກວດເບິ່ງເວີຊັນຫຼ້າສຸດຂອງ Percona Toolkit, MySQL, ແລະໂຄງການອື່ນໆ.

ນີ້ແມ່ນມາດຕະຖານ "ກວດສອບການປັບປຸງອັດຕະໂນມັດ" ຄຸນນະສົມບັດ, ມີສອງເພີ່ມເຕີມ
ຄຸນ​ລັກ​ສະ​ນະ. ຫນ້າທໍາອິດ, ເຄື່ອງມືກວດສອບສະບັບຂອງບັນດາໂຄງການອື່ນໆໃນລະບົບທ້ອງຖິ່ນໃນ
ນອກ​ຈາກ​ສະ​ບັບ​ຂອງ​ຕົນ​ເອງ​. ຕົວຢ່າງ, ມັນກວດເບິ່ງເວີຊັນຂອງທຸກເຄື່ອງແມ່ຂ່າຍ MySQL
ມັນເຊື່ອມຕໍ່ກັບ, Perl, ແລະໂມດູນ Perl DBD::mysql. ອັນທີສອງ, ມັນກວດເບິ່ງແລະເຕືອນ
ກ່ຽວກັບສະບັບທີ່ມີບັນຫາທີ່ຮູ້ຈັກ. ຕົວຢ່າງ, MySQL 5.5.25 ມີ bug ທີ່ສໍາຄັນແລະ
ໄດ້ຖືກປ່ອຍອອກມາເມື່ອ 5.5.25a.

ການອັບເດດ ຫຼືບັນຫາທີ່ຮູ້ຈັກຈະຖືກພິມໃສ່ STDOUT ກ່ອນທີ່ເຄື່ອງມືຈະອອກມາປົກກະຕິ.
ຄຸນສົມບັດນີ້ບໍ່ຄວນລົບກວນການເຮັດວຽກປົກກະຕິຂອງເຄື່ອງມື.

ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ໄປຢ້ຽມຢາມ .

-- ບ່ອນໃດ
ປະເພດ: string

WHERE clause ເພື່ອຈຳກັດແຖວໃດທີ່ຈະເກັບໄວ້ (ຕ້ອງການ).

ລະບຸຂໍ້ຄວາມ WHERE ເພື່ອຈຳກັດວ່າແຖວໃດຖືກເກັບໄວ້. ບໍ່ລວມຄໍາສັບ
ຢູ່ໃສ. ທ່ານອາດຈະຈໍາເປັນຕ້ອງອ້າງເຖິງການໂຕ້ຖຽງເພື່ອປ້ອງກັນບໍ່ໃຫ້ແກະຂອງທ່ານຕີຄວາມມັນ.
ຍົກ​ຕົວ​ຢ່າງ:

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

ເພື່ອຄວາມປອດໄພ, "-- where" ແມ່ນຕ້ອງການ. ຖ້າທ່ານບໍ່ຕ້ອງການປະໂຫຍກ WHERE, ໃຫ້ໃຊ້
"-- where" 1=1.

--ເປັນຫຍັງ-ເຊົາ
ພິມເຫດຜົນສໍາລັບການອອກເວັ້ນເສຍແຕ່ວ່າແຖວໝົດ.

ເຮັດໃຫ້ pt-archiver ພິມຂໍ້ຄວາມຖ້າມັນອອກດ້ວຍເຫດຜົນອື່ນນອກເຫນືອຈາກການແລ່ນ
ອອກຈາກແຖວເພື່ອເກັບໄວ້. ນີ້ສາມາດເປັນປະໂຫຍດຖ້າທ່ານມີວຽກ cron ກັບ "--run-time"
ສໍາລັບການຍົກຕົວຢ່າງ, ແລະທ່ານຕ້ອງການໃຫ້ແນ່ໃຈວ່າ pt-archiver ແມ່ນສໍາເລັດກ່ອນ
ໝົດເວລາ.

ຖ້າ "-- ສະຖິຕິ" ຖືກມອບໃຫ້, ພຶດຕິກໍາຈະປ່ຽນແປງເລັກນ້ອຍ. ມັນຈະພິມ
ເຫດຜົນສໍາລັບການອອກເຖິງແມ່ນວ່າໃນເວລາທີ່ມັນເປັນພຽງແຕ່ເນື່ອງຈາກວ່າບໍ່ມີແຖວຕໍ່ໄປ.

ຜົນຜະລິດນີ້ຈະພິມອອກເຖິງແມ່ນວ່າ "--ງຽບ" ຈະຖືກມອບໃຫ້. ນັ້ນແມ່ນ, ທ່ານສາມາດໃສ່ "pt-archiver" ໃນ
ວຽກເຮັດງານທໍາ "cron" ແລະໄດ້ຮັບອີເມລ໌ຖ້າຫາກວ່າມີການອອກຜິດປົກກະຕິ.

DSN OPTIONS


ຕົວເລືອກ DSN ເຫຼົ່ານີ້ຖືກໃຊ້ເພື່ອສ້າງ DSN. ແຕ່ລະທາງເລືອກແມ່ນໃຫ້ຄື "option=value".
ຕົວເລືອກແມ່ນຕົວພິມນ້ອຍ, ດັ່ງນັ້ນ P ແລະ p ບໍ່ແມ່ນທາງເລືອກດຽວກັນ. ບໍ່ສາມາດມີ
ຊ່ອງຫວ່າງກ່ອນ ຫຼືຫຼັງ "=" ແລະຖ້າຄ່າມີຊ່ອງຫວ່າງມັນຈະຕ້ອງຖືກອ້າງອີງ.
ຕົວເລືອກ DSN ແມ່ນຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ. ເບິ່ງ manpage percona-toolkit ສໍາລັບລາຍລະອຽດເຕັມ.



ສຳເນົາ: ບໍ່

ຖານຂໍ້ມູນທີ່ຈະໃຊ້ໃນເວລາດໍາເນີນການສອບຖາມ.



dsn: charset; ສຳເນົາ: ແມ່ນແລ້ວ

ຕັ້ງຕົວອັກສອນເລີ່ມຕົ້ນ.

·ຂ

ສຳເນົາ: ບໍ່

ຖ້າຖືກຕ້ອງ, ປິດການໃຊ້ງານ binlog ດ້ວຍ SQL_LOG_BIN.

·ດ

dsn: ຖານຂໍ້ມູນ; ສຳເນົາ: ແມ່ນແລ້ວ

ຖານຂໍ້ມູນທີ່ປະກອບດ້ວຍຕາຕະລາງ.

· F

dsn: mysql_read_default_file; ສຳເນົາ: ແມ່ນແລ້ວ

ອ່ານພຽງແຕ່ຕົວເລືອກເລີ່ມຕົ້ນຈາກໄຟລ໌ທີ່ໃຫ້

h

dsn: ເຈົ້າພາບ; ສຳເນົາ: ແມ່ນແລ້ວ

ເຊື່ອມຕໍ່ຫາເຈົ້າພາບ.

· i

ສຳເນົາ: ແມ່ນແລ້ວ

ດັດຊະນີການນໍາໃຊ້.

·ລ

ສຳເນົາ: ແມ່ນແລ້ວ

ເປີດໃຊ້ LOAD DATA LOCAL INFILE.

ດ້ວຍເຫດຜົນບາງຢ່າງ, ຜູ້ຂາຍບາງຄົນລວບລວມ libmysql ໂດຍບໍ່ມີການ --enable-local-infile
ທາງເລືອກ, ເຊິ່ງປິດການຖະແຫຼງການ. ນີ້ສາມາດນໍາໄປສູ່ສະຖານະການ strange, ເຊັ່ນ:
ເຊີບເວີອະນຸຍາດໃຫ້ INFILE ທ້ອງຖິ່ນ, ແຕ່ລູກຄ້າຖິ້ມຂໍ້ຍົກເວັ້ນຖ້າມັນຖືກໃຊ້.

ຢ່າງໃດກໍຕາມ, ຕາບໃດທີ່ເຄື່ອງແມ່ຂ່າຍອະນຸຍາດໃຫ້ LOAD DATA, ລູກຄ້າສາມາດເປີດໃຊ້ມັນຄືນໃຫມ່; ເບິ່ງ
ແລະ
<http://search.cpan.org/~capttofu/DBD-mysql/lib/DBD/mysql.pm>. ທາງເລືອກນີ້ເຮັດ
ແທ້.

ເຖິງແມ່ນວ່າພວກເຮົາບໍ່ພົບກໍລະນີທີ່ການຫັນທາງເລືອກນີ້ນໍາໄປສູ່ຄວາມຜິດພາດຫຼືແຕກຕ່າງກັນ
ພຶດຕິກໍາ, ເພື່ອຢູ່ໃນດ້ານທີ່ປອດໄພ, ທາງເລືອກນີ້ບໍ່ໄດ້ຢູ່ໃນຄ່າເລີ່ມຕົ້ນ.

·ມ

ສຳເນົາ: ບໍ່

ຊື່ໂມດູນປລັກອິນ.

· ປ

dsn: ລະຫັດຜ່ານ; ສຳເນົາ: ແມ່ນແລ້ວ

ລະຫັດຜ່ານທີ່ຈະໃຊ້ໃນເວລາເຊື່ອມຕໍ່. ຖ້າລະຫັດຜ່ານມີເຄື່ອງໝາຍຈຸດ, ພວກມັນຈະຕ້ອງຖືກຫລົບໜີ
ກັບ backslash: "ການສອບເສັງ, ple"

·ປ

dsn: ພອດ; ສຳເນົາ: ແມ່ນແລ້ວ

ໝາຍເລກພອດເພື່ອໃຊ້ສຳລັບການເຊື່ອມຕໍ່.

·ສ

dsn: mysql_socket; ສຳເນົາ: ແມ່ນແລ້ວ

ໄຟລ​໌ socket ໃຊ້​ສໍາ​ລັບ​ການ​ເຊື່ອມ​ຕໍ່​.

· ທ

ສຳເນົາ: ແມ່ນແລ້ວ

ຕາຕະລາງທີ່ຈະເກັບຈາກ / ໄປ.

· ເຈົ້າ

dsn: ຜູ້ໃຊ້; ສຳເນົາ: ແມ່ນແລ້ວ

ຜູ້ໃຊ້ສໍາລັບການເຂົ້າສູ່ລະບົບຖ້າບໍ່ແມ່ນຜູ້ໃຊ້ປະຈຸບັນ.

ຂະຫຍາຍ


pt-archiver ສາມາດຂະຫຍາຍໄດ້ໂດຍການສຽບໂມດູນ Perl ພາຍນອກເພື່ອຈັດການກັບເຫດຜົນບາງຢ່າງແລະ / ຫຼື.
ການກະທໍາ. ທ່ານສາມາດກໍານົດໂມດູນສໍາລັບທັງ "--source" ແລະ "--dest", ດ້ວຍ 'm'
ສ່ວນ​ຫນຶ່ງ​ຂອງ​ສະ​ເພາະ​. ຍົກ​ຕົວ​ຢ່າງ:

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

ອັນນີ້ຈະເຮັດໃຫ້ pt-archiver ໂຫລດແພັກເກັດ My::Module1 ແລະ My::Module2, ສ້າງ.
ຕົວຢ່າງຂອງພວກມັນ, ແລະຫຼັງຈາກນັ້ນໂທຫາພວກເຂົາໃນລະຫວ່າງຂະບວນການເກັບຂໍ້ມູນ.

ນອກນັ້ນທ່ານຍັງສາມາດກໍານົດ plugin ທີ່ມີ "--plugin".

ໂມດູນຕ້ອງໃຫ້ການໂຕ້ຕອບນີ້:

new(dbh => $dbh, db => $db_name, tbl => $tbl_name)
ຕົວສ້າງຂອງ plugin ແມ່ນຜ່ານການອ້າງອີງເຖິງຕົວຈັດການຖານຂໍ້ມູນ, ຖານຂໍ້ມູນ
ຊື່, ແລະຊື່ຕາຕະລາງ. plugin ຖືກສ້າງຂຶ້ນພຽງແຕ່ຫຼັງຈາກ pt-archiver ເປີດ
ການເຊື່ອມຕໍ່, ແລະກ່ອນທີ່ມັນຈະກວດເບິ່ງຕາຕະລາງທີ່ໃຫ້ຢູ່ໃນການໂຕ້ຖຽງ. ນີ້ເຮັດໃຫ້
plugin ໂອກາດທີ່ຈະສ້າງແລະເພີ່ມຕາຕະລາງຊົ່ວຄາວ, ຫຼືເຮັດວຽກການຕິດຕັ້ງອື່ນໆ.

before_begin(cols => \@cols, allcols => \@allcols)
ວິທີການນີ້ເອີ້ນວ່າພຽງແຕ່ກ່ອນທີ່ pt-archiver ເລີ່ມຕົ້ນ iterating ຜ່ານແຖວແລະ
ເກັບຮັກສາພວກມັນໄວ້, ແຕ່ຫຼັງຈາກມັນເຮັດວຽກການຕິດຕັ້ງອື່ນໆທັງຫມົດ (ກວດເບິ່ງໂຄງສ້າງຕາຕະລາງ,
ການອອກແບບຄໍາຖາມ SQL, ແລະອື່ນໆ). ນີ້ແມ່ນເວລາດຽວທີ່ pt-archiver ບອກ plugin
ຊື່ຖັນສໍາລັບແຖວທີ່ມັນຈະຜ່ານ plugin ໃນຂະນະທີ່ເກັບໄວ້.

ການໂຕ້ຖຽງ "cols" ແມ່ນຖັນຊື່ຜູ້ໃຊ້ຮ້ອງຂໍໃຫ້ຖືກເກັບໄວ້, ບໍ່ວ່າຈະໂດຍ
ຄ່າເລີ່ມຕົ້ນຫຼືໂດຍຕົວເລືອກ "--columns". ການໂຕ້ຖຽງ "allcols" ແມ່ນບັນຊີລາຍຊື່ຂອງຖັນ
ຊື່ສໍາລັບທຸກໆແຖວ pt-archiver ຈະເອົາມາຈາກຕາຕະລາງແຫຼ່ງ. ມັນ​ອາດ​ຈະ​ໄດ້​ຮັບ​ຫຼາຍ​ກວ່າ​
ຖັນຫຼາຍກວ່າທີ່ຜູ້ໃຊ້ຮ້ອງຂໍ, ເພາະວ່າມັນຕ້ອງການບາງຄໍລໍາສໍາລັບການນໍາໃຊ້ຂອງຕົນເອງ. ເມື່ອ​ໃດ​
ຟັງຊັນ plugin ຕໍ່ມາໄດ້ຮັບແຖວ, ມັນແມ່ນແຖວເຕັມທີ່ປະກອບດ້ວຍສິ່ງພິເສດທັງຫມົດ
ຖັນ, ຖ້າມີ, ເພີ່ມໃສ່ທ້າຍ.

is_archivable(ແຖວ => \@row)
ວິທີການນີ້ຖືກເອີ້ນສໍາລັບແຕ່ລະແຖວເພື່ອກໍານົດວ່າມັນເປັນບ່ອນເກັບມ້ຽນ. ນີ້
ໃຊ້ກັບ "--source". ການໂຕ້ຖຽງແມ່ນແຖວຕົວມັນເອງ, ເປັນ arrayref. ຖ້າ
ວິທີການກັບຄືນຄວາມຈິງ, ແຖວຈະຖືກເກັບໄວ້; ຖ້າບໍ່ດັ່ງນັ້ນມັນຈະຖືກຂ້າມ.

ການຂ້າມແຖວເພີ່ມຄວາມສັບສົນສໍາລັບດັດສະນີທີ່ບໍ່ຊ້ໍາກັນ. ປົກກະຕິ pt-archiver ໃຊ້ a
WHERE clause ອອກແບບມາເພື່ອແນເປົ້າໃສ່ແຖວທີ່ປະມວນຜົນສຸດທ້າຍເປັນບ່ອນເລີ່ມການສະແກນ
ສໍາລັບຄໍາຖະແຫຼງການ SELECT ຕໍ່ໄປ. ຖ້າທ່ານໄດ້ຂ້າມແຖວໂດຍການສົ່ງຄືນ false ຈາກ
is_archivable(), pt-archiver ສາມາດເຂົ້າໄປໃນ loop infinite ເພາະວ່າແຖວຍັງຄົງຢູ່
ມີຢູ່. ດັ່ງນັ້ນ, ເມື່ອທ່ານລະບຸ plugin ສໍາລັບການໂຕ້ຖຽງ "--source", pt-archiver
ຈະປ່ຽນຂໍ້ WHERE ຂອງມັນເລັກນ້ອຍ. ແທນທີ່ຈະເລີ່ມຕົ້ນທີ່ "ໃຫຍ່ກວ່າຫຼືເທົ່າທຽມກັນ
ກັບ" ແຖວທີ່ປຸງແຕ່ງສຸດທ້າຍ, ມັນຈະເລີ່ມຕົ້ນ "ໃຫຍ່ກວ່າຢ່າງເຂັ້ມງວດ." ນີ້ຈະເຮັດວຽກ
ປັບຄ່າໃນດັດຊະນີທີ່ເປັນເອກະລັກເຊັ່ນ: ລະຫັດຫຼັກ, ແຕ່ມັນອາດຈະຂ້າມແຖວ (ປ່ອຍໃຫ້ຂຸມ) ເປີດ
ດັດຊະນີທີ່ບໍ່ເປັນເອກະລັກ ຫຼືເມື່ອຕັ້ງຊັນຂຶ້ນພຽງແຕ່ຖັນທໍາອິດຂອງດັດຊະນີ.

"pt-archiver" ຈະປ່ຽນປະໂຫຍກໃນລັກສະນະດຽວກັນຖ້າທ່ານລະບຸ "--no-delete",
ເນື່ອງຈາກວ່າອີກເທື່ອຫນຶ່ງ loop infinite ເປັນໄປໄດ້.

ຖ້າທ່ານລະບຸຕົວເລືອກ "--bulk-delete" ແລະສົ່ງຄືນ false ຈາກວິທີການນີ້,
"pt-archiver" ອາດຈະບໍ່ເຮັດສິ່ງທີ່ທ່ານຕ້ອງການ. ແຖວຈະບໍ່ຖືກເກັບໄວ້, ແຕ່ມັນຈະເປັນ
ຖືກລຶບແລ້ວ, ເນື່ອງຈາກການລຶບເປັນຊຸດເຮັດວຽກຢູ່ໃນຂອບເຂດຂອງແຖວ ແລະບໍ່ຮູ້ວ່າແຖວໃດ
ປລັກອິນຖືກເລືອກເພື່ອຮັກສາ.

ຖ້າທ່ານລະບຸຕົວເລືອກ "--bulk-insert", ມູນຄ່າກັບຄືນຂອງວິທີການນີ້ຈະມີອິດທິພົນ
ບໍ່ວ່າແຖວຈະຖືກຂຽນໃສ່ໄຟລ໌ຊົ່ວຄາວສໍາລັບການແຊກຫຼາຍ, ດັ່ງນັ້ນການແຊກຫຼາຍ
ຈະເຮັດວຽກຕາມທີ່ຄາດໄວ້. ແນວໃດກໍ່ຕາມ, ການໃສ່ຫຼາຍອັນຮຽກຮ້ອງໃຫ້ມີການລຶບຫຼາຍ.

before_delete(ແຖວ => \@row)
ວິທີການນີ້ຖືກເອີ້ນສໍາລັບແຕ່ລະແຖວກ່ອນທີ່ມັນຈະຖືກລຶບອອກ. ນີ້ໃຊ້ພຽງແຕ່ກັບ
"--ແຫຼ່ງ". ນີ້ແມ່ນສະຖານທີ່ທີ່ດີສໍາລັບທ່ານທີ່ຈະຈັດການກັບການເພິ່ງພາອາໄສ, ເຊັ່ນການລຶບ
ສິ່ງທີ່ຕ່າງປະເທດກົດໃສ່ແຖວທີ່ເຈົ້າກຳລັງຈະລຶບ. ທ່ານຍັງສາມາດໃຊ້
ນີ້ເພື່ອເກັບຄືນຕາຕະລາງທີ່ຂຶ້ນກັບທັງໝົດ.

ວິທີການ plugin ນີ້ຖືກເອີ້ນວ່າເຖິງແມ່ນວ່າ "--no-delete" ຈະຖືກມອບໃຫ້, ແຕ່ບໍ່ແມ່ນຖ້າ
"--bulk-delete" ແມ່ນໃຫ້.

before_bulk_delete(first_row => \@row, last_row => \@row)
ວິທີນີ້ເອີ້ນວ່າກ່ອນການລຶບເປັນຈຳນວນຫຼາຍຈະຖືກປະຕິບັດ. ມັນຄ້າຍຄືກັນກັບ
ວິທີການ "before_delete", ຍົກເວັ້ນການໂຕ້ຖຽງຂອງມັນແມ່ນແຖວທໍາອິດແລະສຸດທ້າຍຂອງໄລຍະ
ຈະຖືກລຶບ. ມັນຖືກເອີ້ນວ່າເຖິງແມ່ນວ່າ "--no-delete" ຈະຖືກມອບໃຫ້.

before_insert(row => \@row)
ວິທີການນີ້ຖືກເອີ້ນສໍາລັບແຕ່ລະແຖວກ່ອນທີ່ຈະໃສ່ມັນ. ນີ້ໃຊ້ພຽງແຕ່ກັບ
"--dest". ທ່ານ​ສາ​ມາດ​ນໍາ​ໃຊ້​ນີ້​ເພື່ອ​ແຊກ​ແຖວ​ເຂົ້າ​ໄປ​ໃນ​ຕາ​ຕະ​ລາງ​ຫຼາຍ​, ບາງ​ທີ​ອາດ​ມີ​
ຢູ່ໃນຂໍ້ທີ່ຊໍ້າກັນ ອັບເດດປຸ່ມເພື່ອສ້າງຕາຕະລາງສະຫຼຸບໃນຄັງຂໍ້ມູນ.

ວິທີການນີ້ບໍ່ໄດ້ຖືກເອີ້ນຖ້າ "--bulk-insert" ຖືກມອບໃຫ້.

before_bulk_insert(first_row => \@row, last_row => \@row, filename =>
bulk_insert_filename)
ວິທີການນີ້ເອີ້ນວ່າພຽງແຕ່ກ່ອນທີ່ຈະໃສ່ຫຼາຍຈະຖືກປະຕິບັດ. ມັນຄ້າຍຄືກັນກັບ
ວິທີການ "before_insert", ຍົກເວັ້ນການໂຕ້ຖຽງຂອງມັນແມ່ນແຖວທໍາອິດແລະສຸດທ້າຍຂອງໄລຍະ
ທີ່ຈະຖືກລຶບອອກ.

custom_sth(ແຖວ => \@row, sql => $sql)
ວິທີການນີ້ເອີ້ນວ່າພຽງແຕ່ກ່ອນທີ່ຈະໃສ່ແຖວ, ແຕ່ຫຼັງຈາກ ".before_insert()". ມັນ
ອະນຸຍາດໃຫ້ປລັກອິນເພື່ອລະບຸຄໍາຖະແຫຼງ "INSERT" ທີ່ແຕກຕ່າງກັນຖ້າຕ້ອງການ. ກັບຄືນ
ຄ່າ (ຖ້າມີ) ຄວນເປັນຕົວຈັດການຄຳຖະແຫຼງ DBI. ພາລາມິເຕີ "sql" ແມ່ນຂໍ້ຄວາມ SQL
ໃຊ້ເພື່ອກະກຽມຄໍາສັ່ງ "INSERT" ເລີ່ມຕົ້ນ. ວິທີການນີ້ບໍ່ໄດ້ເອີ້ນວ່າຖ້າຫາກວ່າທ່ານ
ລະບຸ "--bulk-insert".

ຖ້າບໍ່ມີຄ່າຖືກສົ່ງຄືນ, ຕົວຈັດການຖະແຫຼງການ "INSERT" ເລີ່ມຕົ້ນຖືກໃຊ້.

ວິທີການນີ້ໃຊ້ກັບ plugin ທີ່ລະບຸໄວ້ສໍາລັບ "--dest", ດັ່ງນັ້ນຖ້າ plugin ຂອງເຈົ້າບໍ່ແມ່ນ
ເຮັດສິ່ງທີ່ທ່ານຄາດຫວັງ, ກວດເບິ່ງວ່າທ່ານໄດ້ກໍານົດມັນສໍາລັບຈຸດຫມາຍປາຍທາງແລະບໍ່ແມ່ນ
ແຫຼ່ງ.

custom_sth_bulk(first_row => \@row, last_row => \@row, sql => $sql, filename =>
$bulk_insert_filename)
ຖ້າທ່ານໄດ້ລະບຸ "--bulk-insert", ວິທີການນີ້ເອີ້ນວ່າກ່ອນ bulk
ໃສ່, ແຕ່ຫຼັງຈາກ "before_bulk_insert()", ແລະການໂຕ້ຖຽງແມ່ນແຕກຕ່າງກັນ.

ຄ່າຕອບແທນຂອງວິທີການນີ້ແມ່ນຄ້າຍຄືກັນກັບ "custom_sth()"ວິທີການ.

after_finish()
ວິທີການນີ້ເອີ້ນວ່າຫຼັງຈາກ pt-archiver ອອກຈາກ loop archiving, commits ຖານຂໍ້ມູນທັງຫມົດ
handles, ປິດ "--file", ແລະພິມສະຖິຕິສຸດທ້າຍ, ແຕ່ກ່ອນທີ່ຈະດໍາເນີນການ pt-archiver
ວິເຄາະ ຫຼື ປັບແຕ່ງ (ເບິ່ງ "--analyze" ແລະ "--optimize").

ຖ້າທ່ານລະບຸ plugin ສໍາລັບທັງ "--source" ແລະ "--dest", pt-archiver constructs, ໂທຫາ.
before_begin(), ແລະໂທ after_finish() ໃນສອງ plugins ໃນຄໍາສັ່ງ "--source",
"--dest".

pt-archiver ສົມມຸດວ່າມັນຄວບຄຸມການເຮັດທຸລະກໍາ, ແລະ plugin ຈະບໍ່ເຮັດຫຼືມ້ວນ.
ກັບຄືນຕົວຈັດການຖານຂໍ້ມູນ. ການຈັດການຖານຂໍ້ມູນທີ່ສົ່ງກັບຕົວສ້າງ plugin ຂອງແມ່ນ
ການຈັດການດຽວກັນ pt-archiver ໃຊ້ຕົວມັນເອງ. ຈົ່ງຈື່ໄວ້ວ່າ "--source" ແລະ "--dest" ແມ່ນແຍກຕ່າງຫາກ
ມືຈັບ.

ໂມດູນຕົວຢ່າງອາດຈະເບິ່ງຄືວ່ານີ້:

ຊຸດຂອງຂ້ອຍ::ໂມດູນ;

ຍ່ອຍໃຫມ່ {
ຂອງຂ້ອຍ ( $class, %args ) = @_;
ສົ່ງຄືນພອນ(\%args, $class);
}

sub before_begin {
ຂອງຂ້ອຍ ($self, %args ) = @_;
# ບັນທຶກຊື່ຖັນໄວ້ພາຍຫຼັງ
$self->{cols} = $args{cols};
}

sub is_archivable {
ຂອງຂ້ອຍ ($self, %args ) = @_;
# ເຮັດບາງເຫດຜົນຂັ້ນສູງດ້ວຍ $args{row}
return 1
}

sub before_delete {} # ບໍ່ເຮັດຫຍັງ
sub before_insert {} # ບໍ່ເຮັດຫຍັງ
sub custom_sth {} # ບໍ່ປະຕິບັດ
sub after_finish {} # ບໍ່ເຮັດຫຍັງເລີຍ

1;

ENVIRONMENT


ຕົວແປສະພາບແວດລ້ອມ "PTDEBUG" ເປີດໃຊ້ຜົນການແກ້ບັນຫາ verbose ໄປຫາ STDERR. ເພື່ອເປີດໃຊ້ງານ
debugging ແລະເກັບກໍາຜົນຜະລິດທັງຫມົດໄປຍັງໄຟລ໌, ດໍາເນີນການເຄື່ອງມືເຊັ່ນ:

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

ຈົ່ງລະວັງ: ການດີບັ໊ກຜົນອອກແມ່ນ voluminous ແລະສາມາດສ້າງຜົນຜະລິດຫຼາຍ megabytes.

SYSTEM ສິ່ງທີ່ຕ້ອງມີ


ທ່ານຕ້ອງການ Perl, DBI, DBD::mysql, ແລະບາງແພັກເກັດຫຼັກທີ່ຄວນຈະຖືກຕິດຕັ້ງຢູ່ໃນໃດກໍ່ຕາມ.
ສະບັບໃຫມ່ທີ່ສົມເຫດສົມຜົນຂອງ Perl.

ໃຊ້ pt-archiverp ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

  • 1
    DivKit
    DivKit
    DivKit ເປັນແຫຼ່ງເປີດ Server-Driven
    ໂຄງຮ່າງການ UI (SDUI). ມັນອະນຸຍາດໃຫ້ທ່ານ
    ເປີດຕົວການອັບເດດທີ່ມາຈາກເຊີບເວີເພື່ອ
    ສະ​ບັບ app ທີ່​ແຕກ​ຕ່າງ​ກັນ​. ນອກຈາກນີ້, ມັນສາມາດເປັນ
    ໃຊ້ເພື່ອ...
    ດາວໂຫລດ DivKit
  • 2
    ຕົວປ່ຽນຍ່ອຍ
    ຕົວປ່ຽນຍ່ອຍ
    ຜົນປະໂຫຍດໃນການແປງລະຫວ່າງຕ່າງໆ
    ຮູບແບບການສະຫມັກ. ຜູ້ໃຊ້ Shadowrocket
    ຄວນໃຊ້ ss, ssr ຫຼື v2ray ເປັນເປົ້າໝາຍ.
    ທ່ານສາມາດເພີ່ມ &remark= ໃສ່
    Telegram-like HT...
    ດາວໂຫລດຕົວແປງສັນຍານຍ່ອຍ
  • 3
    ຊັກ
    ຊັກ
    SWASH ແມ່ນຕົວເລກທີ່ມີຈຸດປະສົງທົ່ວໄປ
    ເຄື່ອງ​ມື​ສໍາ​ລັບ​ການ​ຈໍາ​ລອງ​ບໍ່​ສະ​ຫມໍ່າ​ສະ​ເຫມີ​,
    ບໍ່ hydrostatic, ບໍ່ມີພື້ນຜິວ,
    ປະກົດການໄຫຼວຽນ ແລະການຂົນສົ່ງ
    ໃນ​ນ​້​ໍ​າ coastal ເປັນ ...
    ດາວໂຫລດ SWASH
  • 4
    VBA-M (ເກັບໄວ້ - ຕອນນີ້ຢູ່ໃນ Github)
    VBA-M (ເກັບໄວ້ - ຕອນນີ້ຢູ່ໃນ Github)
    ໂຄງການໄດ້ຍ້າຍໄປ
    https://github.com/visualboyadvance-m/visualboyadvance-m
    ຄຸນ​ລັກ​ສະ​ນະ: Cheat creationsave statesmulti
    ລະບົບ, ສະຫນັບສະຫນູນ gba, gbc, gb, sgb,
    sgb2Tu...
    ດາວໂຫລດ VBA-M (ເກັບໄວ້ - ຕອນນີ້ຢູ່ໃນ Github)
  • 5
    Stacer
    Stacer
    Linux System Optimizer ແລະການຕິດຕາມ
    Github Repository:
    https://github.com/oguzhaninan/Stacer.
    ຜູ້ຊົມ: ຜູ້ໃຊ້ສຸດທ້າຍ/ເດັສທັອບ. ຜູ້ໃຊ້
    ການໂຕ້ຕອບ: Qt. ການຂຽນໂປລແກລມ La...
    ດາວໂຫລດ Stacer
  • 6
    ໝາກກ້ຽງ
    ໝາກກ້ຽງ
    Fork ຂອງ TeamWinRecoveryProject(TWRP)
    ມີຫນ້າທີ່ເພີ່ມເຕີມຈໍານວນຫຼາຍ, ການອອກແບບໃຫມ່
    ແລະຄຸນສົມບັດເພີ່ມເຕີມ: ຮອງຮັບ Treble ແລະ
    ROMs ທີ່ບໍ່ແມ່ນ Treble ໃໝ່ຫຼ້າສຸດ Oreo kernel,
    ສ້າງ...
    ດາວໂຫລດ OrangeFox
  • ເພີ່ມເຕີມ »

Linux ຄຳ ສັ່ງ

  • 1
    aa-clickhook
    aa-clickhook
    aa-clickhook - click system hook for
    AppArmor DESCRIPTION: ເມື່ອຄລິກ
    ຊຸດໄດ້ຖືກຕິດຕັ້ງ, ຄລິກຈະດໍາເນີນການ
    ລະບົບແລະ hooks ຜູ້ໃຊ້. ຄລິກ
    ລະບົບ AppArmor h...
    ດໍາເນີນການ aa-clickhook
  • 2
    aa-clickquery
    aa-clickquery
    aa-clickquery - ໂຄງການສໍາລັບການສອບຖາມ
    click-apparmor DESCRIPTION: ໂຄງການນີ້
    ຖືກນໍາໃຊ້ເພື່ອສອບຖາມ click-apparmor ສໍາລັບ
    ຂໍ້ມູນ. ການນໍາໃຊ້: aa-clickquery
    --click-fra...
    ດໍາເນີນການ aa-clickquery
  • 3
    cqrlog
    cqrlog
    CQRLOG - ໂຄງການບັນທຶກຂັ້ນສູງສໍາລັບ
    ຄໍາອະທິບາຍຕົວປະຕິບັດການ hamradio: CQRLOG
    ເປັນເຄື່ອງຕັດໄມ້ວິທະຍຸ ham ແບບພິເສດໂດຍອີງໃສ່
    ຖານຂໍ້ມູນ MySQL. ສະຫນອງການຄວບຄຸມວິທະຍຸ
    ບາ...
    ແລ່ນ cqrlog
  • 4
    cramfsswap
    cramfsswap
    cramfsswap - swap endianess of a cram
    ລະບົບໄຟລ໌ (cramfs) ...
    ແລ່ນ cramfsswap
  • 5
    FvwmEvent
    FvwmEvent
    FvwmEvent - ໂມດູນເຫດການ fvwm ...
    ແລ່ນ FvwmEvent
  • 6
    FvwmForm
    FvwmForm
    FvwmForm - ໂມດູນແບບຟອມການປ້ອນຂໍ້ມູນສໍາລັບ Fvwm ...
    ແລ່ນ FvwmForm
  • ເພີ່ມເຕີມ »

Ad