昨天受同事所託,臨時要將某台資料庫伺服器的一些資料庫搬到另一台SQL Server,這聽起來似乎也不是什麼難事,就是把資料庫複製然後貼上而已嘛…..不!!! 代誌絕不是像我想的這麼簡單,我以為只要備份資料庫成bak檔然後Restore到另一台Server就ok了,但卻遇到阻礙。
原因很簡單,透過SQL Client製作資料庫備份檔只會把資料庫備到資料庫所在的伺服器上,備份好還必須登入那台機器或遠端存取機器檔案把檔案拿出來再restore到目標伺服器上,只可惜,我就是沒進那台機器的權限,所以備份好後也拿步道備份檔,所以就只好再想其他做法。
好家在SQL Server Client還是有其他一些能夠直接把資料庫轉到目標伺服器的作法,最後我找到了直接匯出資料庫的方法,本以為它就像是一般把資料轉成像excel檔的老套做法而已,但其實不然,他是可以轉成很多種資料物件的,excel只是其中之一,大部分OLEDB物件都有support,而其中一個則是轉成其他SQL Server的資料庫物件,換句話說,你可以直接用匯出的方式把資料庫傳入到目標伺服器上! 這就不用透過備份的做法去聲檔案再想辦法Restore拉! 作法如下:
1.登入來源資料庫伺服器然後選擇要備份的資料庫按右鍵點”匯出資料”功能.
2. 出現匯出精靈,選下一步 .
3. 因為資料來源是SQL Server,所以要選擇SQL Native Client做為資料來源載體,然後在下方填入來源資料庫伺服器名稱, 然後選擇帳號驗證方式以及要轉出資料的資料庫.
4.接著同樣操作模式選擇資料匯出目的,因為同樣是SQL Server,所以做法與上面差不多.
5.唯一要注意的是因為墓地資料庫還沒有你要轉入的資料庫名稱,所以必須”新增”資料庫名稱之後才能下一步!
6.這裡直接用預設值就好,下一步.
7.選擇要複製的資料庫內的資料表,全選就對了,因為你是要把整個資料庫搬過去.
8.立即執行吧.
9.他說:這一步下去就可以完成了
10.看到沒有錯誤就成功了
11.然後在SQL Client上看一下目標伺服器是否已經新增了剛剛搬過來的資料庫.
12.大功告成.
是不是很容易呀??? 但這也是費了我一番工夫想出來的WORKROUND呀,但這方法還是有缺點,那就是不適合用在超大型資料庫上,另一方面使用者權限也不會一起被搬到新機器,必須從新伺服器上重新加入使用者權限給DB。
大概就是這樣吧! 工作就是要不斷學習呀!
2017年4月20日星期四7:58 PM
留言列表