2

実稼働サーバーのmysqlデータベースを複製するバックアップサーバーがあります。しばらく前に、同じphpスクリプトを使用してステージングサーバーをセットアップしましたが、唯一の違いは、データベースに変更を加えられないように読み取り専用のmysqlユーザーを指定したことです。そしてそれから読むだけです。これと関係があるかどうかはわかりませんが、今日、バックアップが機能しなくなり、次のエラーが発生しました。

Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position'

メーザーからの出力は次のとおりです。

  File: mysql-bin.000208
        Position: 24383202
    Binlog_Do_DB: sexxymofo
Binlog_Ignore_DB:

と奴隷:

Slave_IO_State:
                  Master_Host: 184.168.76.5
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000193
          Read_Master_Log_Pos: 54442531
               Relay_Log_File: mysqld-relay-bin.000155
                Relay_Log_Pos: 54442676
        Relay_Master_Log_File: mysql-bin.000193
             Slave_IO_Running: No
            Slave_SQL_Running: Yes
              Replicate_Do_DB: sexxymofo
          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: 54442531
              Relay_Log_Space: 54442875
              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: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position'
               Last_SQL_Errno: 0
               Last_SQL_Error:

スレーブがマスターの前にあり、存在しない位置にあることがわかるように、誰かが助けることができますか?おそらくプロセスを再開するつもりですが、二度と起こらないようにしたいと思います。

4

1 に答える 1

3

位置はファイル内の位置であるため、スレーブはファイルmysql-bin.000193でかなり遅れており、マスターはすでにmysql-bin.000208にあります。

この設定で不可能なのは、マスターがファイルmysql-bin.000193をパージし、スレーブがIOを実行していないため、そのファイルが転送されていないことです。

于 2011-12-10T20:01:46.460 に答える