2016-09-30 42 views
0

我創建了一個腳本來備份和恢復我的sql數據庫。我最近剛搬到Azure Sql Server。以下我的備份策略不再有效。對於我的程序,它通常會保存備份並創建一個名爲training的後綴。看來Azure Sql Server的備份策略是完全不同的。請問如何以編程方式備份​​Azure Sql數據庫並將其還原。以編程方式備份​​Azure Sql db

if (!sqlServer.Databases.Contains(databaseTraining)) 
{ 
var backupFile = string.Concat(sqlServer.Settings.BackupDirectory, "\\", database, "Training.BAK"); 

var sourceBackup = new Backup 
{ 
    Database = database, 
    Action = BackupActionType.Database 
}; 

var destDevice = new BackupDeviceItem(backupFile, DeviceType.File); 
sourceBackup.Devices.Add(destDevice); 
sourceBackup.Initialize = true; 

sourceBackup.SqlBackup(sqlServer); 

var db = new Microsoft.SqlServer.Management.Smo.Database(sqlServer, databaseTraining); 
db.Create(); 

var destinationRestore = new Restore 
{ 
    Database = databaseTraining, 
    Action = RestoreActionType.Database 
}; 
destinationRestore.Devices.Add(destDevice); 

var dataFile = new RelocateFile 
{ 
    LogicalFileName = destinationRestore.ReadFileList(sqlServer).Rows[0][0].ToString(), 
    PhysicalFileName = sqlServer.Databases[databaseTraining].FileGroups[0].Files[0].FileName 
}; 

var logFile = new RelocateFile 
{ 
    LogicalFileName = destinationRestore.ReadFileList(sqlServer).Rows[1][0].ToString(), 
    PhysicalFileName = sqlServer.Databases[databaseTraining].LogFiles[0].FileName 
}; 

destinationRestore.RelocateFiles.Add(dataFile); 
destinationRestore.RelocateFiles.Add(logFile); 

destinationRestore.ReplaceDatabase = true; 
destinationRestore.NoRecovery = false; 

destinationRestore.SqlRestore(sqlServer); 
+0

這是不同的:MS做備份,而不是你。 ['BACKUP'](https://msdn.microsoft.com/en-us/library/ms186865.aspx?f=255&MSPPError=-2147217396)命令在Azure SQL Server上不可用。 – Richard

+0

對於SQL Azure,您可能需要查看專業備份服務,如[CloudBerry](http://www.cloudberrylab.com/),[RedGate的CherrySafe](https://www.cherrysafe.com/)。 – Win

回答

0

我最近剛搬到Azure的SQL Server中。我下面不再備份策略工作

你觀察到的東西是正確的,你的備份策略不會在Azure的工作..

如果只需要備份的,以確保在時間點恢復像OnPremises,你不「T需要,由於採用蔚藍色的你可以在時間點根據您的層次還原capabilties ..

enter image description here

如果您正在尋找本地服務器進行測試/其他purposes..you上還原數據庫可以使用下面的鏈接..

1)How do I copy SQL Azure database to my local development server?

2)https://blogs.msdn.microsoft.com/mast/2013/03/03/different-ways-to-backup-your-windows-azure-sql-database/

相關問題