ນີ້ແມ່ນຄໍາສັ່ງ pt-config-diffp ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
pt-config-diff - Diff ໄຟລ໌ການຕັ້ງຄ່າ MySQL ແລະຕົວແປຂອງເຄື່ອງແມ່ຂ່າຍ.
ສະຫຼຸບສັງລວມ
ການນໍາໃຊ້: pt-config-diff [ຕົວເລືອກ] CONFIG CONFIG [CONFIG...]
pt-config-diff diffs ໄຟລ໌ການຕັ້ງຄ່າ MySQL ແລະຕົວແປຂອງເຄື່ອງແມ່ຂ່າຍ. CONFIG ສາມາດເປັນ
ຊື່ໄຟລ໌ ຫຼື DSN. ຢ່າງໜ້ອຍຕ້ອງມີແຫຼ່ງ CONFIG ສອງອັນ. ເຊັ່ນດຽວກັນກັບຄວາມແຕກຕ່າງມາດຕະຖານ Unix,
ບໍ່ມີຜົນຜະລິດຖ້າບໍ່ມີຄວາມແຕກຕ່າງ.
Diff host1 config ຈາກ SHOW VARIABLES ກັບ host2:
pt-config-diff h=host1 h=host2
Diff config ຈາກພາກສ່ວນ [mysqld] ໃນ my.cnf ຕໍ່ກັບ host1 config:
pt-config-diff /etc/my.cnf h=host1
ແຍກສ່ວນ [mysqld] ຂອງສອງໄຟລ໌ທາງເລືອກ:
pt-config-diff /etc/my-small.cnf /etc/my-large.cnf
RISKS
Percona Toolkit ແມ່ນຜູ້ໃຫຍ່, ພິສູດໃນໂລກທີ່ແທ້ຈິງ, ແລະທົດສອບໄດ້ດີ, ແຕ່ຖານຂໍ້ມູນທັງຫມົດ
ເຄື່ອງມືສາມາດສ້າງຄວາມສ່ຽງຕໍ່ລະບົບແລະເຄື່ອງແມ່ຂ່າຍຂອງຖານຂໍ້ມູນ. ກ່ອນທີ່ຈະໃຊ້ເຄື່ອງມືນີ້,
ກະລຸນາ:
· ອ່ານເອກະສານຂອງເຄື່ອງມື
·ທົບທວນເຄື່ອງມືທີ່ຮູ້ຈັກ "BUGS"
· ທົດສອບເຄື່ອງມືໃນເຊີບເວີທີ່ບໍ່ແມ່ນການຜະລິດ
·ສໍາຮອງເຄື່ອງແມ່ຂ່າຍການຜະລິດຂອງທ່ານແລະກວດສອບການສໍາຮອງຂໍ້ມູນ
ລາຍລະອຽດ
pt-config-diff diffs ການຕັ້ງຄ່າ MySQL ໂດຍການກວດສອບຄ່າຂອງລະບົບເຊີຟເວີ
ຕົວແປຈາກສອງຫຼືຫຼາຍກວ່າແຫຼ່ງ CONFIG ທີ່ລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງ. ແຫຼ່ງ CONFIG
ສາມາດເປັນ DSN ຫຼືຊື່ໄຟລ໌ທີ່ມີຜົນຜະລິດຂອງ "mysqld --help --verbose",
"my_print_defaults", "SHOW VARIABLES", ຫຼືໄຟລ໌ທາງເລືອກ (ເຊັ່ນ: my.cnf).
ສໍາລັບແຕ່ລະ DSN CONFIG, pt-config-diff ເຊື່ອມຕໍ່ກັບ MySQL ແລະໄດ້ຮັບຕົວແປແລະຄ່າໂດຍ
ດໍາເນີນການ "SHOW /*!40103 GLOBAL*/ VARIABLES". ນີ້ແມ່ນ "ການຕັ້ງຄ່າທີ່ໃຊ້ວຽກ" ເພາະວ່າມັນສະແດງໃຫ້ເຫັນ
ເຊີບເວີໃຫ້ຄ່າຫຍັງ MySQL ເຮັດວຽກຢ່າງຫ້າວຫັນ (ປະຈຸບັນ) ກັບ.
ມີພຽງແຕ່ຕົວແປທີ່ແຫຼ່ງ CONFIG ທັງຫມົດໄດ້ຖືກປຽບທຽບເພາະວ່າຖ້າຕົວແປບໍ່ແມ່ນ
ປະຈຸບັນ, ພວກເຮົາບໍ່ສາມາດຮູ້ຫຼືຄາດເດົາມູນຄ່າຂອງມັນຢ່າງປອດໄພ. ຕົວຢ່າງ, ຖ້າປຽບທຽບກັບ
ໄຟລ໌ທາງເລືອກ (ເຊັ່ນ: my.cnf) ໄປຫາການຕັ້ງຄ່າທີ່ເຮັດວຽກ (ເຊັ່ນ: ສະແດງຕົວແປຈາກ DSN CONFIG),
ໄຟລ໌ທາງເລືອກອາດຈະມີພຽງແຕ່ຕົວແປບໍ່ຫຼາຍປານໃດ, ໃນຂະນະທີ່ config ທີ່ໃຊ້ວຽກມີທຸກ
ຕົວແປ. ພຽງແຕ່ຄ່າຂອງຕົວແປທີ່ມີຢູ່ໃນທັງສອງ config ທີ່ຖືກປຽບທຽບ.
ໄຟລ໌ທາງເລືອກແລະການຕັ້ງຄ່າ DSN ໃຫ້ຜົນໄດ້ຮັບທີ່ດີທີ່ສຸດ.
OUTPUT
ບໍ່ມີຜົນຜະລິດໃນເວລາທີ່ບໍ່ມີຄວາມແຕກຕ່າງ. ເມື່ອມີຄວາມແຕກຕ່າງກັນ, pt-config-
diff ພິມບົດລາຍງານໄປຫາ STDOUT ທີ່ມີລັກສະນະຄ້າຍຄືກັນກັບຕໍ່ໄປນີ້:
2 ຄວາມແຕກຕ່າງການຕັ້ງຄ່າ
ຕົວແປ my.master.cnf my.slave.cnf
====================== =============== ========== =====
datadir /tmp/12345/data /tmp/12346/data
ທີ່ Port 12345 12346
ການປຽບທຽບຕົວແປ MySQL ແມ່ນມີຄວາມຫຍຸ້ງຍາກເພາະວ່າມີຫຼາຍຕົວແປແລະ subtleties
ໃນທົ່ວຫຼາຍຮຸ່ນແລະການແຈກຢາຍຂອງ MySQL. ເມື່ອການປຽບທຽບລົ້ມເຫລວ, ເຄື່ອງມື
ພິມຄໍາເຕືອນໃຫ້ STDERR, ເຊັ່ນດັ່ງຕໍ່ໄປນີ້:
ການປຽບທຽບຄ່າ log_error (mysqld.log, /tmp/12345/data/mysqld.log)
ເຮັດໃຫ້ເກີດຄວາມຜິດພາດ: Argument "/tmp/12345/data/mysqld.log" ບໍ່ແມ່ນຕົວເລກ.
ໃນຕົວເລກ eq (==) ທີ່ ./pt-config-diff line 2311.
ກະລຸນາລາຍງານຄໍາເຕືອນເຫຼົ່ານີ້ເພື່ອໃຫ້ຫນ້າທີ່ການປຽບທຽບໄດ້ຮັບການປັບປຸງ.
ອອກ STATUS
pt-config-diff ອອກດ້ວຍສະຖານະສູນອອກເມື່ອບໍ່ມີຄວາມແຕກຕ່າງ, ແລະ 1 ຖ້າມີ.
ແມ່ນ.
OPTIONS
ເຄື່ອງມືນີ້ຍອມຮັບການໂຕ້ຖຽງແຖວຄໍາສັ່ງເພີ່ມເຕີມ. ອ້າງອີງເຖິງ "SYNOPSIS" ແລະການນໍາໃຊ້
ຂໍ້ມູນສໍາລັບລາຍລະອຽດ.
--ຖາມຜ່ານ
ເຕືອນລະຫັດຜ່ານເມື່ອເຊື່ອມຕໍ່ກັບ MySQL.
--ຊຸດຕົວອັກສອນ
ຮູບແບບສັ້ນ: -A; ປະເພດ: string
ຕັ້ງຕົວອັກສອນເລີ່ມຕົ້ນ. ຖ້າຄ່າແມ່ນ utf8, ຕັ້ງ binmode ຂອງ Perl ໃນ STDOUT ເປັນ utf8,
ຜ່ານຕົວເລືອກ mysql_enable_utf8 ໄປ DBD::mysql, ແລະແລ່ນ SET NAMES UTF8 ຫຼັງຈາກ.
ເຊື່ອມຕໍ່ກັບ MySQL. ຄ່າອື່ນໃດກຳນົດ binmode ໃນ STDOUT ໂດຍບໍ່ມີຊັ້ນ utf8,
ແລະດໍາເນີນການ SET NAMES ຫຼັງຈາກເຊື່ອມຕໍ່ກັບ MySQL.
--config
ປະເພດ: Array
ອ່ານລາຍຊື່ໄຟລ໌ config ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດນີ້; ຖ້າລະບຸ, ນີ້ຈະຕ້ອງເປັນອັນທໍາອິດ
ທາງເລືອກໃນແຖວຄໍາສັ່ງ. (ຕົວເລືອກນີ້ບໍ່ໄດ້ລະບຸ CONFIG; ມັນທຽບເທົ່າ
ກັບ "--defaults-file".)
--ຖານຂໍ້ມູນ
ຮູບແບບສັ້ນ: -D; ປະເພດ: string
ເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນນີ້.
--defaults-file
ຮູບແບບສັ້ນ: -F; ປະເພດ: string
ພຽງແຕ່ອ່ານຕົວເລືອກ mysql ຈາກໄຟລ໌ທີ່ໃຫ້. ທ່ານຕ້ອງໃຫ້ຊື່ເສັ້ນທາງຢ່າງແທ້ຈິງ.
- ຊ່ວຍ
ສະແດງການຊ່ວຍເຫຼືອ ແລະອອກ.
-ເຈົ້າພາບ
ຮູບແບບສັ້ນ: -h; ປະເພດ: string
ເຊື່ອມຕໍ່ຫາເຈົ້າພາບ.
--[ບໍ່] ignore-case
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ປຽບທຽບຕົວແປເປັນຕົວພິມນ້ອຍ ຫຼື ບໍ່ອ່ອນໄຫວ.
--ignore-ຕົວແປ
ປະເພດ: array
ບໍ່ສົນໃຈ, ຢ່າປຽບທຽບ, ຕົວແປເຫຼົ່ານີ້.
-ລະຫັດຜ່ານ
ຮູບແບບສັ້ນ: -p; ປະເພດ: string
ລະຫັດຜ່ານທີ່ຈະໃຊ້ສໍາລັບການເຊື່ອມຕໍ່.
--pid
ປະເພດ: string
ສ້າງໄຟລ໌ PID ທີ່ໃຫ້. ເຄື່ອງມືຈະບໍ່ເລີ່ມຕົ້ນຖ້າໄຟລ໌ PID ມີຢູ່ແລ້ວແລະ
PID ທີ່ມັນມີຢູ່ແຕກຕ່າງຈາກ PID ໃນປັດຈຸບັນ. ຢ່າງໃດກໍຕາມ, ຖ້າໄຟລ໌ PID
ມີຢູ່ ແລະ PID ທີ່ມັນບັນຈຸບໍ່ໄດ້ເຮັດວຽກອີກຕໍ່ໄປ, ເຄື່ອງມືຈະຂຽນທັບ PID
ໄຟລ໌ທີ່ມີ PID ໃນປັດຈຸບັນ. ໄຟລ໌ PID ຈະຖືກລຶບອອກໂດຍອັດຕະໂນມັດເມື່ອເຄື່ອງມືອອກ.
--ພອດ
ຮູບແບບສັ້ນ: -P; ປະເພດ: int
ໝາຍເລກພອດເພື່ອໃຊ້ສຳລັບການເຊື່ອມຕໍ່.
--[ບໍ່]ລາຍງານ
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ພິມລາຍງານຄວາມແຕກຕ່າງກັນຂອງ MySQL config ໄປທີ່ STDOUT. ຖ້າເຈົ້າພຽງແຕ່ຕ້ອງການກວດເບິ່ງວ່າໃຫ້
configs ແມ່ນແຕກຕ່າງກັນຫຼືບໍ່ໂດຍການກວດສອບສະຖານະການອອກຂອງເຄື່ອງມື, ຫຼັງຈາກນັ້ນໃຫ້ລະບຸ
"--no-report" ເພື່ອສະກັດກັ້ນບົດລາຍງານ.
--ລາຍງານຄວາມກວ້າງ
ປະເພດ: int; ຄ່າເລີ່ມຕົ້ນ: 78
ຕັດເສັ້ນລາຍງານເປັນຕົວອັກສອນຫຼາຍອັນນີ້. ເນື່ອງຈາກວ່າບາງຄ່າຕົວແປສາມາດເປັນ
ຍາວ, ຫຼືເມື່ອປຽບທຽບ configs ຫຼາຍ, ມັນອາດຈະຊ່ວຍເພີ່ມຄວາມກວ້າງຂອງບົດລາຍງານດັ່ງນັ້ນ
ຄ່າບໍ່ໄດ້ຖືກຕັດອອກເກີນກວ່າການອ່ານໄດ້.
--set-vars
ປະເພດ: Array
ກໍານົດຕົວແປ MySQL ໃນບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຄູ່ "variable=value".
ໂດຍຄ່າເລີ່ມຕົ້ນ, ເຄື່ອງມືກໍານົດ:
wait_timeout=10000
ຕົວແປທີ່ລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງ override ຄ່າເລີ່ມຕົ້ນເຫຼົ່ານີ້. ຍົກຕົວຢ່າງ,
ການລະບຸ "--set-vars wait_timeout=500" ລົບລ້າງຄ່າເລີ່ມຕົ້ນຂອງ 10000.
ເຄື່ອງມືພິມຄໍາເຕືອນແລະສືບຕໍ່ຖ້າຫາກວ່າຕົວປ່ຽນແປງບໍ່ສາມາດໄດ້ຮັບການຕັ້ງຄ່າ.
--ຊັອກເກັດ
ຮູບແບບສັ້ນ: -S; ປະເພດ: string
ໄຟລ໌ socket ໃຊ້ສໍາລັບການເຊື່ອມຕໍ່.
-ຜູ້ໃຊ້
ຮູບແບບສັ້ນ: -u; ປະເພດ: string
ຜູ້ໃຊ້ MySQL ຖ້າບໍ່ແມ່ນຜູ້ໃຊ້ປະຈຸບັນ.
- ການປ່ຽນແປງ
ສະແດງສະບັບແລະອອກ.
--[ບໍ່ມີການກວດສອບສະບັບ
ຄ່າເລີ່ມຕົ້ນ: ແມ່ນແລ້ວ
ກວດເບິ່ງເວີຊັນຫຼ້າສຸດຂອງ Percona Toolkit, MySQL, ແລະໂຄງການອື່ນໆ.
ນີ້ແມ່ນມາດຕະຖານ "ກວດສອບການປັບປຸງອັດຕະໂນມັດ" ຄຸນນະສົມບັດ, ມີສອງເພີ່ມເຕີມ
ຄຸນລັກສະນະ. ຫນ້າທໍາອິດ, ເຄື່ອງມືກວດສອບສະບັບຂອງບັນດາໂຄງການອື່ນໆໃນລະບົບທ້ອງຖິ່ນໃນ
ນອກຈາກສະບັບຂອງຕົນເອງ. ຕົວຢ່າງ, ມັນກວດເບິ່ງເວີຊັນຂອງທຸກເຄື່ອງແມ່ຂ່າຍ MySQL
ມັນເຊື່ອມຕໍ່ກັບ, Perl, ແລະໂມດູນ Perl DBD::mysql. ອັນທີສອງ, ມັນກວດເບິ່ງແລະເຕືອນ
ກ່ຽວກັບສະບັບທີ່ມີບັນຫາທີ່ຮູ້ຈັກ. ຕົວຢ່າງ, MySQL 5.5.25 ມີ bug ທີ່ສໍາຄັນແລະ
ໄດ້ຖືກປ່ອຍອອກມາເມື່ອ 5.5.25a.
ການອັບເດດ ຫຼືບັນຫາທີ່ຮູ້ຈັກຈະຖືກພິມໃສ່ STDOUT ກ່ອນທີ່ເຄື່ອງມືຈະອອກມາປົກກະຕິ.
ຄຸນສົມບັດນີ້ບໍ່ຄວນລົບກວນການເຮັດວຽກປົກກະຕິຂອງເຄື່ອງມື.
ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ໄປຢ້ຽມຢາມ .
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: ຜູ້ໃຊ້; ສຳເນົາ: ແມ່ນແລ້ວ
ຜູ້ໃຊ້ສໍາລັບການເຂົ້າສູ່ລະບົບຖ້າບໍ່ແມ່ນຜູ້ໃຊ້ປະຈຸບັນ.
ENVIRONMENT
ຕົວແປສະພາບແວດລ້ອມ "PTDEBUG" ເປີດໃຊ້ຜົນການແກ້ບັນຫາ verbose ໄປຫາ STDERR. ເພື່ອເປີດໃຊ້ງານ
debugging ແລະເກັບກໍາຜົນຜະລິດທັງຫມົດໄປຍັງໄຟລ໌, ດໍາເນີນການເຄື່ອງມືເຊັ່ນ:
PTDEBUG=1 pt-config-diff ... > FILE 2 >&1
ຈົ່ງລະວັງ: ການດີບັ໊ກຜົນອອກແມ່ນ voluminous ແລະສາມາດສ້າງຜົນຜະລິດຫຼາຍ megabytes.
SYSTEM ສິ່ງທີ່ຕ້ອງມີ
ທ່ານຕ້ອງການ Perl, DBI, DBD::mysql, ແລະບາງແພັກເກັດຫຼັກທີ່ຄວນຈະຖືກຕິດຕັ້ງຢູ່ໃນໃດກໍ່ຕາມ.
ສະບັບໃຫມ່ທີ່ສົມເຫດສົມຜົນຂອງ Perl.
ໃຊ້ pt-config-diffp ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net
