[英]Using Smo.Backup to backup SQL Server database to string
我正在嘗試制作一個小應用程序,以幫助我進行服務器備份。 該應用程序將在我的家用PC上運行,因此主要目標是能夠連接到外部服務器,備份所選數據庫,將備份內容轉儲到字符串或其他內容,以便我可以將其寫入PC磁盤而不是服務器的磁盤上。磁盤。
我所做的工作可以寫入服務器磁盤,但我希望能夠將備份結果寫入我的PC磁盤。
private bool BackupDatabase()
{
try
{
// Filename
string sFileName = string.Format("{0}\\{1}.bak", _sWhereToBackup, DatabaseName);
// Connection
string sConnectionString = String.Format(
"Data Source=tcp:{0};Initial Catalog={1};User ID={2};Pwd={3};",
DatabaseHost, DatabaseName, DatabaseUsername, DatabasePassword);
SqlConnection oSqlConnection = new SqlConnection(sConnectionString);
Server oServer = new Server(new ServerConnection(oSqlConnection));
// Backup
Backup backup = new Backup();
backup.Action = BackupActionType.Database;
backup.Database = DatabaseName;
backup.Incremental = false;
backup.Initialize = true;
backup.LogTruncation = BackupTruncateLogType.Truncate;
// Backup Device
BackupDeviceItem backupItemDevice = new BackupDeviceItem(sFileName, DeviceType.File);
backup.Devices.Add(backupItemDevice);
// Start Backup
backup.SqlBackup(oServer);
}
catch (Exception ex)
{
throw ex;
}
return false;
}
非常感謝!
這將變得有點棘手,因為您需要
您可以使用t-sql或更多“高級” .net代碼t-sql可以在此出色的sql注入指南中看到http://www.blackhat.com/presentations/bh-europe-09/Guimaraes/Blackhat-歐洲-09-Damele-SQL注入攻擊,slides.pdf
或.net: http : //www.mssqltips.com/sqlservertip/2349/read-and-write-binary-files-with-the-sql-server-clr/
通過網絡映射文件位置(即訪問共享/驅動器/ ipc連接)
讓服務器將文件ftp到某個位置
在您的情況下聽起來可能是什么?
我認為您沒有連接到服務器? 理想情況下,您可以使用網絡地址將其直接備份到計算機上,但是我想您已經想到了。
沿您所想的路線走,將要求您具有通常不希望通過Internet向某人開放的權限,並且比簡單地設置第二步移動要麻煩得多該文件可供您訪問。
亞當斯建議讓服務器ftp文件是一個很好的選擇。 另外,您可能會發現使用DropBox( www.dropbox.com )可能是阻力最小的途徑。 然后,您可以將數據庫備份到帶有dropbox的文件夾設置中,該數據庫將自動復制到您在計算機上設置的任何文件夾中,以與其進行同步。
您應該研究一下DAC,它主要是為Azure中的SQL Server制作的,但是也可以與SQL Server 2008 R2一起使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.