公司目前用的資料庫系統是 MS SQL SERVER 7 , 計畫要升級到
MS SQL SERVER 2008 R2 64位元版。
因為擔心說轉到 SQL 2008 R2 之後會發生一些轉換的異動(例如 資料庫的 SCHEMA , 資料欄位型態等)
導致前端應用程式發生錯誤。
所以想先請問這樣轉換有沒有甚麼要注意的地方?
因為 SQL 7 的主機太老舊了,SQL 2008 R2 會是一台新的主機,而不是原機升級。
根據微軟 Technet 的建議, 您可以有幾種轉法:
Copying Databases from SQL Server 7.0 or Earlier
將 SQL 7 的資料庫, Attach 到一個已經在執行中的 SQL 2000 or 2005. 然後, 再從 2000/2005 去升級到 2008. 這樣做最安全, 缺點是: 你必須準備第三台主機和軟體.
使用 SQL Server Import and Export Wizard 匯出後再匯入. 但這樣轉, 可能會遇到資料型別無法自動轉換的問題, 需要事後以人工去調整.
在 SQL 7 上面用 bcp out 指令, 將資料匯出, 然後在 SQL 2008 上面, 用 bcp in -V70 -n 指令匯入. 這樣做的好處, 是可以跳過 2000/2005 這個中繼, 所以不必另外準備第三台主機. 但, 我過去用 SQL 7 做大量 bcp out 的經驗, 會有掉少量資料的風險, 需要人工查核一下.
基本上是資料庫是不會有什麼異狀,因為資料庫有相容版本的模式,你在建立資料庫時就可以看到選擇資料庫的版本,所以我認為移轉應該是沒有問題的,至少我試過沒出現過問題。
但是要移轉的話,應該要先測試幾次,再正式移轉過來,而不是馬上就移轉資料庫再來看有什麼問題。
直接轉 mysql / postgresql 就好了
用 sql 7 前端也太老舊了
你哪麼厲害
怎麼不轉 open source ERP
三個步驟:
1.備份帳號及權限
2.Backup/Restore database
3.完成
這個部分,我有做過一次,資料型態應該還好,
比較需要注意的是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作為連接。