日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql开启gtid dump_mysqldump关于--set-gtid-purged=OFF的使用

發布時間:2023/12/4 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql开启gtid dump_mysqldump关于--set-gtid-purged=OFF的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫的模式中我開啟了gtid:

mysql> show variables like '%gtid%';

+----------------------------------+-----------+

| Variable_name | Value |

+----------------------------------+-----------+

| binlog_gtid_simple_recovery | ON |

| enforce_gtid_consistency | ON |

| gtid_executed_compression_period | 1000 |

| gtid_mode | ON |

| gtid_next | AUTOMATIC |

| gtid_owned | |

| gtid_purged | |

| session_track_gtids | OFF |

+----------------------------------+-----------+

我現在數據庫中有一world的庫,并且在庫中有一個country表,現在進行備份時會提示如下警告:

[root@smiletest data]# mysqldump -uroot -p -R -e --triggers --master-data=2 --single-transaction world country >/tmp/countryno.sql

Enter password:

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.

我們來對比下加了 --set-gtid-purged=OFF和不加的區別

countryno.sql是沒有加--set-gtid-purged=OFF

[root@smiletest data]# mysqldump -uroot -p -R -e --triggers --master-data=2 --single-transaction world country >/tmp/countryno.sql

countryyes.sql是加--set-gtid-purged=OFF

[root@smiletest data]# mysqldump -uroot -p -R -e --triggers --master-data=2 --single-transaction --set-gtid-purged=OFF world country >/tmp/countryyes.sql

Enter password:

沒有加--set-gtid-purged=OFF的里面會多幾條語句

SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;

SET @@SESSION.SQL_LOG_BIN= 0;

-- GTID state at the beginning of the backup

SET @@GLOBAL.GTID_PURGED='e024c334-8b64-11e9-80dc-fa163e4bfc29:1-761734';

現在我們進行導入剛沒有加--set-gtid-purged=OFF備份的/tmp/countryno.sql語句

mysql> show master status;

+------------------+----------+--------------+------------------+-----------------------------------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-----------------------------------------------+

| mysql-bin.000013 | 85019 | | | e024c334-8b64-11e9-80dc-fa163e4bfc29:1-761735 |

+------------------+----------+--------------+------------------+-----------------------------------------------+

1 row in set (0.00 sec)

mysql> source /tmp/countryno.sql

Query OK, 0 rows affected (0.00 sec)

mysql> show master status;

+------------------+----------+--------------+------------------+-----------------------------------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-----------------------------------------------+

| mysql-bin.000013 | 85019 | | | e024c334-8b64-11e9-80dc-fa163e4bfc29:1-761735 |

+------------------+----------+--------------+------------------+-----------------------------------------------+

1 row in set (0.00 sec)

結論發現,gtid事務和 Position都沒有增加

現在我們進行導入剛加--set-gtid-purged=OFF備份的/tmp/countryyes.sql語句

mysql> drop table country;

Query OK, 0 rows affected (0.01 sec)

mysql> show master status;

+------------------+----------+--------------+------------------+-----------------------------------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-----------------------------------------------+

| mysql-bin.000013 | 112669 | | | e024c334-8b64-11e9-80dc-fa163e4bfc29:1-761742 |

+------------------+----------+--------------+------------------+-----------------------------------------------+

1 row in set (0.00 sec)

mysql> source /tmp/countryyes.sql

Query OK, 0 rows affected (0.00 sec)

mysql> show master status;

+------------------+----------+--------------+------------------+-----------------------------------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-----------------------------------------------+

| mysql-bin.000013 | 139929 | | | e024c334-8b64-11e9-80dc-fa163e4bfc29:1-761747 |

+------------------+----------+--------------+------------------+-----------------------------------------------+

1 row in set (0.00 sec)

mysql>

結論發現,gtid事務和 Position都增加了

結論

加了--set-gtid-purged=OFF時,在會記錄binlog日志,如果不加,不記錄binlog日志,所以在我們做主從用了gtid時,用mysqldump備份時就要加--set-gtid-purged=OFF,否則你在主上導入恢復了數據,主沒有了binlog日志,同步則不會被同步。

總結

以上是生活随笔為你收集整理的mysql开启gtid dump_mysqldump关于--set-gtid-purged=OFF的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。