国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

解決mysql二進制日志恢復數據報錯

2024-07-24 12:35:50
字體:
來源:轉載
供稿:網友
  解決mysql利用二進制日志恢復數據報錯:ERROR 1781 (HY000) at line 16: @@SESSION.GTID_NEXT cannot be set to UUID:NUMBER when @@GLOBAL.GTID_MODE = OFF.
 
  工作中,運用二進制日志,幫開發的同事恢復數據時,出現了報錯告警:
 
  [root@localhost tmp]# mysqlbinlog --no-defaults mysql-bin.000614|mysql -uroot -p
  Enter password:
  ERROR 1781 (HY000) at line 16: @@SESSION.GTID_NEXT cannot be set to UUID:NUMBER when @@GLOBAL.GTID_MODE = OFF.
  [root@localhost tmp]# mysqlbinlog --no-defaults mysql-bin.000614|mysql -uroot -p
  Enter password:
  [root@localhost tmp]# echo $?
  0
  服務器相關環境參數:
 
  服務器系統:CentOS Linux release 7.3.1611 (Core)
 
  MySQL版本:
 
  mysql> select version();
  +-----------+
  | version() |
  +-----------+
  | 5.7.13    |
  +-----------+
  1 row in set (0.00 sec)
  解決辦法:
 
  配置gtid選項
 
  配置前:
 
  mysql> show global variables like 'gtid_mode';
  ERROR 2006 (HY000): MySQL server has gone away
  No connection. Trying to reconnect...
  Connection id:    24
  Current database: gold
  +---------------+-------+
  | Variable_name | Value |
  +---------------+-------+
  | gtid_mode     | OFF   |
  +---------------+-------+
  1 row in set (0.10 sec)
  配置后:
 
  mysql> set @@GLOBAL.GTID_MODE = on;
  ERROR 1788 (HY000): The value of @@GLOBAL.GTID_MODE can only be changed one step at a time: OFF <-> OFF_PERMISSIVE <-> ON_PERMISSIVE <-> ON. Also note that this value must be stepped up or down simultaneously on all servers. See the Manual for instructions.
  mysql> set @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;
  mysql> show global variables like 'gtid_mode';
  +---------------+----------------+
  | Variable_name | Value          |
  +---------------+----------------+
  | gtid_mode     | OFF_PERMISSIVE |
  +---------------+----------------+
  1 row in set (0.00 sec)
   GTID相關知識:
 
  GTID(GlobalTransaction ID)是對于一個已提交事務的編號,并且是一個全局唯一的編號。GTID實際上是由UUID+TID組成的。其中UUID是一個MySQL實例的唯一標識。TID代表了該實例上已經提交的事務數量,并且隨著事務提交單調遞增。
 
  MySQL5.6增加了GTID復制。
 
  一個事務對應一個唯一ID。
 
  一個GTID在一個服務器上只會執行一次。
 
  GTID是用來替代以前classic的復制方法。
 
  優點:
 
  相對于行復制來講數據安全性更高;
 
  故障切換更簡單;
 
  GTID的使用局限:
 
  不支持非事務引擎(從庫報錯,stopslave; start slave; 忽略);
 
  不支持create table … select 語句復制(主庫直接報錯);不支持sql_slave_skip_counter;
 
  對于createtemporary table 和drop temporary table語句不支持;
 
  不允許在一個SQL同時更新一個事務引擎和非事務引擎的表;
 
  在一個復制組中,必須要求統一開啟CTID或是關閉GTID;
 
  開啟DTID需要重啟(5.7中可能不需要);
 
  開啟DTID后,就不在使用原來的傳統的復制方式;
 
  gtid和非gtid的mysql實例是不能復制數據的,要么都是gtid,要么都是普通的;
 
  更新非事務引擎表,在同一事務中更新事務表與非事務表將導致多個GTIDs分配給同一事務;
 
  臨時表,事務內部不能執行創建刪除臨時表語句,但可以在事務外執行,但必須設置set autocommit = 1;
 
  CREATE TABLE … SELECTstatements
 
  不安全的基于語句復制,實際是兩個獨立的事件,一個用于建表,一個用于向新表插入源表數據。
 
  不執行不支持的語句
 
  啟用--enforce-gtid-consistency選項啟動GTID模式,上述不支持的語句將會返回錯誤。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邳州市| 阿图什市| 库车县| 兰西县| 永安市| 宾阳县| 沧源| 马边| 于田县| 仙游县| 孟连| 汽车| 海城市| 武城县| 繁昌县| 祁门县| 晋州市| 师宗县| 华蓥市| 历史| 蓝田县| 新丰县| 庆云县| 阳山县| 喀喇沁旗| 澄迈县| 周至县| 施甸县| 郓城县| 马山县| 洛宁县| 顺昌县| 确山县| 铅山县| 磐石市| 佛学| 乌拉特中旗| 伊春市| 连平县| 红河县| 类乌齐县|