ERROR 1047 (08S01): 데이터베이스를 작성하거나 데이터베이스를 사용할 때 WSREP에서 애플리케이션용 노드를 아직 준비하지 않았습니다.
질문을 하기 전에 stackoverflow를 검색해 보니 다음과 같은 투고가 있었습니다.
mariadb galera - 노드 셧다운 ERROR 1047 WSREP가 아직 애플리케이션용으로 노드를 준비하지 않은 경우 오류 발생
단, 게시물은 2노드 클러스터이고, 저는 3노드이며, 모든 노드에서 다음과 같이 mariadb가 실행되고 있습니다.
컨트롤러 1:
[root@controller1 mysql]# systemctl status mariadb
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/mariadb.service.d
└─migrated-from-my.cnf-settings.conf
Active: active (running) since Tue 2017-07-04 19:34:22 CST; 19h ago
Main PID: 3785 (mysqld)
Status: "Taking your SQL requests now..."
CGroup: /system.slice/mariadb.service
└─3785 /usr/sbin/mysqld --wsrep_start_position=de05f291-60a9-11e7-a641-13dca5e08098:0
Jul 05 14:52:54 controller1 mysqld[3785]: 2017-07-05 14:52:54 139817407719168 [Note] WSREP: applier thread exiting (code:6)
Jul 05 14:52:54 controller1 mysqld[3785]: 2017-07-05 14:52:54 139817408489216 [Note] WSREP: New cluster view: global state: 00000000-0000-0000-0000-000000000000:0, v... version -1
Jul 05 14:52:54 controller1 mysqld[3785]: 2017-07-05 14:52:54 139817408489216 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
Jul 05 14:52:54 controller1 mysqld[3785]: 2017-07-05 14:52:54 139817408489216 [Note] WSREP: applier thread exiting (code:6)
Jul 05 14:55:41 controller1 mysqld[3785]: 2017-07-05 14:55:41 139817330894592 [Warning] WSREP: Setting parameter 'pc.bootstrap' to 'YES' failed: Setting 'pc.bootstra...tion abort)
Jul 05 14:55:41 controller1 mysqld[3785]: at galera/src/galera_gcs.hpp:param_set():223
Jul 05 14:55:41 controller1 mysqld[3785]: 2017-07-05 14:55:41 139817330894592 [ERROR] WSREP: Set options returned 7
Jul 05 15:04:39 controller1 mysqld[3785]: 2017-07-05 15:04:39 139817330894592 [Warning] WSREP: Setting parameter 'pc.bootstrap' to 'YES' failed: Setting 'pc.bootstra...tion abort)
Jul 05 15:04:39 controller1 mysqld[3785]: at galera/src/galera_gcs.hpp:param_set():223
Jul 05 15:04:39 controller1 mysqld[3785]: 2017-07-05 15:04:39 139817330894592 [ERROR] WSREP: Set options returned 7
Hint: Some lines were ellipsized, use -l to show in full.
컨트롤러 2:
[root@controller2 ~]# systemctl status mariadb
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/mariadb.service.d
└─migrated-from-my.cnf-settings.conf
Active: active (running) since Tue 2017-07-04 19:32:33 CST; 19h ago
Main PID: 3181 (mysqld)
Status: "Taking your SQL requests now..."
CGroup: /system.slice/mariadb.service
└─3181 /usr/sbin/mysqld --wsrep_start_position=de05f291-60a9-11e7-a641-13dca5e08098:0
Jul 05 14:52:54 controller2 mysqld[3181]: 2017-07-05 14:52:54 140476124489472 [Note] WSREP: Closing replication queue.
Jul 05 14:52:54 controller2 mysqld[3181]: 2017-07-05 14:52:54 140476124489472 [Note] WSREP: Closing slave action queue.
Jul 05 14:52:54 controller2 mysqld[3181]: 2017-07-05 14:52:54 140476124489472 [Note] WSREP: Shifting OPEN -> CLOSED (TO: 0)
Jul 05 14:52:54 controller2 mysqld[3181]: 2017-07-05 14:52:54 140476124489472 [Note] WSREP: RECV thread exiting -103: Software caused connection abort
Jul 05 14:52:54 controller2 mysqld[3181]: 2017-07-05 14:52:54 140478689122048 [Note] WSREP: applier thread exiting (code:6)
Jul 05 14:52:54 controller2 mysqld[3181]: 2017-07-05 14:52:54 140478689654528 [Note] WSREP: applier thread exiting (code:6)
Jul 05 14:52:54 controller2 mysqld[3181]: 2017-07-05 14:52:54 140478690424576 [Note] WSREP: applier thread exiting (code:6)
Jul 05 14:52:54 controller2 mysqld[3181]: 2017-07-05 14:52:54 140478689388288 [Note] WSREP: New cluster view: global state: 00000000-0000-0000-0000-000000000000:0, v... version -1
Jul 05 14:52:54 controller2 mysqld[3181]: 2017-07-05 14:52:54 140478689388288 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
Jul 05 14:52:54 controller2 mysqld[3181]: 2017-07-05 14:52:54 140478689388288 [Note] WSREP: applier thread exiting (code:6)
Hint: Some lines were ellipsized, use -l to show in full.
컨트롤러 3:
[root@controller3 mysql]# systemctl status mariadb
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/mariadb.service.d
└─migrated-from-my.cnf-settings.conf
Active: active (running) since Wed 2017-07-05 04:32:36 CST; 10h ago
Main PID: 3176 (mysqld)
Status: "Taking your SQL requests now..."
CGroup: /system.slice/mariadb.service
└─3176 /usr/sbin/mysqld --wsrep_start_position=de05f291-60a9-11e7-a641-13dca5e08098:0
Jul 05 15:11:12 controller3 mysqld[3176]: 2017-07-05 15:11:12 140609394308864 [Note] WSREP: (e95d1384, 'tcp://0.0.0.0:4567') reconnecting to 77...empt 1080
Jul 05 15:11:36 controller3 mysqld[3176]: 2017-07-05 15:11:36 140609394308864 [Note] WSREP: (e95d1384, 'tcp://0.0.0.0:4567') reconnecting to 7c...empt 1110
Jul 05 15:11:43 controller3 mysqld[3176]: 2017-07-05 15:11:43 140609394308864 [Note] WSREP: (e95d1384, 'tcp://0.0.0.0:4567') reconnecting to 77...empt 1110
Jul 05 15:12:06 controller3 mysqld[3176]: 2017-07-05 15:12:06 140609394308864 [Note] WSREP: (e95d1384, 'tcp://0.0.0.0:4567') reconnecting to 7c...empt 1140
Jul 05 15:12:13 controller3 mysqld[3176]: 2017-07-05 15:12:13 140609394308864 [Note] WSREP: (e95d1384, 'tcp://0.0.0.0:4567') reconnecting to 77...empt 1140
Jul 05 15:12:39 controller3 mysqld[3176]: 2017-07-05 15:12:39 140609394308864 [Note] WSREP: (e95d1384, 'tcp://0.0.0.0:4567') reconnecting to 7c...empt 1170
Jul 05 15:12:44 controller3 mysqld[3176]: 2017-07-05 15:12:44 140609394308864 [Note] WSREP: (e95d1384, 'tcp://0.0.0.0:4567') reconnecting to 77...empt 1170
Jul 05 15:13:09 controller3 mysqld[3176]: 2017-07-05 15:13:09 140609394308864 [Note] WSREP: (e95d1384, 'tcp://0.0.0.0:4567') reconnecting to 7c...empt 1200
Jul 05 15:13:15 controller3 mysqld[3176]: 2017-07-05 15:13:15 140609394308864 [Note] WSREP: (e95d1384, 'tcp://0.0.0.0:4567') reconnecting to 77...empt 1200
Jul 05 15:13:39 controller3 mysqld[3176]: 2017-07-05 15:13:39 140609394308864 [Note] WSREP: (e95d1384, 'tcp://0.0.0.0:4567') reconnecting to 7c...empt 1230
Hint: Some lines were ellipsized, use -l to show in full.
모든 mariadb에 로그인하는 제목으로 데이터베이스를 사용하거나 작성하면 다음과 같은 오류가 발생합니다.
ERROR 1047 (08S01): WSREP에서 데이터베이스를 작성하거나 데이터베이스를 사용할 때 애플리케이션용으로 노드를 아직 준비하지 않았습니다.
어떻게 대처해야 할지 모르겠어요.
확인.cat /var/lib/mysql/grastate.dat
모든 노드에서요.클러스터가 시작되면 seqno는 -1(알 수 없음)로 설정되고 safe_to_bootstrap은 0으로 설정됩니다.mariadb가 정상적으로 셧다운되면 seqno는 노드에 인식된 마지막 트랜잭션으로 설정됩니다.모든 노드가 부정하게 셧다운되면 모든 노드의 seqno: -1 및 safe_to_bootstrap: 0이 되기 때문에 galera는 가입자의 도너를 선택할 수 없습니다.이 경우 다음과 같은 해결책이 있습니다.
- 모든 노드에서 mariadb를 중지합니다.필요하다면 잔인하게 죽여라.
- 더하다
wsrep_recover=1
모든 노드의 galera 구성 파일로 이동한 다음 시작합니다.잠시 실행하다가 오류와 함께 종료됩니다. - 확인.
systemctl status mariadb -l
또는 로그입니다."WSREP: Recoveryed position: 01234567-89ab-cdef-0123-456789abcdef:999"와 같은 엔트리가 있습니다.UUID는 모든 노드에서 같아야 합니다.콜론 뒤의 번호가 해당 노드의 마지막 알려진 트랜잭션입니다. - 모든 노드에서 wsrep_module을 =0으로 변경합니다.
- 각 노드의 grastate.dat을 편집하여 해당 노드의 올바른 클러스터 UUID와 올바른 seqno를 포함합니다(이 예에서는 999).seqno가 가장 높은 노드에서 safe_to_bootstrap도 1로 변경합니다.
- 사용하다
galera_new_cluster
seqno가 가장 높은 노드를 부트스트랩합니다.통나무를 꼬리에 감아 올려 안정되게 만들어라.그 후 정상적으로 시작합니다(systemctl start mariadb
) 다음으로 seqno가 높은 노드.로그를 테일하여 부트스트랩된 노드와 동기화되는지 확인합니다. - 이들 2개의 노드 각각에서 mysql 데이터베이스에 로그온하여 실행합니다.
show global status like 'wsrep_cluster_size';
★★★★★★★★★★★★★★★★★」select user from user limit 10;
첫 번째 결과가 2이고 두 번째 결과가 오류가 아닌 경우 작동 중인 클러스터입니다. - 일반적으로 각 seqno의 내림차순으로 리메이닝 노드를 시작합니다.
스텝 3의 UUID가 모든 노드에서 동일하지 않은 경우 seqno가 가장 높은 노드에서만 grastate.dat을 수정하십시오.숨김 .sst 디렉토리가 있는 경우 이를 포함하여 다른 노드의 /var/lib/mysql/ 디렉토리에 있는 모든 내용을 삭제합니다.순서 6-8로 넘어갑니다.마지막으로, 이 문제가 발생하기 직전에 데이터베이스를 완전히 백업한 수호천사에 대해 생각해 보십시오.
언급URL : https://stackoverflow.com/questions/44919456/error-1047-08s01-wsrep-has-not-yet-prepared-node-for-application-use-when-i-c
'itsource' 카테고리의 다른 글
주어진 대로 mysql에서 데이터를 주문하는 방법 (0) | 2023.01.28 |
---|---|
폼이 전송되었는지 확인하는 중 - PHP (0) | 2023.01.28 |
React에서 문서 제목을 설정하려면 어떻게 해야 합니까? (0) | 2023.01.28 |
Linux에서 php에서 --enable-soap을 활성화하려면 어떻게 해야 하나요? (0) | 2023.01.28 |
CSS 이행 효과를 일시적으로 디세블로 하는 가장 깨끗한 방법은 무엇입니까? (0) | 2023.01.28 |