mysql 자동 백업

mysql 자동 백업

QA

mysql 자동 백업

본문

mysql 자동 백업을 하려고 합니다.

 

방법은 php 파일을 만들어서 거기에 명령어를 넣고 리눅스 crontab을 이용하여 반복 설정하려고 합니다.

근데 몇개의 테이블이 용량이 커서 제외하고 백업을 하려고 하는데요.

방법이 있을까요?

이 질문에 댓글 쓰기 :

답변 2

방법은 여러가지일텐데

기본 덤프 구문에 기반해


mysqldump ... mydb t1 t2 t3 > mydb_tables.sql

 


<?php
$tables = '';
$tables_ignore = ['t4', 't5'];
$result = mysqli_query('SHOW TABLES'); // 혹은 information_schema.TABLES 에서 기준용량 검색
for ( $row = ... ) {
    $tbl = $row[...];
    if (in_array($tbl, $tables_ignore) == true) {
        continue;
    }
    $tables .= ' ' . $tbl;
}
 
if (empty($tables) === false) {
    // https://www.php.net/manual/en/ref.exec.php 관련 함수로 명령 전달
}
?>

이후 ' t1 t2 t3' 이부분만 교체해 주는 식으로 만들어도 될것 같고

 

아니면 아래처럼 개별로 떨어지게 해도 될것 같구요.


mysqldump ... mydb t1 > mydb_tables_t1.sql
mysqldump ... mydb t2 > mydb_tables_t2.sql
mysqldump ... mydb t3 > mydb_tables_t3.sql

 

crontab 을 사용하는 환경이라도

max_execution_time

memory_limit

옵션 등 미리 확인해보시는것도 좋습니다.

제한이 걸릴경우 차라리 ShellScript 가 나을 수도 있구요.

https://stackoverflow.com/questions/425158/how-to-skip-certain-database-tables-with-mysqldump

--ignore-table=DATABASE.table1

길어지긴 하겠지만

이거 쓰시면 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 92
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT