本文將介紹如何移轉 SQL Server 2008 R2 維護計畫至 SQL Server 2012。
【情境說明】
有網友在論壇上問到如何把 SQL Server 2008 R2 上面所建立的維護計畫移轉到 SQL Server 2012,筆者對此提供幾個可能的作法,希望對遇到類似問題的朋友們有幫助。
【實作方法一、使用 SSIS 專案部署】
開啟 BIDS 新增一 Integration Services 專案,筆者設定為【MySSIS】。
預設的Package.dtsx用不到,筆者選擇將之刪除。
於 SSIS 封裝節點上選擇【加入現有的封裝】。
接著在【加入現有封裝的副本】視窗中輸入封裝位置伺服器及驗證相關資訊後,點選封裝路徑上右側的【…】按鈕,來選擇您要加入的維護計畫,然後按確定。
選擇完畢後您所選擇維護計畫會顯示在封裝路徑上面,您將看到類似下圖的結果:
維護計畫的副本加入到 Integration Services 專案後您可以點選該 .dtsx 封裝檔來檢視或修改您的維護計畫,甚至筆者會建議把這個 Integration Services 專案加入到原始檔控制,這是本實作方法最重要的一環,雖然步驟稍微繁瑣點,但對將來維護計畫的管理與維護相當有幫助。
接下來請於專案上按滑鼠右鍵選擇【屬性】。
於【屬性頁】視窗中點選【部署公用程式】然後將【CreateDeploymentUtility】設定為 True,然後按確定。
最後從功能表中選擇【建置 > 建置專案名稱】來建置並產生 SSIS 部署公用程式。
SSIS 部署公用程式必須要建置後才會出現,預設路徑為【Integration Services 專案\bin\Deployment】,請將這個目錄直接複製到您要部署的 SQL Server 2012。
一般而言 SSIS 部署公用程式會包含您的維護計畫的封裝檔(如下圖的 MyMaintenancePlan)以及與 Integration Services 專案名稱相同的部署檔(如下圖的 MySSIS)。
安裝時只要 double click 部署檔,系統就會利用【dtsinstall.exe】來開啟部署檔,於【封裝安裝精靈】視窗中按下一步。
在【部署 SSIS 封裝】步驟中您可以選擇封裝所要安裝的位置,建議您可以把封裝部署到 SQL Server 以提升保護封裝的安全性以及管理上會更加便利,另外您可以勾選【安裝之後驗證封裝】,使得安裝封裝後可以進行檢查封裝的完整性,然後按下一步。
於【指定目標 SQL Server】步驟中輸入您要部署封裝的 SQL Server 伺服器資訊及驗證方式,接著按封裝路徑右側的【…】來選擇封裝要安裝在哪個位置。
筆者把從 SQL Server 2008 R2 產生的維護計畫一樣放在 Maintenance Plans 目錄下,您可以依照實際需求自行調整部署的位置,選擇完畢之後按確定。
接著您就可以在封裝路徑中看到您所選擇的封裝路徑(如下圖)。
您可以在【選取安裝資料夾】步驟中選擇您要將和正要部署的封裝相關的相依性安裝在哪個資料夾,在此筆者使用預設位置【C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Packages\Integration Services 專案名稱】,然後按下一步。
直接在【確認安裝】步驟中按下一步。
若您有選擇【安裝之後驗證封裝】時,您就會看到下圖的驗證進度,直接按下一步繼續。
封裝安裝成功後按完成來關閉【封裝安裝精靈】視窗。
最後您就可以在物件總管中編輯由 SQL Server 2008 R2 所移轉過來的維護計畫。
【實作方法二、使用 SSMS 匯出封裝】
於物件總管中選擇【連接 > Integration Services】,輸入 SQL Server 2008 R2 的伺服器名稱及驗證資訊候登入。
在【Integration Services 節點 > 存放的封裝 > MSDB > Maintenance Plans】節點下找到您要匯出的維護計畫,接著選擇【匯出封裝】。
在【匯出封裝】視窗中輸入您想要將維護計畫匯出到哪個 SQL Server 2012,其伺服器以及相關驗證資訊後,按【…】來選擇維護計畫封裝的儲存位置,接著按確定。
最後您就可以在物件總管中編輯由 SQL Server 2008 R2 所移轉過來的維護計畫。
【補充說明】
若您在修改維護計畫時發生遇到【Agent XPs 元件已經由此伺服器的安全性組態關閉】的錯誤,可以參考這篇文章來解決。
【參考資料】