public void Backup(string ServiceURL, string BackupFolderPath) { try { //백업 경로 생성 string DBPath = fbConn.Database; string BackupPath = string.Format ( "{0}\\{1}{2}{3}{4}{5}{6}{7}.gbk", BackupFolderPath, (ServiceURL.Replace("http://", string.Empty)).Replace(":", "_port"), "Date(YYMMDDHHmm)", DateTime.Now.Year.ToString().Substring(2), DateTime.Now.Month.ToString().PadLeft(2, '0'), DateTime.Now.Day.ToString().PadLeft(2, '0'), DateTime.Now.Hour.ToString().PadLeft(2, '0'), DateTime.Now.Minute.ToString().PadLeft(2, '0') ); //백업 파일객체 생성 FbBackupFile bkFile = new FbBackupFile(BackupPath); //백업하기 FbBackup backup = new FbBackup(); backup.BackupFiles.Add(bkFile); backup.ConnectionString = fbConn.ConnectionString; backup.Execute(); } catch (Exception) { throw; } }
public static void Restore(string DBFilePath, string BackupFilePath, string DbID, string DbPassword) { //db커낵션 확인후 커넥션 끊고 기존db파일 이름 바꿈 try { //커넥션 스트링 작성 FbConnectionStringBuilder fsb = new FbConnectionStringBuilder(); fsb.Database = DBFilePath; fsb.UserID = DbID; fsb.Password = DbPassword; fsb.ServerType = FbServerType.Embedded; //커넥션풀 클리어 FbConnection.ClearAllPools(); //원본 DB파일 이름 변경(원본파일 유지 해야 되니까) if (File.Exists(DBFilePath)) { string dbFolder = DBFilePath.Substring(DBFilePath.LastIndexOf("\\") + 1); string oldDbPath = string.Format ( "{0}\\old_{1}{2}{3}{4}{5}{6}.fdb", dbFolder, DBFilePath.Substring(DBFilePath.LastIndexOf("\\") + 1).Replace(".fdb", string.Empty), DateTime.Now.Year.ToString().Substring(2), DateTime.Now.Month.ToString().PadLeft(2, '0'), DateTime.Now.Day.ToString().PadLeft(2, '0'), DateTime.Now.Hour.ToString().PadLeft(2, '0'), DateTime.Now.Minute.ToString().PadLeft(2, '0') ); File.Move(DBFilePath, oldDbPath); } //백업 파일 객체 생성 FbBackupFile bkFile = new FbBackupFile(BackupFilePath); //위의 백업파일로부터 복구시작 FbRestore restore = new FbRestore(); restore.BackupFiles.Add(bkFile); restore.Options = FbRestoreFlags.Create; restore.ConnectionString = fsb.ToString(); restore.Execute(); } catch (Exception) { throw; } }
public static void b_(FbConnectionStringBuilder fc, string fbk_) { is_close = false; try { FbBackupFile fbk = new FbBackupFile(fbk_); FbBackup fr = new FbBackup(); fr.Verbose = true; fr.ConnectionString = fc.ConnectionString; fr.BackupFiles.Add(fbk); fr.Options = FbBackupFlags.NoGarbageCollect; fr.ServiceOutput += ServiceOutput; fr.Execute(); } catch (FbException ex) { error = ex.Message; } finally { is_close = true; } }