簡體   English   中英

從聯網的SQLServer進行SMO還原永遠不會完成(從C#調用)

[英]SMO restore from networked SQLServer never finishes (called from C#)

我嘗試將數據庫從聯網的SQLServer復制到本地SQLExpress:

private void DoRestore()
    {
         if (!File.Exists(fileNach))
         {
             MessageBox.Show("Restore gescheitert " + fileNach);
             return;
         }

        Restore res = new Restore();
        Server srv = new Server(Environment.MachineName.ToString()+@"\SQLEXPRESS");
        //MessageBox.Show("Ziel Server :"+srv.Name);

        try
        {
            string fileName = @fileNach;
            string databaseName = "Outdoor";
            srv.KillAllProcesses(databaseName);
            res.Database = databaseName;
            res.Action = RestoreActionType.Database;
            res.Devices.AddDevice(fileName, DeviceType.File);
            res.ReplaceDatabase = true;
            res.NoRecovery = true;

            string odb;
            string odblog;
            odb = @"C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Outdoor.mdf";
            odblog = @"C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Outdoor.ldf";

            res.RelocateFiles.Add(new RelocateFile("Outdoor", odb));
            res.RelocateFiles.Add(new RelocateFile("Outdoor_Log", odblog));

            // restore starten
            res.SqlRestore(srv);

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
}

此代碼在SQLExpress上啟動了還原過程,但從未結束。 在目標目錄中創建了mdf和日志文件,但還原尚未完成。

我也嘗試了srv.KillAllProcesses(databaseName); 但沒有結果。

在C#級別不會引發任何錯誤。

您說它永遠不會結束,您看到的代碼完成了,但是數據庫陷入了“還原”模式嗎? 如果是這樣,我認為您想通過恢復進行還原,否則您將使數據庫無法正常運行。 嘗試將NoRecovery設置為false而不是true:

res.NoRecovery = false;

這里

  1. 回滾未提交的事務,使數據庫可供使用。 無法還原其他事務日志。 恢復恢復

    恢復數據庫。 此選項等效於Transact-SQL RESTORE語句中的RECOVERY選項。

    僅當您沒有要還原的日志文件時,才選擇此選項。

  2. 使數據庫保持不可操作狀態,並且不回滾未提交的事務。 可以還原其他事務日志。 恢復無恢復

    使數據庫處於未恢復狀態。 此選項等效於在Transact-SQL RESTORE語句中使用NORECOVERY選項。

    選擇此選項時,“保留復制設置”選項不可用。

暫無
暫無

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

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