mysql 자동 백업

mysql 자동 백업

QA

mysql 자동 백업

답변 2

본문

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

길어지긴 하겠지만

이거 쓰시면 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 92
© SIRSOFT
현재 페이지 제일 처음으로