Назад | Перейти на главную страницу

Как определить, что вызывает сбой MySQL (сервера Percona) в Linux

Я использую Percona версию MySQL Server v5.6, и каждые несколько дней MySQL дает сбой, а затем автоматически перезапускается. Как я могу понять, в чем причина сбоя? Я видел, как другие люди с MySQL неожиданно останавливались, и, похоже, это было связано с проблемами памяти, но в их случаях в журнале ошибок это упоминается. В моем случае у меня ничего не отображается в файле журнала, пока он не перезапустится.

Я включаю соответствующий файл журнала ниже с последней «ожидаемой» ошибкой, а затем то, что она регистрирует при перезапуске MySQL. Он состоит из различных предупреждений «Небезопасный оператор, записанный в двоичный журнал» до сбоя, но я не думаю, что они являются причиной сбоя. (Я скоро обновлю заявления, чтобы не использовать ON DUPLICATE KEY конструкция, чтобы остановить их, чтобы журнал не заполнялся. Я также должен упомянуть, что я не занимаюсь репликацией, поэтому я не думаю, что они слишком важны в данный момент.)

Сервер представляет собой 64-битный Centos 6.6, работающий на виртуальной машине (Virtuozzo).

Надеюсь, кто-нибудь сможет указать мне правильное направление, чтобы определить причину аварии. Спасибо!

Файл журнала ниже:

2018-03-19 08:39:51 21476 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE  on a table with more than one UNIQUE KEY is unsafe Statement: INSERT INTO xxxx ON DUPLICATE KEY UPDATE xxxx
180319 08:39:52 mysqld_safe Number of processes running now: 0
180319 08:39:52 mysqld_safe mysqld restarted
2018-03-19 08:39:53 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-03-19 08:39:53 20217 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
2018-03-19 08:39:53 20217 [Note] Plugin 'FEDERATED' is disabled.
2018-03-19 08:39:53 20217 [Note] InnoDB: Using atomics to ref count buffer pool pages
2018-03-19 08:39:53 20217 [Note] InnoDB: The InnoDB memory heap is disabled
2018-03-19 08:39:53 20217 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-03-19 08:39:53 20217 [Note] InnoDB: Memory barrier is not used
2018-03-19 08:39:53 20217 [Note] InnoDB: Compressed tables use zlib 1.2.3
2018-03-19 08:39:53 20217 [Note] InnoDB: Using Linux native AIO
2018-03-19 08:39:53 20217 [Note] InnoDB: Using CPU crc32 instructions
2018-03-19 08:39:53 20217 [Note] InnoDB: Initializing buffer pool, size = 3.0G
2018-03-19 08:39:54 20217 [Note] InnoDB: Completed initialization of buffer pool
2018-03-19 08:39:54 20217 [Note] InnoDB: Highest supported file format is Barracuda.
2018-03-19 08:39:54 20217 [Note] InnoDB: Log scan progressed past the checkpoint lsn 123717382274
2018-03-19 08:39:54 20217 [Note] InnoDB: Database was not shutdown normally!
2018-03-19 08:39:54 20217 [Note] InnoDB: Starting crash recovery.
2018-03-19 08:39:54 20217 [Note] InnoDB: Reading tablespace information from the .ibd files...
2018-03-19 08:39:54 20217 [Note] InnoDB: Restoring possible half-written data pages
2018-03-19 08:39:54 20217 [Note] InnoDB: from the doublewrite buffer...
InnoDB: Doing recovery: scanned up to log sequence number 123717811056
InnoDB: Transaction 790235434 was in the XA prepared state.
InnoDB: 1 transaction(s) which must be rolled back or cleaned up
InnoDB: in total 0 row operations to undo
InnoDB: Trx id counter is 790235904
2018-03-19 08:39:55 20217 [Note] InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percent: 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 36 37 38 39 40 41 42 43 44 45 46 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: Apply batch completed
InnoDB: Last MySQL binlog file position 0 697177863, file name mysql-bin.000227
InnoDB: Starting in background the rollback of uncommitted transactions
2018-03-19 08:39:56 20217 [Note] InnoDB: 128 rollback segment(s) are active.
2018-03-19 08:39:56 7f481bd03700  InnoDB: Rollback of non-prepared transactions completed
2018-03-19 08:39:56 20217 [Note] InnoDB: Waiting for purge to start
2018-03-19 08:39:56 20217 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.22-71.0 started; log sequence number 123717811056
2018-03-19 08:39:56 20217 [Note] Recovering after a crash using /var/lib/mysql/mysql-bin
2018-03-19 08:46:36 20217 [Note] Starting crash recovery...
2018-03-19 08:46:36 7f491ce677e0  InnoDB: Starting recovery for XA transactions...
2018-03-19 08:46:36 7f491ce677e0  InnoDB: Transaction 790235434 in prepared state after recovery
2018-03-19 08:46:36 7f491ce677e0  InnoDB: Transaction contains changes to 1 rows
2018-03-19 08:46:36 7f491ce677e0  InnoDB: 1 transactions in prepared state after recovery
2018-03-19 08:46:36 20217 [Note] Found 1 prepared transaction(s) in InnoDB
2018-03-19 08:46:36 20217 [Note] Crash recovery finished.
2018-03-19 08:46:36 20217 [Note] RSA private key file not found: /var/lib/mysql//private_key.pem. Some authentication plugins will not work.
2018-03-19 08:46:36 20217 [Note] RSA public key file not found: /var/lib/mysql//public_key.pem. Some authentication plugins will not work.
2018-03-19 08:46:36 20217 [Note] Server hostname (bind-address): '*'; port: 3306
2018-03-19 08:46:36 20217 [Note] IPv6 is available.
2018-03-19 08:46:36 20217 [Note]   - '::' resolves to '::';
2018-03-19 08:46:36 20217 [Note] Server socket created on IP: '::'.
2018-03-19 08:46:37 20217 [Note] Event Scheduler: Loaded 0 events
2018-03-19 08:46:37 20217 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.6.22-71.0-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Percona Server (GPL), Release 71.0, Revision 726
2018-03-19 08:46:38 20217 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE  on a table with more than one UNIQUE KEY is unsafe Statement: INSERT INTO xxxx ON DUPLICATE KEY UPDATE xxxx

Изменить: в соответствии с вопросом @ impimp в комментариях, вот содержание /var/log/messages

Mar 18 04:02:22 HOSTNAME rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="474" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Mar 19 08:39:52 HOSTNAME kernel: [103311785.405884] Out of memory in UB 650543: OOM killed process 21476 (mysqld) score 0 vm:6363484kB, rss:4024500kB, swap:45536kB
Mar 20 09:17:35 HOSTNAME kernel: [103400050.711461] Out of memory in UB 650543: OOM killed process 20217 (mysqld) score 0 vm:6382720kB, rss:4066652kB, swap:0kB