Udostępnij za pośrednictwem


Tworzenie kopii zapasowych i przywracanie bazy danych i dzienników transakcji

W przypadku obiektów SMO Backup Klasa a Restore Klasa są klasy narzędzie, które oferują narzędzia do wykonywania określonych zadań, tworzenie kopii zapasowych i przywracania. A Backup object represents a specific backup task that is required instead of a Microsoft SQL Server object on the server instance.

Jeśli wystąpi utraty lub uszkodzenia danych kopia zapasowa musi zostać przywrócony, całkowicie lub częściowo.Używa częściowego przywrócenia FileGroupCollection Kolekcja na segmenty danych, które mają być przywrócone. W przypadku wykonywania kopia zapasowa dziennik transakcji, dane mogą być przywracane do określonego punktu w czasie przy użyciu ToPointInTime() Właściwość Restore obiekt. Dane mogą być również sprawdzone za pomocą SqlVerify(Server) Metoda. Zalecana procedura kopia zapasowa jest do sprawdzania integralność kopia zapasowa wykonaj operację przywracanie i sprawdzając danych w bazie danych w regularnych odstępach czasu.

Podobnie jak Backup obiekt, Restore obiekt nie musi być utworzone przy użyciu Create Metoda, ponieważ nie reprezentuje dowolny obiekt w wystąpieniu SQL Server. The Restore object is a zestaw of properties and methods used to przywracanie a database.

Przykłady

Aby używać dostarczonych przykładów kodu źródłowego, należy wybrać środowisko, szablon oraz język programowania, które będą używane do tworzenia aplikacji.Aby uzyskać więcej informacji zobacz Jak Tworzenie obiektów SMO projektu Visual Basic w programie Visual Studio .NET lub Jak Tworzenie projektu programu Visual C# obiekty SMO w programie Visual Studio .NET.

Wykonywanie kopii zapasowej bazy danych i transakcji dzienniki w języku Visual Basic

W tym przykładzie kodu pokazuje, jak wykonać kopię zapasową istniejącej bazy danych do pliku i jak go przywrócić.

Wykonywanie kopii zapasowej bazy danych i transakcji dzienniki w środowisku Visual C#

W tym przykładzie kodu pokazuje, jak wykonać kopię zapasową istniejącej bazy danych do pliku i jak go przywrócić.

//Connect to the local, default instance of SQL Server. 
{ 
Server srv = default(Server); 
srv = new Server(); 
//Reference the AdventureWorks database. 
Database db = default(Database); 
db = srv.Databases("AdventureWorks"); 
//Store the current recovery model in a variable. 
int recoverymod = 0; 
recoverymod = db.DatabaseOptions.RecoveryModel; 
//Define a Backup object variable. 
Backup bk = new Backup(); 
//Specify the type of backup, the description, the name, and the database to be backed up. 
bk.Action = BackupActionType.Database; 
bk.BackupSetDescription = "Full backup of Adventureworks"; 
bk.BackupSetName = "AdventureWorks Backup"; 
bk.Database = "AdventureWorks"; 
//Declare a BackupDeviceItem by supplying the backup device file name in the constructor, and the type of device is a file. 
BackupDeviceItem bdi = default(BackupDeviceItem); 
bdi = new BackupDeviceItem("Test_Full_Backup1", DeviceType.File); 
//Add the device to the Backup object. 
bk.Devices.Add(bdi); 
//Set the Incremental property to False to specify that this is a full database backup. 
bk.Incremental = false; 
//Set the expiration date. 
System.DateTime backupdate = new System.DateTime(); 
backupdate = new System.DateTime(2006, 10, 5); 
bk.ExpirationDate = backupdate; 
//Specify that the log must be truncated after the backup is complete. 
bk.LogTruncation = BackupTruncateLogType.Truncate; 
//Run SqlBackup to perform the full database backup on the instance of SQL Server. 
bk.SqlBackup(srv); 
//Inform the user that the backup has been completed. 
Console.WriteLine("Full Backup complete."); 
//Remove the backup device from the Backup object. 
bk.Devices.Remove(bdi); 
//Make a change to the database, in this case, add a table called test_table. 
Table t = default(Table); 
t = new Table(db, "test_table"); 
Column c = default(Column); 
c = new Column(t, "col", DataType.Int); 
t.Columns.Add(c); 
t.Create(); 
//Create another file device for the differential backup and add the Backup object. 
BackupDeviceItem bdid = default(BackupDeviceItem); 
bdid = new BackupDeviceItem("Test_Differential_Backup1", DeviceType.File); 
//Add the device to the Backup object. 
bk.Devices.Add(bdid); 
//Set the Incremental property to True for a differential backup. 
bk.Incremental = true; 
//Run SqlBackup to perform the incremental database backup on the instance of SQL Server. 
bk.SqlBackup(srv); 
//Inform the user that the differential backup is complete. 
Console.WriteLine("Differential Backup complete."); 
//Remove the device from the Backup object. 
bk.Devices.Remove(bdid); 
//Delete the AdventureWorks database before restoring it. 
srv.Databases("AdventureWorks").Drop(); 
//Define a Restore object variable. 
Restore rs = default(Restore); 
rs = new Restore(); 
//Set the NoRecovery property to true, so the transactions are not recovered. 
rs.NoRecovery = true; 
//Add the device that contains the full database backup to the Restore object. 
rs.Devices.Add(bdi); 
//Specify the database name. 
rs.Database = "AdventureWorks"; 
//Restore the full database backup with no recovery. 
rs.SqlRestore(srv); 
//Inform the user that the Full Database Restore is complete. 
Console.WriteLine("Full Database Restore complete."); 
//Remove the device from the Restore object. 
rs.Devices.Remove(bdi); 
//Set te NoRecovery property to False. 
rs.NoRecovery = false; 
//Add the device that contains the differential backup to the Restore object. 
rs.Devices.Add(bdid); 
//Restore the differential database backup with recovery. 
rs.SqlRestore(srv); 
//Inform the user that the differential database restore is complete. 
Console.WriteLine("Differential Database Restore complete."); 
//Remove the device. 
rs.Devices.Remove(bdid); 
//Set the database recovery mode back to its original value. 
srv.Databases("AdventureWorks").DatabaseOptions.RecoveryModel = recoverymod; 
//Drop the table that was added. 
srv.Databases("AdventureWorks").Tables("test_table").Drop(); 
srv.Databases("AdventureWorks").Alter(); 
//Remove the backup files from the hard disk. 
My.Computer.FileSystem.DeleteFile("C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Backup\\Test_Full_Backup1"); 
My.Computer.FileSystem.DeleteFile("C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Backup\\Test_Differential_Backup1"); 
} 

Uruchamianie integralność bazy danych sprawdza w języku Visual Basic

SQL Server Umożliwia sprawdzanie integralność danych.W tym przykładzie kodu wykonuje sprawdzanie typu spójności bazy danych z określonej bazy danych.W tym przykładzie CheckTables(RepairType) jest używane, ale CheckAllocations(RepairType), CheckCatalog(), lub CheckIdentityValues() można używać podobnie.

Uwaga

The StringCollection object requires a reference to the namespace using the imports System.Collections.Specialized instrukcja.

Uruchamianie integralność bazy danych testy w środowisku Visual C#

SQL Server Umożliwia sprawdzanie integralność danych.W tym przykładzie kodu wykonuje sprawdzanie typu spójności bazy danych z określonej bazy danych.W tym przykładzie CheckTables(RepairType) jest używane, ale CheckAllocations(RepairType), CheckCatalog(), lub CheckIdentityValues() można używać podobnie.

Uwaga

The StringCollection object requires a reference to the namespace using the imports System.Collections.Specialized instrukcja.

//Connect to the local, default instance of SQL Server. 
{ 
Server srv = default(Server); 
srv = new Server(); 
//Reference the AdventureWorks database. 
Database db = default(Database); 
db = srv.Databases("AdventureWorks"); 
//Note, to use the StringCollection type the System.Collections.Specialized system namespace must be included in the imports statements. 
StringCollection sc = default(StringCollection); 
//Run the CheckTables method and display the results from the returned StringCollection variable. 
sc = db.CheckTables(RepairType.None); 
int c = 0; 
for (c = 0; c <= sc.Count - 1; c++) { 
    Console.WriteLine(sc.Item(c)); 
} 
}