將從SQL2008 r2里備份的數據庫還原到SQL2008中


從標題可以看出這是未解決上一篇遺留問題寫的,現在我也不知道這個可不可以成功,方法似乎查到了一種,具體怎樣還不清楚;而且,我想說的是“我踩雷了”。

這篇的主角是“Database Publishing Wizard”家族;實話我完全不知道有這個。

地點是“ C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Publishing\1.2\SqlPubWiz.exe”。從路徑可以看到1.2這個數據,上面提到這是一個家族,根據這個1.2可知道這不是第一個版本;在它的前面還有一個屬於Visual Studio 2005的1.1,那時它可並沒有被SQL內建,只有下載才有;然后還有一個屬於Visual Studio 2008 SP1的1.3;而我們知道的Visual Studio已經有了2010版了,自然也有一個屬於它的1.4;因為是家族,所以它們正常都在“C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Publishing\1.2\SqlPubWiz.exe”,而且它們與Visual Studio的關系越來越密切,甚至成為了一家。
這是我找到的,可以看到我們的主角在倒數第四行。

啟動方法:
1.通過Visual Studio 2008啟動
2.在這里“C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Publishing\1.2\SqlPubWiz.exe”找到它,雙擊,按步驟來
任選一種都可以。

作用:
1.“數據庫發布向導”,就如它的名字Database Publishing Wizard
2.當成“指令列工具”來使用

使用:
步驟1:雙擊SqlPubWiz.exe,我是第一次雙擊這個,出現的是一個控制台,什么也沒有,只有一個定位光標在左上角閃爍;等了一會兒(30s內),出現了一個Database Publishing Wizard界面
步驟2:點擊Next,得到

步驟3:繼續點擊Next,報錯
===================================

無法連接到服務器 localhost。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------
程序位置:

在 Microsoft.SqlServer.Management.Common.ConnectionManager.Connect()
在 Microsoft.SqlServer.Management.SqlManagerUI.Scripting.ScriptingDriver.ConnectToServer()
在 Microsoft.SqlServer.Management.SqlManagerUI.Scripting.ScriptingDriver..ctor(String databaseName, String serverName)
在 Microsoft.SqlServer.Management.SqlManagerUI.SelectServerWizardPage.ValidateForm()

===================================

不支持此 SQL Server 版本(10.0)。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

===================================

 

啟動SQL2008,再點擊Next,依然報錯
無法連接到服務器 localhost。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------
程序位置:

在 Microsoft.SqlServer.Management.Common.ConnectionManager.Connect()
在 Microsoft.SqlServer.Management.SqlManagerUI.Scripting.ScriptingDriver.ConnectToServer()
在 Microsoft.SqlServer.Management.SqlManagerUI.Scripting.ScriptingDriver..ctor(String databaseName, String serverName)
在 Microsoft.SqlServer.Management.SqlManagerUI.SelectServerWizardPage.ValidateForm()

===================================

不支持此 SQL Server 版本(10.0)。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

===================================

 

啟動SQL2008,將localhost改為local,點擊Next,會出現短暫的未響應,然后報錯
無法連接到服務器 local。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------
程序位置:

在 Microsoft.SqlServer.Management.Common.ConnectionManager.Connect()
在 Microsoft.SqlServer.Management.SqlManagerUI.Scripting.ScriptingDriver.ConnectToServer()
在 Microsoft.SqlServer.Management.SqlManagerUI.Scripting.ScriptingDriver..ctor(String databaseName, String serverName)
在 Microsoft.SqlServer.Management.SqlManagerUI.SelectServerWizardPage.ValidateForm()

===================================

在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。 (provider: 命名管道提供程序, error: 40 - 無法打開到 SQL Server 的連接) (.Net SqlClient Data Provider)

------------------------------
有關幫助信息,請單擊: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=53&LinkId=20476

------------------------------
錯誤號: 53
嚴重性: 20
狀態: 0


------------------------------
從上面的錯誤看第一感覺是服務器有問題,我將SQL給關閉,重啟,看到服務器的名稱,拷貝;將它粘貼到向導里的服務器中;然后點擊“下一步”,最終成功。

但是這里有一個問題,我登錄SQL用的是SQL身份驗證,而不是Windows身份驗證;個人猜測如果我在向導里選擇的是SQL身份驗證的話,只需輸入登錄名和登錄密碼應該可以得到相同的結果;Windows身份驗證相對來說要方便很多,無論哪種方式服務器名稱是一樣的,也不能錯,格式“XX\SQLEXPRESS","XX"是你的pc名稱。

步驟4:選擇數據庫,點擊Next,報錯

===================================

This wizard will close because it encountered the following error: (Microsoft SQL Server)

------------------------------
有關幫助信息,請單擊: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server+Database+Publishing+Wizard&ProdVer=1.2.0.0&EvtSrc=Microsoft.SqlServer.Management.UI.WizardFrameworkErrorSR&EvtID=UncaughtException&LinkId=20476

===================================

未能加載文件或程序集“Microsoft.SqlServer.BatchParser, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”或它的某一個依賴項。系統找不到指定的文件。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------
是什么原因導致的?我想應該是我的數據庫有問題,怎么說呢?因為我只是在SQL里見了一個空數據庫,估計這是不行的。

但是這里還是應該進行總結下:我的想法是不能實現的,為什么呢?我手邊就一台電腦,裝的是SQL2008,而數據庫的備份是用SQL2008 r2備份的;想將這個備份在SQL2008中還原,是不可能的。而上面的方法是怎樣呢?它是將Database Publishing Wizard進行降級,降到你想要的版本,然后用這個新版本的Database Publishing Wizard對你要操作的數據庫進行編碼,得到與新版本相適應的數據庫副本,自然這個副本也可以在另一個沒有經過降級的Database Publishing Wizard的SQL中執行。由此,Database Publishing Wizard它的作用規定T-SQL的編碼方式。

猜想:可不可以先對Database Publishing Wizard進行升級,然后”將從SQL2008 r2里備份的數據庫還原到SQL2008中“,將1.2的環境升級成為1.3的環境,繼而實現操作。

最后,在上面說過SqlPubWiz.exe的啟動方法有兩種,應該還有第三種從控制台啟動。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM