Heim > php教程 > php手册 > php实现mysql数据库分表分段备份

php实现mysql数据库分表分段备份

WBOY
Freigeben: 2016-06-06 20:03:13
Original
834 Leute haben es durchsucht

本文给大家分享的是php实现mysql数据库分卷备份,选择表进行备份,实现单个sql文件及分卷sql导入。有需要的小伙伴可以参考下

分卷导出思路:统计sql语句变量的长度,按1个字符当成1 字节比较,如果大于设定分卷大小,则写入一个sql文件(我也不知道这样统计是否稳当,这也是借鉴其他的人的)。

分卷导入思路:按行读取sql文件,将每一行当作完整的sql语句存到数组再循环执行插入数据库就可以了,,但是在创建表语句分了多行,这个需要单独处理(就这个花了我好长时间的);

$filesize){ //写入文件并跳转 $file='data/'.$table.'-'.$part.'.sql'; file_put_contents($file,$backupdata); echo $file.' 备份完成,程序继续进行!'; $part++; //分段 //表名 //起点 //跳转 sleep(3); echo "<script>location.href='&#63;start={$start}&table_index={$table_index}&part={$part}';</script>"; exit; } $backupdata.=$backupdata_tmp; $start++; } if($backupdata){ $file='data/'.$table.'-'.$part.'.sql'; file_put_contents($file,$backupdata); } echo $table.'备份完成!
'; sleep(2); $table_index++; if($table_array[$table_index]){ echo "<script>location.href='&#63;table_index={$table_index}';</script>"; exit; }else{ echo '恭喜你,数据库备份完毕!'; } function get_tables($db){ $tq = mysql_list_tables($db); while($tr = mysql_fetch_row($tq)){ $arrtb[] = $tr[0]; } return $arrtb; } ?>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage