internal void RestoreData(DateTime?fromDay, DateTime?toDay, RestoreStatus theRuningStatusInSession) { //备份源数据库 TransferService.StartLittleProcess(theRuningStatusInSession, string.Format("{0}{1}", Utility._Process_BackUpDb, _DbName)); string targetName = string.Format("{0}{1}{2}.bak", DiskOperations.DbBackUp_ForRestoreDirectory, _DbName, Utility.GetTimeStamp()); SqlCommandRunner.BackUpDb(_DbName, targetName); //删减数据库备份 TransferService.StartLittleProcess(theRuningStatusInSession, string.Format("{0}", Utility._Process_DelNonuseDbBackUp)); theRuningStatusInSession.AddInformationLine(DiskOperations.DelFilesFromDirectory(DiskOperations.DbBackUp_ForRestoreDirectory, _DbName, targetName, _DefaultBackUpDbCount)); //拷贝下载的数据库用于数据还原 string copyDbName = _DbName + _ForRestoreCopyDbSuffix; string downLoadDbBackUpFullName = string.Format("{0}{1}{2}.bak", DiskOperations.DataTemp_ForRestoreDirectory, _DbName, _OrginCopyDbSuffix); TransferService.StartLittleProcess(theRuningStatusInSession, string.Format("{0}{1}", Utility._Process_CopyDb, copyDbName)); SqlCommandRunner.RestoreDbFromFile(copyDbName, DiskOperations.TempDirectory, downLoadDbBackUpFullName); //每一个表的数据还原 foreach (TableTransfer tt in _TablesToTransfer) { tt.RestoreData(fromDay, toDay, theRuningStatusInSession); } //删除无用的数据库拷贝 TransferService.StartLittleProcess(theRuningStatusInSession, string.Format("{0}{1}", Utility._Process_DelNonUseDb, copyDbName)); SqlCommandRunner.DeleteDb(copyDbName); }
public void BackUpData(DateTime?fromDay, DateTime?toDay, BackUpStatus theRuningStatusInSession) { try { //写入迁移配置文件 TransferService.StartLittleProcess(theRuningStatusInSession, TransferConfig.WriteConfigToString()); TransferConfig.WriteConfig(this, fromDay, toDay); //配置所有过滤器 TransferService.StartLittleProcess(theRuningStatusInSession, Utility._Process_ConfigFilter); ConfigAllRuleFitler(); //每个数据库执行操作 foreach (DbTransfer dt in _DbsToTransfer) { dt.BackUpData(fromDay, toDay, theRuningStatusInSession); } //打包下载文件 TransferService.StartLittleProcess(theRuningStatusInSession, Utility._Process_RarBackUpFile); string theBackUpSimpleName = string.Format("{0}{1}.rar", _DefaultBackUpDbName, Utility.GetTimeStamp()); string theBackUpFullPath = string.Format("{0}{1}", DiskOperations.DownLoadDirectory, theBackUpSimpleName); CommandRunner.RarDirectoryToFile(theBackUpFullPath, DiskOperations.DataTemp_ForBackUpDirectory); theRuningStatusInSession.SuccessFileName = theBackUpSimpleName; theRuningStatusInSession.SuccessFullFileName = theBackUpFullPath; //清理无用的数据 TransferService.StartLittleProcess(theRuningStatusInSession, Utility._Process_CleanNonUseData); CommandRunner.CleanUpDirectory(DiskOperations.DataTemp_ForBackUpDirectory); theRuningStatusInSession.AddInformationLine(DiskOperations.DelFilesFromDirectory(DiskOperations.DownLoadDirectory, _DefaultBackUpDbName, theBackUpFullPath, _DefaultDownloadFiles)); //成功运行 TransferService.SuccessFlag(theRuningStatusInSession); } catch (ApplicationException ae) { TryBackUpErrorClean(); TransferService.FailedFlag(theRuningStatusInSession, ae.Message); } catch (Exception e) { TryBackUpErrorClean(); TransferService.ErrorFlag(theRuningStatusInSession, e.Message); } }
public void RestoreData(DateTime?fromDay, DateTime?toDay, RestoreStatus theRuningStatusInSession) { try { //配置所有过滤器 TransferService.StartLittleProcess(theRuningStatusInSession, Utility._Process_ConfigFilter); ConfigAllRuleFitler(); //检查所有数据库备份 TransferService.StartLittleProcess(theRuningStatusInSession, Utility._Process_CheckAllDbBackUp); CheckAllDbBackUp(); //每个数据库执行操作 foreach (DbTransfer dt in _DbsToTransfer) { dt.RestoreData(fromDay, toDay, theRuningStatusInSession); } //清理无用的数据 TransferService.StartLittleProcess(theRuningStatusInSession, Utility._Process_CleanNonUseData); CommandRunner.CleanUpDirectory(DiskOperations.DataTemp_ForRestoreDirectory); //成功运行 TransferService.SuccessFlag(theRuningStatusInSession); } catch (ApplicationException ae) { TryRestoreErrorClean(); TransferService.FailedFlag(theRuningStatusInSession, ae.Message); } catch (Exception e) { TryRestoreErrorClean(); TransferService.ErrorFlag(theRuningStatusInSession, e.Message); } }
internal void BackUpData(DateTime?fromDay, DateTime?toDay, RunningStatus theRuningStatusInSession) { //备份源数据库 TransferService.StartLittleProcess(theRuningStatusInSession, string.Format("{0}{1}", Utility._Process_BackUpDb, _DbName)); string targetName = string.Format("{0}{1}{2}.bak", DiskOperations.DbBackUp_ForBackUpDirectory, _DbName, Utility.GetTimeStamp()); SqlCommandRunner.BackUpDb(_DbName, targetName); //删减数据库备份 TransferService.StartLittleProcess(theRuningStatusInSession, string.Format("{0}", Utility._Process_DelNonuseDbBackUp)); theRuningStatusInSession.AddInformationLine(DiskOperations.DelFilesFromDirectory(DiskOperations.DbBackUp_ForBackUpDirectory, _DbName, targetName, _DefaultBackUpDbCount)); //拷贝数据库用于数据筛选 string copyDbName = _DbName + _OrginCopyDbSuffix; TransferService.StartLittleProcess(theRuningStatusInSession, string.Format("{0}{1}", Utility._Process_CopyDb, copyDbName)); SqlCommandRunner.RestoreDbFromFile(copyDbName, DiskOperations.TempDirectory, targetName); //删除无用的表 TransferService.StartLittleProcess(theRuningStatusInSession, Utility._Process_DelNonUseTable); theRuningStatusInSession.AddInformationLine(DropNonUseTable(copyDbName)); //有用表数据筛选 foreach (TableTransfer tt in _TablesToTransfer) { tt.BackUpData(fromDay, toDay, theRuningStatusInSession); } //将筛选完毕的数据库备份到指定地点用于打包压缩 TransferService.StartLittleProcess(theRuningStatusInSession, string.Format("{0}{1}", Utility._Process_BackUpFiltedTable, copyDbName)); BackUpFilteredDb(copyDbName); //删除无用的数据库拷贝 TransferService.StartLittleProcess(theRuningStatusInSession, string.Format("{0}{1}", Utility._Process_DelNonUseDb, copyDbName)); SqlCommandRunner.DeleteDb(copyDbName); }
internal void RestoreData(DateTime? fromDay, DateTime? toDay, RestoreStatus theRuningStatusInSession) { TransferService.StartLittleProcess(theRuningStatusInSession, string.Format("{0}{1}", Utility._Process_RestoreTable, _TableName)); theRuningStatusInSession.AddInformationLine(_TableFilter.RestoreTableData(fromDay, toDay)); }