iT邦幫忙

0

從SQL 7 轉到 SQL2008R2 的考量

公司目前用的資料庫系統是 MS SQL SERVER 7 , 計畫要升級到
MS SQL SERVER 2008 R2 64位元版。

因為擔心說轉到 SQL 2008 R2 之後會發生一些轉換的異動(例如 資料庫的 SCHEMA , 資料欄位型態等)
導致前端應用程式發生錯誤。

所以想先請問這樣轉換有沒有甚麼要注意的地方?

因為 SQL 7 的主機太老舊了,SQL 2008 R2 會是一台新的主機,而不是原機升級。

8
raytracy
iT邦大神 1 級 ‧ 2012-04-30 11:14:16
最佳解答

根據微軟 Technet 的建議, 您可以有幾種轉法:
Copying Databases from SQL Server 7.0 or Earlier

  1. 將 SQL 7 的資料庫, Attach 到一個已經在執行中的 SQL 2000 or 2005. 然後, 再從 2000/2005 去升級到 2008. 這樣做最安全, 缺點是: 你必須準備第三台主機和軟體.

  2. 使用 SQL Server Import and Export Wizard 匯出後再匯入. 但這樣轉, 可能會遇到資料型別無法自動轉換的問題, 需要事後以人工去調整.

  3. 在 SQL 7 上面用 bcp out 指令, 將資料匯出, 然後在 SQL 2008 上面, 用 bcp in -V70 -n 指令匯入. 這樣做的好處, 是可以跳過 2000/2005 這個中繼, 所以不必另外準備第三台主機. 但, 我過去用 SQL 7 做大量 bcp out 的經驗, 會有掉少量資料的風險, 需要人工查核一下.

我應當會用 vm 方式做轉換,就算用三個vm也沒差。
raytracy 真是用心幫忙。

4
純真的人
iT邦高手 4 級 ‧ 2012-04-30 11:12:28

基本上是資料庫是不會有什麼異狀,因為資料庫有相容版本的模式,你在建立資料庫時就可以看到選擇資料庫的版本,所以我認為移轉應該是沒有問題的,至少我試過沒出現過問題。

但是要移轉的話,應該要先測試幾次,再正式移轉過來,而不是馬上就移轉資料庫再來看有什麼問題。

2
Albert
iT邦高手 1 級 ‧ 2012-04-30 12:24:24

直接轉 mysql / postgresql 就好了

用 sql 7 前端也太老舊了

你哪麼厲害
怎麼不轉 open source ERP

Albert iT邦高手 1 級 ‧ 2012-05-01 21:40:18 檢舉

你哪麼厲害
怎麼不轉 open source ERP + postgresql

2
tsaifuhu
iT邦新手 5 級 ‧ 2012-05-01 19:57:56

三個步驟:
1.備份帳號及權限
2.Backup/Restore database
3.完成

看更多先前的回應...收起先前的回應...
Albert iT邦高手 1 級 ‧ 2012-05-01 21:39:54 檢舉

你哪麼厲害
怎麼不轉 open source ERP + postgresql

外獅佬 iT邦大師 1 級 ‧ 2012-05-01 22:40:09 檢舉

tsaifuhu提到:
Backup/Restore database

這個不能用在SQL 7 -> SQL Server 2008(或以上)
連SQL Server 2000都會失敗

外獅佬 iT邦大師 1 級 ‧ 2012-05-01 22:40:38 檢舉

我是指...SQL Server 2000 -> SQL Serever 2008

tsaifuhu iT邦新手 5 級 ‧ 2012-05-02 16:53:53 檢舉

我最近剛做過這個SQL Server 2000 -> SQL Serever 2008 R2 case,而且是32bit 到64bit,另外SQL Server 2005 Reporting Service -> SQL Serever 2008 R2 case 也都沒問題喔~

4
外獅佬
iT邦大師 1 級 ‧ 2012-05-01 22:45:15

這個部分,我有做過一次,資料型態應該還好,
比較需要注意的是stored procedure
SQL 7的資料庫檔案或備份檔,無法直接拿到SQL Server 2008以後的版本使用
必須透過匯入資料的方式轉移資料,這種方式,基本上即使轉移失敗,也不會損壞舊有的資料,是比較安全的移轉方式。
只是,選取來源資料的Driver(也就是連接SQL Server 7.0),不能使用SQL Native Client,因為SQL Native Client 10無法連接SQL Server 7以前的版本,請使用OLEDB for SQL Server作為連接。

我要發表回答

立即登入回答