首页>资讯中心>PHP代码实现数据库定时备份和还原

PHP代码实现数据库定时备份和还原


更新时间:2023-03-21 10:47:26 文章来源:企业大脑 浏览:20 编辑:新格小鹿

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】

Php代码

 .$tmpFile#41;;   $file = fopen#40;$tmpFile, r#41;; // 打开文件   echo fread($file,filesize($tmpFile));   fclose($file);   exit;   ?>

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

Php代码

   【数据库SQL文件】:         6来源gaodaimacom搞#^代%!码网搞gaodaima代码 $dbuser, $dbpass) or die(不能连接数据库 $dbhost);//连接数据库   mysql_select_db($dbname) or die (不能打开数据库 $dbname);//打开数据库   echo 

正在清空数据库,请稍等....
;   $result = mysql_query(SHOW tables);   while ($currow=mysql_fetch_array($result))   {   mysql_query(drop TABLE IF EXISTS $currow[0]);   echo 清空数据表【.$currow[0].】成功!
;   }   echo 
恭喜你清理MYSQL成功
;   echo 正在执行导入数据库操作
;   // 导入数据库的MySQL命令   exec#40;mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname < .$file_name#41;;   echo 
导入完成!;   mysql_close();   }   ?>



网上摘抄2:

前段时间主机提供商服务器发生了问题,让人郁闷的事是将数据恢复到了一星期以前,导致好些博客数据丢失。

痛定思痛,想出了一个自动备份网站数据的方法。

1. 在服务器上实现数据转成SQL

为了实现服务器上的数据转成SQL脚本,需要在服务器上放一个PHP文件,这个PHP文件的目的是连接到数据库,然后将数据读取出来,最后再转成SQL。例如,我们放一个tosql.php文件在服务器htdocs目录,内容如下:

connect($config[db][host], $config[db][user], $config[db][pass]);$db->select_db($config[db][name]);$db->query(set names utf8);$sqldump = ;//  我的表名都以tbs_开头$sql = SHOW TABLE STATUS WHERE name like tbs_%;$query = $db->query($sql);while($table = $db->fetch_array($query)) {    $sqldump .= sql_dumptable($table[Name]);}echo $sqldump;  function sql_dumptable($table) {  global $db;    $tabledump = DROP TABLE IF EXISTS $table;\n;  $createtable = $db->query(SHOW CREATE TABLE $table);  $create = $db->fetch_array($createtable);  $tabledump .= $create[1].;\n\n;  $rows = $db->query(SELECT * FROM $table);  $numfields = $db->num_fields($rows);  $numrows = $db->num_rows($rows);  while ($row = $db->fetch_array($rows))   {    $comma = ;    $tabledump .= INSERT INTO $table VALUES(;    for($i = 0; $i < $numfields; $i++){      $tabledump .= $comma..mysql_escape_string($row[$i]).;      $comma = ,;    }    $tabledump .= );\n;  }  $tabledump .= \n;  return $tabledump;}

2. 在本地新增一个PHP文件,目的是从服务器上获取SQL基本,然后写入到本地文件。这个PHP文件取名为nextdata.php,内容如下:

3. 实现定时备份

本地使用的是Windows操作系统,可以使用计划任务定时的执行备份任务,这样需要一个批处理文件。批处理文件名称为nextdata.bat,内如如下:

D:\wamp\bin\php\php5.3.5\php nextdata.php

经过上述三个步骤后,我们的计划任务就会定时的执行服务器上的tosql.php文件,然后将其内容写入到本地,从而实现了数据库的备份任务。



版权所有 企业大脑 www.QYDN.com