티스토리 뷰

카테고리 없음

mysqldump backup options

자바바라 2025. 1. 15. 19:30

mysqldump 명령어 사용 시 --single-transaction 옵션을 추가

 

mysqldump --single-transaction --skip-lock-tables -u root -p database_name > backup.sql

 

MariaDB에서 백업 및 복구 후 데이터 일관성 검사를 자동화하려면, 스크립트를 활용해 백업 전후의 테이블 레코드 수를 비교하는 방식을 사용할 수 있습니다. 이를 위해 다음 단계를 따르면 됩니다:


1. SQL 파일로 레코드 카운트 추출

백업 전후 각 테이블의 레코드 수를 기록하고 비교하는 작업을 자동화하기 위해 SQL 파일과 Bash 스크립트를 결합.


1.1 레코드 카운트 쿼리 생성

모든 테이블의 레코드 수를 확인하기 위한 SQL 쿼리:

SELECT TABLE_NAME, TABLE_ROWS 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'database_name';

1.2 백업 전 레코드 수 저장

SQL 결과를 파일로 저장:

mysql -u root -p -e "SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='database_name';" > pre_backup_record_count.txt

1.3 복구 후 레코드 수 저장

복구가 완료된 후 같은 쿼리를 실행해 결과를 저장:

mysql -u root -p -e "SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='database_name';" > post_backup_record_count.txt

2. 결과 비교 자동화

Bash 스크립트를 활용하여 diff 또는 awk로 두 파일을 비교합니다.

2.1 Bash 스크립트 작성

아래는 자동화된 스크립트 예제입니다:

#!/bin/bash

DB_NAME="database_name"
MYSQL_USER="root"
MYSQL_PASS="your_password"

# 파일 경로
PRE_BACKUP="pre_backup_record_count.txt"
POST_BACKUP="post_backup_record_count.txt"

# 백업 전 레코드 수 저장
mysql -u $MYSQL_USER -p$MYSQL_PASS -e "SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$DB_NAME';" > $PRE_BACKUP

# 복구 수행 (사용자가 복구 과정 추가)

# 복구 후 레코드 수 저장
mysql -u $MYSQL_USER -p$MYSQL_PASS -e "SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$DB_NAME';" > $POST_BACKUP

# 결과 비교
echo "Comparing record counts before and after backup:"
diff $PRE_BACKUP $POST_BACKUP

if [ $? -eq 0 ]; then
    echo "Data consistency check PASSED. Record counts match."
else
    echo "Data consistency check FAILED. Differences found:"
    diff $PRE_BACKUP $POST_BACKUP
fi

3. 실행 방법

  1. 스크립트를 저장:
    • 파일 이름: check_data_consistency.sh
    • 실행 권한 부여:
      chmod +x check_data_consistency.sh
      
  2. 스크립트 실행:
  3. ./check_data_consistency.sh

4. 결과 분석

  • 정상적인 경우:
  • Comparing record counts before and after backup: Data consistency check PASSED. Record counts match.
  • 차이 발견 시:
  • Comparing record counts before and after backup: Data consistency check FAILED. Differences found: 3c3 < table_name_1 100 --- > table_name_1 95

5. 확장 가능성

  • 일치하지 않는 테이블만 출력: awk를 사용해 차이가 있는 테이블만 표시:
  • awk 'NR==FNR{a[$1]=$2; next} ($1 in a) && a[$1] != $2 {print $1, a[$1], $2}' pre_backup_record_count.txt post_backup_record_count.txt
  • 대규모 환경 지원:
    • 결과를 JSON이나 CSV로 출력해 로그 분석 도구와 통합.
    • 스크립트를 Cron으로 등록해 정기적으로 실행.

결론

위 명령어와 스크립트를 활용하면 MariaDB 백업/복구 후 데이터 일관성을 자동으로 검사할 수 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함