MySQL 테이블을 별도의 파일로 자동 덤프
내장된 mysqldump 유틸리티는 선택적 테이블 덤프를 허용하지만 미리 지정된 테이블 이름이 필요합니다. . 새 테이블 추가를 처리하는 동적 접근 방식의 경우 자동화된 솔루션이 필요합니다.
그러한 솔루션 중 하나는 데이터베이스에서 모든 테이블 이름을 동적으로 쿼리하고 각 테이블을 별도의 압축 파일에 덤프하는 셸 스크립트입니다. 이렇게 하면 덤프 스크립트에서 수동으로 테이블 이름을 유지 관리할 필요가 없습니다.
다음은 이 기능을 구현하는 샘플 스크립트입니다.
#!/bin/bash
# Descr: Dump MySQL table data into separate SQL files for a specified database.
# Usage: Run without args for usage info.
# Author: @Trutane
[ $# -lt 3 ] && echo "Usage: $(basename $0) <DB_HOST> <DB_USER> <DB_NAME> [<DIR>]" && exit 1
DB_host=$1
DB_user=$2
DB=$3
DIR=${4:-.}
[ -d $DIR ] || mkdir -p $DIR
echo -n "DB password: "
read -s DB_pass
tbl_count=0
for t in $(mysql -NBA -h $DB_host -u $DB_user -p$DB_pass -D $DB -e 'show tables')
do
echo "DUMPING TABLE: $DB.$t"
mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t | gzip > "$DIR/$DB.$t.sql.gz"
tbl_count=$(( tbl_count 1 ))
done
echo "$tbl_count tables dumped from database '$DB' into dir=$DIR"
이 스크립트는 데이터베이스 비밀번호를 묻는 메시지를 표시하고, 지정된 데이터베이스에서 테이블 이름을 쿼리하고, 각 테이블의 데이터를 SQL 명령으로 개별 테이블에 덤프합니다. 지정된 디렉터리(또는 기본적으로 현재 작업 디렉터리) 내의 압축 파일입니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3