ນີ້ແມ່ນຄໍາສັ່ງ pgreplay ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນສະຖານີເຮັດວຽກອອນໄລນ໌ຟຣີຫຼາຍອັນຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
pgreplay - PostgreSQL log file replayer ສໍາລັບການທົດສອບປະສິດທິພາບ
ສະຫຼຸບສັງລວມ
pgreplay [ແຍກ ທາງເລືອກໃນການ] [replay ທາງເລືອກໃນການ] [-d ລະດັບ] [infile]
pgreplay -f [ແຍກ ທາງເລືອກໃນການ] [-o outfile] [-d ລະດັບ] [infile]
pgreplay -r [replay ທາງເລືອກໃນການ] [-d ລະດັບ] [infile]
ລາຍລະອຽດ
pgreplay ອ່ານໄຟລ໌ບັນທຶກ PostgreSQL (ບໍ່ ໄຟລ໌ WAL), ສະກັດຂໍ້ຄວາມ SQL ແລະ
ປະຕິບັດພວກມັນໃນຄໍາສັ່ງດຽວກັນແລະເວລາທີ່ກ່ຽວຂ້ອງຕໍ່ກັບກຸ່ມຖານຂໍ້ມູນ PostgreSQL.
ບົດລາຍງານສຸດທ້າຍເຮັດໃຫ້ທ່ານມີການວິເຄາະສະຖິຕິທີ່ເປັນປະໂຫຍດຂອງການເຮັດວຽກຂອງທ່ານແລະການປະຕິບັດຂອງຕົນ.
ໃນຮູບແບບທໍາອິດ, ໄຟລ໌ບັນທຶກ infile ແມ່ນ replayed ໃນເວລາທີ່ມັນຖືກອ່ານ.
ມີ -f ທາງເລືອກ, pgreplay ຈະບໍ່ປະຕິບັດຄໍາຖະແຫຼງການ, ແຕ່ຂຽນໃຫ້ເຂົາເຈົ້າເປັນ 'replay
ໄຟລ໌ outfile ທີ່ສາມາດຫຼິ້ນຄືນໄດ້ດ້ວຍຮູບແບບທີສາມ.
ມີ -r ທາງເລືອກ, pgreplay ຈະດໍາເນີນການຖະແຫຼງການໃນໄຟລ໌ replay ໄດ້ infile ທີ່
ຖືກສ້າງຂື້ນໂດຍຮູບແບບທີສອງ.
ຖ້າຫາກວ່າການປະຕິບັດຂອງຄໍາຖະແຫຼງການໄດ້ຮັບການຊ້າກວ່າກໍານົດເວລາ, ຂໍ້ຄວາມເຕືອນໄພແມ່ນອອກມາວ່າ
ຊີ້ບອກວ່າເຊີບເວີບໍ່ສາມາດຈັດການກັບການໂຫຼດໄດ້ທັນເວລາ. ແນວຄວາມຄິດແມ່ນເພື່ອ
replay ການເຮັດວຽກຂອງຖານຂໍ້ມູນທີ່ແທ້ຈິງທີ່ແທ້ຈິງເທົ່າທີ່ເປັນໄປໄດ້.
ເພື່ອສ້າງໄຟລ໌ບັນທຶກທີ່ສາມາດວິເຄາະໄດ້ pgreplay, ທ່ານຈໍາເປັນຕ້ອງໄດ້ກໍານົດດັ່ງຕໍ່ໄປນີ້
ຕົວກໍານົດການໃນ postgresql.conf:
log_min_messages=ຜິດພາດ (ຫຼືຫຼາຍກວ່າ)
log_min_error_statement=ບັນທຶກ (ຫຼືຫຼາຍກວ່າ)
log_connections=on
log_disconnections=on
log_line_prefix='%m|%u|%d|%c|' (ຖ້າທ່ານບໍ່ໃຊ້ການບັນທຶກ CSV)
log_statement='ທັງໝົດ'
lc_messages ຕ້ອງຕັ້ງເປັນພາສາອັງກິດ (ການເຂົ້າລະຫັດບໍ່ສຳຄັນ)
bytea_output=ໜີ (ຈາກເວີຊັນ 9.0 ເທິງ, ພຽງແຕ່ຖ້າທ່ານຕ້ອງການຫຼິ້ນຄືນບັນທຶກໃນ 8.4
ຫຼືກ່ອນຫນ້ານັ້ນ)
ກຸ່ມຖານຂໍ້ມູນທີ່ທ່ານຫຼິ້ນຄືນຄຳຖະແຫຼງ SQL ຈະຕ້ອງເປັນໂຄນຂອງ
ກຸ່ມຖານຂໍ້ມູນທີ່ສ້າງບັນທຶກຈາກເວລານັ້ນ ທັນທີ ກ່ອນທີ່ຈະ ໄມ້ທ່ອນໄດ້
ສ້າງຂຶ້ນ.
pgreplay ແມ່ນເປັນປະໂຫຍດສໍາລັບການທົດສອບການປະຕິບັດ, ໂດຍສະເພາະໃນສະຖານະການດັ່ງຕໍ່ໄປນີ້:
* ທ່ານຕ້ອງການປຽບທຽບການປະຕິບັດຂອງແອັບພລິເຄຊັນ PostgreSQL ຂອງເຈົ້າແຕກຕ່າງກັນ
ຮາດແວຫຼືລະບົບປະຕິບັດການທີ່ແຕກຕ່າງກັນ.
* ທ່ານຕ້ອງການຍົກລະດັບຖານຂໍ້ມູນຂອງທ່ານແລະຕ້ອງການໃຫ້ແນ່ໃຈວ່າສະບັບຖານຂໍ້ມູນໃຫມ່
ບໍ່ທົນທຸກຈາກການປະຕິສັງຂອນປະສິດທິພາບທີ່ມີຜົນກະທົບທ່ານ.
ຍິ່ງໄປກວ່ານັ້ນ, pgreplay ສາມາດໃຫ້ທ່ານມີຄວາມຮູ້ສຶກບາງຢ່າງກ່ຽວກັບວິທີການສະຫມັກຂອງທ່ານ ອາດຈະ ຂະຫນາດໂດຍ
ອະນຸຍາດໃຫ້ທ່ານພະຍາຍາມຫຼິ້ນຄືນການໂຫຼດຂອງວຽກດ້ວຍຄວາມໄວສູງ. ເຕືອນ, ຢ່າງໃດກໍຕາມ, ວ່າ 500
ຜູ້ໃຊ້ທີ່ເຮັດວຽກຢູ່ໃນຄວາມໄວສອງເທົ່າບໍ່ແມ່ນແທ້ຄືກັບ 1000 ຜູ້ໃຊ້ທີ່ເຮັດວຽກຢູ່ໃນປົກກະຕິ
ຄວາມໄວ.
OPTIONS
Parse ຕົວເລືອກ:
-c ລະບຸວ່າໄຟລ໌ບັນທຶກຢູ່ໃນຮູບແບບ 'csvlog' (ແນະນໍາຢ່າງສູງ) ແລະບໍ່ໄດ້ຢູ່ໃນ
ຮູບແບບ 'stderr'.
-b ເວລາ
ສະເພາະລາຍການບັນທຶກທີ່ໃຫຍ່ກວ່າ ຫຼືເທົ່າກັບເວລານັ້ນຈະຖືກວິເຄາະ. ຮູບແບບແມ່ນ
YYYY-MM-DD HH:MM:SS.FFF ຄືກັບໄຟລ໌ບັນທຶກ. ສ່ວນເຂດເວລາທາງເລືອກຈະເປັນ
ບໍ່ສົນໃຈ.
-e ເວລາ
ພຽງແຕ່ລາຍການບັນທຶກໜ້ອຍກວ່າ ຫຼືເທົ່າກັບເວລານັ້ນຈະຖືກວິເຄາະ. ຮູບແບບແມ່ນ
YYYY-MM-DD HH:MM:SS.FFF ຄືກັບໄຟລ໌ບັນທຶກ. ສ່ວນເຂດເວລາທາງເລືອກຈະເປັນ
ບໍ່ສົນໃຈ.
-q ລະບຸວ່າ backslash ໃນສະຕຣິງທີ່ງ່າຍດາຍຕາມຕົວຫນັງສືຈະຫນີຕໍ່ໄປນີ້
quote ດຽວ. ນີ້ແມ່ນຂຶ້ນກັບຕົວເລືອກການຕັ້ງຄ່າເຊັ່ນ
standard_conforming_strings ແລະເປັນຄ່າເລີ່ມຕົ້ນຂອງເຊີບເວີເວີຊັ່ນ 9.0 ແລະນ້ອຍກວ່າ.
Replay ຕົວເລືອກ:
-h hostname
ຊື່ໂຮດທີ່ກຸ່ມຖານຂໍ້ມູນເປົ້າຫມາຍກໍາລັງແລ່ນ (ຫຼືໄດເລກະທໍລີທີ່ UNIX
ເຕົ້າຮັບສາມາດພົບເຫັນ). ຄ່າເລີ່ມຕົ້ນຂອງການເຊື່ອມຕໍ່ທ້ອງຖິ່ນ.
ນີ້ເຮັດວຽກຄືກັນກັບ -h ທາງເລືອກຂອງ psql.
-p port
ພອດ TCP ບ່ອນທີ່ກຸ່ມຖານຂໍ້ມູນເປົ້າຫມາຍສາມາດບັນລຸໄດ້.
-W ລະຫັດຜ່ານ
ໂດຍຕົວຢ່າງ, pgreplay ສົມມຸດວ່າກຸ່ມຖານຂໍ້ມູນເປົ້າຫມາຍຖືກຕັ້ງຄ່າສໍາລັບ
ເຊື່ອຫມັ້ນ ການຢືນຢັນ. ກັບ -W ທາງເລືອກທີ່ທ່ານສາມາດລະບຸລະຫັດຜ່ານທີ່ຈະເປັນ
ໃຊ້ສຳລັບຜູ້ໃຊ້ທັງໝົດໃນກຸ່ມ.
-s ປັດໄຈ
ປັດໄຈຄວາມໄວສໍາລັບການຫຼິ້ນຄືນໃຫມ່, ໂດຍຄ່າເລີ່ມຕົ້ນ 1. ນີ້ສາມາດເປັນການລອຍຕົວໃນທາງບວກທີ່ຖືກຕ້ອງ
ເລກຈຸດ. ກ ປັດໄຈ ໜ້ອຍກວ່າ 1 ຈະຫຼິ້ນຄືນວຽກໃນ 'ການເຄື່ອນໄຫວຊ້າ', ໃນຂະນະທີ່
a ປັດໄຈ ຫຼາຍກວ່າ 1 ຫມາຍຄວາມວ່າ 'ໄປຂ້າງຫນ້າໄວ'.
-E ການເຂົ້າລະຫັດ
ລະບຸການເຂົ້າລະຫັດຂອງໄຟລ໌ບັນທຶກ, ເຊິ່ງຈະຖືກນໍາໃຊ້ເປັນການເຂົ້າລະຫັດລູກຄ້າ
ໃນລະຫວ່າງການຫຼິ້ນຄືນ. ຖ້າມັນຖືກລະເວັ້ນ, ການເຂົ້າລະຫັດລູກຄ້າເລີ່ມຕົ້ນຂອງທ່ານຈະຖືກໃຊ້.
-j ຖ້າການເຊື່ອມຕໍ່ທັງຫມົດບໍ່ເຮັດວຽກ, ຂ້າມໄປຫາຄໍາຮ້ອງຂໍຕໍ່ໄປແທນທີ່ຈະນອນ.
ນີ້ຈະເລັ່ງການຫຼິ້ນຄືນ. ຄວາມລ່າຊ້າຂອງການປະຕິບັດຍັງຈະຖືກລາຍງານຢ່າງຖືກຕ້ອງ, ແຕ່
ສະຖິຕິການຫຼິ້ນຄືນຈະບໍ່ມີເວລາຫວ່າງ.
ຜົນຜະລິດ ຕົວເລືອກ:
-o outfile
ລະບຸໄຟລ໌ replay ບ່ອນທີ່ຂໍ້ຄວາມຈະຖືກຂຽນສໍາລັບການຫຼິ້ນຄືນໃນພາຍຫຼັງ.
Debug ຕົວເລືອກ:
-d ລະດັບ
ລະບຸລະດັບການຕິດຕາມ (ລະຫວ່າງ 1 ແລະ 3). ລະດັບການເພີ່ມຂຶ້ນຈະຜະລິດຫຼາຍ
ຂໍ້ມູນລະອຽດກ່ຽວກັບສິ່ງທີ່ pgreplay ກຳ ລັງເຮັດຢູ່.
-v ພິມເວີຊັນຂອງໂປຣແກຣມແລ້ວອອກ.
ENVIRONMENT
PGHOST ລະບຸຄ່າເລີ່ມຕົ້ນຂອງ -h ທາງເລືອກ.
PGPORT ລະບຸຄ່າເລີ່ມຕົ້ນຂອງ -p ທາງເລືອກ.
PGCLIENTENCODING
ລະບຸຄ່າເລີ່ມຕົ້ນຂອງ -E ທາງເລືອກ.
ຂອບເຂດ ຈຳ ກັດ
pgreplay ສາມາດຫຼິ້ນຄືນສິ່ງທີ່ຖືກບັນທຶກໂດຍ PostgreSQL ເທົ່ານັ້ນ. ນີ້ນໍາໄປສູ່ການຈໍາກັດບາງ:
* COPY ຖະແຫຼງການຈະບໍ່ຖືກຫຼິ້ນຄືນ, ເພາະວ່າຂໍ້ມູນສຳເນົາບໍ່ໄດ້ຖືກບັນທຶກ.
* ການໂທຟັງຊັນ API ເສັ້ນທາງໄວບໍ່ໄດ້ຖືກບັນທຶກ ແລະຈະບໍ່ຖືກຫຼິ້ນຄືນ. ແຕ່ຫນ້າເສຍດາຍ,
ນີ້ປະກອບມີ API ວັດຖຸໃຫຍ່.
* ນັບຕັ້ງແຕ່ໄຟລ໌ບັນທຶກແມ່ນສະເຫມີໄປຢູ່ໃນການເຂົ້າລະຫັດເຄື່ອງແມ່ຂ່າຍ (ທີ່ທ່ານສາມາດກໍານົດກັບ -E
ຫຼັບຂອງ pgreplay), ທັງ ໝົດ SET client_encoding ຖະແຫຼງການຈະຖືກລະເລີຍ.
* ນັບຕັ້ງແຕ່ເວລາກະກຽມຂອງຄໍາຖະແຫຼງທີ່ກະກຽມບໍ່ໄດ້ຖືກບັນທຶກ (ເວັ້ນເສຍແຕ່
log_min_messages is debug2 ຫຼືຫຼາຍກວ່ານັ້ນ), ຖະແຫຼງການເຫຼົ່ານີ້ຈະຖືກກະກຽມທັນທີ
ກ່ອນທີ່ເຂົາເຈົ້າຈະຖືກປະຕິບັດຄັ້ງທໍາອິດໃນລະຫວ່າງການຫຼິ້ນຄືນ.
* ເນື່ອງຈາກວ່າໄຟລ໌ບັນທຶກມີພຽງແຕ່ຂໍ້ຄວາມ, ຕົວກໍານົດການສອບຖາມແລະຄ່າກັບຄືນ
ຢູ່ໃນຂໍ້ຄວາມສະເໝີ ແລະບໍ່ເຄີຍຢູ່ໃນຮູບແບບຖານສອງ. ຖ້າທ່ານໃຊ້ໂຫມດຖານສອງເພື່ອ, ເວົ້າ, ໂອນ
ຂໍ້ມູນຖານສອງຂະຫນາດໃຫຍ່, pgreplay ສາມາດເຮັດໃຫ້ເກີດການຈະລາຈອນເຄືອຂ່າຍຫຼາຍກ່ວາຢ່າງຫຼວງຫຼາຍ
ແລ່ນຕົ້ນສະບັບ.
* ບາງຄັ້ງ, ຖ້າການເຊື່ອມຕໍ່ໃຊ້ເວລາດົນກວ່າທີ່ຈະສໍາເລັດ, session ID ບໍ່ໄດ້ຄາດຫວັງ
ການປ່ຽນແປງໃນໄຟລ໌ບັນທຶກ PostgreSQL. ສາເຫດນີ້ pgreplay ປະຕິບັດກອງປະຊຸມເປັນສອງ
ທີ່ແຕກຕ່າງກັນ, ສົ່ງຜົນໃຫ້ມີການເຊື່ອມຕໍ່ເພີ່ມເຕີມ. ນີ້ເປັນການໂຕ້ຖຽງວ່າແມງໄມ້ຢູ່ໃນ
PostgreSQL.
ໃຊ້ pgreplay ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net