마리아드브는 짐을 싣고 몇 분 후에 추락합니다.서버가 "스냅샷"에서 복원된 후 발생했습니다.
OVH와 함께 호스트되는 VPS(Ubuntu Server 18.04)가 있습니다.VPS를 이전 상태로 롤백할 수 있는 스냅샷을 제공합니다.저는 이 기능을 사용해 본 적이 없습니다.하지만 어젯밤에 BTC페이를 만지작거리기 전에 스냅샷을 만들었어요.저는 설치 작업을 제대로 수행했기 때문에 스냅샷으로 롤백하기로 결정했습니다.
이제 내 Mariadb 설치가 제대로 작동하지 않습니다.서버에서 호스팅되는 유일한 것은 Wordpress 다중 사이트입니다.서버를 재부팅하면(또는 시스템 ctl로 Mariadb를 시작하면) 로드되고 모든 워드프레스 사이트와 관리 패널에 액세스할 수 있습니다.하지만 몇 분 후, 마리아드브는 추락합니다.
mysqld_safe --skip-grant-tables 출력 실행:
190308 15:10:20 mysqld_safe Logging to syslog.
190308 15:10:20 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
이를 통해 Wordpress가 가동되지만 안전한 솔루션은 아닙니다.
다음은 /var/log/mysql/error.log에 표시되는 유일한 오류이지만 항목은 하나뿐이며 Mariadb가 충돌할 때마다 반복되지 않습니다.
2019-03-08 13:08:24 139897840925824 [ERROR] mysqld: Table './mysql/db' is marked as crashed and should be repaired
2019-03-08 13:08:24 139897840925824 [ERROR] mysql.db: 1 client is using or hasn't closed the table properly
및 CHECK TABLE mysql.db; 출력:
+----------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+----------+-------+----------+----------+
| mysql.db | check | status | OK |
+----------+-------+----------+----------+
1 row in set (0.00 sec)
지금까지 제가 취한 조치는 다음과 같습니다.
wordpress 다중 사이트 설치를 위해 설정한 'wordpress' 데이터베이스에 mysqdump를 사용합니다.
#mysqlcheck 실행 -- '확인'으로 모두 반환된 모든 데이터베이스
mysqld_safe --mysqld-messages-messages-messages로 Mariadb를 시작한 후 여기 https://stackoverflow.com/a/3322930/8644833 에 나열된 수정을 시도했습니다.
저는 mysql을 잘 다루지 못하기 때문에 많은 데이터를 잃지 않고 다시 실행할 수 있는 솔루션을 찾고 있습니다.Mariadb를 새로 설치하고 새 Wordpress 데이터베이스를 설정하는 것은 상관없지만, 모든 데이터를 백업하는 방법을 정확히 알지 못해 모든 사이트를 다시 구축할 필요가 없습니다.Mariadb가 충돌하기 전까지 사이트가 모두 잘 작동하기 때문에 이것이 가능할 것으로 보입니다.
제가 가지고 있는 다른 모든 관련 정보는 다음과 같습니다.
dmesg:
[ 108.430534] audit: type=1400 audit(1552073977.631:19): apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld" name="run/systemd/notify" pid=939 comm="mysqld" requested_mask="w" denied_mask="w" fsuid=111 ouid=0
[ 108.534100] audit: type=1400 audit(1552073977.739:20): apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld" name="run/systemd/notify" pid=939 comm="mysqld" requested_mask="w" denied_mask="w" fsuid=111 ouid=0
[ 108.634399] audit: type=1400 audit(1552073977.839:21): apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld" name="run/systemd/notify" pid=939 comm="mysqld" requested_mask="w" denied_mask="w" fsuid=111 ouid=0
[ 108.734779] audit: type=1400 audit(1552073977.939:22): apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld" name="run/systemd/notify" pid=939 comm="mysqld" requested_mask="w" denied_mask="w" fsuid=111 ouid=0
[ 108.835027] audit: type=1400 audit(1552073978.039:23): apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld" name="run/systemd/notify" pid=939 comm="mysqld" requested_mask="w"denied_mask="w" fsuid=111 ouid=0
[ 108.935311] audit: type=1400 audit(1552073978.139:24): apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld" name="run/systemd/notify" pid=939 comm="mysqld" requested_mask="w" denied_mask="w" fsuid=111 ouid=0
[ 109.035562] audit: type=1400 audit(1552073978.235:25): apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld" name="run/systemd/notify" pid=939 comm="mysqld" requested_mask="w" denied_mask="w" fsuid=111 ouid=0
[ 109.136162] audit: type=1400 audit(1552073978.339:26): apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld" name="run/systemd/notify" pid=939 comm="mysqld" requested_mask="w" denied_mask="w" fsuid=111 ouid=0
[ 110.038191] audit: type=1400 audit(1552073979.243:27): apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld" name="run/systemd/notify" pid=939 comm="mysqld" requested_mask="w" denied_mask="w" fsuid=111 ouid=0
[ 110.040919] audit: type=1400 audit(1552073979.243:28): apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld" name="run/systemd/notify" pid=939 comm="mysqld" requested_mask="w" denied_mask="w" fsuid=111 ouid=0
systemctl 상태 mariadb.서비스:
● mariadb.service - MariaDB 10.1.38 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: failed (Result: timeout) since Fri 2019-03-08 14:39:39 EST; 14min ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Process: 939 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 839 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
Process: 809 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 770 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Main PID: 939 (code=exited, status=0/SUCCESS)
Mar 08 14:38:08 mydomain.com systemd[1]: Starting MariaDB 10.1.38 database server...
Mar 08 14:38:09 mydomain.com mysqld[939]: 2019-03-08 14:38:09 140251492867200 [Note] /usr/sbin/mysqld (mysqld 10.1.38-MariaDB-0ubuntu0.18.04.1) starting as process 939 ...
Mar 08 14:39:37 mydomain.com systemd[1]: mariadb.service: Start operation timed out. Terminating.
Mar 08 14:39:39 mydomain.com systemd[1]: mariadb.service: Failed with result 'timeout'.
Mar 08 14:39:39 mydomain.com systemd[1]: Failed to start MariaDB 10.1.38 database server.
mysql 로그:
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: innodb_empty_free_list_algor
ithm has been changed to legacy because of small buffer pool size. In order to
use backoff, increase buffer pool at least up to 20MB.
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: Using mutexes to ref count b
uffer pool pages
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: The InnoDB memory heap is disabled
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: Using Linux native AIO
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: Using SSE crc32 instructions
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: Completed initialization of buffer pool
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: Highest supported file format is Barracuda.
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: 128 rollback segment(s) are active.
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: Waiting for purge to start
2019-03-08 14:59:39 140597857991808 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.42-84.2 started; log sequence number 446057526
2019-03-08 14:59:39 140597857991808 [Note] Plugin 'FEEDBACK' is disabled.
2019-03-08 14:59:39 140597201463040 [Note] InnoDB: Dumping buffer pool(s) not yet started
2019-03-08 14:59:39 140597857991808 [Note] Server socket created on IP: '127.0.0.1'.
2019-03-08 14:59:39 140597857991808 [Note] /usr/sbin/mysqld: ready for connections.
Version: '10.1.38-MariaDB-0ubuntu0.18.04.1' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Ubuntu 18.04
2019-03-08 15:01:09 140597856737024 [Note] /usr/sbin/mysqld: Normal shutdown
2019-03-08 15:01:09 140597856737024 [Note] Event Scheduler: Purging the queue. 0 events
2019-03-08 15:01:09 140597251774208 [Note] InnoDB: FTS optimize thread exiting.
2019-03-08 15:01:09 140597856737024 [Note] InnoDB: Starting shutdown...
2019-03-08 15:01:09 140597856737024 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
2019-03-08 15:01:11 140597856737024 [Note] InnoDB: Shutdown completed; log sequence number 446281568
2019-03-08 15:01:11 140597856737024 [Note] /usr/sbin/mysqld: Shutdown complete
제가 할 수 있다면 논평을 하고 싶지만, 저는 이것이 너무 중요해서 완전히 건너뛰기는 어렵다고 판단했습니다.
서버 스냅샷과 데이터베이스 백업은 다릅니다.문제는 스냅샷이 중간에 데이터베이스 서버를 캡처할 수 있다는 것입니다. 나중에 스냅샷을 기반으로 시스템을 다시 시작하면 데이터베이스 서버가 혼동될 수 있습니다.아마도 잠복해 있는 모순과 추락에 걸려 넘어지는 데 몇 분이 걸렸을 것입니다.아마도 재설치는 간접적으로 평소보다 더 공격적인 정리를 시작하여 불일치를 제거했을 것입니다.자세한 내용과 제 추측을 확인하기 위해 https://dba.stackexchange.com/ 을 사용해 보십시오.
앞으로 시스템 스냅샷 외에도 정기적으로 데이터베이스 백업을 수행하는 것이 더 나을 수 있습니다.스냅샷을 만드는 동안 WordPress를 읽기 전용 모드(간단하지는 않지만 플러그인이 있음)로 설정하는 것도 작동할 수 있습니다.(이것이 효과가 있을지 묻는 것이 합리적일 것입니다.)
이 문제의 근본 원인이 무엇인지는 아직도 알 수 없지만 Mariadb를 제거하고 다시 설치하면 문제가 해결되었습니다.
구체적으로 제가 한 일은:
# apt-get remove --purge mariadb-server
# apt-get autoremove --purge
# apt-get autoclean
메시지가 나타나면 기존 데이터베이스를 유지하도록 선택했습니다.
그리고 나서 마리아드브를 다시 설치했습니다.
# apt-get install mariadb-server
그 후 모든 것이 작동하여 데이터베이스를 복원할 필요가 없었습니다.
위의 단계가 작동하지 않았습니다.
위의 작업을 수행한 후 시스템이 재부팅되거나 mariadb-server가 다시 시작될 때까지 모든 작업이 정상적으로 수행됩니다.그러면 원래 문제가 다시 발생하고 1분 정도 정상적으로 실행된 후 mariadb 서버가 중단됩니다.
저는 아직도 무엇이 문제였는지 모릅니다.스냅샷에서 복원하는 것이 문제의 원인이라는 것은 알지만, Mariadb가 왜 또는 어떤 방식으로 고장났는지는 모르겠습니다.저는 mariadb-server와 모든 데이터베이스를 제거하려고 시도하기도 했지만, 다시 설치했을 때도 같은 문제가 발생했습니다.
저는 문제를 찾는 데 지쳐서 프레스 데이터베이스라는 단어를 버리고 mariadb-server와 모든 데이터베이스를 제거하고 mysql-server를 설치했습니다. 이것으로 문제가 해결되었습니다.
언급URL : https://stackoverflow.com/questions/55071021/mariadb-loads-but-crashes-after-a-couple-of-minutes-happened-after-server-was
'sourcecode' 카테고리의 다른 글
숫자를 정렬된 숫자 배열에 삽입하는 효율적인 방법은 무엇입니까? (0) | 2023.08.22 |
---|---|
DESC 순서에 따라 그룹화하는 방법 (0) | 2023.08.22 |
jQuery 셀렉터에서 $(이것)를 제외하려면 어떻게 해야 합니까? (0) | 2023.08.22 |
Oracle 가동 시간 쿼리 (0) | 2023.08.22 |
특정 범위의 Excel 셀을 한 워크시트에서 다른 워크시트로 복사 (0) | 2023.08.22 |