ນີ້ແມ່ນຄໍາສັ່ງ pg_receivexlog ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
pg_receivexlog - ຖ່າຍທອດບັນທຶກທຸລະກຳຈາກເຊີບເວີ PostgreSQL
ສະຫຼຸບສັງລວມ
pg_receivexlog [ທາງເລືອກ... ]
ລາຍລະອຽດ
pg_receivexlog ຖືກນໍາໃຊ້ເພື່ອຖ່າຍທອດບັນທຶກການເຮັດທຸລະກໍາຈາກກຸ່ມ PostgreSQL ທີ່ໃຊ້ຢູ່.
ບັນທຶກການເຮັດທຸລະກໍາຖືກຖ່າຍທອດໂດຍໃຊ້ໂປໂຕຄອນການຈໍາລອງການຖ່າຍທອດ, ແລະຖືກຂຽນ
ໄປຫາໄດເລກະທໍລີທ້ອງຖິ່ນຂອງໄຟລ໌. ໄດເລກະທໍລີນີ້ສາມາດຖືກນໍາໃຊ້ເປັນບ່ອນເກັບມ້ຽນສໍາລັບ
ການດຳເນີນການຟື້ນຟູດ້ວຍການກູ້ຄືນແບບຈຸດໃນເວລາ (ເບິ່ງຂໍ້ 24.3, “ການເກັບຂໍ້ມູນຕໍ່ເນື່ອງ ແລະ
Point-in-Time Recovery (PITR)”, ໃນເອກະສານ).
pg_receivexlog ຖ່າຍທອດບັນທຶກການເຮັດທຸລະກໍາໃນເວລາຈິງຍ້ອນວ່າມັນຖືກສ້າງຢູ່ໃນ
ເຊີບເວີ, ແລະບໍ່ລໍຖ້າໃຫ້ພາກສ່ວນຕ່າງໆສຳເລັດຄືກັບ archive_command ເຮັດ. ສໍາລັບການນີ້
ເຫດຜົນ, ມັນບໍ່ຈໍາເປັນຕ້ອງກໍານົດ archive_timeout ເມື່ອໃຊ້ pg_receivexlog.
ບໍ່ຄືກັບຕົວຮັບ WAL ຂອງເຊີບເວີສະແຕນບາຍ PostgreSQL, pg_receivexlog ໂດຍຄ່າເລີ່ມຕົ້ນ
ຂໍ້ມູນ WAL ພຽງແຕ່ເມື່ອໄຟລ໌ WAL ຖືກປິດ. ທາງເລືອກ -- synchronous ຕ້ອງໄດ້ຮັບການລະບຸໄວ້
ລ້າງຂໍ້ມູນ WAL ໃນເວລາຈິງ.
ບັນທຶກການເຮັດທຸລະກໍາແມ່ນຖ່າຍທອດຜ່ານການເຊື່ອມຕໍ່ PostgreSQL ປົກກະຕິແລະໃຊ້
ອະນຸສັນຍາການຈໍາລອງ. ການເຊື່ອມຕໍ່ຕ້ອງເຮັດກັບ superuser ຫຼືຜູ້ໃຊ້ມີ
ການອະນຸຍາດໃຫ້ການສ້າງແບບຈໍາລອງ (ເບິ່ງຂໍ້ 20.2, “ຄຸນລັກສະນະບົດບາດ”, ໃນເອກະສານ), ແລະ
pg_hba.conf ຕ້ອງອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ແບບຈໍາລອງ. ເຊີບເວີຈະຕ້ອງຖືກຕັ້ງຄ່ານຳ
ກັບ max_wal_senders ຕັ້ງສູງພໍທີ່ຈະອອກຈາກຢ່າງຫນ້ອຍຫນຶ່ງເຊດຊັນທີ່ມີຢູ່ສໍາລັບ
stream
ຖ້າຫາກວ່າການເຊື່ອມຕໍ່ໄດ້ຖືກສູນເສຍໄປ, ຫຼືຖ້າຫາກວ່າມັນບໍ່ສາມາດສ້າງຕັ້ງຂຶ້ນໃນເບື້ອງຕົ້ນ, ໂດຍບໍ່ມີການເສຍຊີວິດ
ຜິດພາດ, pg_receivexlog ຈະພະຍາຍາມເຊື່ອມຕໍ່ຄືນໃໝ່ຢ່າງບໍ່ມີກຳນົດ, ແລະຕັ້ງການຖ່າຍທອດຄືນໃໝ່ເປັນ
ໄວເທົ່າທີ່ຈະເປັນໄປໄດ້. ເພື່ອຫຼີກເວັ້ນການປະພຶດນີ້, ໃຊ້ຕົວກໍານົດການ -n.
OPTIONS
-D ລະບົບ
--directory=ລະບົບ
ໄດເລກະທໍລີທີ່ຈະຂຽນຜົນໄດ້ຮັບໃສ່.
ພາລາມິເຕີນີ້ແມ່ນຕ້ອງການ.
--ຖ້າ-ບໍ່ຢູ່
ບໍ່ຜິດພາດອອກໃນເວລາທີ່ --ສ້າງ-ຊ່ອງ ແມ່ນລະບຸໄວ້ແລະຊ່ອງໃສ່ກັບທີ່ລະບຸໄວ້
ຊື່ມີຢູ່ແລ້ວ.
-n
--no-loop
ຫ້າມເຊື່ອມຕໍ່ຄວາມຜິດພາດໃນການເຊື່ອມຕໍ່. ແທນທີ່ຈະ, ອອກຈາກທັນທີທີ່ມີຄວາມຜິດພາດ.
-s ໄລຍະຫ່າງ
--status-interval=ໄລຍະຫ່າງ
ລະບຸຈໍານວນວິນາທີລະຫວ່າງແພັກເກັດສະຖານະທີ່ສົ່ງກັບໄປຫາເຊີບເວີ. ນີ້
ອະນຸຍາດໃຫ້ຕິດຕາມຄວາມຄືບໜ້າຈາກເຊີບເວີໄດ້ງ່າຍຂຶ້ນ. ຄ່າຂອງສູນປິດການໃຊ້ງານ
ການປັບປຸງສະຖານະພາບແຕ່ລະໄລຍະຢ່າງສົມບູນ, ເຖິງແມ່ນວ່າການອັບເດດຈະຍັງຖືກສົ່ງໄປເມື່ອໃດ
ຮ້ອງຂໍໂດຍເຄື່ອງແມ່ຂ່າຍ, ເພື່ອຫຼີກເວັ້ນການຫມົດເວລາຕັດການເຊື່ອມຕໍ່. ຄ່າເລີ່ມຕົ້ນແມ່ນ 10 ວິນາທີ.
-S ຊື່ສະລັອດຕິງ
--ຊ່ອງ=ຊື່ສະລັອດຕິງ
ຕ້ອງການ pg_receivexlog ເພື່ອໃຊ້ຊ່ອງ replication ທີ່ມີຢູ່ແລ້ວ (ເບິ່ງພາກ 25.2.6,
“Replication Slots”, ໃນເອກະສານ). ເມື່ອຕົວເລືອກນີ້ຖືກນໍາໃຊ້, pg_receivexlog
ຈະລາຍງານຕໍາແຫນ່ງ flush ກັບເຄື່ອງແມ່ຂ່າຍ, ຊີ້ບອກເວລາທີ່ແຕ່ລະພາກສ່ວນໄດ້
synchronized ກັບ disk ເພື່ອໃຫ້ເຄື່ອງແມ່ຂ່າຍສາມາດເອົາພາກສ່ວນນັ້ນອອກຖ້າຫາກວ່າມັນບໍ່ແມ່ນຖ້າບໍ່ດັ່ງນັ້ນ
ຕ້ອງການ.
ເມື່ອລູກຄ້າ replication ຂອງ pg_receivexlog ຖືກຕັ້ງຄ່າຢູ່ໃນເຄື່ອງແມ່ຂ່າຍເປັນ a
synchronous standby, ຫຼັງຈາກນັ້ນການນໍາໃຊ້ຊ່ອງ replication ຈະລາຍງານຕໍາແຫນ່ງ flush ກັບ
ເຄື່ອງແມ່ຂ່າຍ, ແຕ່ວ່າພຽງແຕ່ໃນເວລາທີ່ໄຟລ໌ WAL ຖືກປິດ. ດັ່ງນັ້ນ, ການຕັ້ງຄ່ານັ້ນຈະ
ເຮັດໃຫ້ທຸລະກໍາໃນຂັ້ນຕົ້ນລໍຖ້າເປັນເວລາດົນນານແລະບໍ່ມີປະສິດທິພາບ
ເປັນທີ່ພໍໃຈ. ທາງເລືອກ --synchronous (ເບິ່ງຂ້າງລຸ່ມນີ້) ຕ້ອງໄດ້ຮັບການລະບຸໃນນອກເຫນືອໄປຈາກ
ເຮັດວຽກນີ້ໃຫ້ຖືກຕ້ອງ.
-- synchronous
ລ້າງຂໍ້ມູນ WAL ໄປໃສ່ດິສກ໌ທັນທີຫຼັງຈາກທີ່ໄດ້ຮັບມັນແລ້ວ. ສົ່ງສະຖານະ
packet ກັບຄືນໄປຫາເຄື່ອງແມ່ຂ່າຍທັນທີຫຼັງຈາກ flushing, ໂດຍບໍ່ຄໍານຶງເຖິງ --status-interval.
ທາງເລືອກນີ້ຄວນຈະຖືກລະບຸໄວ້ຖ້າລູກຄ້າ replication ຂອງ pg_receivexlog ແມ່ນ
ຕັ້ງຄ່າໃນເຊີບເວີເປັນການສະແຕນບາຍແບບ synchronous, ເພື່ອຮັບປະກັນວ່າຄໍາຄຶດຄໍາເຫັນທີ່ທັນເວລາ
ຖືກສົ່ງໄປຫາເຄື່ອງແມ່ຂ່າຍ.
-v
-- verbose
ເປີດໃຊ້ໂໝດ verbose.
ຕົວເລືອກແຖວຄໍາສັ່ງຕໍ່ໄປນີ້ຄວບຄຸມຕົວກໍານົດການເຊື່ອມຕໍ່ຖານຂໍ້ມູນ.
-d constr
--dbname=constr
ລະບຸພາລາມິເຕີທີ່ໃຊ້ເພື່ອເຊື່ອມຕໍ່ກັບເຊີບເວີ, ເປັນສາຍເຊື່ອມຕໍ່. ເບິ່ງ
ພາກທີ 31.1.1, “ສາຍການເຊື່ອມຕໍ່”, ໃນເອກະສານສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
ທາງເລືອກແມ່ນເອີ້ນວ່າ --dbname ສໍາລັບຄວາມສອດຄ່ອງຂອງຄໍາຮ້ອງສະຫມັກລູກຄ້າອື່ນໆ, ແຕ່
ເນື່ອງຈາກວ່າ pg_receivexlog ບໍ່ໄດ້ເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນໃດນຶ່ງໃນກຸ່ມ,
ຊື່ຖານຂໍ້ມູນໃນສາຍເຊື່ອມຕໍ່ຈະຖືກລະເລີຍ.
-h ເຈົ້າພາບ
--host=ເຈົ້າພາບ
ລະບຸຊື່ໂຮດຂອງເຄື່ອງທີ່ເຊີບເວີກຳລັງແລ່ນຢູ່. ຖ້າມູນຄ່າ
ເລີ່ມຕົ້ນດ້ວຍ slash, ມັນຖືກນໍາໃຊ້ເປັນໄດເລກະທໍລີສໍາລັບ socket ໂດເມນ Unix. ໄດ້
ຄ່າເລີ່ມຕົ້ນແມ່ນເອົາມາຈາກ PGHOST ຕົວແປສະພາບແວດລ້ອມ, ຖ້າຕັ້ງ, ອື່ນໂດເມນ Unix
ພະຍາຍາມເຊື່ອມຕໍ່ເຕົ້າຮັບ.
-p port
--port=port
ລະບຸພອດ TCP ຫຼືສ່ວນຂະຫຍາຍໄຟລ໌ຊັອກເກັດໂດເມນ Unix ທ້ອງຖິ່ນທີ່ເຊີບເວີ
ກໍາລັງຟັງການເຊື່ອມຕໍ່. ຄ່າເລີ່ມຕົ້ນຂອງ PGPORT ສະພາບແວດລ້ອມປ່ຽນແປງ, ຖ້າຕັ້ງ, ຫຼື
ລວບລວມຢູ່ໃນຄ່າເລີ່ມຕົ້ນ.
-U ຊື່ຜູ້ໃຊ້
--ຊື່ຜູ້ໃຊ້=ຊື່ຜູ້ໃຊ້
ຊື່ຜູ້ໃຊ້ເພື່ອເຊື່ອມຕໍ່ເປັນ.
-w
-- ບໍ່ມີລະຫັດຜ່ານ
ຢ່າອອກການເຕືອນລະຫັດຜ່ານ. ຖ້າເຄື່ອງແມ່ຂ່າຍຕ້ອງການການກວດສອບລະຫັດຜ່ານແລະ a
ລະຫັດຜ່ານບໍ່ສາມາດໃຊ້ໄດ້ໂດຍວິທີອື່ນເຊັ່ນໄຟລ໌ .pgpass, ການເຊື່ອມຕໍ່
ຄວາມພະຍາຍາມຈະລົ້ມເຫລວ. ທາງເລືອກນີ້ສາມາດເປັນປະໂຫຍດໃນ batch jobs ແລະ scripts ທີ່ບໍ່ມີຜູ້ໃຊ້
ປະຈຸບັນໃຫ້ໃສ່ລະຫັດຜ່ານ.
-W
-ລະຫັດຜ່ານ
ບັງຄັບ pg_receivexlog ເພື່ອເຕືອນລະຫັດຜ່ານກ່ອນທີ່ຈະເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນ.
ຕົວເລືອກນີ້ບໍ່ຈໍາເປັນ, ເພາະວ່າ pg_receivexlog ຈະເຕືອນອັດຕະໂນມັດສໍາລັບ a
ລະຫັດຜ່ານຖ້າເຄື່ອງແມ່ຂ່າຍຕ້ອງການການກວດສອບລະຫັດຜ່ານ. ຢ່າງໃດກໍຕາມ, pg_receivexlog ຈະ
ສູນເສຍຄວາມພະຍາຍາມໃນການເຊື່ອມຕໍ່ເພື່ອຊອກຫາວ່າເຄື່ອງແມ່ຂ່າຍຕ້ອງການລະຫັດຜ່ານ. ໃນບາງກໍລະນີ
ມັນຄຸ້ມຄ່າທີ່ຈະພິມ -W ເພື່ອຫຼີກເວັ້ນການພະຍາຍາມເຊື່ອມຕໍ່ພິເສດ.
pg_receivexlog ສາມາດປະຕິບັດຫນຶ່ງໃນສອງການປະຕິບັດຕໍ່ໄປນີ້ເພື່ອຄວບຄຸມທາງດ້ານຮ່າງກາຍ
ຊ່ອງ replication:
--ສ້າງ-ຊ່ອງ
ສ້າງຊ່ອງ replication ທາງດ້ານຮ່າງກາຍໃຫມ່ທີ່ມີຊື່ທີ່ລະບຸໄວ້ໃນ --ຊ່ອງ, ຫຼັງຈາກນັ້ນອອກ.
-- drop-slot
ວາງຊ່ອງ replication ດ້ວຍຊື່ທີ່ລະບຸໄວ້ໃນ --ຊ່ອງ, ຫຼັງຈາກນັ້ນອອກ.
ທາງເລືອກອື່ນຍັງມີຢູ່:
-V
- ການປ່ຽນແປງ
ພິມສະບັບ pg_receivexlog ແລະອອກ.
-?
- ຊ່ວຍ
ສະແດງການຊ່ວຍເຫຼືອກ່ຽວກັບ pg_receivexlog arguments ແຖວຄໍາສັ່ງ, ແລະອອກ.
ENVIRONMENT
ຜົນປະໂຫຍດນີ້, ເຊັ່ນດຽວກັນກັບຜົນປະໂຫຍດ PostgreSQL ອື່ນໆ, ໃຊ້ຕົວແປສະພາບແວດລ້ອມ
ສະຫນັບສະຫນູນໂດຍ libpq (ເບິ່ງພາກ 31.14, "ຕົວແປສະພາບແວດລ້ອມ", ໃນເອກະສານ).
ຫມາຍເຫດ
ເມື່ອໃຊ້ pg_receivexlog ແທນ archive_command ເປັນວິທີການສໍາຮອງຂໍ້ມູນ WAL ຕົ້ນຕໍ, ມັນແມ່ນ
ແນະນໍາໃຫ້ໃຊ້ສະລັອດຕິງ replication. ຖ້າບໍ່ດັ່ງນັ້ນ, ເຄື່ອງແມ່ຂ່າຍແມ່ນບໍ່ເສຍຄ່າເພື່ອ recycle ຫຼື
ເອົາໄຟລ໌ບັນທຶກການເຮັດທຸລະກໍາອອກກ່ອນທີ່ພວກມັນຈະຖືກສໍາຮອງ, ເພາະວ່າມັນບໍ່ມີ
ຂໍ້ມູນ, ບໍ່ວ່າຈະມາຈາກ archive_command ຫຼືຊ່ອງ replication, ກ່ຽວກັບວ່າ WAL ໄກປານໃດ
stream ໄດ້ຖືກເກັບໄວ້. ຢ່າງໃດກໍຕາມ, ໃຫ້ສັງເກດວ່າຊ່ອງ replication ຈະຕື່ມຂໍ້ມູນໃສ່ເຄື່ອງແມ່ຂ່າຍຂອງ
ພື້ນທີ່ດິສກ໌ຖ້າຜູ້ຮັບບໍ່ໄດ້ສືບຕໍ່ດຶງຂໍ້ມູນ WAL.
ຕົວຢ່າງ
ເພື່ອຖ່າຍທອດບັນທຶກການເຮັດທຸລະກໍາຈາກເຄື່ອງແມ່ຂ່າຍທີ່ mydbserver ແລະເກັບຮັກສາມັນຢູ່ໃນທ້ອງຖິ່ນ
ໄດເລກະທໍລີ /usr/local/pgsql/archive:
$ pg_receivexlog -h mydbserver -D /usr/local/pgsql/archive
ໃຊ້ pg_receivexlog ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net