1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
/// <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 { }
}
}
|