我正在運行 MySQL Server v5.6 的 Percona 版本,每隔幾天 MySQL 似乎就會崩潰,然後自動重新啟動。我怎麼找出崩潰的原因?我見過其他人的 MySQL 意外停止,這似乎是由於記憶體問題,但在他們的情況下,錯誤日誌提到了這一點。就我而言,在實際重新啟動之前,日誌檔案中不會出現任何內容。
我在下麵包含了相關的日誌文件,其中包含最後一個「預期」錯誤,以及 MySQL 重新啟動時記錄的內容。它由崩潰前的各種“寫入二進制日誌的不安全語句”警告組成,但我不認為它們是崩潰的原因。 (我很快就會更新這些語句,以不使用ON DUPLICATE KEY
構造來阻止它們來阻止日誌填滿。我還應該提到,我不進行複製,這就是為什麼我認為它們目前不太重要。 )
伺服器是在虛擬機器(Virtuozzo)上運行的 64 位元 Centos 6.6。
希望有人能給我正確的方向,以確定導致崩潰的原因。謝謝!
日誌檔如下:
2018-03-19 08:39:51 21476 [警告] 自 BINLOG_FORMAT = STATMENT 以來,使用語句格式寫入二進位日誌的不安全語句。在具有多個 UNIQUE KEY 的表上執行 INSERT...ON DUPLICATE KEY UPDATE 是不安全的 語句:INSERT INTO xxxx ON DUPLICATE KEY UPDATE xxxx 180319 08:39:52 mysqld_safe 現在執行的進程數:0 180319 08:39:52 mysqld_safe mysqld 重新啟動 2018-03-19 08:39:53 0 [警告] 具有隱式 DEFAULT 值的 TIMESTAMP 已棄用。請使用 --explicit_defaults_for_timestamp 伺服器選項(有關更多詳細信息,請參閱文件)。 2018-03-19 08:39:53 20217 [警告] 使用唯一選項前綴 myisam-recover 而不是 myisam-recover-options 已棄用,並將在未來版本中刪除。請使用全名。 2018-03-19 08:39:53 20217 [注意] 外掛程式「FEDERATED」已停用。 2018-03-19 08:39:53 20217 [注意] InnoDB:使用原子來引用計數緩衝池頁面 2018-03-19 08:39:53 20217 [注意] InnoDB:InnoDB記憶體堆被停用 2018-03-19 08:39:53 20217 [注意] InnoDB:互斥鎖和 rw_locks 使用 GCC 原子內建函數 2018-03-19 08:39:53 20217 [注意] InnoDB:未使用記憶體屏障 2018-03-19 08:39:53 20217 [注意] InnoDB:壓縮表使用 zlib 1.2.3 2018-03-19 08:39:53 20217 [註] InnoDB:使用Linux原生AIO 2018-03-19 08:39:53 20217 [注意] InnoDB:使用CPU crc32指令 2018-03-19 08:39:53 20217 [注意] InnoDB:初始化緩衝池,大小= 3.0G 2018-03-19 08:39:54 20217 [注意] InnoDB:完成緩衝池的初始化 2018-03-19 08:39:54 20217 [注意] InnoDB:支援的最高檔案格式是Barracuda。 2018-03-19 08:39:54 20217 [注意] InnoDB:日誌掃描已超過檢查點 lsn 123717382274 2018-03-19 08:39:54 20217 [注意] InnoDB:資料庫未正常關閉! 2018-03-19 08:39:54 20217 [注意] InnoDB:開始崩潰復原。 2018-03-19 08:39:54 20217 [注意] InnoDB:從 .ibd 檔案讀取表空間資訊... 2018-03-19 08:39:54 20217 [注意] InnoDB:恢復可能的半寫入資料頁 2018-03-19 08:39:54 20217 [注意] InnoDB:來自雙寫緩衝區... InnoDB:進行復原:掃描至日誌序號123717811056 InnoDB:事務 790235434 處於 XA 準備狀態。 InnoDB:1 個必須回滾或清理的事務 InnoDB:總共 0 行操作要撤銷 InnoDB:Trx id 計數器為 790235904 2018-03-19 08:39:55 20217 [注意] InnoDB:開始向資料庫套用一批日誌記錄... InnoDB:進度百分比:7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 384 35 384 35 6 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 7 InnoDB:應用批次完成 InnoDB:最後一個MySQL binlog檔案位置0 697177863,檔案名稱mysql-bin.000227 InnoDB:在背景啟動未提交交易的回滾 2018-03-19 08:39:56 20217 [注意] InnoDB:128 個回滾段處於活動狀態。 2018-03-19 08:39:56 7f481bd03700 InnoDB:未準備交易的回溯已完成 2018-03-19 08:39:56 20217 [注意] InnoDB:等待清除開始 2018-03-19 08:39:56 20217 [註] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.22-71.0 啟動;日誌序號123717811056 2018-03-19 08:39:56 20217 [Note] 使用 /var/lib/mysql/mysql-bin 崩潰後恢復 2018-03-19 08:46:36 20217 [注意] 開始崩潰復原... 2018-03-19 08:46:36 7f491ce677e0 InnoDB:開始恢復 XA 事務... 2018-03-19 08:46:36 7f491ce677e0 InnoDB:恢復後事務790235434處於準備狀態 2018-03-19 08:46:36 7f491ce677e0 InnoDB:交易包含 1 行的更改 2018-03-19 08:46:36 7f491ce677e0 InnoDB:恢復後有 1 個事務處於準備狀態 2018-03-19 08:46:36 20217 [Note] 在 InnoDB 中找到 1 個準備好的事務 2018-03-19 08:46:36 20217 [注意] 崩潰恢復完成。 2018-03-19 08:46:36 20217 [注意] 未找到 RSA 私鑰檔案:/var/lib/mysql//private_key.pem。某些身份驗證插件將無法運作。 2018-03-19 08:46:36 20217 [注意] 找不到 RSA 公鑰檔案:/var/lib/mysql//public_key.pem。某些身份驗證插件將無法運作。 2018-03-19 08:46:36 20217 [注意] 伺服器主機名稱(綁定位址):'*';埠:3306 2018-03-19 08:46:36 20217 [注意] IPv6 可用。 2018-03-19 08:46:36 20217 [注意] - '::' 解析為 '::'; 2018-03-19 08:46:36 20217 [注意] 在 IP: '::' 上建立伺服器套接字。 2018-03-19 08:46:37 20217 [注意] 事件調度程式:已載入 0 個事件 2018-03-19 08:46:37 20217 [注意] /usr/sbin/mysqld:準備連線。 版本:「5.6.22-71.0-log」套接字:「/var/lib/mysql/mysql.sock」埠:3306 Percona Server (GPL),版本 71.0,修訂版 726 2018-03-19 08:46:38 20217 [警告] 自 BINLOG_FORMAT = STATMENT 以來,使用語句格式寫入二進位日誌的不安全語句。在具有多個 UNIQUE KEY 的表上執行 INSERT...ON DUPLICATE KEY UPDATE 是不安全的 語句:INSERT INTO xxxx ON DUPLICATE KEY UPDATE xxxx
編輯:根據評論中@impimp的問題,以下是內容/var/log/messages
3 月18 日04:02:22 主機名稱rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="474" x-info="http://www.rsyslog.com"] rsyslogd 已HUPed 3 月 19 日 08:39:52 HOSTNAME 核心:[103311785.405884] UB 650543 記憶體不足:OOM 殺死了進程 21476 (mysqld) 分數 0 vm:6363484kB,ssww 3 月 20 日 09:17:35 HOSTNAME 核心:[103400050.711461] UB 650543 記憶體不足:OOM 殺死了進程 20217 (mysqld) 分數 0 apvm:6382720kB,kswB,