我想創建一個Powershell腳本來從我的桌面恢復數據庫到我的筆記本電腦。我有一個創建備份文件的腳本,幾乎使恢復腳本可以工作,除了我使用啓用CDC的數據庫時發生的奇怪錯誤。我最終得到的是一個離線單用戶數據庫。我必須將其重新聯機並手動將其更改回多用戶。下面是我的PowerShell代碼中的相關位...Powershell SQL Server數據庫恢復(與CDC)
$instance = "(local)"
$server = New-Object Microsoft.SqlServer.Management.Smo.Server $instance
$restore = New-Object Microsoft.SqlServer.Management.Smo.Restore
$restore.Action = "Database"
$restore.Database = $dbname
$restore.NoRecovery = $false
$restore.ReplaceDatabase = $true
$restore.Devices.AddDevice($filename, "File")
$restore.SqlRestore($server)
我得到一個錯誤信息說...
* System.Data.SqlClient.SqlException:無法更新元數據指示數據庫xxxxx未啓用更改數據捕獲。執行命令'[sys]。[sp_MScdc_ddl_database triggers'drop''時發生故障。錯誤返回15517:「無法執行作爲數據庫主要因爲主體‘DBO’不存在,這種類型的主體不能被冒充,或者您沒有權限」 *
和位進一步下跌...
*數據庫已離線。請參閱SQL Server聯機叢書中的主題MSSQL_ENG003165。*
進一步下跌...
轉換數據庫 '爲XXXXX' 從655版本升級到當前版本661
數據庫 '爲XXXXX' 運行從升級版655步版本660
數據庫「爲XXXXX」運行從660版本升級步驟661
雖然我可以得到數據庫恢復到一個useabl我希望完全腳本化。這樣做的想法是,我可以在桌面上運行備份腳本,然後在筆記本電腦上運行恢復腳本,然後在我的筆記本電腦上恢復數據庫,以便在需要遠程工作時擁有相同數據庫的工作副本。
如果有人遇到並解決了同樣的問題,任何見解都會很棒,甚至更好。
我認爲這是一個固定在最近的CU的錯誤。 – usr 2012-08-13 23:09:40
謝謝,我不熟悉CU。它代表什麼,以及如何獲得錯誤修復?我假設U代表更新。 – 2012-08-13 23:17:34
搜索累積更新。我現在似乎無法找到相關的一個。如果可以,只需安裝最新的一個。 – usr 2012-08-13 23:25:41