アプリケーション用に 3 ノードの galera クラスターをセットアップしました。アプリケーションには一時的にテーブルを作成する特定のストアド プロシージャがあり (TEMPORARY TABLE ではありません)、テーブルは動的に作成されて実行されます。一部の CRUD 操作はテーブルに対して複数回実行され、その使用が完了すると、ストアド プロシージャの最後に削除されます。問題は、この特定のストアド プロシージャを実行するたびに、3 つのノードのうち 2 つが失敗し、自動的にシャットダウンすることです。失敗したノードからのログは次のとおりです:-
05 seqnos (l: 38, g: 47, s: 46, d: 46, ts: 186965868554819)
150423 8:31:35 [ERROR] WSREP: Failed to apply trx 47 4 times
150423 8:31:35 [ERROR] WSREP: Node consistency compromized, aborting...
150423 8:31:35 [Note] WSREP: Closing send monitor...
150423 8:31:35 [Note] WSREP: Closed send monitor.
150423 8:31:35 [Note] WSREP: gcomm: terminating thread
150423 8:31:35 [Note] WSREP: gcomm: joining thread
150423 8:31:35 [Note] WSREP: gcomm: closing backend
150423 8:31:35 [Note] WSREP: view(view_id(NON_PRIM,4d2adf77-e972-11e4-be7e-6bcb3d5c882f,3) memb {
849bbb26-e981-11e4-9f9f-f37ebca03acf,0
} joined {
} left {
} partitioned {
4d2adf77-e972-11e4-be7e-6bcb3d5c882f,0
634f32cb-e972-11e4-a226-bf661daf79d7,0
})
150423 8:31:35 [Note] WSREP: view((empty))
150423 8:31:35 [Note] WSREP: New COMPONENT: primary = no, bootstrap = no, my_idx = 0, memb_num = 1
150423 8:31:35 [Note] WSREP: gcomm: closed
150423 8:31:35 [Note] WSREP: Flow-control interval: [16, 16]
150423 8:31:35 [Note] WSREP: Received NON-PRIMARY.
150423 8:31:35 [Note] WSREP: Shifting SYNCED -> OPEN (TO: 47)
150423 8:31:35 [Note] WSREP: Received self-leave message.
150423 8:31:35 [Note] WSREP: Flow-control interval: [0, 0]
150423 8:31:35 [Note] WSREP: Received SELF-LEAVE. Closing connection.
150423 8:31:35 [Note] WSREP: Shifting OPEN -> CLOSED (TO: 47)
150423 8:31:35 [Note] WSREP: RECV thread exiting 0: Success
150423 8:31:35 [Note] WSREP: recv_thread() joined.
150423 8:31:35 [Note] WSREP: Closing replication queue.
150423 8:31:35 [Note] WSREP: Closing slave action queue.
150423 8:31:35 [Note] WSREP: /usr/sbin/mysqld: Terminated.
150423 08:31:35 mysqld_safe Number of processes running now: 0
150423 08:31:35 mysqld_safe WSREP: not restarting wsrep node automatically
150423 08:31:35 mysqld_safe mysqld from pid file /mnt/mysql/db3-prod.pid ended
ストアドプロシージャの内部構造を変更せずにこれを解決できる特定のものがあります。
の出力
SHOW VARIABLES LIKE 'default%'; is
+---------------------------+--------+
| Variable_name | Value |
+---------------------------+--------+
| default_master_connection | |
| default_regex_flags | |
| default_storage_engine | InnoDB |
| default_week_format | 0 |
+---------------------------+--------+