Пример #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="container"></param>
 /// <param name="config"></param>
 public void InitiateConfiguration(Control container, string config)
 {
     gui = new MSSQLDatabaseBackupConfigGUI(MSSQLDatabaseBackupConfig.Load(config));
     //gui.Dock = DockStyle.Fill;
     //gui.MinimumSize = new Size(500,500);
     container.Controls.Add(gui);
 }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="config"></param>
        /// <param name="jobID"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        public string Execute(string config, int jobID, IBackupTarget target)
        {
            MSSQLDatabaseBackupConfig conf      = MSSQLDatabaseBackupConfig.Load(config);
            List <string>             databases = conf.Databases;

            if (databases == null || databases.Count == 0)
            {
                databases = new List <string>();
                List <string> tmp = MSSQLDatabaseBackupConfigGUI.GetDatabases(conf.Server, conf.Username, conf.Password);
                foreach (string s in tmp)
                {
                    if (!s.EqualsAny(StringComparison.OrdinalIgnoreCase, "master", "model", "msdb", "tempdb"))
                    {
                        databases.Add(s);
                    }
                }
            }
            bool   remoteCleanupOK = true;
            string outputDir       = conf.LocalTempDirectory;
            string remoteDir       = conf.RemoteTempDir;

            if (conf.IsLocalServer)
            {
                remoteDir = outputDir;
                outputDir = null;
            }
            foreach (string db in databases)
            {
                BackupResult res;
                using (SQLLocalBackup lb = new SQLLocalBackup(conf.Server, conf.Username, conf.Password, db)) {
                    res = lb.DoLocalBackup(remoteDir, outputDir, conf.AddDateToFilename);
                    if (!res.CleanupOK)
                    {
                        remoteCleanupOK = false;
                    }
                }
                if (conf.CompressFiles)
                {
                    res.OutputFilename = ZipFile(res.OutputFilename);
                }
                target.Store(new FileInfo(res.OutputFilename), "");
                //if( conf.SaveAs == SaveAsTypes.FTP ) {
                //    FTPFile( res.OutputFilename, conf );
                //    try {
                //        File.Delete( res.OutputFilename );
                //    } catch {
                //    }
                //}
            }
            if (!remoteCleanupOK)
            {
                return(@"{0} was backed up.
Temporary files on the remote server was not deleted.
Enable procedure xp_cmdshell to perform this".FillBlanks(databases.ToString(", ")));
            }
            return("{0} was backuped.".FillBlanks(databases.ToString(", ")));
        }