Пример #1
0
        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;
            }
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
 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;
     }
 }