MySQL 일일 백업 및 증분 백업 스크립트
적합 개체
이 문서는 Linux, mysql 4.1.14 버전에서 테스트되었습니다. 적절하게 수정하면 mysql 4.0, 5.0 및 기타 버전에도 적합할 수 있습니다.
이 문서는 복제 기능이 활성화된 MySQL이 없는 사용자에게 적합합니다.
모든 사람의 백업 전략이 다를 수 있으므로 이에 따라 수정하십시오. 실제 상황을 보고 하나의 예에서 추론해 보세요. 복사하지 마세요. 불필요한 손실이 발생할 수 있습니다.
이 스크립트의 기능을 이해하시기 바랍니다!
스크립트 설명
7일마다 백업 모든 데이터는 매일 binlog를 백업하는데, 이는 증분백업이다.
(데이터가 적다면 하루에 한 번씩 전체 데이터를 백업하면 된다. 증분 백업은 필요 없을 수도 있음)
셸 스크립트에 대한 작성자의 설명 잘 알지 못해서 엉터리로 쓴 곳이 많습니다 :)
bin 로그 활성화
mysql 버전 4.1에는 기본적으로 오류 로그만 있고 다른 로그는 없습니다. bin 로그를 여는 방법에는 여러 가지가 있습니다. /etc/my.cnf의 mysqld 섹션:
[mysqld]
log-bin
이 로그의 주요 기능은 증분 백업 또는 복제입니다.
증분 백업을 원할 경우 이 로그를 열어야 합니다.
데이터베이스 작업이 빈번한 MySQL의 경우 이 로그가 매우 커질 수 있으며
플러시됩니다. -logs를 데이터베이스에 저장하거나 mysqladmin, mysqldump를 사용하여 flash-logs를 호출하고 delete-master-logs 매개변수를 사용하면 이러한 로그 파일이 사라지고 새 로그 파일이 생성됩니다(처음에는 비어 있음). 🎜>그래서 절대 백업하지 않는다면 로그를 활성화할 필요가 없을 수도 있습니다.
전체 백업과 동시에 플러시 로그를 호출하고, 증분 백업 전에 플러시 로그를 순서대로 호출할 수 있습니다.
전체 백업 스크립트
데이터베이스 데이터가 많은 경우 영향을 피하기 위해 일반적으로 며칠 또는 일주일에 한 번씩 데이터를 백업합니다. 데이터의 양이 상대적으로 적으므로 하루에 한 번씩 백업해도 상관없습니다.
#!/bin/sh
# mysql 데이터 백업 script
# by scud http://www.jscud.com# 2005-10-30
#
# mysqldump --help를 사용하여 자세한 내용을 알아보세요.
#
BakDir=/backup/mysql
DATE=`date +%Y%m%d`
echo " " > ;> $LogFile
echo " " >> $LogFileecho "--------------- -----------------" > ;> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S" ) >> $LogFile
echo "------ -----" >> $LogFile
DumpFile=$DATE.sql
mysqldump --quick --all-databases --flush-logs
> $DumpFile
echo "Dump Done" >> $LogFile
tar czvf $GZDumpFile $ DumpFile >> $LogFile 2>&1
echo "[$GZDumpFile]백업 성공!" >> $LogFile
rm -f $DumpFile
# 이전 일일 백업 파일 삭제: 증분 백업 파일, 전체 백업 후 증분 백업 파일을 삭제합니다.
cd $BakDir/daily
rm -f *
cd $BakDir
echo "백업 완료!"
echo "$BakDir 디렉토리를 확인하세요!"
echo "로컬 디스크나 FTP 어딘가에 복사하세요 !!!"
ls -al $BakDir
위 스크립트는 mysql을 로컬 /backup/mysql 디렉터리에 백업하고, 증분 백업 파일은 /backup/mysql/daily 디렉터리에 저장됩니다.
참고: 위 스크립트는 백업된 파일을 다른 원격 컴퓨터로 전송하지 않습니다. 며칠 전에 백업 파일을 삭제하지 않은 경우: 사용자가 관련 스크립트를 추가하거나
증분 백업은 데이터 양이 상대적으로 적지만, 전체 백업을 기반으로 운영하려면 시간과 비용을 따져보고 자신에게 가장 유리한 방법을 선택하면 된다.
#!/bin/sh
#
# mysql binlog 백업 스크립트
/usr/bin/mysqladmin 플러시 로그
BAKDIR=/backup/mysql/daily
### 특별한 설정을 한 경우 여기에서 수정하거나 이 변수의 적용을 수정하십시오. 라인: 기본적으로 머신 이름이 사용됩니다. MySQL도 기본적으로 머신 이름을 사용합니다.
HOSTNAME=`uname -n`
cd $DATADIR
COUNTER=0
$FILELIST의 파일do
COUNTER=`expr $COUNTER + 1 `
완료
NextNum=0
$FILELIST의 파일
base=`basename $file`
NextNum=`expr $NextNum + 1`
if [ $ NextNum -eq $COUNTER ]
then
echo "마지막 항목 건너뛰기"
else
dest=$BAKDIR/$base
if(test -e $dest)
then
echo "존재 $base 건너뛰기"
else
echo "$base 복사 중"
cp $base $BAKDIR
fi
fi
완료
echo "backup mysql binlog ok"
증분 백업 스크립트는 백업 전에 로그를 플러시하는 것입니다. MySQL은 자동으로 메모리의 로그를 파일에 넣은 다음 새 로그 파일을 생성하므로 다음 단계만 수행하면 됩니다. 백업 처음 몇 개이면 충분합니다. 즉, 마지막 백업은 백업되지 않습니다.
이번 백업에는 지난 백업에서 여러 개의 로그 파일이 생성될 수 있으므로 파일이 백업되었는지 확인해야 합니다. , 백업할 필요가 없습니다.
참고: 마찬가지로 사용자가 직접 원격으로 전송해야 하지만 전체 백업 후에 프로그램이 자동으로 생성됩니다.
액세스 설정
스크립트를 실행하려면 해당 사용자 이름과 비밀번호를 설정해야 합니다. mysqladmin과 mysqldump 모두 사용자 이름과 비밀번호가 필요합니다. 물론 스크립트에 작성할 수 있지만 수정하기가 편리하지 않습니다. 이 스크립트를 실행하기 위해 시스템의 루트 사용자를 사용한다고 가정하면 /root에 .my.cnf 파일을 생성해야 합니다(즉, , 루트 사용자의 홈 디렉터리)
[mysqladmin]
password = 비밀번호
user= root
[mysqldump]user=root
password=password
참고: 이 파일을 루트만 읽을 수 있도록 설정하십시오(chmod 600 .my.cnf )
자동 실행
하나는 crontab -e를 사용하여 루트 사용자의 예약된 작업에 넣는 것입니다. 예를 들어 전체 백업은 매주 일요일 오전 3시에 실행되고 일일 백업은 매주 월요일부터 토요일까지 실행됩니다. 새벽 3시.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.

Navicat 자체는 데이터베이스 비밀번호를 저장하지 않으며 암호화 된 암호 만 검색 할 수 있습니다. 솔루션 : 1. 비밀번호 관리자를 확인하십시오. 2. Navicat의 "비밀번호 기억"기능을 확인하십시오. 3. 데이터베이스 비밀번호를 재설정합니다. 4. 데이터베이스 관리자에게 문의하십시오.

Navicat Premium을 사용하여 데이터베이스 생성 : 데이터베이스 서버에 연결하고 연결 매개 변수를 입력하십시오. 서버를 마우스 오른쪽 버튼으로 클릭하고 데이터베이스 생성을 선택하십시오. 새 데이터베이스의 이름과 지정된 문자 세트 및 Collation의 이름을 입력하십시오. 새 데이터베이스에 연결하고 객체 브라우저에서 테이블을 만듭니다. 테이블을 마우스 오른쪽 버튼으로 클릭하고 데이터 삽입을 선택하여 데이터를 삽입하십시오.

다음 명령으로 MySQL 데이터베이스를보십시오. 서버에 연결하십시오. mysql -u username -p password run show database; 기존의 모든 데이터베이스를 가져 오려는 명령 데이터베이스 선택 : 데이터베이스 이름 사용; 보기 테이블 : 테이블 표시; 테이블 구조보기 : 테이블 이름을 설명합니다. 데이터보기 : 테이블 이름에서 *를 선택하십시오.

MySQL에서 테이블을 복사하려면 새 테이블을 만들고, 데이터를 삽입하고, 외래 키 설정, 인덱스 복사, 트리거, 저장된 절차 및 기능이 필요합니다. 특정 단계에는 다음이 포함됩니다 : 동일한 구조를 가진 새 테이블 작성. 원래 테이블의 데이터를 새 테이블에 삽입하십시오. 동일한 외래 키 제약 조건을 설정하십시오 (원래 테이블에 하나가있는 경우). 동일한 색인을 만듭니다. 동일한 트리거를 만듭니다 (원래 테이블에 하나가있는 경우). 동일한 저장된 절차 또는 기능을 만듭니다 (원래 테이블이 사용되는 경우).

MariaDB 용 Navicat은 암호가 암호화 된 양식으로 저장되므로 데이터베이스 비밀번호를 직접 볼 수 없습니다. 데이터베이스 보안을 보장하려면 비밀번호를 재설정하는 세 가지 방법이 있습니다. Navicat을 통해 비밀번호를 재설정하고 복잡한 비밀번호를 설정하십시오. 구성 파일을 봅니다 (권장되지 않음, 위험이 높음). 시스템 명령 줄 도구를 사용하십시오 (권장되지 않으면 명령 줄 도구에 능숙해야 함).

MySQL에서 복사 및 붙여 넣기 단계는 다음 단계가 포함됩니다. 데이터를 선택하고 CTRL C (Windows) 또는 CMD C (MAC)로 복사; 대상 위치를 마우스 오른쪽 버튼으로 클릭하고 페이스트를 선택하거나 Ctrl V (Windows) 또는 CMD V (Mac)를 사용하십시오. 복사 된 데이터는 대상 위치에 삽입되거나 기존 데이터를 교체합니다 (데이터가 이미 대상 위치에 존재하는지 여부에 따라).

Navicat에서 SQL을 수행하는 단계 : 데이터베이스에 연결하십시오. SQL 편집기 창을 만듭니다. SQL 쿼리 또는 스크립트를 작성하십시오. 실행 버튼을 클릭하여 쿼리 또는 스크립트를 실행하십시오. 결과를 봅니다 (쿼리가 실행 된 경우).
