Пример #1
0
 function startBackup($params, &$nexturl)
 {
     set_time_limit(0);
     header("Content-type:text/html;charset=utf-8");
     $sizelimit = $params['sizelimit'];
     $filename = $params['filename'];
     $fileid = $params['fileid'];
     $tableid = $params['tableid'];
     $startid = $params['startid'];
     include_once CORE_DIR . '/lib/mysqldumper.class.php';
     $dumper = new Mysqldumper(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
     $dumper->setDroptables(true);
     $dumper->tableid = $tableid;
     $dumper->startid = $startid;
     $backdir = HOME_DIR . '/backup';
     $finished = $dumper->multiDump($filename, $fileid, $sizelimit, $backdir);
     $fileid++;
     if (!$finished) {
         $nexturl = "index.php?ctl=system/backup&act=backup&sizelimit={$sizelimit}&filename={$filename}&fileid={$fileid}&tableid=" . $dumper->tableid . "&startid=" . $dumper->startid;
     } else {
         $dir = HOME_DIR . '/backup';
         $tar = $this->system->loadModel('utility/tar');
         chdir($dir);
         for ($i = 1; $i <= $fileid; $i++) {
             $tar->addFile('multibak_' . $filename . '_' . $i . '.sql');
         }
         //Add archive xml
         $verInfo = $this->system->version();
         $backupdata['app'] = $verInfo['app'];
         $backupdata['rev'] = $verInfo['rev'];
         $backupdata['vols'] = $fileid;
         $xml = $this->system->loadModel('utility/xml');
         $xmldata = $xml->array2xml($backupdata, 'backup');
         file_put_contents('archive.xml', $xmldata);
         $tar->addFile('archive.xml');
         $tar->filename = 'multibak_' . $filename . '.tgz';
         $tar->saveTar();
         for ($i = 1; $i <= $fileid; $i++) {
             @unlink('multibak_' . $filename . '_' . $i . '.sql');
         }
         @unlink('archive.xml');
     }
     return $finished;
 }
Пример #2
0
</FORM>
<br><hr><br>

<?php 
set_time_limit(0);
include_once '../config/config.php';
include_once './mysql_db.php';
$dbHost = DB_HOST;
$dbUser = DB_USER;
$dbPass = DB_PASSWORD;
$dbName = DB_NAME;
$GLOBALS['_tbpre'] = DB_PREFIX;
define('MYSQL_CHARSET_NAME', DB_CHARSET);
if ($_REQUEST["action"] == 'backup') {
    $dumper = new Mysqldumper($dbHost, $dbUser, $dbPass, $dbName);
    $dumper->setDroptables(true);
    $dumper->nodata = array();
    if (!$_REQUEST['inited']) {
        $fileid = 0;
        $tableid = 0;
        $startid = -1;
        rptout("开始数据库备份...\n");
    } else {
        $dumper->tableid = $_REQUEST['tableid'];
        $dumper->startid = $_REQUEST['startid'];
        $fileid = $_REQUEST['fileid'];
    }
    $finished = $dumper->multiDump($filename, $fileid, $savetype, 1024);
    $fileid++;
    rptout("数据库备份文件 data_" . $fileid . ".sql 已生成\n");
    $tableid = $dumper->tableid;
Пример #3
0
    $tables = isset($_POST['chk']) ? $_POST['chk'] : '';
    if (!is_array($tables)) {
        echo '<html><body>' . '<script type="text/javascript">alert(\'Please select a valid table from the list below\');</script>' . '</body></html>';
        exit;
    }
    /*
     * Code taken from Ralph A. Dahlgren MySQLdumper Snippet - Etomite 0.6 - 2004-09-27
     * Modified by Raymond 3-Jan-2005
     * Perform MySQLdumper data dump
     */
    @set_time_limit(120);
    // set timeout limit to 2 minutes
    $dbname = str_replace('`', '', $dbase);
    $dumper = new Mysqldumper($database_server, $database_user, $database_password, $dbname);
    $dumper->setDBtables($tables);
    $dumper->setDroptables(isset($_POST['droptables']) ? true : false);
    $dumpfinished = $dumper->createDump('callBack');
    if ($dumpfinished) {
        exit;
    } else {
        $e->setError(1, 'Unable to Backup Database');
        $e->dumpError();
        exit;
    }
    // MySQLdumper class can be found below
} else {
    include_once "header.inc.php";
    // start normal header
}
?>
<script language="javascript">
Пример #4
0
 function backup()
 {
     $dumper = new Mysqldumper(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
     $dumper->setDroptables(true);
     $dumper->nodata = array();
     #
     if ($_POST['type'] == 'shoponly') {
         $dumper->backuptype = 'shoponly';
     }
     #
     $fileid = 0;
     $this->backupfileprefix = date("YmdHis", time());
     msg("开始数据库备份...\n");
     do {
         $backupfilename = $this->backupfileprefix . "_" . ($fileid + 1) . ".sql";
         $bakfile = "{$this->backupdir}/{$backupfilename}";
         $finished = $dumper->multiDump($bakfile, $fileid, 1024);
         $fileid++;
         msg("数据库备份文件 {$backupfilename} 已生成\n");
     } while (!$finished);
     msg("<hr><font color=green>数据库备份完毕</font>\n");
 }