> 데이터 베이스 > MySQL 튜토리얼 > 더 쉽게 전송하고 가져올 수 있도록 대용량 mysqldump 출력을 더 작은 파일로 분할하려면 어떻게 해야 합니까?

더 쉽게 전송하고 가져올 수 있도록 대용량 mysqldump 출력을 더 작은 파일로 분할하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-11-11 19:55:03
원래의
592명이 탐색했습니다.

How can I split a large mysqldump output into smaller files for easier transfer and import?

큰 mysqldump 출력을 작은 파일로 분할하는 방법

대규모 MySQL 테이블을 데이터베이스 간에 전송할 때 압축된 mysqldump 출력이 최대 파일 수를 초과할 수 있음 대상으로 가져올 수 있는 크기입니다. 이 문제를 극복하기 위해 사용자는 다음 방법을 사용할 수 있습니다.

csplit을 사용하여 덤프 파일 분할

bash 스크립트를 사용하여 mysqldump 파일을 별도의 파일로 분할할 수 있습니다. 각 테이블. 이 스크립트는 csplit 유틸리티를 활용하여 특정 패턴을 기반으로 파일을 생성합니다.

START="/-- Table structure for table/"

if [ $# -lt 1 ] || [[  == "--help" ]] || [[  == "-h" ]] ; then
        echo "USAGE: extract all tables:"
        echo "  DUMP_FILE"
        echo "extract one table:"
        echo "  DUMP_FILE [TABLE]"
        exit
fi

if [ $# -ge 2 ] ; then
        #extract one table 
        csplit -s -ftable  "/-- Table structure for table/" "%-- Table structure for table \`\`%" "/-- Table structure for table/" "%40103 SET TIME_ZONE=@OLD_TIME_ZONE%1"
else
        #extract all tables
        csplit -s -ftable  "$START" {*}
fi

[ $? -eq 0 ] || exit

mv table00 head

FILE=`ls -1 table* | tail -n 1`
if [ $# -ge 2 ] ; then
        # cut off all other tables
        mv $FILE foot
else
        # cut off the end of each file
        csplit -b '%d' -s -f$FILE $FILE "/40103 SET TIME_ZONE=@OLD_TIME_ZONE/" {*}
        mv ${FILE}1 foot
fi

for FILE in `ls -1 table*`; do
        NAME=`head -n1 $FILE | cut -d$'\x60' -f2`
        cat head $FILE foot > "$NAME.sql"
done

rm head foot table*
로그인 후 복사

mysqldump와 함께 --extended-insert=FALSE 사용

이 옵션은 SQL을 생성합니다. 가져올 수 있는 파일로 분할할 수 있는 파일입니다. 분할은 --lines 옵션과 함께 사용하여 파일당 줄 수를 제어할 수 있습니다. bzip2와 같은 시행착오 또는 압축 도구를 사용하여 각 파일 크기에 대한 적절한 줄 수를 결정할 수 있습니다.

위 내용은 더 쉽게 전송하고 가져올 수 있도록 대용량 mysqldump 출력을 더 작은 파일로 분할하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿