답변 3
1
안녕하세요:) 추가 질문에 대해 답변드려요!
+ /usr/bin/mariabackup --backup --no-lock --target-dir=
[00] 2021-03-19 19:09:52 Connecting to MySQL server host: localhost, user: not set, password: not set, port: not set, socket: not set
[00] 2021-03-19 19:09:52 Failed to connect to MySQL server: Access denied for user ''@'localhost' (using password: NO).
이 부분을 보니 몇 가지 확인을 해봐야 할 것 같습니다.
1. mariadb가 실행 중인 가
netstat -nltpu 를 실행하고 mysqld가 있는 지 확인 해 주세요.
tcp6 0 0 :::3306 :::* LISTEN 644/mysqld
위와 같은 내용이 보일겁니다.
아마 여기부터 문제일 것 같은데요.
2. 아무 것도 안보인다면 mariadb프로세스의 상태를 확인 해 보세요.
systemctl status mariadb
를 실행하고 결과의 위에서부터 다섯번째 줄에 다음과같은 메세지가 보인다면 systemctl start mariadb를 해주세요.
Active: inactive (daed)
그런데 여기서도 아무 것도 안보이거나 다음과 같은 결과가 나온다면
Unit mariadb.service could not be found.
3. mariadb서버 설치가 되어있는 가 확인을 해야합니다.
rpm -qa | grep -i mariadb
를 실행하셔서 다음과같이 마리아디비 서버 패키지가 있는 지 확인 해보세요.
MariaDB-server-10.4.14-1.el8.x86_64
혹시 아무 결과가 없다면 다음을 실행해서 설치를 해 주세요.
dnf -y install mariadb-server mariadb-client mariadb-backup --disablerepo=AppStream
4. 그리고 기본 설정을 해 주어야 합니다.
mariadb 프로세스를 시작하고
systemctl start mariadb
mariadb를 시작 프로그램에 등록
systemctl enable mariadb
MariaDB 실행상태를 확인합니다.
systemctl status mariadb
여기서 결과의 5번째 줄이 아까와는 다르게 active상태로 보일겁니다.
Active: active (running)
그리고 실습용 DB 임시 데이터를 준비해야합니다. 아마 vagrant script를 실행할 때 패키지 설치에 실패를 해서 그럴 확률이 높거든요.
git clone https://github.com/t2sc0m/test_db.git ./test_db
cd test_db
mysql -uroot < employees.sql
위 명령을 차례로 입력해주시면 테스트용 데이터입력까지 마칠 수 있을 겁니다.
db process와 접속해서 테이블리스트까지 보였다면 이제 다음 단계를 알아봐야겠네요.
mariabackup을 실행할 때 문제가 생기는 것 같으니 수동으로 다음을 실행 해 보세요.
/usr/bin/mariabackup --backup --no-lock --target-dir=/root/SHELL/BACKUP/xtrabackup_backupfiles
여기서 쉘스크립트를 실행했을 때와 같이 이런 에러가 발생한다면
Failed to connect to MySQL server: Access denied for user ''@'localhost' (using password: NO).
다음과 같이 유저 옵션을 추가해서 실행을 해 보세요.
/usr/bin/mariabackup --backup --no-lock -u root --target-dir=/root/SHELL/BACKUP/xtrabackup_backupfiles
혹시 root유저 패스워드 설정을 하셨다면 -p 옵션도 추가해 주시고 실행을 하면 패스워드를 물어봅니다.
그 때 지정한 root유저 패스워드를 입력하시면 돼요.
이 방법으로 실행이 되었다면 쉘 스크립트를 열고 mariabackup옵션에 유저를 추가해 주시고 쉘스크립트를 실행해 보시면 될 것 같습니다.
감사합니다. :)
0
[root@cent2 BACKUP]# ./db_backup.sh
++ /usr/bin/hostname
+ HOST=cent2
+ LOG=/tmp/backup.log
+ PUSH=/root/SHELL/monitor/tel_push.sh
++ /bin/date +%Y.%m.%d
+ DATE=2021.03.19
+ BAK_LIST=/etc/my.cnf.d
+ BAK_PATH=/mnt/BACKUP/cent2
+ BAK_FILE=/mnt/BACKUP/cent2/2021.03.19_cent2.tgz
+ DB_BAK_PATH=/root/SHELL/BACKUP/xtrabackup_backupfiles
+ DB_BAK_FILE=/mnt/BACKUP/cent2/2021.03.19_cent2_DB.tgz
+ /usr/bin/mount /mnt
+ /usr/bin/touch /tmp/backup.log
+ '[' -e /mnt/BACKUP/cent2 ']'
+ /bin/echo '백업 디렉토리가 있습니다.'
백업 디렉토리가 있습니다.
+ /bin/echo
+ /bin/echo '=== 백업 시작 시각 : '
+ /bin/date
+ /bin/echo
+ /usr/bin/mariabackup --backup --no-lock --target-dir=/root/SHELL/BACKUP/xtrabackup_backupfiles
[00] 2021-03-19 22:03:31 Connecting to MySQL server host: localhost, user: not set, password: not set, port: not set, socket: not set
[00] 2021-03-19 22:03:31 Failed to connect to MySQL server: Access denied for user ''@'localhost' (using password: NO).
+ /usr/bin/mariabackup --prepare --target-dir=/root/SHELL/BACKUP/xtrabackup_backupfiles
/usr/bin/mariabackup based on MariaDB server 10.3.27-MariaDB Linux (x86_64)
/usr/bin/mariabackup: Can't change dir to '/root/SHELL/BACKUP/xtrabackup_backupfiles/' (errno: 2 "No such file or directory")
[00] 2021-03-19 22:03:31 can't my_setwd /root/SHELL/BACKUP/xtrabackup_backupfiles/
+ /usr/bin/tar -czpPf /mnt/BACKUP/cent2/2021.03.19_cent2.tgz /etc/my.cnf.d
+ /usr/bin/tar -czpPf /mnt/BACKUP/cent2/2021.03.19_cent2_DB.tgz /root/SHELL/BACKUP/xtrabackup_backupfiles
/usr/bin/tar: /root/SHELL/BACKUP/xtrabackup_backupfiles: Cannot stat: No such file or directory
/usr/bin/tar: Exiting with failure status due to previous errors
++ /usr/bin/ls -al /mnt/BACKUP/cent2/2021.03.19_cent2.tgz
++ awk '{print $9}'
+ NAME=/mnt/BACKUP/cent2/2021.03.19_cent2.tgz
++ /usr/bin/ls -al /mnt/BACKUP/cent2/2021.03.19_cent2.tgz
++ awk '{print $5}'
+ SIZE=1554
+ /bin/echo '=== 백업 파일 정보: '
+ /bin/echo ' | 파일명 : /mnt/BACKUP/cent2/2021.03.19_cent2.tgz'
+ /bin/echo ' | 파일크기 : 1554Byte'
++ /usr/bin/ls -al /mnt/BACKUP/cent2/2021.03.19_cent2_DB.tgz
++ awk '{print $9}'
+ NAME=/mnt/BACKUP/cent2/2021.03.19_cent2_DB.tgz
++ /usr/bin/ls -al /mnt/BACKUP/cent2/2021.03.19_cent2_DB.tgz
++ awk '{print $5}'
+ SIZE=45
+ /bin/echo '=== DB백업 파일 정보: '
+ /bin/echo ' | 파일명 : /mnt/BACKUP/cent2/2021.03.19_cent2_DB.tgz'
+ /bin/echo ' | 파일크기 : 45Byte'
+ /bin/echo
+ /bin/echo '=== 백업 종료 시각 : '
+ /bin/date
+ /bin/echo
+ /usr/bin/umount /mnt
++ /usr/bin/cat /tmp/backup.log
+ /root/SHELL/monitor/tel_push.sh cent2 '
=== 백업 시작 시각 :
Fri Mar 19 22:03:31 UTC 2021
=== 백업 파일 정보:
| 파일명 : /mnt/BACKUP/cent2/2021.03.19_cent2.tgz
| 파일크기 : 1554Byte
=== DB백업 파일 정보:
| 파일명 : /mnt/BACKUP/cent2/2021.03.19_cent2_DB.tgz
| 파일크기 : 45Byte
=== 백업 종료 시각 :
Fri Mar 19 22:03:31 UTC 2021'
+ /usr/bin/rm -f /tmp/backup.log /root/SHELL/BACKUP/xtrabackup_backupfiles
0
안녕하세요 tpcalbe127님!
에러 메세지를 보니까
디비 패키지의 설치 여부나 백업 쉘 스크립트 상단에 정의되어있어야 할 변수에 값이 제대로 들어가는 지 확인을 해봐야 할 것 같은데요.
쉘 스크립트 가장 상단에서 디버깅모드를 켜고 쉘 스크립트를 실행한 다음에 에러메세지를 다시 보내주시면 정확히 알 수 있을 것 같아요.
디버깅모드의 설정은 쉘스크립트 맨 위의 쉘 선언부분에 -x를 붙이시면 됩니다.
#!/bin/bash -x
안녕하세요 마리아 DB는 설치되어있습니다.
제대로 실행이 안되어서 처음부터 cent1 2 3 재설치했는데 동일 증상이네요 ㅠㅜ
employees db 까지 확인 됩니다.