Laden...

SMO : Backup einer Datenbank erstellen

Erstellt von pro vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.939 Views
P
pro Themenstarter:in
216 Beiträge seit 2006
vor 16 Jahren
SMO : Backup einer Datenbank erstellen

Beschreibung:

Mit der Methode CreateBackupToFile() können Backups einer Datenbank mittels SMO gemacht werden. Dabei können Full, Differential und ein Transactionlog Backup gemacht werden.

/// <summary>
      /// Erstellt ein Backup einer Datenbank
      /// </summary>
      /// <param name="serverName">Server, auf welchem die Datenbank liegt</param>
      /// <param name="databaseName">Die zu sichernde Datenbank</param>
      /// <param name="backupFileName">Pfad der Sicherung</param>
      /// <param name="useTrustedConnection">Windows Authentication</param>
      /// <param name="login">Benutzername, mit Backup - Rechten</param>
      /// <param name="password">Passwort</param>
      /// <param name="differential">Ob es ein Differential Backup werden sollte</param>
      /// <param name="init">Ob das Backupfile überschrieben werden soll</param>
      /// <param name="backupType">Backup Typ (Files, Datenbank , Log)</param>
      public void CreateBackupToFile(
         string serverName,
         string databaseName,
         string backupFileName,
         bool useTrustedConnection,
         string login,
         string password,
         bool differential,
         bool init,
         BackupActionType backupType)
      {
         // Verbindungsinformationen definieren
         ServerConnection serverConnection = new ServerConnection();
         serverConnection.ServerInstance = serverName;
      
         if (useTrustedConnection)
         {
            serverConnection.LoginSecure = true;
         }
         else
         {
            serverConnection.LoginSecure = false;
            serverConnection.Login = login;
            serverConnection.Password = password;
         }

         // Verbindung aufbauen
         Server server = new Server(serverConnection);
        
         try
         {
            server.ConnectionContext.Connect();

            // Backup in die angegebene Datei erstellen
            Backup backup = new Backup();
            
            backup.Action = backupType;
            backup.Incremental = differential;
            backup.Initialize = init;
            backup.Database = databaseName;

            if (this.PercentComplete != null)
               backup.PercentComplete += this.PercentComplete;
          
            backup.Devices.Add(new BackupDeviceItem(
               backupFileName, DeviceType.File));
            backup.SqlBackup(server);
         }
         finally
         {
            try
            {
               // Verbindung zum SQL-Server abbauen
               server.ConnectionContext.Disconnect();
            }
            catch { }
         }
      }

Schlagwörter: Backup, Database, SMO, MSSQL, Full Backup, Differential Backup, Transactionlog Backup

Quelle: .NET-Snippets