mysql恢復報ERROR 2006 (HY000) at line 5303856: MySQL server has gone away錯誤處理

一、問題描述
  mariadb 10.1.16
  centos 6.6
在恢復binlog時,報錯:
[apps@abc backup]$ time /apps/svr/mariadb10/bin/mysqlbinlog mysql-bin.000096 --start-datetime='2017-03-31 01:01:41'|/apps/svr/mariadb10/bin/mysql -u root -p  --

socket=/tmp/mysql3306.sock
Enter password:
ERROR 2006 (HY000) at line 5303856: MySQL server has gone away
real    3m43.697s
user    0m21.772s
sys     0m12.850s

二、問題分析
  查看相關參數如下:
MariaDB [(none)]> show global variables like '%timeout%';
+-----------------------------+----------+
| Variable_name               | Value    |
+-----------------------------+----------+
| connect_timeout             | 10       |
| deadlock_timeout_long       | 50000000 |
| deadlock_timeout_short      | 10000    |
| delayed_insert_timeout      | 300      |
| innodb_flush_log_at_timeout | 1        |
| innodb_lock_wait_timeout    | 45       |
| innodb_rollback_on_timeout  | OFF      |
| interactive_timeout         | 28800    |
| lock_wait_timeout           | 600      |
| net_read_timeout            | 3        |
| net_write_timeout           | 6        |
| slave_net_timeout           | 30       |
| thread_pool_idle_timeout    | 60       |
| wait_timeout                | 28800    |
+-----------------------------+----------+
14 rows in set (0.00 sec)

其中lock_wait_timeout爲300秒,wait_timeout爲28800秒,參數設置不小,再查看 max_allowed_packet參數大小爲67M,大小還好。

MariaDB [(none)]> show variables like '%packet%';
+--------------------------+------------+
| Variable_name            | Value      |
+--------------------------+------------+
| max_allowed_packet       | 67108864   |
| slave_max_allowed_packet | 1073741824 |
+--------------------------+------------+
2 rows in set (0.00 sec)

通過業務表查詢恢復到的時間點爲2017-03-31 15:32:51,如下:

MariaDB [md_sl]> select modify_time from gtyr order by modify_time desc limit 1,5;
+---------------------+
| modify_time         |
+---------------------+
| 2017-03-31 15:32:51 |
| 2017-03-31 15:32:51 |
| 2017-03-31 15:32:51 |
| 2017-03-31 15:32:51 |
| 2017-03-31 15:32:51 |
+---------------------+
5 rows in set (0.64 sec)
而mysql-bin.000096 binlog文件最後生成時間爲15:32,時間點上剛好一致。

[apps@abc backup]$ ls -lt
total 1112044
drwxr-xr-x 8 apps apps      4096 Apr  4 18:38 xtrabackup_20170331010001
-rw-rw---- 1 apps apps 260286601 Apr  4 18:35 mysql-bin.000097
-rw-rw---- 1 apps apps 676032158 Mar 31 15:32 mysql-bin.000096
drwxr-xr-x 8 apps apps      4096 Dec  8 23:14 xtrabackup_20161207010001
-rw-rw---- 1 apps apps 202401487 Dec  8 23:11 mysql-bin.000064

這個報錯ERROR 2006 (HY000) at line 5303856: MySQL server has gone away,應該是恢復沒有明確指定一個結束位置,引起恢復未正常退出的報錯,但上面這個binlog文件實際上恢復完成。

三、問題解決
   可忽略報錯,繼續做下一步操作。
[apps@abc backup]$ time /apps/svr/mariadb10/bin/mysqlbinlog mysql-bin.000097 --stop-datetime='2017-03-31 23:59:59'|/apps/svr/mariadb10/bin/mysql -u root -p  --

socket=/tmp/mysql3306.sock
Enter password:

real    0m50.866s
user    0m7.726s
sys     0m3.768s
這裏恢復沒有再報錯。
查詢業務表的最新時間:
MariaDB [ss]> select modify_time from gtyr order by modify_time desc limit 1,5;
+---------------------+
| modify_time         |
+---------------------+
| 2017-04-01 00:04:01 |
| 2017-04-01 00:04:01 |
| 2017-04-01 00:04:01 |
| 2017-04-01 00:01:33 |
| 2017-03-31 23:52:01 |
+---------------------+
5 rows in set (0.11 sec)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章