ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
//这里是你要执行的代码 添加备份php或者还原的php的脚本,
sleep($interval);// 等待5分钟
}while(true);

一、备份数据库并下载到本地【db_backup.php】

  1. <?php
  2. // 设置SQL文件保存文件名
  3. $filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
  4. // 所保存的文件名
  5. header("Content-disposition:filename=".$filename);
  6. header("Content-type:application/octetstream");
  7. header("Pragma:no-cache");
  8. header("Expires:0");
  9. // 获取当前页面文件路径,SQL文件就导出到此文件夹内
  10. $tmpFile = (dirname(__FILE__))."\\".$filename;
  11. // 用MySQLDump命令导出数据库
  12. exec("mysqldump -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname > ".$tmpFile);
  13. $file = fopen($tmpFile, "r"); // 打开文件
  14. echo fread($file,filesize($tmpFile));
  15. fclose($file);
  16. exit;
  17. ?>
<?php
// 设置SQL文件保存文件名
$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
// 所保存的文件名
header("Content-disposition:filename=".$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("Expires:0");
// 获取当前页面文件路径,SQL文件就导出到此文件夹内
$tmpFile = (dirname(__FILE__))."\\".$filename;
// 用MySQLDump命令导出数据库
exec("mysqldump -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname > ".$tmpFile);
$file = fopen($tmpFile, "r"); // 打开文件
echo fread($file,filesize($tmpFile));
fclose($file);
exit;
?>

二、还原数据库【db_restore.php】

  1. <form id="form1" name="form1" method="post" action="">
  2. 【数据库SQL文件】:<input id="sqlFile" name="sqlFile" type="file" />
  3. <input id="submit" name="submit" type="submit" value="还原" />
  4. </form>
  5. <?php
  6. // 我的数据库信息都存放到config.php文件中,所以加载此文件,如果你的不是存放到该文件中,注释此行即可;
  7. require_once((dirname(__FILE__).'/../../include/config.php'));
  8. if ( isset ( $_POST['sqlFile'] ) )
  9. {
  10. $file_name = $_POST['sqlFile']; //要导入的SQL文件名
  11. $dbhost = $cfg_dbhost; //数据库主机名
  12. $dbuser = $cfg_dbuser; //数据库用户名
  13. $dbpass = $cfg_dbpwd; //数据库密码
  14. $dbname = $cfg_dbname; //数据库名
  15. set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入
  16. $fp = @fopen($file_name, "r") or die("不能打开SQL文件 $file_name");//打开文件
  17. mysql_connect($dbhost, $dbuser, $dbpass) or die("不能连接数据库 $dbhost");//连接数据库
  18. mysql_select_db($dbname) or die ("不能打开数据库 $dbname");//打开数据库
  19. echo "<p>正在清空数据库,请稍等....<br>";
  20. $result = mysql_query("SHOW tables");
  21. while ($currow=mysql_fetch_array($result))
  22. {
  23. mysql_query("drop TABLE IF EXISTS $currow[0]");
  24. echo "清空数据表【".$currow[0]."】成功!<br>";
  25. }
  26. echo "<br>恭喜你清理MYSQL成功<br>";
  27. echo "正在执行导入数据库操作<br>";
  28. // 导入数据库的MySQL命令
  29. exec("mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname < ".$file_name);
  30. echo "<br>导入完成!";
  31. mysql_close();
  32. }
  33. ?>

php 备份和还原数据库的更多相关文章

  1. ASP.NET中使用代码来进行备份和还原数据库

    ASP.NET中使用代码来进行备份和还原数据库  SQL代码: 1 2 3 4 5 -- 备份数据库 backup database db_CSManage to disk='c:\backup.ba ...

  2. MSSQL - 备份和还原数据库

    SQL语句备份和还原数据库:http://blog.csdn.net/liuhelong/article/details/3335687 1.MSSQL - SqlServer:此数据库处于单用户模式 ...

  3. 使用.net备份和还原数据库

    原文:使用.net备份和还原数据库 CSDN网友的提问http://community.csdn.net/Expert/TopicView3.asp?id=4929678C#实现SQLSERVER20 ...

  4. 在ASP.NET中备份和还原数据库

        昨天看了<C#项目实录>中的进销存管理系统,和其他书里讲的案例一样,无非也就是数据库增删查改,但是这个进销存系统中有一个备份和还原数据库的功能,蛮有兴趣的,看了一下代码,原来如此, ...

  5. mysql备份、还原数据库(命令行)

    这里记录下MySQL如何通过命令行备份和还原数据库. 简单的三个步骤 方法很简单,可以分为三个步骤: 1.打开cmd控制台(命令行). 2.输入相应命令完成备份还原操作. 3.关闭cmd控制台. 就和 ...

  6. mysql备份与还原 数据库的常用命令。

    一.备份数据: Mysqldump常用命令: mysqldump -u用户名 -p密码 --databases 数据库1 数据库2 > xxx.sql 常见选项: -u: 用户名 -p: 密码 ...

  7. SQL语句备份和还原数据库

    1,使用SQL最简单备份,还原数据库 1 /* 备份 */ 2 backup database Test to disk='D:/Test.bak' 3 /* 还原 */ 4 restore data ...

  8. 转!mysql备份与还原数据库

    备份数据库:1) mysqldump -uroot -p db_name > 20181018_preprod_bak.sql2) 输入数据库密码 还原数据库:1. 系统命令行:mysqladm ...

  9. Sql server 数据库的备份和还原数据库提示“ 加载的介质已格式化为支持 1 个介质簇,但根据指定的备份设备,应支持 2 个介质簇”

     数据库备份和还原总结 在 "M:\2017-Pro\company\other\databak_2014-10\anquanbaowei_db_201704300200.BAK" ...

随机推荐

  1. 【转】 学习ios(必看经典)牛人40天精通iOS开发的学习方法【2015.12.2

    原文网址:http://bbs.51cto.com/thread-1099956-1.html 亲爱的学员们: 如今,各路开发者为淘一桶金也纷纷转入iOS开发的行列.你心动了吗?想要行动吗?知道如何做 ...

  2. VS2010 快速写入注释小技巧

    /************************************************************************//*  *//******************* ...

  3. [QT]Qt+VS2012+Win8 64Bit安装

    学习Qt鸟,当年没听@Coding_Peon(http://weibo.com/u/1764451551?topnav=1&wvr=5&topsug=1)话好好学习QT和Python之 ...

  4. [原]ubuntu下制作openstack-havana源

    ubuntu下可以用apt-mirror下载openstack的源: 1.安装apt-mirror: apt-get install apt-mirror 2.配置/etc/apt/mirror.li ...

  5. ArrStack——数组栈(procedure)

    //数组栈,对于无法预料栈的长度情况下,可能会因为原分配数组不够长而导致数据溢出,或因为数组太长而浪费空间.但是操作快,不需要额外的操作.而链表与此想法,可以动态分配内存,但是要增加额外的操作. #i ...

  6. 400. Nth Digit

    这个EASY难度的题怎么感觉比H的还难,昨天没做出来,今天才做出来.. 呃啊..我生 气 啦.. 直接看的答案,耻辱. 1 digit: 1~9 总共1×9个 2 digits: 10~99 总共2× ...

  7. 回某位朋友问题备受phpcgi.exe煎熬现在cpu跑满(解决方案)

    (本文原创,但是cgi参数参考一个大神写的针对小服务器的,希望大家积极投票哦) 下面是对php-cgi.ext过多引起服务器cup%的解决方法,希望对大家有帮助;大多数情况是发生在第四项上;   解决 ...

  8. DUBBO Thread pool is EXHAUSTED!

    一.问题 在测试环境遇到的异常信息,如下: 16-10-17 00:00:00.033 [New I/O server worker #1-6] WARN  com.alibaba.dubbo.com ...

  9. 前端性能优化:使用Data URI代替图片SRC

    日期:2013-7-6  来源:GBin1.com 提升页面大小的效率,不仅仅是取决于使用精灵或是压缩代码,给定页面的请求数量在前端性能中也占有了很不小的重量.减少请求可以让你的网站加载更快,而其中一 ...

  10. DB2 数据库绑定用户授权命令

    1.1  数据库绑定用户授权命令 db2 connect to opca db2 grant dbadm,createtab,bindadd,connect,create_not_fenced_rou ...