public function actionStart($part = null, $start = null)
 {
     \Yii::$app->response->format = Response::FORMAT_JSON;
     $list = \Yii::$app->session->get('backup_list');
     $db = new Database($list[$part], array('path' => realpath(\Yii::$app->controller->module->params['DATA_BACKUP_PATH']) . DIRECTORY_SEPARATOR, 'compress' => $list[$part][2]));
     $start = $db->import($start);
     if (false === $start) {
         return ['status' => 0, 'info' => '还原数据出错'];
     } elseif (0 === $start) {
         //下一卷
         if (isset($list[++$part])) {
             return ['status' => 1, 'info' => "正在还原...#{$part}", 'part' => $part, 'start' => 0];
         } else {
             \Yii::$app->session->set('backup_list', null);
             return ['status' => 1, 'info' => '还原完成!'];
         }
     } else {
         if ($start[1]) {
             $rate = floor(100 * ($start[0] / $start[1]));
             return ['status' => 1, 'info' => "正在还原...#{$part} ({$rate}%)", 'part' => $part, 'start' => $start[0]];
         } else {
             return ['status' => 1, 'info' => "正在还原...#{$part}", 'part' => $part, 'start' => $start[0], 'gz' => 1];
         }
     }
 }
 public function actionStart($id = null, $start = null)
 {
     \Yii::$app->response->format = Response::FORMAT_JSON;
     $tables = \Yii::$app->session->get('backup_tables');
     $id = \Yii::$app->request->post('id');
     $start = \Yii::$app->request->post('start');
     //备份指定表
     $Database = new Database(\Yii::$app->session->get('backup_file'), \Yii::$app->session->get('backup_config'));
     $start = $Database->backup($tables[$id], $start);
     if (false === $start) {
         //出错
         return ['status' => 0, 'info' => '备份出错!'];
     } elseif (0 === $start) {
         //下一表
         if (isset($tables[++$id])) {
             $tab = array('id' => $id, 'start' => 0);
             return ['status' => 1, 'tab' => $tab];
         } else {
             //备份完成,清空缓存
             unlink(\Yii::$app->session->get('backup_config')['path'] . 'backup.lock');
             \Yii::$app->session->set('backup_tables', null);
             \Yii::$app->session->set('backup_file', null);
             \Yii::$app->session->set('backup_config', null);
             return ['status' => 1, 'info' => '备份完成!'];
         }
     } else {
         $tab = array('id' => $id, 'start' => $start[0]);
         $rate = floor(100 * ($start[0] / $start[1]));
         return ['status' => 1, 'info' => "正在备份...({$rate}%)", 'tab' => $tab];
     }
 }