簡體   English   中英

使用Smo.Backup將SQL Server數據庫備份到字符串

[英]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;
}

非常感謝!

這將變得有點棘手,因為您需要

  1. 調用sql函數以讀取服務器上的文件,並以二進制數組的形式返回給您,然后轉換回文件。 這將需要適當的權限,因為您正在使用該帳戶訪問服務器驅動器上的文件。

您可以使用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/

  1. 通過網絡映射文件位置(即訪問共享/驅動器/ ipc連接)

  2. 讓服務器將文件ftp到某個位置

在您的情況下聽起來可能是什么?

我認為您沒有連接到服務器? 理想情況下,您可以使用網絡地址將其直接備份到計算機上,但是我想您已經想到了。

沿您所想的路線走,將要求您具有通常不希望通過Internet向某人開放的權限,並且比簡單地設置第二步移動要麻煩得多該文件可供您訪問。

亞當斯建議讓服務器ftp文件是一個很好的選擇。 另外,您可能會發現使用DropBox( www.dropbox.com )可能是阻力最小的途徑。 然后,您可以將數據庫備份到帶有dropbox的文件夾設置中,該數據庫將自動復制到您在計算機上設置的任何文件夾中,以與其進行同步。

您應該研究一下DAC,它主要是為Azure中的SQL Server制作的,但是也可以與SQL Server 2008 R2一起使用。

http://sqldacexamples.codeplex.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM