Linux

為什麼在我的複制(主從)過程中,它一直在插入數據,然後刪除數據,然後插入數據?

  • December 17, 2009

我按照本教程進行主從複製: http: //www.howtoforge.com/mysql_master_master_replication

基本上,這就是我所做的。

  1. 兩台伺服器上都解除安裝了mysql。在兩台伺服器上都安裝了 mysql。
  2. 將數據載入到兩台伺服器上。
  3. 遵循複製過程。
  4. 複製刪除了我的表,然後再次創建它們。
  5. 然後,複製開始向表中插入行。然後在達到 300 萬行後刪除它們……然後再次插入行。

為什麼它不能只插入所有行,並使其與我的主人完全相同?為什麼它會一遍又一遍地刪除東西並插入?

show slave status\G;
*************************** 1. row ***************************
            Slave_IO_State: Waiting for master to send event
               Master_Host: 
               Master_User: 
               Master_Port: 
             Connect_Retry: 60
           Master_Log_File: mysql-bin.000025
       Read_Master_Log_Pos: 694442541
            Relay_Log_File: mysqld-relay-bin.000039
             Relay_Log_Pos: 201628150
     Relay_Master_Log_File: mysql-bin.000018
          Slave_IO_Running: Yes
         Slave_SQL_Running: Yes
           Replicate_Do_DB:
       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: 201628013
           Relay_Log_Space: 8213564485
           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: 6343
1 row in set (0.00 sec)

ERROR:
No query specified


show master status\G;
*************************** 1. row ***************************
           File: mysql-bin.000033
       Position: 540194
   Binlog_Do_DB: fal
Binlog_Ignore_DB:
1 row in set (0.01 sec)

在 MySQL 複製中,master 寫出“binlog”文件,僅詳細說明更改複製數據庫的查詢(UPDATE、DELETE、INSERT、CREATE TABLE…,而不是 SELECT 等…)。

從數據庫的相同副本開始,master 寫入 binlog 文件,slave 讀取它們,並執行所有更改:因此複製發生。

您的狀態消息表明從屬伺服器的主伺服器副本不是最新的(6343s = 105 分鐘),並且有一個 SQL 語句隊列要執行,位於 binlog 文件中:

掌握:

File: mysql-bin.000033
Position: 540194

奴隸:

Master_Log_File: mysql-bin.000025
Read_Master_Log_Pos: 694442541
...
Exec_Master_Log_Pos: 201628013
....
Seconds_Behind_Master: 6343

我懷疑主伺服器上發生了一些 DELETE/INSERT 類型的操作,而從伺服器只是在複製更改,儘管延遲了近幾個小時。

要確定它正在執行/即將執行的查詢,您可以使用mysqlbinlog查看(二進制)binlog 文件的內容。

洛克

引用自:https://serverfault.com/questions/95191