นี่คือคำสั่ง pt-slave-delayp ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
pt-slave-delay - ทำให้เซิร์ฟเวอร์ทาส MySQL ล่าช้าหลังต้นแบบ
เรื่องย่อ
การใช้งาน: pt-slave-delay [OPTIONS] SLAVE_DSN [MASTER_DSN]
pt-slave-delay เริ่มต้นและหยุดเซิร์ฟเวอร์สเลฟตามความจำเป็นเพื่อให้เซิร์ฟเวอร์ล่าช้าหลังมาสเตอร์
SLAVE_DSN และ MASTER_DSN ใช้ไวยากรณ์ DSN และค่าต่างๆ จะถูกคัดลอกจาก SLAVE_DSN ไปยัง
MASTER_DSN หากไม่ระบุ
ในการถือ slavehost หนึ่งนาทีหลังเจ้านายเป็นเวลาสิบนาที:
pt-slave-delay --delay 1m --interval 15s --run-time 10m ทาสโฮสต์
ความเสี่ยง
Percona Toolkit ได้รับการพัฒนา พิสูจน์แล้วในโลกแห่งความเป็นจริง และผ่านการทดสอบอย่างดี แต่ฐานข้อมูลทั้งหมด
เครื่องมือสามารถก่อให้เกิดความเสี่ยงต่อระบบและเซิร์ฟเวอร์ฐานข้อมูล ก่อนใช้เครื่องมือนี้
กรุณา:
· อ่านเอกสารประกอบของเครื่องมือ
·ตรวจสอบเครื่องมือที่เรียกว่า "BUGS"
· ทดสอบเครื่องมือบนเซิร์ฟเวอร์ที่ไม่ได้ใช้งานจริง
·สำรองเซิร์ฟเวอร์ที่ใช้งานจริงของคุณและตรวจสอบการสำรองข้อมูล
DESCRIPTION
"pt-slave-delay" ดูสเลฟและเริ่มและหยุดการจำลองเธรด SQL เป็น
จำเป็นต้องถือไว้อย่างน้อยที่สุดตามที่คุณร้องขอ ในทางปฏิบัติมัน
โดยทั่วไปจะทำให้ทาสล่าช้าระหว่าง "--delay" และ "--delay"+"--interval" ข้างหลัง
อาจารย์
มันยึดการหน่วงเวลาบนตำแหน่ง binlog ในบันทึกการส่งต่อของสเลฟโดยค่าเริ่มต้น ดังนั้นจึงมี
ไม่จำเป็นต้องเชื่อมต่อกับต้นแบบ วิธีนี้ใช้ได้ผลดีหากเธรด IO ไม่หน่วงเวลามาสเตอร์
มาก ซึ่งเป็นเรื่องปกติในการตั้งค่าการจำลองแบบส่วนใหญ่ มักจะล่าช้าของเธรด IO
มิลลิวินาทีบนเครือข่ายที่รวดเร็ว หากความล่าช้าของเธรด IO ของคุณใหญ่เกินไปสำหรับวัตถุประสงค์ของคุณ
"pt-slave-delay" ยังสามารถเชื่อมต่อกับต้นแบบสำหรับข้อมูลเกี่ยวกับตำแหน่ง binlog
หากเธรด I/O ของทาสรายงานว่ากำลังรอให้เธรด SQL ปล่อยรีเลย์บางส่วน
พื้นที่บันทึก "pt-slave-delay" จะเชื่อมต่อกับต้นแบบโดยอัตโนมัติเพื่อค้นหาบันทึกไบนารี
ตำแหน่ง หากให้ "--ask-pass" และ "--daemonize" เป็นไปได้ที่สิ่งนี้จะ
ทำให้มันถามรหัสผ่านในขณะที่ภูต ในกรณีนี้มันจะออก ดังนั้น ถ้า
คุณคิดว่าทาสของคุณอาจพบกับเงื่อนไขนี้ คุณควรแน่ใจว่าได้ระบุ
"--use-master" อย่างชัดเจนเมื่อทำการ Daemonizing หรือไม่ระบุ "--ask-pass"
SLAVE_DSN และ MASTER_DSN ทางเลือกเป็น DSN ทั้งคู่ ดู "ตัวเลือก DSN" หายไป
ค่า MASTER_DSN จะถูกเติมด้วยค่าจาก SLAVE_DSN ดังนั้นคุณไม่จำเป็นต้องระบุ
ทั้งสองแห่ง "pt-slave-delay" อ่านไฟล์ตัวเลือก MySQL ปกติทั้งหมด เช่น
~/.my.cnfดังนั้นคุณอาจไม่ต้องระบุชื่อผู้ใช้ รหัสผ่าน และตัวเลือกทั่วไปอื่นๆ ที่
ทั้งหมด
"pt-slave-delay" พยายามที่จะออกอย่างสง่างามโดยการดักจับสัญญาณเช่น Ctrl-C คุณไม่สามารถ
บายพาส "-[ไม่]ดำเนินการต่อ" ด้วยสัญญาณที่ดักจับได้
สิทธิพิเศษ
pt-slave-delay ต้องการสิทธิ์ต่อไปนี้: PROCESS, REPLICATION CLIENT และ SUPER
เอาท์พุท
หากคุณระบุ "--เงียบ" จะไม่มีเอาต์พุต มิฉะนั้นเอาต์พุตปกติจะเป็นสถานะ
ข้อความที่ประกอบด้วยการประทับเวลาและข้อมูลเกี่ยวกับสิ่งที่ "pt-slave-delay" กำลังทำอยู่:
เริ่มต้นทาส หยุดทาส หรือเพียงแค่การสังเกต
OPTIONS
เครื่องมือนี้ยอมรับอาร์กิวเมนต์บรรทัดคำสั่งเพิ่มเติม อ้างถึง "บทสรุป" และการใช้งาน
ข้อมูลสำหรับรายละเอียด
--ขอผ่าน
ถามรหัสผ่านเมื่อเชื่อมต่อกับ MySQL
--ชุดอักขระ
แบบสั้น: -A; ประเภท: string
ชุดอักขระเริ่มต้น หากค่าเป็น utf8 ให้ตั้งค่า binmode ของ Perl บน STDOUT เป็น utf8
ส่งผ่านตัวเลือก mysql_enable_utf8 ไปยัง DBD::mysql และรัน SET NAMES UTF8 หลังจากนั้น
เชื่อมต่อกับ MySQL ค่าอื่น ๆ ตั้งค่า binmode บน STDOUT โดยไม่มีเลเยอร์ utf8
และรัน SET NAMES หลังจากเชื่อมต่อกับ MySQL
--การกำหนดค่า
ชนิด: Array
อ่านรายการไฟล์ปรับแต่งที่คั่นด้วยเครื่องหมายจุลภาค ถ้าระบุ ต้องนี่ก่อน
ตัวเลือกบนบรรทัดคำสั่ง
--[ไม่]ทำต่อ
ค่าเริ่มต้น: ใช่
ทำซ้ำตามปกติเมื่อออก หลังจากออก ให้รีสตาร์ทเธรด SQL ของทาส
โดยไม่มีเงื่อนไขจนกว่าจะทำงานตามปกติและทันกับต้นแบบ นี่คือ
เปิดใช้งานโดยค่าเริ่มต้นและทำงานได้แม้ว่าคุณจะยุติ "pt-slave-delay" ด้วย Control-C
--ปีศาจ
ส้อมไปที่พื้นหลังและแยกออกจากเปลือก ระบบปฏิบัติการ POSIX เท่านั้น
--ฐานข้อมูล
แบบสั้น: -D; ประเภท: string
ฐานข้อมูลที่จะใช้ในการเชื่อมต่อ
--defaults-ไฟล์
แบบสั้น: -F; ประเภท: string
อ่านเฉพาะตัวเลือก mysql จากไฟล์ที่กำหนด คุณต้องระบุชื่อพาธที่แน่นอน
--ล่าช้า
ประเภท: เวลา; ค่าเริ่มต้น: 1h
ทาสจะลากนายไปได้ไกลแค่ไหน
--ช่วยด้วย
แสดงความช่วยเหลือและออก
--เจ้าภาพ
แบบสั้น: -h; ประเภท: string
เชื่อมต่อกับโฮสต์
--ช่วงเวลา
ประเภท: เวลา; ค่าเริ่มต้น: 1m
ความถี่ "pt-slave-delay" ควรตรวจสอบว่าจำเป็นต้องเริ่มต้นสเลฟหรือไม่
หยุด
--บันทึก
ประเภท: string
พิมพ์เอาต์พุตทั้งหมดไปยังไฟล์นี้เมื่อ daemonized
--รหัสผ่าน
แบบสั้น: -p; ประเภท: string
รหัสผ่านเพื่อใช้ในการเชื่อมต่อ หากรหัสผ่านมีเครื่องหมายจุลภาค จะต้องหลีกเลี่ยง
ด้วยแบ็กสแลช: "exam\,ple"
--ปิด
ประเภท: string
สร้างไฟล์ PID ที่กำหนด เครื่องมือจะไม่เริ่มทำงานหากมีไฟล์ PID อยู่แล้วและ
PID ที่มีอยู่ในนั้นแตกต่างจาก PID ปัจจุบัน อย่างไรก็ตาม หากไฟล์ PID
มีอยู่และ PID ที่มีอยู่ไม่ทำงานอีกต่อไป เครื่องมือจะเขียนทับ PID
ไฟล์ที่มี PID ปัจจุบัน ไฟล์ PID จะถูกลบออกโดยอัตโนมัติเมื่อเครื่องมือออก
--ท่า
แบบสั้น: -P; ประเภท: int
หมายเลขพอร์ตที่ใช้เชื่อมต่อ
--เงียบ
แบบสั้น: -q
อย่าพิมพ์ข้อความเกี่ยวกับการดำเนินงาน ดู OUTPUT สำหรับรายละเอียด
--รันไทม์
ประเภท: เวลา
"pt-slave-delay" ควรทำงานนานแค่ไหนก่อนออก ค่าเริ่มต้นคือการเรียกใช้ตลอดไป
--set-vars
ชนิด: Array
ตั้งค่าตัวแปร MySQL ในรายการคู่ "variable=value" ที่คั่นด้วยเครื่องหมายจุลภาค
โดยค่าเริ่มต้น เครื่องมือจะตั้งค่า:
wait_timeout=10000
ตัวแปรที่ระบุในบรรทัดคำสั่งจะแทนที่ค่าเริ่มต้นเหล่านี้ ตัวอย่างเช่น,
การระบุ "--set-vars wait_timeout=500" จะแทนที่ค่าเริ่มต้นที่ 10000
เครื่องมือจะพิมพ์คำเตือนและดำเนินการต่อหากไม่สามารถตั้งค่าตัวแปรได้
--เบ้า
แบบฟอร์ม; ประเภท: string
ไฟล์ซ็อกเก็ตที่ใช้สำหรับการเชื่อมต่อ
--use-โท
รับตำแหน่ง binlog จากมาสเตอร์ ไม่ใช่ทาส อย่าเชื่อถือตำแหน่ง binlog ใน
บันทึกการถ่ายทอดของทาส เชื่อมต่อกับต้นแบบและรับตำแหน่ง binlog แทน ถ้าคุณ
ระบุตัวเลือกนี้โดยไม่ต้องให้ MASTER_DSN บนบรรทัดคำสั่ง "pt-slave-delay"
ตรวจสอบ SHOW SLAVE STATUS ของทาสเพื่อกำหนดชื่อโฮสต์และพอร์ตสำหรับ
เชื่อมต่อกับต้นแบบ
"pt-slave-delay" ใช้เฉพาะค่า MASTER_HOST และ MASTER_PORT จาก SHOW SLAVE
สถานะสำหรับการเชื่อมต่อหลัก ไม่ได้ใช้ค่า MASTER_USER ถ้าคุณต้องการ
เพื่อระบุชื่อผู้ใช้ที่แตกต่างกันสำหรับต้นแบบมากกว่าที่คุณใช้เพื่อเชื่อมต่อกับ
ทาส คุณควรระบุตัวเลือก MASTER_DSN อย่างชัดเจนบนบรรทัดคำสั่ง
--ผู้ใช้
แบบสั้น: -u; ประเภท: string
ผู้ใช้สำหรับเข้าสู่ระบบหากไม่ใช่ผู้ใช้ปัจจุบัน
--รุ่น
แสดงเวอร์ชันและออก
--[ไม่] version-check
ค่าเริ่มต้น: ใช่
ตรวจสอบเวอร์ชันล่าสุดของ Percona Toolkit, MySQL และโปรแกรมอื่นๆ
นี่คือคุณสมบัติ "ตรวจหาการอัปเดตอัตโนมัติ" มาตรฐาน พร้อมด้วยคุณสมบัติเพิ่มเติมอีกสองรายการ
คุณสมบัติ. ขั้นแรก เครื่องมือจะตรวจสอบเวอร์ชันของโปรแกรมอื่นๆ บนระบบโลคัลใน
นอกจากเวอร์ชั่นของตัวเองแล้ว ตัวอย่างเช่น จะตรวจสอบเวอร์ชันของทุกเซิร์ฟเวอร์ MySQL
มันเชื่อมต่อกับ Perl และโมดูล Perl DBD::mysql ประการที่สอง ตรวจสอบและเตือน
เกี่ยวกับรุ่นที่มีปัญหาที่ทราบ ตัวอย่างเช่น MySQL 5.5.25 มีจุดบกพร่องที่สำคัญและ
ได้รับการเผยแพร่อีกครั้งในชื่อ 5.5.25a
การอัปเดตหรือปัญหาที่ทราบจะพิมพ์ไปที่ STDOUT ก่อนเอาต์พุตปกติของเครื่องมือ
คุณลักษณะนี้ไม่ควรรบกวนการทำงานปกติของเครื่องมือ
ดูรายละเอียดเพิ่มเติมได้ที่ .
DSN OPTIONS
ตัวเลือก DSN เหล่านี้ใช้เพื่อสร้าง DSN แต่ละตัวเลือกจะได้รับเช่น "option=value"
ตัวเลือกจะคำนึงถึงขนาดตัวพิมพ์ ดังนั้น P และ p ไม่ใช่ตัวเลือกเดียวกัน ไม่สามารถ
ช่องว่างก่อนหรือหลัง "=" และถ้าค่ามีช่องว่างจะต้องยกมา
ตัวเลือก DSN คั่นด้วยเครื่องหมายจุลภาค ดูหน้าคู่มือ percona-toolkit สำหรับรายละเอียดทั้งหมด
·ก
dsn: ชุดอักขระ; สำเนา: ใช่
ชุดอักขระเริ่มต้น
· NS
dsn: ฐานข้อมูล; สำเนา: ใช่
ฐานข้อมูลเริ่มต้น
· NS
dsn: mysql_read_default_file; สำเนา: ใช่
อ่านเฉพาะตัวเลือกเริ่มต้นจากไฟล์ที่กำหนด
·ชม
dsn: โฮสต์; สำเนา: ใช่
เชื่อมต่อกับโฮสต์
· NS
dsn: รหัสผ่าน; สำเนา: ใช่
รหัสผ่านเพื่อใช้ในการเชื่อมต่อ หากรหัสผ่านมีเครื่องหมายจุลภาค จะต้องหลีกเลี่ยง
ด้วยแบ็กสแลช: "exam\,ple"
· ป
dsn: พอร์ต; สำเนา: ใช่
หมายเลขพอร์ตที่ใช้เชื่อมต่อ
· NS
dsn: mysql_socket; สำเนา: ใช่
ไฟล์ซ็อกเก็ตที่ใช้สำหรับการเชื่อมต่อ
· ยู
dsn: ผู้ใช้; สำเนา: ใช่
ผู้ใช้สำหรับเข้าสู่ระบบหากไม่ใช่ผู้ใช้ปัจจุบัน
และพวกเรา
ตัวแปรสภาพแวดล้อม "PTDEBUG" เปิดใช้งานเอาต์พุตการดีบักแบบละเอียดไปยัง STDERR การเปิดใช้งาน
การดีบักและดักจับเอาต์พุตทั้งหมดไปยังไฟล์ เรียกใช้เครื่องมือเช่น:
PTDEBUG=1 pt-slave-delay ... > ไฟล์ 2>&1
ระวัง: การดีบักเอาท์พุตมีจำนวนมากและสามารถสร้างเอาต์พุตได้หลายเมกะไบต์
ระบบ สิ่งที่ต้องมี
คุณต้องมี Perl, DBI, DBD::mysql และแพ็คเกจหลักบางตัวที่ควรติดตั้งในทุก
Perl เวอร์ชันใหม่พอสมควร
ใช้ pt-slave-delayp ออนไลน์โดยใช้บริการ onworks.net