database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31308 게시물 읽기
No. 31308
DB 복사 방법 문의 드립니다.
작성자
이규영(basscraft)
작성일
2020-08-13 15:15ⓒ
2020-08-13 15:16ⓜ
조회수
238

 안녕하세요 초보 SE 입니다.

회사에서 MariaDB를 이용해서 서비스 하고 있는데 

이중화도 안되어있고 백업도 없어서 매우 불안한 상태 입니다.

 

mysqldump 명령을 이옿해 full 덤프를 받았는데 덤프파일이 약 60G, 압축 후 8G 정도 용량이 나옵니다.

준비된 백업 서버에 리스토어 시도했더니 에러없이 들어가긴 하는데 약 10시간 실행했는데 로그상으로 1/3 정도 입력된 것으로 나와서 백업을 해도 문제가 발생 했을 때 활용은 불가능하다는 결론을 내렸습니다.

다른 방법으로 데이터 영역을 하드카피 하는 것으로 테스트 중인데

Active 서버에서 scp 명령으로 data , logs 디렉토리를 StandBy 로 복사 한 후 

systemctl start mariadb 로 실행하면

한참 후에 

Job for mariadb.service failed becouse a timeout was exceeded. See "systemctl status mariadb.service" and "journalctl -xe" for details.

라고 떨어지면서 실패하고  journalctl -xe 해보면

 

 8월 13 14:37:47 localhost.localdomain systemd[1]: mariadb.service start operation timed out. Terminating.

 8월 13 14:39:17 localhost.localdomain systemd[1]: mariadb.service stop-final-sigterm timed out. Skipping SIGKILL. Entering failed mode.

 8월 13 14:39:17 localhost.localdomain systemd[1]: Failed to start MariaDB 10.3.10 database server.

-- Subject: Unit mariadb.service has failed

-- Defined-By: systemd

-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

--

-- Unit mariadb.service has failed.

--

-- The result is failed.

 8월 13 14:39:17 localhost.localdomain systemd[1]: Unit mariadb.service entered failed state.

 8월 13 14:39:17 localhost.localdomain systemd[1]: mariadb.service failed.

이렇게 만 나옵니다.

 

프로세스를 확인해보면 /usr/sbin/mysqld 는 떠있지만 접속하면

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysql/mysql.sock' (2)

메시지 출력 하면서 접속이 안되고

systemctl status mariadb 해보면

 

 

 

   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)

  Drop-In: /etc/systemd/system/mariadb.service.d

           └─migrated-from-my.cnf-settings.conf

   Active: failed (Result: timeout) since 목 2020-08-13 14:39:17 KST; 26min ago

     Docs: man:mysqld(8)

           https://mariadb.com/kb/en/library/systemd/

  Process: 29887 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: 29883 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)

 Main PID: 29971

   CGroup: /system.slice/mariadb.service

           └─29971 /usr/sbin/mysqld

 

 8월 13 14:36:16 localhost.localdomain systemd[1]: Starting MariaDB 10.3.10 database server...

 8월 13 14:36:17 localhost.localdomain mysqld[29971]: 2020-08-13 14:36:17 0 [Note] /usr/sbin/mysqld (mysqld 10.3.10-MariaDB-log) starting as process 29971 ...

 8월 13 14:37:47 localhost.localdomain systemd[1]: mariadb.service start operation timed out. Terminating.

 8월 13 14:39:17 localhost.localdomain systemd[1]: mariadb.service stop-final-sigterm timed out. Skipping SIGKILL. Entering failed mode.

 8월 13 14:39:17 localhost.localdomain systemd[1]: Failed to start MariaDB 10.3.10 database server.

 8월 13 14:39:17 localhost.localdomain systemd[1]: Unit mariadb.service entered failed state.

 8월 13 14:39:17 localhost.localdomain systemd[1]: mariadb.service failed.

 

systemctl stop mariadb 명령으로 중지가 안되고 kill -9  로 강제 종료해야 하는 상황입니다.

 

 

 

 

 

질문 1 : 운영중 DB HOT 백업시 mysql 데이터영역과 logs 영역을 물리적으로 복사 했다가 장애시 그대로 덮어 쓰는 방식이 타당한지? 불가능 하다면 좋은 백업, 이중화 방식 추천 해주시면 감사합니다.

질문 2 : 물리적으로 복사 해서 다른 서버로 옮겨서 start 하는 경우 위 설명처럼 별다른 메시지가 없이 time out 떨어지는 경우 원인을 파악 할 수 있는 방법이 무었인지 궁금합니다.

 

 

 

Active 서버와 Test서버의 my.cnf 설정은 동일(테스트 서버에서는 사양문제로 성능 관련 부분만 주석처리함)

Active 서버 단독으로 mariadb  start / stop 문제없고

Test 서버에서도 자체에서 가지고 있던 data, logs 파일들을 덮어쓰면 문제 없이 start / stop 됩니다.

몇일째 하고 있는데 잘 안되니 답답합니다. 

이제 maria-backup 이라는 백업 툴을 이용해 테스트 해보려고 하고 있습니다.

갈길이 너무 머네요... 내용이 너무 장황하지만 고수님들의 조언 부탁드립니다.

이 글에 대한 댓글이 총 4건 있습니다.

물리백업 툴인 xtrabackup 을 사용해보시죠. bin 로그 까지 적용이 가능합니다. 

미션 크리티컬 서비스라면 적어도 replication 은 있어야 합니다. 

https://sarc.io/index.php/mariadb/1277-mariadb-xtrabackup

https://woowabros.github.io/experience/2018/05/28/billingjul.html

lucky님이 2020-08-14 12:13에 작성한 댓글입니다.
이 댓글은 2020-08-14 12:19에 마지막으로 수정되었습니다. Edit

lucky 님 답변 대단히 감사드립니다.

xtrabackup 을 이용해서 테스트를 해봤는데

해당 툴이 MySQL 용으로 마리아DB와 별도로 소스가 관리 되면서

마리아DB 10.X 버전 이상에서는 일부 기능만 지원, 10.2 이상에서는 불가라는 메시지가 있습니다.

대체로 찾아본것이 mariabackup 이라는 것이 있어서 그것으로 테스트 진행하고 있습니다.

잘 되어야 할 텐데... 몇주째 잡고 있어서 부담이 상당하네요.

말씀 다시한번 감사드립니다.

이규영(basscraft)님이 2020-08-14 14:23에 작성한 댓글입니다.

mariabackup 을 사용해보지는 않았지만, 

xtrabackup 과 동일 엔진으로 mariadb 에 맞게 개발된 것 같습니다. 

사용법도 동일하다고 하네요. 

연습 좀 해보시고 익히시면 됩니다. 

 

lucky님이 2020-08-14 14:33에 작성한 댓글입니다.
이 댓글은 2020-08-14 16:44에 마지막으로 수정되었습니다. Edit

lucky님 말씀 감사합니다.

테스트 머신에서 yum 으로 xtrabackup 을 받아서 해봤었는데

위에 말씀드린 대로 10.2 이상은 지원하지 않는다는 메시지가 나왔던 것으로 기억합니다. 

그 메시지로 검색해 보니 mariadb 10.2 이상은 mariabackup 으로 해야 한다고 해서

mariabackup으로 테스트 해봤는데 일단 백업은 성공했구요

리스토어는 아직 못해 봤습니다. 실 서버에서 한번 해보려고 합니다.

 

혹시 mariadb용 xtrabackup 이 있는지 좀 더 검색해 보겠습니다. 감사합니다.

이규영(basscraft)님이 2020-08-14 17:14에 작성한 댓글입니다.
이 댓글은 2020-08-14 17:16에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
31311연속근무 구하기 도움요청드립니다. [1]
피어스
2020-09-14
72
31310insert실행 시 운영중인 서버에 최대한 부담이 가지 않는 방법은 어떤건가요?
왜이러니
2020-09-04
110
31309mysql 5.7버전에서 프로시저(function) 중복실행됩니다... [2]
주한별
2020-09-03
83
31308DB 복사 방법 문의 드립니다. [4]
이규영
2020-08-13
238
31307blob 타입의 길이
기훈
2020-08-09
175
31306MariaDB 암호화 오류 [3]
Maria
2020-08-05
209
31305Restore Workspace 라는 창이 뜨면서 지금까지 했던 작업들이 안나옵니다 [1]
이효상
2020-08-04
183
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.104초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다