ນີ້ແມ່ນຄໍາສັ່ງ mysqlreplicate ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
mysqlreplicate - ຕັ້ງຄ່າແລະເລີ່ມຕົ້ນການຈໍາລອງລະຫວ່າງສອງເຄື່ອງແມ່ຂ່າຍ
ສະຫຼຸບສັງລວມ
mysqlreplicate [ທາງເລືອກໃນການ]
ລາຍລະອຽດ
ຜົນປະໂຫຍດນີ້ອະນຸຍາດໃຫ້ຜູ້ບໍລິຫານເລີ່ມຕົ້ນການຈໍາລອງຈາກເຄື່ອງແມ່ຂ່າຍຫນຶ່ງ (ແມ່ບົດ) ໄປ
ອື່ນ (ສໍາລອງ). ຜູ້ໃຊ້ສະຫນອງຂໍ້ມູນການເຂົ້າສູ່ລະບົບສໍາລັບສໍາລອງແລະການເຊື່ອມຕໍ່
ຂໍ້ມູນສໍາລັບການເຊື່ອມຕໍ່ກັບແມ່ບົດ. ມັນຍັງສາມາດກໍານົດຖານຂໍ້ມູນທີ່ຈະເປັນ
ໃຊ້ເພື່ອທົດສອບການຈຳລອງ.
ຍູທິລິຕີ້ລາຍງານສະພາບທີ່ເຄື່ອງຈັກເກັບຮັກສາຢູ່ໃນແມ່ບົດແລະສໍາລອງ
ແຕກຕ່າງກັນ. ມັນຍັງລາຍງານເຕືອນຖ້າຫາກວ່າເຄື່ອງຈັກໃນການເກັບຮັກສາ InnoDB ແຕກຕ່າງກັນກ່ຽວກັບແມ່ບົດແລະ
ທາດ. ເພື່ອໃຫ້ InnoDB ຄືກັນ, ທັງສອງເຊີບເວີຈະຕ້ອງໃຊ້ "ປະເພດ" ດຽວກັນຂອງ InnoDB
(built-in ຫຼື InnoDB Plugin), ແລະ InnoDB ໃນເຄື່ອງແມ່ຂ່າຍທັງສອງຕ້ອງມີຕົ້ນຕໍດຽວກັນແລະ.
ຕົວເລກເວີຊັນເລັກນ້ອຍ ແລະສະຖານະທີ່ເປີດໃຊ້ແລ້ວ.
ໂດຍຄ່າເລີ່ມຕົ້ນ, ຜົນປະໂຫຍດອອກຄໍາເຕືອນສໍາລັບຄວາມບໍ່ກົງກັນລະຫວ່າງຊຸດການເກັບຮັກສາ
ເຄື່ອງຈັກ, ເຄື່ອງຈັກເກັບຮັກສາໄວ້ໃນຕອນຕົ້ນ, ແລະເຄື່ອງຈັກເກັບຮັກສາ InnoDB. ເພື່ອຜະລິດຄວາມຜິດພາດ
ແທນທີ່ຈະ, ໃຊ້ -- pedantic ທາງເລືອກ, ເຊິ່ງຮຽກຮ້ອງໃຫ້ມີເຄື່ອງຈັກໃນການເກັບຮັກສາທີ່ຈະຄືກັນໃນ
ນາຍແລະຂ້າໃຊ້.
ໄດ້ -vv ທາງເລືອກສະແດງຄວາມແຕກຕ່າງລະຫວ່າງເຄື່ອງຈັກເກັບຮັກສາແລະຄ່າ InnoDB,
ມີຫຼືບໍ່ມີ -- pedantic ທາງເລືອກ.
Replication ສາມາດເລີ່ມຕົ້ນໂດຍໃຊ້ຫນຶ່ງໃນຍຸດທະສາດຕໍ່ໄປນີ້.
· ເລີ່ມຈາກຕໍາແຫນ່ງໃນປັດຈຸບັນ (ຄ່າເລີ່ມຕົ້ນ)
ເລີ່ມການຈໍາລອງຈາກໄຟລ໌ບັນທຶກຖານສອງຕົ້ນສະບັບປັດຈຸບັນ ແລະຕໍາແຫນ່ງ. ປະໂຫຍດ
ໃຊ້ໄດ້ ສະແດງໃຫ້ເຫັນ MASTER STATUS ຖະແຫຼງການເພື່ອດຶງຂໍ້ມູນນີ້.
·ເລີ່ມຕົ້ນຈາກຈຸດເລີ່ມຕົ້ນ
ເລີ່ມການຈຳລອງຈາກເຫດການທຳອິດທີ່ບັນທຶກໄວ້ໃນບັນທຶກຫຼັກຖານສອງ. ເພື່ອເຮັດສິ່ງນີ້,
ການນໍາໃຊ້ --ເລີ່ມຈາກຕົ້ນ ທາງເລືອກ.
· ເລີ່ມຈາກໄຟລ໌ບັນທຶກຖານສອງ
ເລີ່ມການຈໍາລອງຈາກເຫດການທໍາອິດໃນໄຟລ໌ບັນທຶກຄູ່ຕົ້ນສະບັບສະເພາະ. ເຮັດ
ນີ້, ໃຊ້ --master-log-file ທາງເລືອກ.
· ເລີ່ມຈາກເຫດການສະເພາະ
ເລີ່ມການຈໍາລອງຈາກຈຸດປະສານງານເຫດການສະເພາະ (ໄຟລ໌ບັນທຶກຖານສອງສະເພາະ ແລະ
ຕໍາແຫນ່ງ). ເພື່ອເຮັດສິ່ງນີ້, ໃຫ້ໃຊ້ --master-log-file ແລະ --master-log-pos ຕົວເລືອກ
OPTIONS
mysqlreplicate ຍອມຮັບຕົວເລືອກແຖວຄໍາສັ່ງຕໍ່ໄປນີ້:
· -- ຊ່ວຍ
ສະແດງຂໍ້ຄວາມຊ່ວຍເຫຼືອ ແລະອອກ.
· --master=
ຂໍ້ມູນການເຊື່ອມຕໍ່ສໍາລັບເຄື່ອງແມ່ຂ່າຍຕົ້ນສະບັບໃນຮູບແບບ:
<ຜູ້ໃຊ້>[:passwd>]@ເຈົ້າພາບ>[:port>][:socket>] ຫຼືເສັ້ນທາງເຂົ້າສູ່ລະບົບ>[:port>][:socket>].
· --master-log-file=
ເລີ່ມການຈໍາລອງຈາກຈຸດເລີ່ມຕົ້ນຂອງໄຟລ໌ບັນທຶກຕົ້ນສະບັບນີ້.
· --master-log-pos=
ເລີ່ມຕົ້ນການຈໍາລອງຈາກຕໍາແຫນ່ງນີ້ໃນໄຟລ໌ບັນທຶກຕົ້ນສະບັບ. ຕົວເລືອກນີ້ບໍ່ຖືກຕ້ອງ
ເວັ້ນເສຍແຕ່ວ່າ --master-log-file ແມ່ນໃຫ້.
· --pedantic, -p
ລົ້ມເຫລວຖ້າເຄື່ອງແມ່ຂ່າຍທັງສອງບໍ່ມີຊຸດເຄື່ອງຈັກການເກັບຮັກສາດຽວກັນ, ຄ່າເລີ່ມຕົ້ນດຽວກັນ
ເຄື່ອງຈັກການເກັບຮັກສາ, ແລະເຄື່ອງຈັກເກັບຮັກສາ InnoDB ດຽວກັນ.
· --rpl-user=
ຜູ້ໃຊ້ແລະລະຫັດຜ່ານສໍາລັບຜູ້ໃຊ້ replication, ໃນຮູບແບບ:ຜູ້ໃຊ້>[:ລະຫັດຜ່ານ>] ຫຼື
<ເສັ້ນທາງເຂົ້າສູ່ລະບົບ>. ຄ່າເລີ່ມຕົ້ນແມ່ນ rpl:rpl.
· --slave=
ຂໍ້ມູນການເຊື່ອມຕໍ່ສໍາລັບ slave server ໃນຮູບແບບ:
<ຜູ້ໃຊ້>[:passwd>]@ເຈົ້າພາບ>[:port>][:socket>] ຫຼືເສັ້ນທາງເຂົ້າສູ່ລະບົບ>[:port>][:socket>].
· --start-from-starting, -b
ເລີ່ມການຈຳລອງໃນຕອນຕົ້ນຂອງເຫດການທີ່ບັນທຶກໄວ້ໃນບັນທຶກຄູ່ຫຼັກ. ນີ້
ທາງເລືອກແມ່ນບໍ່ຖືກຕ້ອງເວັ້ນເສຍແຕ່ທັງສອງ --master-log-file ແລະ --master-log-pos ແມ່ນໃຫ້.
· --test-db=
ຊື່ຖານຂໍ້ມູນທີ່ຈະໃຊ້ສໍາລັບການທົດສອບການຕິດຕັ້ງ replication. ຖ້າທາງເລືອກນີ້ບໍ່ແມ່ນ
ໃຫ້, ບໍ່ມີການທົດສອບແມ່ນເຮັດ, ພຽງແຕ່ການກວດສອບຄວາມຜິດພາດ.
· --verbose, -v
ລະບຸຂໍ້ມູນຫຼາຍປານໃດທີ່ຈະສະແດງ. ໃຊ້ຕົວເລືອກນີ້ຫຼາຍຄັ້ງເພື່ອເພີ່ມ
ຈໍານວນຂໍ້ມູນ. ຍົກຕົວຢ່າງ, -v = ຄຳເວົ້າ, -vv = ຄໍາເວົ້າຫຼາຍ, -vvv =
ດີບັກ.
· -- ສະບັບ
ສະແດງຂໍ້ມູນສະບັບແລະອອກ.
ຫມາຍເຫດ
ຜູ້ໃຊ້ເຂົ້າສູ່ລະບົບສໍາລັບເຄື່ອງແມ່ຂ່າຍຕົ້ນສະບັບຕ້ອງມີການອະນຸຍາດທີ່ເຫມາະສົມເພື່ອໃຫ້ການເຂົ້າເຖິງ
ກັບຖານຂໍ້ມູນທັງຫມົດແລະຄວາມສາມາດໃນການສ້າງບັນຊີຜູ້ໃຊ້. ຕົວຢ່າງ, ບັນຊີຜູ້ໃຊ້
ໃຊ້ເພື່ອເຊື່ອມຕໍ່ກັບແມ່ບົດຕ້ອງມີ ກັບ ອະນຸມັດ ທາງເລືອກ ສິດທິພິເສດ.
ID ເຊີບເວີໃນແມ່ແບບ ແລະ slave ຈະຕ້ອງບໍ່ແມ່ນສູນ ແລະເປັນເອກະລັກ. ຜົນປະໂຫຍດລາຍງານ an
ຂໍ້ຜິດພາດຖ້າ ID ເຊີບເວີແມ່ນ 0 ຢູ່ໃນເຄື່ອງແມ່ຂ່າຍຫຼືດຽວກັນກັບແມ່ບົດແລະ slave. ຕັ້ງ
ຄ່າເຫຼົ່ານີ້ກ່ອນທີ່ຈະເລີ່ມຕົ້ນຜົນປະໂຫຍດນີ້.
ການປະສົມ IP ແລະ hostnames ແມ່ນບໍ່ແນະນໍາ. ຜົນປະໂຫຍດສະເພາະຂອງ replication ຈະ
ພະຍາຍາມປຽບທຽບຊື່ໂຮດແລະທີ່ຢູ່ IP ເປັນນາມແຝງສໍາລັບການກວດສອບການເຊື່ອມຕໍ່ສໍາລອງ
ກັບແມ່ບົດ. ຢ່າງໃດກໍຕາມ, ຖ້າຫາກວ່າການຕິດຕັ້ງຂອງທ່ານບໍ່ສະຫນັບສະຫນູນການຊອກຫາຊື່ reverse, ໄດ້
ການປຽບທຽບອາດຈະລົ້ມເຫລວ. ໂດຍບໍ່ມີຄວາມສາມາດໃນການຊອກຫາຊື່ແບບປີ້ນກັບກັນ, ການຈໍາລອງການຈໍາລອງ
utilities ສາມາດລາຍງານເປັນລົບທີ່ບໍ່ຖືກຕ້ອງວ່າສໍາລອງແມ່ນ (ບໍ່) ເຊື່ອມຕໍ່ກັບແມ່ບົດ.
ຕົວຢ່າງ: ຖ້າເຈົ້າຕັ້ງຄ່າການຈໍາລອງແບບໃຊ້ MASTER_HOST=ubuntu.net ເທິງ slave ແລະຕໍ່ມາ.
ເຊື່ອມຕໍ່ກັບ slave ດ້ວຍ mysqlrplcheck ແລະມີ master ລະບຸເປັນ
--master=192.168.0.6 ໂດຍໃຊ້ທີ່ຢູ່ IP ທີ່ຖືກຕ້ອງສໍາລັບ ubuntu.net, ທ່ານຕ້ອງມີຄວາມສາມາດ.
ເພື່ອເຮັດການຊອກຫາຊື່ reverse ເພື່ອປຽບທຽບ IP (192.168.0.6) ແລະ hostname (ubuntu.net)
ເພື່ອກໍານົດວ່າພວກເຂົາເປັນເຄື່ອງດຽວກັນ.
ເສັ້ນທາງໄປສູ່ເຄື່ອງມືລູກຄ້າ MySQL ຄວນຈະຖືກລວມເຂົ້າໃນສະພາບແວດລ້ອມ PATH ທີ່ມີການປ່ຽນແປງໃນ
ເພື່ອໃຊ້ກົນໄກການພິສູດຢືນຢັນດ້ວຍເສັ້ນທາງເຂົ້າສູ່ລະບົບ. ນີ້ຈະອະນຸຍາດໃຫ້ປະໂຫຍດທີ່ຈະ
ໃຊ້ເຄື່ອງມື my_print_defaults ທີ່ຕ້ອງການເພື່ອອ່ານຄ່າ login-path ຈາກ
ໄຟລ໌ການຕັ້ງຄ່າການເຂົ້າສູ່ລະບົບ (.mylogin.cnf).
ຕົວຢ່າງ
ເພື່ອຕັ້ງຄ່າການຈໍາລອງລະຫວ່າງສອງຕົວຢ່າງ MySQL ທີ່ເຮັດວຽກຢູ່ໃນພອດທີ່ແຕກຕ່າງກັນຂອງດຽວກັນ
ເຈົ້າພາບໂດຍໃຊ້ການຕັ້ງຄ່າເລີ່ມຕົ້ນ, ໃຊ້ຄໍາສັ່ງນີ້:
$ mysqlreplicate --master=root@localhost:3306 \
--slave=root@localhost:3307 --rpl-user=rpl:rpl
# master on localhost: ... ເຊື່ອມຕໍ່.
# slave on localhost: ... ເຊື່ອມຕໍ່.
# ກຳລັງກວດສອບການເຂົ້າລະບົບ binary ໃນ master...
# ຕັ້ງຄ່າການຈຳລອງ...
# ...ແລ້ວໆ.
ຄໍາສັ່ງຕໍ່ໄປນີ້ໃຊ້ -- pedantic ເພື່ອຮັບປະກັນວ່າ replication ລະຫວ່າງແມ່ບົດແລະ
slave ຈະປະສົບຜົນສໍາເລັດຖ້າເຄື່ອງແມ່ຂ່າຍທັງສອງມີເຄື່ອງຈັກເກັບຮັກສາດຽວກັນທີ່ມີຢູ່,
ເຄື່ອງຈັກເກັບຂໍ້ມູນເລີ່ມຕົ້ນດຽວກັນ, ແລະເຄື່ອງຈັກເກັບຂໍ້ມູນ InnoDB ດຽວກັນ:
$ mysqlreplicate --master=root@localhost:3306 \
--slave=root@localhost:3307 --rpl-user=rpl:rpl -vv --pedantic
# master on localhost: ... ເຊື່ອມຕໍ່.
# slave on localhost: ... ເຊື່ອມຕໍ່.
# master id = 2
#ຂ້າທາດ = 99
# ການກວດສອບສະຖິຕິ InnoDB ສໍາລັບຄວາມຂັດແຍ້ງຂອງປະເພດແລະສະບັບ.
# ກຳລັງກວດສອບເຄື່ອງຈັກເກັບຂໍ້ມູນ...
# ກຳລັງກວດສອບການເຂົ້າລະບົບ binary ໃນ master...
# ຕັ້ງຄ່າການຈຳລອງ...
# ໂຕະຊັກເຄື່ອງຢູ່ເທິງແມ່ບົດພ້ອມລັອກອ່ານ...
# ການເຊື່ອມຕໍ່ຂ້າໃຊ້ກັບແມ່ບົດ ...
# ປ່ຽນ MASTER ເປັນ MASTER_HOST = [...omitted...]
#ເລີ່ມເປັນທາດ...
# ສະຖານະ: ກຳລັງລໍຖ້າແມ່ບົດສົ່ງເຫດການ
# ຂໍ້ຜິດພາດ: 0:
# ການປົດລັອກຕາຕະລາງກ່ຽວກັບແມ່ບົດ ...
# ...ແລ້ວໆ.
ຄໍາສັ່ງຕໍ່ໄປນີ້ເລີ່ມຕົ້ນ replication ຈາກຕໍາແຫນ່ງປະຈຸບັນຂອງຕົ້ນສະບັບ (ຊຶ່ງເປັນ
ຄ່າເລີ່ມຕົ້ນ):
$ mysqlreplicate --master=root@localhost:3306 \
--slave=root@localhost:3307 --rpl-user=rpl:rpl
# master on localhost: ... ເຊື່ອມຕໍ່.
# slave on localhost: ... ເຊື່ອມຕໍ່.
# ກຳລັງກວດສອບການເຂົ້າລະບົບ binary ໃນ master...
# ຕັ້ງຄ່າການຈຳລອງ...
# ...ແລ້ວໆ.
ຄໍາສັ່ງຕໍ່ໄປນີ້ເລີ່ມຕົ້ນການຈໍາລອງຈາກການເລີ່ມຕົ້ນຂອງເຫດການທີ່ບັນທຶກໄວ້ໃນ
ແມ່ບົດ:
$ mysqlreplicate --master=root@localhost:3306 \
--slave=root@localhost:3307 --rpl-user=rpl:rpl \
--ເລີ່ມຈາກຕົ້ນ
# master on localhost: ... ເຊື່ອມຕໍ່.
# slave on localhost: ... ເຊື່ອມຕໍ່.
# ກຳລັງກວດສອບການເຂົ້າລະບົບ binary ໃນ master...
# ຕັ້ງຄ່າການຈຳລອງ...
# ...ແລ້ວໆ.
ຄໍາສັ່ງຕໍ່ໄປນີ້ເລີ່ມຕົ້ນການຈໍາລອງຈາກຈຸດເລີ່ມຕົ້ນຂອງຄູ່ຕົ້ນສະບັບສະເພາະ
ໄຟລ໌ບັນທຶກ:
$ mysqlreplicate --master=root@localhost:3306 \
--slave=root@localhost:3307 --rpl-user=rpl:rpl \
--master-log-file=my_log.000003
# master on localhost: ... ເຊື່ອມຕໍ່.
# slave on localhost: ... ເຊື່ອມຕໍ່.
# ກຳລັງກວດສອບການເຂົ້າລະບົບ binary ໃນ master...
# ຕັ້ງຄ່າການຈຳລອງ...
# ...ແລ້ວໆ.
ຄໍາສັ່ງຕໍ່ໄປນີ້ເລີ່ມຕົ້ນການຈໍາລອງຈາກຈຸດປະສານງານບັນທຶກຖານສອງຫຼັກສະເພາະ
(ເອກະສານບັນທຶກສະເພາະ ແລະຕຳແໜ່ງ):
$ mysqlreplicate --master=root@localhost:3306 \
--slave=root@localhost:3307 --rpl-user=rpl:rpl \
--master-log-file=my_log.000001 --master-log-pos=96
# master on localhost: ... ເຊື່ອມຕໍ່.
# slave on localhost: ... ເຊື່ອມຕໍ່.
# ກຳລັງກວດສອບການເຂົ້າລະບົບ binary ໃນ master...
# ຕັ້ງຄ່າການຈຳລອງ...
# ...ແລ້ວໆ.
ຄໍາແນະນໍາ
ທ່ານຄວນຕັ້ງ read_only=1 ໃນໄຟລ໌ my.cnf ສໍາລັບ slave ເພື່ອຮັບປະກັນວ່າບໍ່ມີອຸບັດຕິເຫດ.
ການປ່ຽນແປງຂໍ້ມູນ, ເຊັ່ນ: INSERT, DELETE, UPDATE, ແລະອື່ນໆ, ແມ່ນອະນຸຍາດໃຫ້ສໍາລອງ
ນອກເຫນືອຈາກສິ່ງທີ່ຜະລິດໂດຍເຫດການທີ່ອ່ານຈາກແມ່ບົດ.
ການນໍາໃຊ້ -- pedantic ແລະ -vv ທາງເລືອກສໍາລັບການສ້າງຕັ້ງການຈໍາລອງໃນເຄື່ອງແມ່ຂ່າຍການຜະລິດເພື່ອ
ຫຼີກເວັ້ນບັນຫາທີ່ເປັນໄປໄດ້ກັບເຄື່ອງຈັກການເກັບຮັກສາທີ່ແຕກຕ່າງກັນ.
COPYRIGHT
ໃຊ້ mysqlreplicate ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net