sql >> データベース >  >> RDS >> Mysql

GTIDから従来のレプリケーションにロールバックする

    古いものにロールバックしたい場合:

    #次に、GTIDをオフにします

    スレーブ192.168.66.7

    mysql> set global gtid_mode='on_permissive';
    Query OK, 0 rows affected (0.02 sec)

    マスター192.168.66.5

    mysql> set global gtid_mode='on_permissive';
    Query OK, 0 rows affected (0.02 sec)

    スレーブ192.168.66.7

    mysql> set global gtid_mode='off_permissive';
    Query OK, 0 rows affected (0.01 sec)
    
    

    マスター192.168.66.5

    mysql> set global gtid_mode='off_permissive';
    Query OK, 0 rows affected (0.01 sec)
    
    

    この時点で、レプリケーションはスレーブ側で中断されます。スレーブのステータスから表示される以下のエラーのように、スレーブを停止し、マスターの位置とログファイルの記述を変更します。

    スレーブ192.168.66.7

    mysql> show slave status\G
    *************************** 1. row ***************************
    Last_IO_Errno: 13114
    Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 
    'Cannot replicate anonymous transaction when AUTO_POSITION = 1, at file ./mysql-bin.000007, 
    position 196.; the first event '' at 4, the last event read from './mysql-bin.000007' at 275, 
    the last byte read from './mysql-bin.000007' at 275.'
    
    mysql> stop slave;
    Query OK, 0 rows affected (0.00 sec)
    mysql> change master to master_log_file='mysql-bin.000007',
    master_log_pos=196,master_auto_position=0;
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> start slave;
    Query OK, 0 rows affected (0.00 sec)

    ここで、スレーブステータスのレプリケーションが正常に機能することを確認しますが、GTIDを停止する必要があります。

    mysql> show slave status\G
    *************************** 1. row ***************************
    Slave_IO_State: Waiting for master to send event
    Master_Host: 192.168.66.5
    Master_User: syncstndby
    Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000007
    Read_Master_Log_Pos: 1070076
    Relay_Log_File: serverB-relay-bin.000002
    Relay_Log_Pos: 1070204
    Relay_Master_Log_File: mysql-bin.000007
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    .
    .
    Last_Errno: 0
    Last_Error:
    Skip_Counter: 0
    Exec_Master_Log_Pos: 1070076
    Relay_Log_Space: 1070415
    Until_Condition: None
    Until_Log_File:
    Until_Log_Pos: 0
    .
    .
    Seconds_Behind_Master: 0
    Master_SSL_Verify_Server_Cert: No
    Last_IO_Errno: 0
    Last_IO_Error:
    Last_SQL_Errno: 0
    Last_SQL_Error:
    Replicate_Ignore_Server_Ids:
    Master_Server_Id: 1
    Master_UUID: 95358015-b479-11ea-ab4c-080027267f61
    Master_Info_File: mysql.slave_master_info
    SQL_Delay: 0
    SQL_Remaining_Delay: NULL
    Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
    Master_Retry_Count: 86400
    .
    .
    Executed_Gtid_Set: 95358015-b479-11ea-ab4c-080027267f61:1-10110
    .
    .
    Network_Namespace:
    1 row in set (0.00 sec)
    
    
    mysql> select @@global.gtid_owned;
    +---------------------+
    | @@global.gtid_owned |
    +---------------------+
    |                     |
    +---------------------+
    1 row in set (0.00 sec)

    マスター192.168.66.5

    mysql> select @@global.gtid_owned;
    +---------------------+
    | @@global.gtid_owned |
    +---------------------+
    |                     |
    +---------------------+
    1 row in set (0.00 sec)

    次に、gtid-mode =off

    をオフにします。

    スレーブ192.168.66.7

    mysql> set global gtid_mode=off;
    Query OK, 0 rows affected (0.01 sec)

    マスター192.168.66.5

    mysql> set global gtid_mode=off;
    Query OK, 0 rows affected (0.01 sec)

    これにより、戻った後のGTIDの変更が停止します

    Executed_Gtid_Set:95358015-b479-11ea-ab4c-080027267f61:1-10110

    ただし、Exec_Master_Log_Pos:181924 Relay_Log_Space:182357は変更され続けます。この出力は、showslavestatusで確認できます。


    1. MariaDB JSON_OBJECTAGG()の説明

    2. if(isset($ _ POST ['submit']))を使用して、スクリプトが開いているときにエコーを表示しないように機能していません

    3. WindowsへのOracle9iDeveloperSuite2.0のインストール

    4. oracleblobテキスト検索