พยายามเข้าใจ SHOW SLAVE STATUS ใน MySQL


11

ฉันมีการตั้งค่าการจำลองแบบ Master-Slave และดูเหมือนว่ามันจะทำงานได้ดี ด้านล่างเป็นผลลัพธ์ของSHOW SLAVE STATUSคำสั่ง:

show slave STATUS\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: *.*.*.*
                  Master_User: repliV1
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 10726644
               Relay_Log_File: mysqld-relay-bin.000056
                Relay_Log_Pos: 231871
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: data1
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 10726644
              Relay_Log_Space: 232172
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:

ผมอยากจะทำความเข้าใจเพิ่มเติมRelay_Log_File, และRelay_Log_PosRelay_Master_Log_File

คำถามของฉันคือ:

  • เป็นความจริงหรือไม่ว่าไฟล์บันทึกการถ่ายทอดเป็นไฟล์ที่อ่านและเก็บไว้ในเครื่องเพื่อให้การเรพลิเคททำงานหรือไม่

  • สิ่งที่เกี่ยวกับrelay_master_log_fileแล้ว; มันแตกต่างจากMaster_Log_Fileอย่างไร

  • ค่าทั้งสองนี้คืออะไร , Read_Master_Log_PosและRelay_Log_Pos? เหตุใดพวกเขาจึงปรากฏขึ้นแม้ว่าการจำลองแบบเสร็จสมบูรณ์และซิงค์กัน

  • เป็นจริงหรือไม่ว่าไฟล์เหล่านี้อยู่ในรูปแบบไบนารีและด้วยเหตุนี้ฉันจึงไม่สามารถดูได้

คำตอบ:


8

ฉันต้องการเข้าใจเพิ่มเติมคือ Relay_Log_File, Relay_Log_Pos และ Relay_Master_Log_File

จากการSHOW SLAVE STATUS\Gได้รับสองค่า

  • Relay_Log_File : บันทึกการถ่ายทอดปัจจุบันยอมรับรายการใหม่ในระหว่างการจำลองแบบ
  • Relay_Log_Pos : ตำแหน่งปัจจุบันของบันทึกการถ่ายทอดปัจจุบันยอมรับรายการใหม่ในระหว่างการจำลองแบบ
  • Relay_Master_Log_File : ไฟล์บันทึกการถ่ายทอดที่มีคำสั่ง SQL ที่ดำเนินการสำเร็จครั้งสุดท้ายบน Master ที่ถูกเรียกใช้บน Slave
  • Master_Log_File: บันทึกของ Master ที่สอดคล้องกับไฟล์บันทึกการถ่ายทอดปัจจุบันและตำแหน่งบันทึกการถ่ายทอดปัจจุบัน

ไฟล์อยู่ในรูปแบบไบนารีดังนั้นจึงไม่สามารถดูได้อย่างถูกต้อง

ใช่คุณสามารถดูบันทึกการถ่ายทอด เนื่องจากพวกเขามีโครงสร้างเดียวกันกับบันทึกไบนารีปกติเพียงแค่เรียกใช้โปรแกรมmysqlbinlog ตัวอย่างเช่นเพื่อดู SQL ภายในบันทึกการถ่ายทอดของคุณใด ๆ เช่นอันสุดท้ายให้ทำดังนี้

mysqlbinlog mysqld-relay-bin.000056 > /root/SQLForCurrentRelayLog.txt
less /root/SQLForCurrentRelayLog.txt

ตอนนี้ฉันชัดเจนขึ้นเกี่ยวกับ Exec_Master_Log_Pos (นี่คือตำแหน่งบันทึกต้นแบบการดำเนินการ) และจนกระทั่ง _log_pos ตำแหน่งที่จะหยุดมันคืออะไร?
newbie14

ผิดพลาดเล็กน้อยที่นี่ Relay_Master_Log_Fileเป็นชื่อของล็อกไฟล์ไบนารีต้นแบบที่มีเหตุการณ์ล่าสุดดำเนินการโดยด้าย SQL ไม่แฟ้มบันทึกการถ่ายทอด
crishoj


8

Relay_Master_Log_Fileจริง ๆ แล้วเป็นชื่อของ binlog ในต้นแบบที่มีคำสั่ง SQL ล่าสุดดำเนินการประสบความสำเร็จในทาส มันไม่ได้ชื่อของบันทึกการถ่ายทอดในทาส ดู: http://dev.mysql.com/doc/refman/5.5/en/show-slave-status.html

Exec_Master_Log_Posเป็นตำแหน่งใน relay_master_log_file ที่สแตรฟ SQL SQL รันไว้ ในตัวอย่างของคุณ slave db ได้ดำเนินการคำสั่งทั้งหมดจนกระทั่ง binlog mysql-bin.000001pos 10726644 บน master db

until_log_posSTART SLAVE UNTIL master_log_pos = $integerที่เป็นจริงที่ใช้เฉพาะถ้าคุณเริ่มต้นทาสของคุณด้วยไวยากรณ์ ไวยากรณ์นั้นจะทำซ้ำไปยังตำแหน่งนั้น (ซึ่งจะเป็นexec_master_log_pos) แล้วหยุด โดยปกติคุณจะทำเช่นนี้หากคุณต้องการทำซ้ำไปยังจุดที่ระบุ แต่ไม่ต้องเพิ่มเติม ค่าuntil_log_posเป็น 0 เมื่อไม่ได้ระบุดังนั้นในกรณีของคุณหมายความว่าการจำลองแบบจะดำเนินต่อไปข้างหน้า


ขอบคุณฉันได้ชัดเจนยิ่งขึ้นในขณะนี้ มีอะไรอีกบ้างที่ต้องตรวจสอบตอนนี้
newbie14
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.