iT邦幫忙

0

有沒有人搬過SQL Server的DB呢?

公司最近要換一台新的Server
要把SQL Server 2000的DB(這部分已作備份了)
搬到SQL Server 2008 R2上
請問SQL Server 2008 R2上要如何作呢?
謝謝

看更多先前的討論...收起先前的討論...
halawing iT邦新手 2 級 ‧ 2013-11-20 16:11:41 檢舉
我以前做過, 實際步驟因為年紀大了, 已經失憶...
不過記得一點就是似乎無法直接從 2000 轉到 2008,
最後是協調廠商借由 2005 分兩步驟中轉,
整個含前面直接轉 2008 失敗的部分到最後兩步驟的測試與雙套運作測試,
跑了七個月才敢跟頂頭的說系統沒問題了
halawing iT邦新手 2 級 ‧ 2013-11-20 16:14:25 檢舉
另外最佳解答那個方式有試過
不過那方法算是偷吃步
只是在2008上面跑2000的資料庫
而不是在2008上面跑2008的資料庫
因為當時老闆的要求,
所以這招被捨棄了.....嘆氣
sam0407 iT邦高手 1 級 ‧ 2013-11-21 12:26:01 檢舉
  哭哭....剛剛寫的超過一千字,一發表居然全部都不見了....

  只好再重寫一次了!不然實在有愧於被選為最佳解.....

ping9 說:
2.然後將對應的DB檔案Copy到新主機資料庫主機上,

這部分不懂
有圖解嗎?
謝謝


  我先說明一下,誠如樓上halawing上講的,這個方法的確不是好方法,不過樓主既然問了,我還是先回答樓主的問題!

  我想樓主不明白的應該是那些檔案才是所謂"對應的DB檔案",在一般的情形下,如果您的DB名稱是XXX,那"對應的DB檔案"就會是以下這兩個:
1.XXX_Data.mdf
2.XXX_log.ldf
  但這並不是絕對的,如果DBA有手動新增過data file或改過檔名就會不一樣,請依以下步驟查詢:
1.在原資料庫上按右鍵,點選屬性,叫出資料庫屬性視窗。

2.先點選資料庫屬性視窗左邊檔案,再看最後的路徑及檔案名稱兩個欄位,就可以知道這個DB所有"對應的DB檔案"有那些及分別在那些資料夾下。

3.知道了這些"對應的DB檔案"的檔名及位置,要Copy前請記得一定要先缷離資料庫或是停止SQL Server的相關服務,不然會無法複製,至於樓主要用那種方式Copy就隨喜囉~

  不過就像再前面所說的,這個方法其實並不適合樓主,我認為樓主應該比較適合用Backup+Restore的這個方法,雖然有可能要另外架一台2005作中轉,但畢竟比較簡單也不容易出問題。

  等一下我再提出如果是我自己要轉跨版本資料庫甚至是轉異質資料庫,我個人的建議作法,雖然可能對樓主沒有用,但希望能在未來幫助到其他邦友。

sam0407 iT邦高手 1 級 ‧ 2013-11-21 12:33:25 檢舉
中午了,先吃飯去,下午有個會議,四點以後再補!
sam0407 iT邦高手 1 級 ‧ 2013-11-21 19:19:23 檢舉
今天的會議開的比較久,會後又一堆事,現在加班補給邦友!

如果是我自己要作同質資料庫跨版本升級或甚至是異質資料庫移轉,我會這樣作:
1.先用MS SQL的SSIS工具移轉所有的Table資料
2.與原資料庫對照重新建立所有Table上的Index(包含PK)
(以下步驟3~5如果是同質資料庫升級應該Loading不大,就是在就資料庫產生Create指令再到新資料庫執行就好,但如果是異質資料庫移轉最好作好心理準備,除了Create View語法應該算標準ANSI SQL指令可能只要小改,其他的SP、Function應該都是要有重寫的打算)
3.請程式設計師重建所有的Function
4.請程式設計師重建所有的View
5.請程式設計師重建所有的SP(stored procedure 預存程序)
(以上步驟3~5在執行時,有可能會有相依性的關係,Ex.在某個Function中可能會用到某個View或某個SP,遇到這種情形就要先建那個View或SP,這個順序是我的個人經驗,這樣作的相依性的問題應該會最少,但這取決於您應用系統程式設計師的習慣,反正這部份算他的工作可以由他決定)
6.請程式設計師測試所有程式碼中和資料庫相關的地方(Connection建立/關閉、資料新增/修改/刪除/查詢、資料庫效能壓力測試[就是找之前系統慢的地方來測])
7.以上步驟都OK了,請先選黃道吉日,公告周知系統維護將進行維護暫不開放,重作以上步驟1~6(先前的只是測試,請記得保留先前步驟3~6所有修改的地方)
17
sam0407
iT邦高手 1 級 ‧ 2013-11-16 11:50:43
最佳解答

vlam123大說的和您的方法不同,他說的是:
1.先在原資料庫主機上將要搬過去的DB作缷離

2.然後將對應的DB檔案Copy到新主機資料庫主機上,
3.然後在新主機上作附加的動作

樓主您要用備份的方法作應該也可以,不過不管是您的方法或是vlam123大的方法,我都只試過2000轉2005、2005轉2008,沒試過直接2000直接轉2008的。

2000轉2005我印象中還要手動去新增個dbo的schema用起來才沒問題,因為schema是從2005版以後才有的。

ping9 iT邦新手 4 級 ‧ 2013-11-17 22:47:27 檢舉

sam0407提到:
2.然後將對應的DB檔案Copy到新主機資料庫主機上,

這部分不懂
有圖解嗎?
謝謝

4
vlam123
iT邦新手 2 級 ‧ 2013-11-16 09:56:12

不是停機抄下另台主機,重新掛上,當然權限要重新設定?

ping9 iT邦新手 4 級 ‧ 2013-11-16 10:58:00 檢舉

不是停機抄下另台主機,重新掛上
以上不懂能否再詳解一下,謝謝!

是這樣的意思嗎?
SQL Server 2000停止服務,作備份檔
然後把備份檔拿到SQL Server 2008上還原
這樣可以嗎?但我沒作過不知可行,謝謝

4
一級屠豬士
iT邦大師 1 級 ‧ 2013-11-16 11:11:37

MS網站上的文件: 使用備份與還原來複製資料庫
http://technet.microsoft.com/zh-tw/library/ms190436%28v=sql.105%29.aspx

ping9 iT邦新手 4 級 ‧ 2013-11-16 11:39:40 檢舉

怎麼這麼難
真的是看不太懂
有沒有圖解的部分可以參考呢?
謝謝

我要發表回答

立即登入回答