Data management You can use the split-volume backup feature only if you choose to back up to the server

Source: Internet
Author: User

<!doctype HTML PUBLIC "-//W3C//DTD XHTML 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/ Xhtml1-transitional.dtd ">
<meta http-equiv= "Content-type" content= "text/html; Charset=utf-8 "/>
<link type= "text/css Tutorial" rel= "stylesheet" href= "Common/control.css" >
<script type= "text/web Effects" language= "JavaScript" src= "Common/admin.otable.js" ></script>
<script type= "Text/javascript" language= "JavaScript" src= "Common/include.func.js" ></script>
<title> Data Management </title>
<style type= "Text/css" >
span {padding-left:8px;}
</style>

<body class= "Contentbody" >
<div class= "Maindiv" >
<span class= "Ctitle" >esweb system data Management </span>
<ul class= "CMenu" >
<li><a href= "sql_backup.php" > Data backup </a></li>
<li><a href= "sql_restore.php" > Data restore </a></li>
<li><a href= "sql_optimize.php" > Data optimization </a>
</ul>

<div class= "Concontent" >
<?php

/*--------------Interface--------------*/if (!$_post[' act ') {/*----------------------*/
$MSGS []= "Server backup directory is $backup";
$MSGS []=] for larger data tables, it is strongly recommended to use a sub-volume backup ";
$MSGS []=] only choose to backup to the server in order to use the sub-volume backup function ";
Show_msg ($MSGS);
?>
<div class= "thead" ><span class= "left" > If Backup is required , restore or optimize <font color= "Red" > Large amount of Data </font&gt, it is recommended to use "<a href=" http://www.phome.net/ebak2010/"target=" _blank "> Empire Backup King 2010</a>" </span> <span class= "right" ></span></div>
<form name= "MyForm" method= "post" action= "sql_backup.php" >
<table cellpadding= "" cellspacing= "0" border= "0" width= "100%" class= "CTable" id= "otable" align= "Center" >
<tr>
<th colspan= "2" >esweb system data Backup </th>
</tr>
<tr>
&LT;TD align= "Right" width= "$" > select Backup Method </td>
<td><input type= "Radio" name= "Bfzl" value= "Quanbubiao" checked= "checked"/> Back up all data
<input type= "Radio" name= "Bfzl" value= "Danbiao"/> Backup sheet data
<select name= "tablename" ><option value= "" > Please select </option>
<?php
$d->query ("Show Table status from $mysqldb");
while ($d->nextrecord ()) {
echo "<option value=". $d->f (' name '). "' > ". $d->f (' name ')." </option> ";}
?>
</select></td>
</tr>
<tr>
&LT;TD align= "Right" > select target Location </td>
<td><input type= "Radio" name= "Weizhi" value= "Server" checked= "checked"/> Backup to Server
<input type= "Radio" name= "Weizhi" value= "LOCALPC"/> Backup to local </td>
</tr>

<tr>
&LT;TD align= "Right" > Using split-volume backup </td>
<td><input type= "checkbox" Name= "Fenjuan" value= "yes" checked= "checked"/>
Sub-volume backup <input name= "filesize" type= "text" value= "1260" size= "ten" class= "Text2"/> k <span> (only select Backup to Server, To use the split-volume backup feature) </span></td>
</tr>
<tr>
&LT;TD align= "Right" > Program Description </td>
<td>1. For larger data tables, it is highly recommended to use a split-volume backup.
<br>2. You can use the split-volume backup feature only if you choose to back up to the server.
</td>
</tr>
<tr>
&LT;TD align= "center" colspan= "2" ><input type= "submit" id= "Act" name= "act" value= "Backup" class= "button"/> < Input type= "reset" value= "reset" class= "button"/></td>
</tr>
</table>
</form>
<?php/*-------------interface End-------------*/}/*---------------------------------*/
/*----*/else{/*--------------Main program-----------------------------------------*/
if ($_post[' Weizhi ']== "LOCALPC" &&$_post[' Fenjuan ']== ' yes ')
{$msgs []=] Only select Backup to server to use the sub-volume backup function ";
Show_msg ($MSGS); Pageend ();}
if ($_post[' Fenjuan ']== "yes" &&!$_post[' filesize '])
{$MSGS []=] You have selected the sub-volume backup function, but did not fill in the volume file size ";
Show_msg ($MSGS); Pageend ();}
if ($_post[' Weizhi ']== "Server" &&!writeable ($backup))
{$MSGS []= "Backup file directory ' $backup ' not writable, please modify directory Properties";
Show_msg ($MSGS); Pageend ();}

/*----------back up all Tables-------------*/if ($_post[' Bfzl ']== "Quanbubiao") {/*----*/
/*----Roll */if (!$_post[' Fenjuan ') {/*--------------------------------*/
if (! $tables = $d->query ("Show Table status from $mysqldb")
{$MSGS []= "Read database structure error"; show_msg ($MSGS); Pageend ();}
$sql = "";
while ($d->nextrecord ($tables))
{
$table = $d->f ("name");
$sql. =make_header ($table);
$d->query ("SELECT * from $table");
$num _fields= $d->nf ();
while ($d->nextrecord ())
{$sql. =make_record ($table, $num _fields);}
}
$filename =date ("Ymd", Time ()). " _all.sql ";
if ($_post[' Weizhi ']== "LOCALPC") down_file ($sql, $filename);
ElseIf ($_post[' Weizhi ']== "server")
{if (Write_file ($sql, $filename))
$MSGS []=] All data table data backup complete, generate backup file ' $backup/$filename ' ";
else $msgs []=] failed to back up all data tables ";
Show_msg ($MSGS);
Pageend ();
}
/*-----------------do not roll over */}/*-----------------------*/
/*-----------------Roll */else{/*-------------------------*/
if (!$_post[' filesize ')
{$msgs []=] Please fill in the size of the backup file, Show_msg ($msgs);p ageend ();}
if (! $tables = $d->query ("Show Table status from $mysqldb")
{$MSGS []= "Read database structure error"; show_msg ($MSGS); Pageend ();}
$sql = ""; $p = 1;
$filename =date ("Ymd", Time ()). " _all ";
while ($d->nextrecord ($tables))
{
$table = $d->f ("name");
$sql. =make_header ($table);
$d->query ("SELECT * from $table");
$num _fields= $d->nf ();
while ($d->nextrecord ())
{$sql. =make_record ($table, $num _fields);
if (strlen ($sql) >=$_post[' filesize ']*1000) {
$filename. = ("_v". $p. ". SQL ");
if (Write_file ($sql, $filename))
$MSGS []=] All data Sheets-volumes-". $p." -Data backup complete, generate backup file ' $backup/$filename ' ";
else $msgs []= "Backup Table-". $_post[' tablename '). " -Failure ";
$p + +;
$filename =date ("Ymd", Time ()). " _all ";
$sql = "";}
}
}
if ($sql! = "") {$filename. = ("_v". $p. ". SQL ");
if (Write_file ($sql, $filename))
$MSGS []=] All data Sheets-volumes-". $p." -Data backup complete, generate backup file ' $backup/$filename ' ";}
Show_msg ($MSGS);
/*---------------------*/}/* end of the volume--------------------------------------*/
/*--------Back up all tables end */}/*---------------------------------------------*/

/*--------Backup single table------*/elseif ($_post[' Bfzl ']== "Danbiao") {/*------------*/
if (!$_post[' tablename ')
{$msgs []=] Select the data table to be backed up, show_msg ($MSGS); Pageend ();}
/*--------Roll */if (!$_post[' Fenjuan ') {/*-------------------------------*/
$sql =make_header ($_post[' tablename ');
$d->query ("SELECT * from". $_post[' tablename ');
$num _fields= $d->nf ();
while ($d->nextrecord ())
{$sql. =make_record ($_post[' tablename '), $num _fields);}
$filename =date ("Ymd", Time ()). " _ ". $_post[' tablename ').". SQL ";
if ($_post[' Weizhi ']== "LOCALPC") down_file ($sql, $filename);
ElseIf ($_post[' Weizhi ']== "server")
{if (Write_file ($sql, $filename))
$MSGS []= "Table-". $_post[' tablename '). " -Data backup complete, generate backup file ' $backup/$filename ' ";
else $msgs []= "Backup Table-". $_post[' tablename '). " -Failure ";
Show_msg ($MSGS);
Pageend ();
}
/*----------------do not roll over */}/*------------------------------------*/
/*----------------Roll */else{/*--------------------------------------*/
if (!$_post[' filesize ')
{$msgs []=] Please fill in the size of the backup file, Show_msg ($msgs);p ageend ();}
$sql =make_header ($_post[' tablename '); $p = 1;
$filename =date ("Ymd", Time ()). " _ ". $_post[' tablename ');
$d->query ("SELECT * from". $_post[' tablename ');
$num _fields= $d->nf ();
while ($d->nextrecord ())
{
$sql. =make_record ($_post[' tablename '), $num _fields);
if (strlen ($sql) >=$_post[' filesize ']*1000) {
$filename. = ("_v". $p. ". SQL ");
if (Write_file ($sql, $filename))
$MSGS []= "Table-". $_post[' tablename '). " -Volume-". $p." -Data backup complete, generate backup file ' $backup/$filename ' ";
else $msgs []= "Backup Table-". $_post[' tablename '). " -Failure ";
$p + +;
$filename =date ("Ymd", Time ()). " _ ". $_post[' tablename ');
$sql = "";}
}
if ($sql! = "") {$filename. = ("_v". $p. ". SQL ");
if (Write_file ($sql, $filename))
$MSGS []= "Table-". $_post[' tablename '). " -Volume-". $p." -Data backup complete, generate backup file ' $backup/$filename ' ";}
Show_msg ($MSGS);
/*----------*/}/* end of the volume--------------------------------------------------*/
/*----------Backup single table End */}/*----------------------------------------------*/

/*---*/}/*-------------the end of the main program------------------------------------------*/

Function Write_file ($sql, $filename)
{
$re =true;
Global $backup;
if ([email protected] $fp =fopen ($backup. " /". $filename," w+ ") {$re =false; echo" failed to open target file ";}
if ([email protected] ($fp, $sql)) {$ Re=false; echo "Failed to write file";}
if ([email protected] ($fp)) {$re = False echo "Failed to close target file";}
return $re;
}

function Down_file ($sql, $filename)
{
Ob_end_clean ();
Header ("Content-encoding:none");
Header ("Content-type:". ( Strpos ($_server[' http_user_agent '), ' msie ')? ' Application/octetstream ': ' Application/octet-stream ');

Header ("Content-disposition:". ( Strpos ($_server[' http_user_agent '), ' msie ')? ' Inline; ': ' Attachment; ‘)." Filename= ". $filename);

Header ("Content-length:". strlen ($sql));
Header ("Pragma:no-cache");

Header ("expires:0");
Echo $sql;
$e =ob_get_contents ();
Ob_end_clean ();
}

function writeable ($dir)
{

if (!is_dir ($dir)) {
@mkdir ($dir, 0777);
}

if (Is_dir ($dir))
{

if ($fp = @fopen ("$dir/test.test", ' W '))
{
@fclose ($FP);
@unlink ("$dir/test.test");
$writeable = 1;
}
else {
$writeable = 0;
}

}

return $writeable;

}

function Make_header ($table)
{Global $d;
$sql = "DROP table if exists". $table. " n ";
$d->query ("show2881064151 CREATE TABLE". $table);
$d->nextrecord ();
$tmp =preg_replace ("/n/", "", $d->f ("CREATE TABLE"));
$sql. = $tmp. " n ";
return $sql;
}

function Make_record ($table, $num _fields)
{Global $d;
$comma = "";
$sql. = "INSERT into". $table. "VALUES (";
for ($i = 0; $i < $num _fields; $i + +)
{$sql. = ($comma. "". Mysql_escape_string ($d->record[$i]). "'"); $comma = ",";}
$sql. = ") n";
return $sql;
}

function Show_msg ($MSGS)
{
$title = "Hint:";
echo "<table width= ' 100% ' border= ' 0 ' cellpadding= ' 0 ' cellspacing= ' 0 ' >";
echo "<tr><td>". $title. " </td></tr> ";
echo "<tr><td><br><ul>";
while (list ($k, $v) =each ($MSGS))
{
echo "<li>". $v. " </li> ";
}
echo "</ul></td></tr></table>";
}

function Pageend ()
{
Exit ();
}
?>
</div><br/><br/>

</div>

</div>
</body>

Class db{

var $linkid;
var $sqlid;
var $record;

function db ($host = "", $username = "", $password = "", $database = "")
{
if (! $this->linkid) @ $this->linkid = mysql_connect ($host, $username, $password) or Die ("Connection server failed.");
@mysql_select_db ($database, $this->linkid) or Die ("Unable to open database");
return $this->linkid;}

function query ($sql)
{if ($this->sqlid=mysql_query ($sql, $this->linkid)) return $this->sqlid;
else {
$this->err_report ($sql, mysql_error);
return false;}
}

function nr ($sql _id= "")
{if (! $sql _id) $sql _id= $this->sqlid;
Return mysql_num_rows ($sql _id);}

function NF ($sql _id= "")
{if (! $sql _id) $sql _id= $this->sqlid;
Return Mysql_num_fields ($sql _id);}

function NextRecord ($sql _id= "")
{if (! $sql _id) $sql _id= $this->sqlid;
if ($this->record=mysql_fetch_array ($sql _id)) return $this->record;
else return false;
}

function f ($name)
{
if ($this->record[$name]) return $this->record[$name];
else return false;
}

function Close () {mysql_close ($this->linkid);}

function Lock ($tblname, $op = "Write")
{if (mysql_query ("Lock Tables". $tblname. " ". $op)) return true; else return false;}

function unlock ()
{if (mysql_query ("Unlock tables)") return true; else return false;}

function Ar () {
Return @mysql_affected_rows ($this->linkid);
}

function i_id () {
return mysql_insert_id ();
}

function Err_report ($sql, $err)
{
echo "MySQL query error <br>";
echo "query statement:" $sql. " <br> ";
echo "error message:" $ERR;
}
/**************************************** class End ***************************/


Global $mysqlhost, $mysqluser, $mysqlpwd, $mysqldb, $backup;
$mysqlhost = $mydbhost; Host Name
$mysqluser = $mydbuser; Login Name
$mysqlpwd = $MYDBPW; Password
$mysqldb = $mydbname; Name of database

$d =new db ($mysqlhost, $mysqluser, $mysqlpwd, $MYSQLDB);
$d->query ("Set names ' UTF8 '");

Data management You can use the split-volume backup feature only if you choose to back up to the server

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.