国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

數據庫升遷從sqlserver6.5到sqlserver2000

2024-07-21 02:08:04
字體:
來源:轉載
供稿:網友

本文獻給在從sql6.5到sqlserver2000的數據庫升級過程中的迷茫的朋友。

筆者有幸碰到這樣一個案例:(有一句話叫:困難有多大,幸福就有多大,這不,幸福來了~)

一家電廠,運行著若干應用系統,其中以物資系統最為重要。體系結構,大致是這樣的:nt4.0 server 簡體中文版 + sql server6.5 英文 (物資系統數據)應用系統用powerbuilder6.0開發,已經運行了5年,數據量大概有300m 左右。隨著系統不斷的使用,現在需要對現有系統升級,從sql6.5到sqlserver2000  從表面上看似乎是數字的變遷,或者是簡單的導入導出就可以了,但是我把它想的太簡單了。

針對此升級,我使用了三套方案:
1、在sqlserver6.5及其上用外部工具bcp ... out    命令導出;
   用其中的一個表測試,結果導入sqlserver2000

   故障1:bcp ...in 提示“字符串數據,右截位”;
   故障2:漢字的字段顯示亂碼;
   故障3:有漢字的時間字段格式用bcp in 導入時不能成功。

2、用2000升級向導;
  
   故障1:克服重重困難(要求打補丁,重置登陸方式等)升級完后報告一些不可查看的錯誤,然后,打開數據庫一看,一無所有;
   
   故障2:升級向導無法進行,透明程度高,無法進行錯誤跟蹤。

3、用odbc配置訪問sql6.5數據源,然后用sqlserver2000的導入向導;
   故障:在更改了90多個新表名后,開始復制,成功了。但是,漢字顯示亂碼。隨后,在2000上重新建立一個latin general bin1 為排序的數據庫,再次導入,故障依舊。

   經歷了一周的反復測試,反復失敗,最后決定還是采用第一種的方案比較靈活,先將具體步驟整理一下,以饔讀者。

   1)在nt server 4.0 機器上 打開sqlserver enterprise manager ,選中要升級的數據庫,選中表并且生成創建表的腳本;
   2)生成創建存儲過程的腳本;
   3)如果有視圖,也請另存為文本,以備使用;
   4)打開isql/w工具,選中待升級的數據庫,運行以下語句生成bcp out/in 命令(要不然的話,手動編輯很費勁的):
    select 'bcp mydatabase.dbo.' + name + ' out ' +
 '/data/' + name + '.txt' +
 ' -usa  -p*** -sservername -c -c1252'
 from mydatabase..sysobjects
 where type = 'u'


 說明:mydatabase 為數據庫名。
       '/data/'   是運行bcp的目錄下的data目錄,需要事先建立。
        ***       數據庫密碼。
       servername 服務器名稱。
       1252       是sqlserver6.5 的默認代碼頁,必須指定,否則輸出的漢字會亂碼 。
 
 運行后將結果保存為bcpout.bat
 再將 out 換成 in 生成bcpin.bat 文件用以在sqlserver2000的機器上運行。 

   5)好了,要使用bcp 了,但是我們不能使用sql6.5 上的bcp工具,在我的試驗當中用它導出的帶有日期字段的數據中會生成諸如“2003 十二月 23 15:09am ”的格式,這樣在sqlserver2000機器上用bcp in 導入時會出現不認識日期格式而出現的復制錯誤。在此處,必須使用sqlserver 2000的bcp工具,方法:
   打開c:/program files/microsoft sql server/80/tools/binn,將bcp.exe 和 resources 目錄一同拷貝到ntserver4.0 機器的 sqlserver6.5 bcp 工作路徑下(c:/mssql/binn,將原來的bcp.exe文件更名為bcp65.exe);
    
   6)在nt 機器上建立 upgradedb目錄,將bcpin.bat, bcpout.bat和剛才生成的腳本拷貝進來,再建立data目錄;
   7)確保sqlserver 服務啟動后,雙擊運行bcpout.bat ,等待結束;
   8)將 upgradedb 目錄拷貝或共享到sqlserver2000機器上;
   9)打開sqlserver 2000 enterprise manager ,新建同名的數據庫,排序規則為chinese_prc_bin;
   10)打開 query anlyzer ,選中該數據庫, 運行剛才生成的建立表的腳本,建立表結構;運行剛才生成的存儲過程的建立腳本,生成存儲過程...  新建和舊庫一樣的視圖;
   11)打開 命令提示符狀態,進入upgradedb目錄,運行bcpin.bat,等待結束(如果出錯,請檢查密碼,server name,路徑等)。
   12)打開 enterprise manager ,打開數據庫,選中其中的表返回所有行,檢查數據
   發現漢字顯示正常,日期格式也正常。

   13)拷貝原來的應用程序到sqlserver2000的機器運行,發現一切照常,至此升級數據庫成功!

===================
本人水平有限,難免出錯,望各位指正,批評。

                                                                  iuprg (遨云馳行,琢符弄圖)
                                                                  2004-4-8
                                                                  http://iuprg.51.net
                                                                  [email protected]

 
上一篇:分析死鎖的方法

下一篇:查詢重復記錄

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定陶县| 宁津县| 聊城市| 承德市| 厦门市| 嘉禾县| 军事| 遂宁市| 崇明县| 浪卡子县| 区。| 锡林郭勒盟| 湘潭市| 合山市| 山阳县| 郸城县| 辽宁省| 景谷| 大理市| 农安县| 怀来县| 盐津县| 黄骅市| 山西省| 临海市| 合川市| 永年县| 晋中市| 西青区| 嘉禾县| 道孚县| 衡东县| 天台县| 佛坪县| 客服| 澄迈县| 丰都县| 漾濞| 宾川县| 新蔡县| 永福县|