web-dev-qa-db-ja.com

クラスタ内の1つのノードがクラッシュしましたが、どのように回復しますか?

3ノードのperconagaleraクラスターを使用しています。私のクラスターでは、ディスク容量が少ないために1つのノードがクラッシュしました。いくつかのログファイルをクリアし、十分なディスク容量を提供しました。現在、そのノードでクラスターを起動しようとしています。mysqlが起動していません。エラーログに移動すると、以下のエラー。私もinnodb_force_recovery = 6で試されましたが、運がありませんでした。誰かが以下の問題を修正する方法を教えてもらえますか?.

エラーログ

130919 12:55:15 [Note] WSREP: Closed send monitor.
130919 12:55:15 [Note] WSREP: view((empty))
130919 12:55:15 [Note] WSREP: New COMPONENT: primary = no, bootstrap = no, my_idx = 0, memb_num = 1
130919 12:55:15 [Note] WSREP: gcomm: closed
130919 12:55:15 [Warning] WSREP: gcomm: backend already closed
130919 12:55:15 [ERROR] WSREP: gcs/src/gcs_fifo_lite.c:gcs_fifo_lite_close():70: Trying to close a closed FIFO
130919 12:55:15 [Note] WSREP: Flow-control interval: [16, 16]
130919 12:55:15 [Note] WSREP: Received NON-PRIMARY.
130919 12:55:15 [Note] WSREP: Shifting JOINED -> OPEN (TO: 66674748)
130919 12:55:15 [Note] WSREP: Received self-leave message.
130919 12:55:15 [Note] WSREP: Flow-control interval: [0, 0]
130919 12:55:15 [Note] WSREP: Received SELF-LEAVE. Closing connection.
130919 12:55:15 [Note] WSREP: Shifting OPEN -> CLOSED (TO: 66674748)
130919 12:55:15 [Note] WSREP: RECV thread exiting 0: Success
130919 12:55:15 [Note] WSREP: recv_thread() joined.
130919 12:55:15 [Note] WSREP: Closing replication queue.
130919 12:55:15 [Note] WSREP: Closing slave action queue.
130919 12:55:15 [ERROR] WSREP: gcs/src/gcs.c:gcs_close():1321: Failed to join recv_thread(): -3 (Unknown error 18446744073709551613)
130919 12:55:15 [Note] WSREP: Closing replication queue.
130919 12:55:15 [Note] WSREP: /usr/sbin/mysqld: Terminated.
130919 12:55:15 [ERROR] WSREP: gcs/src/gcs_fifo_lite.c:gcs_fifo_lite_close():70: Trying to close a closed FIFO
130919 12:55:15 [Note] WSREP: Closing slave action queue.
130919 12:55:16 mysqld_safe Number of processes running now: 0
130919 12:55:16 mysqld_safe WSREP: not restarting wsrep node automatically
130919 12:55:16 mysqld_safe mysqld from pid file /u01/mysql/folmobileqa2/log/mysqld.pid ended
1
user2796468

OK、私の問題は解決しました。

私のハードドライブが故障したので、mysqlログが無駄になりました。話は終わりです。

完全な状態転送が必要で、すべてのmyisamテーブルがアクセス許可でいっぱいのmysqlデータベースを除くすべてを削除する必要がありました。

壊れたノードを完全に停止します。

root@my-galera-clustercontrol:~# s9s_galera --stop-node -i 1 -h10.0.1.111

Mysqlデータフォルダからmysqlデータベースフォルダをrsyncします。

root@my-galera-percona1:/mnt/data/mysql# rsync -av mysql ../mysqlback/

Mysqlデータフォルダから不良ログを含むすべてを削除します。

root@my-galera-percona1:/mnt/data/mysql# rm -rf *

Mysqlデータフォルダーを復元します:root @ my-galera-percona1:/ mnt/data/mysql#rsync -av ../mysqlback/mysql。

完全な状態転送を引き起こすクラスター内制御でノードを開始します。

root@my-galera-clustercontrol:~# s9s_galera --start-node -i 1 -h 10.0.1.111 -d 10.0.1.112

そこから、最終的にノードが同期されてオンラインに戻るまで、iftopでクレイジーなioを見ることができます。

1
jozwikjp