Mysqldump Gzip을 사용하여 MySQL 데이터베이스용 압축 파일 생성
이 튜토리얼은 crontab
이 있거나 없는 mysqldump gzip
을 사용하여 지정된 MySQL 데이터베이스의 압축 백업을 수행하는 방법을 안내합니다.
mysqldump gzip
을 사용하여 MySQL 데이터베이스용 압축 파일 생성
mysqldump
및 gzip
은 Linux 운영 체제 유틸리티입니다. mysqldump
는 데이터베이스 백업을 수행하는 데 사용됩니다.
백업을 현재 디렉토리에 압축 파일로 저장할 수 있는 경우 다음과 같이 gzip
을 사용합니다.
예제 코드 1:
-- Syntax: mysqldump -u username -ppassword db_name | gzip > dumpfilename.sql.gz
mysqldump -u root -p test | gzip > dump_test_db.sql.gz
이제 ls
명령을 사용하여 압축 파일이 생성되었는지 확인합니다. 데이터가 다른 파일을 통과하고 마지막 파일에 저장되는 또 다른 예를 들어보겠습니다.
예제 코드 2:
-- Syntax: mysqldump -u username -ppassword db_name | gzip > file1.gz > file2.gz
mysqldump -u root -p test | gzip > file1.gz > file2.gz > file3.gz
출력:
$> ls -l
-rw-r--r-- 1 root root 0 14:35 21 May file1.gz
-rw-r--r-- 1 root root 0 14:35 21 May file2.gz
-rw-r--r-- 1 root root 453 14:35 21 May file3.gz
이 예에서 mysqldump
가 실행되고 생성된 출력은 파이프(|
) 기호를 사용하여 리디렉션됩니다. 그런 다음 파이프는 표준 출력을 표준 입력으로 gzip
명령으로 보냅니다.
>
는 마지막 파일 이름을 찾을 때까지 데이터 리디렉션을 계속하는 출력 리디렉션 연산자이며 데이터가 저장될 파일입니다.
위에 제공된 출력을 참조하십시오. 마지막 파일은 file3
으로 453
크기의 데이터를 포함하고 file1
과 file2
의 크기는 0
입니다. 다음은 gzip
의 다양한 매개변수와 그 용도에 대한 상세 가이드입니다.
crontab
을 사용하여 압축된 백업을 자동화할 수도 있습니다. 다음 섹션에서 알아보겠습니다.
crontab
을 사용하여 압축 백업 자동화
우리는 cron 작업이 할당할 특정 시간에 mysqldump
명령을 실행할 데이터베이스의 압축된 백업을 수행하는 절차를 자동화하기 위해 cron 작업을 만듭니다.
cron 작업을 통해 MySQL 데이터베이스에 대한 자동 압축 백업을 설정하는 단계를 따라야 합니다.
1단계: 사용자의 홈 디렉토리에 .my.cnf
파일을 만듭니다.
sudo nano ~/.my.cnf
다음과 같이 정확한 텍스트를 작성하십시오.
[client]
user = db_username
password = db_password
자격 증명으로 db_username
및 db_password
를 업데이트하는 것을 잊지 마십시오. 예를 들어 사용자 이름은 root
이고 암호는 12345
입니다.
예제 코드:
[client]
user = root
password = 12345
완료되면 파일을 저장하고 종료합니다.
2단계: 자격 증명 파일의 권한을 제한합니다. 이렇게 하면 지정된 사용자가 액세스할 수 있습니다.
$ chmod 600 ~/.my.cnf
3단계: 다음으로 모든 백업을 한 곳에 저장할 디렉터리를 만듭니다.
$ mkdir ~/database_backups
4단계: 지금 crontab
파일을 엽니다.
$ crontab -e
방금 연 crontab
파일에 다음 작업을 작성합니다. 매일 오전 3시에 데이터베이스 압축 백업을 생성합니다.
다음 작업에서 사용자 이름은 root
, 데이터베이스 이름은 test
, database_backups
폴더는 모든 백업을 저장합니다.
$ 0 3* * * /usr/bin/mysqldump -u root test | gzip > /home/root/database_backups/test-$(date +\%Y\%m\%d).gz