답변 2개
채택된 답변
+20 포인트
3년 전
방법은 여러가지일텐데
기본 덤프 구문에 기반해
</p>
<p>mysqldump ... mydb t1 t2 t3 > mydb_tables.sql</p>
<p>
</p>
<p><?php</p>
<p>$tables = '';</p>
<p>$tables_ignore = ['t4', 't5'];</p>
<p>$result = mysqli_query('SHOW TABLES'); // 혹은 information_schema.TABLES 에서 기준용량 검색</p>
<p>for ( $row = ... ) {</p>
<p> $tbl = $row[...];</p>
<p> if (in_array($tbl, $tables_ignore) == true) {</p>
<p> continue;</p>
<p> }</p>
<p> $tables .= ' ' . $tbl;</p>
<p>}</p>
<p> </p>
<p>if (empty($tables) === false) {</p>
<p> // <a href="https://www.php.net/manual/en/ref.exec.php" target="_blank" rel="noopener noreferrer">https://www.php.net/manual/en/ref.exec.php</a> 관련 함수로 명령 전달</p>
<p>}</p>
<p>?></p>
<p>
이후 ' t1 t2 t3' 이부분만 교체해 주는 식으로 만들어도 될것 같고
아니면 아래처럼 개별로 떨어지게 해도 될것 같구요.
</p>
<p>mysqldump ... mydb t1 > mydb_tables_t1.sql</p>
<p>mysqldump ... mydb t2 > mydb_tables_t2.sql</p>
<p>mysqldump ... mydb t3 > mydb_tables_t3.sql</p>
<p>
crontab 을 사용하는 환경이라도
max_execution_time
memory_limit
옵션 등 미리 확인해보시는것도 좋습니다.
제한이 걸릴경우 차라리 ShellScript 가 나을 수도 있구요.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
p
parkhyun
3년 전
감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
3년 전
https://stackoverflow.com/questions/425158/how-to-skip-certain-database-tables-with-mysqldump
--ignore-table=DATABASE.table1
길어지긴 하겠지만
이거 쓰시면 됩니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
p
parkhyun
3년 전
감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인