public void Backup() { if (!_backupManager.GetBackupState()) { Console.Clear(); Console.WriteLine("Taking a backup"); _backupManager.Backup(true); _message = "Backup taken"; } else { _message = "A backup already exists, would you like to overwrite it?"; _menuId = 2; } }
public string RawBackup(string dbName, string version, string branchCode, string backupPath) { SqlConnection conn = ConnectionManager.GeneralSqlConnection; try { conn.Open(); string timestamp = TimeProvider.Today.ToString("ddMMyyyy"); string fileName = _FindAvailableName(String.Format("opencbs-{0}-{1}-{2}-@-{3}.bak", version, dbName, branchCode, timestamp)); BackupManager.Backup(fileName, backupPath, dbName, conn); if (DatabaseManager.DatabaseExists(dbName + "_attachments", conn)) { string attachments = string.Format("opencbs-{0}-{1}-{2}-@-{3}-attachments.bak" , version , dbName , branchCode , timestamp ); BackupManager.Backup(attachments, backupPath, dbName + "_attachments", conn); } return(fileName); } finally { conn.Close(); } }
protected void btnBackup_OnClick(object sender, EventArgs e) { var backupName = (string)this.Request.Form["txtBackupName"]; var result = BackupManager.Backup(backupName); this.ReloadCurrentPage(); }
public void OnApplicationQuit() { if (PluginConfig.Instance?.AutoBackup == true) { BackupManager.Backup(PluginConfig.Instance?.BackupPath); } Logger.Log.Debug("OnApplicationQuit"); }
public static string BackupDB(ConnectionData connectionData, string database) { BackupManager backupManager = new BackupManager(connectionData); string backupFileName = database + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss"); string path = backupManager.Backup(database, backupFileName); if (File.Exists(backupFileName)) { dict.TryAdd(database, path); } return(path); }
public void OnApplicationStart() { Logger.Info($"OnApplicationStart : Version {Assembly.GetExecutingAssembly().GetName().Version}"); if (PluginConfig.Instance?.AutoBackup == true) { BackupManager.Backup(PluginConfig.Instance?.BackupPath); } if (!Directory.Exists(PluginConfig.Instance.CoverDirectoryPath)) { Logger.Info($"Create CoverFileDirectory : {PluginConfig.Instance.CoverDirectoryPath}"); Directory.CreateDirectory(PluginConfig.Instance.CoverDirectoryPath); } }
private void createBackupButton_Click(object sender, EventArgs e) { //Create dialog using (SaveFileDialog sfd = new SaveFileDialog()) { //Set filter sfd.Filter = "Backup files|*.dbak"; //If User pressed ok if (sfd.ShowDialog() == DialogResult.OK) { //Save settings Config.Save(); DataManagers.ProfileManager.Save(); //Do backup BackupManager m = new BackupManager(sfd.FileName); m.Backup(); } } }
public void BasicFullBackupScenario1() { var dbName = "basic_scenario_one"; var backupFile = ""; var testConfigFileName = tmpFolder + "BasicScenario1.ini"; var parser = new FileIniDataParser(); var config = parser.ReadFile(defaultConfigIni); config["sqlserver"].SetKeyData(new KeyData("database") { Value = dbName }); parser.WriteFile(testConfigFileName, config); var conn = new SqlConnection(string.Format("Server={0};Database=master;Trusted_Connection=True;", config["sqlserver"]["server"])); conn.Open(); try { // Create the database and insert some data conn.Execute("create database " + dbName); conn.ChangeDatabase(dbName); conn.Execute("create table test1 (test1 varchar(50))"); conn.Execute("insert into test1 values ('data')"); // Backup the database var backupManager = new BackupManager(); var backupResult = backupManager.Backup(new string[2] { "full", testConfigFileName }); Assert.AreEqual(0, backupResult.ReturnCode); Assert.IsFalse(File.Exists(backupFile)); // Drop the database conn.ChangeDatabase("master"); conn.Execute("drop database " + dbName); // Restore the backup from S3 var restoreMan = new RestoreManager(); restoreMan.Restore(new string[2] { testConfigFileName, backupResult.BackupName }); var awsProfile = config["aws"]["profile"]; Amazon.Util.ProfileManager.RegisterProfile(awsProfile, config["aws"]["access_key"], config["aws"]["secret_key"]); var creds = Amazon.Util.ProfileManager.GetAWSCredentials(awsProfile); var awsClient = new AmazonS3Client(creds, Amazon.RegionEndpoint.USEast1); conn.ChangeDatabase(dbName); var result = conn.Query("select test1 from test1 where test1 = 'data'"); Assert.IsTrue(result.Count() == 1); var listReq = new ListObjectsRequest() { BucketName = config["aws"]["bucket"] }; var objects = awsClient.ListObjects(listReq); foreach (var obj in objects.S3Objects) { if (obj.Key.IndexOf(dbName) != -1) { var delReq = new DeleteObjectRequest() { BucketName = config["aws"]["bucket"], Key = obj.Key }; awsClient.DeleteObject(delReq); } } } finally { conn.ChangeDatabase("master"); conn.Execute("drop database " + dbName); if (File.Exists(backupFile)) { File.Delete(backupFile); } } }
public void BasicIncrementalBackupScenario2() { var dbName = "basic_scenario_two"; var backupFile = ""; var testConfigFileName = tmpFolder + "BasicScenario2.ini"; var parser = new FileIniDataParser(); var config = parser.ReadFile(defaultConfigIni); config["sqlserver"].SetKeyData(new KeyData("database") { Value = dbName }); parser.WriteFile(testConfigFileName, config); var conn = new SqlConnection(string.Format("Server={0};Database=master;Trusted_Connection=True;", config["sqlserver"]["server"])); conn.Open(); var logBackups = new List <string>(); try { // Create the database and insert some data conn.Execute("create database " + dbName); conn.Execute("alter database " + dbName + " set recovery full"); conn.ChangeDatabase(dbName); conn.Execute("create table test1 (test1 varchar(50))"); conn.Execute("insert into test1 values ('data_full')"); // Backup the database var backupManager = new BackupManager(); var backupResult = backupManager.Backup(new string[2] { "full", testConfigFileName }); Assert.AreEqual(0, backupResult.ReturnCode); Assert.IsFalse(File.Exists(backupResult.BackupName)); // Do incremental stuff for (int i = 1; i <= 3; i++) { // The minimum increment is a second between log backups System.Threading.Thread.Sleep(1000); conn.Execute(string.Format("insert into test1 values ('data_log_{0}')", i)); var backupLogResult = backupManager.Backup(new string[2] { "incremental", testConfigFileName }); Assert.AreEqual(0, backupLogResult.ReturnCode); Assert.IsFalse(File.Exists(backupLogResult.BackupName)); logBackups.Add(backupLogResult.BackupName); } // Drop the database conn.ChangeDatabase("master"); conn.Execute("drop database " + dbName); // Restore the backup using the restore manager var restoreMan = new RestoreManager(); var argList = new List <string>() { testConfigFileName, backupResult.BackupName }; argList.AddRange(logBackups); restoreMan.Restore(argList.ToArray()); // Verify that the restore worked conn.ChangeDatabase(dbName); var result = conn.Query("select test1 from test1 where test1 in ('data_full', 'data_log_1', 'data_log_2', 'data_log_3')"); Assert.IsTrue(result.Count() == 4); } finally { // Cleanup our mess // S3 var awsProfile = config["aws"]["profile"]; Amazon.Util.ProfileManager.RegisterProfile(awsProfile, config["aws"]["access_key"], config["aws"]["secret_key"]); var creds = Amazon.Util.ProfileManager.GetAWSCredentials(awsProfile); var awsClient = new AmazonS3Client(creds, Amazon.RegionEndpoint.USEast1); var listReq = new ListObjectsRequest() { BucketName = config["aws"]["bucket"] }; var objects = awsClient.ListObjects(listReq); foreach (var obj in objects.S3Objects) { if (obj.Key.IndexOf(dbName) != -1) { var delReq = new DeleteObjectRequest() { BucketName = config["aws"]["bucket"], Key = obj.Key }; awsClient.DeleteObject(delReq); } } // Testing database server conn.ChangeDatabase("master"); conn.Execute("drop database " + dbName); if (File.Exists(backupFile)) { File.Delete(backupFile); } } }