<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 49,comments - 97,trackbacks - 0

     

    對(duì)于oracle數(shù)據(jù)庫(kù)之間的移植采用oracle的導(dǎo)入導(dǎo)出工具(import/export)是一個(gè)比較好的策略。雖也可以利用第三方軟件如sybase 的power designer中的reverse engineering 進(jìn)行數(shù)據(jù)庫(kù)結(jié)構(gòu)重建,然后在進(jìn)行較復(fù)雜的數(shù)據(jù)導(dǎo)入過(guò)程,但對(duì)于作業(yè)隊(duì)列、快照等則不得不用手工來(lái)創(chuàng)建。而export能將整個(gè)數(shù)據(jù)庫(kù)、指定用戶、指定表和相關(guān)的數(shù)據(jù)字典進(jìn)行輸出,export輸出的輸出轉(zhuǎn)存二進(jìn)制文件包括了完全重建所有被選對(duì)象所需的命令。

    本人在為某電廠mis(oracle數(shù)據(jù)庫(kù))數(shù)據(jù)采用oracle的導(dǎo)入導(dǎo)出工具從windows nt平臺(tái)移植到digital unix平臺(tái)時(shí)遇到的關(guān)于字符集的問(wèn)題和總結(jié)出的經(jīng)驗(yàn)與大家來(lái)分享。

    1. 移植環(huán)境
    原操作系統(tǒng)平臺(tái): windows nt
    數(shù)據(jù)庫(kù): oracle 8.0.5 for windows nt
    服務(wù)器:hp netserver lh3
    目標(biāo)操作系統(tǒng)平臺(tái):digital unix alpha v4.0
    數(shù)據(jù)庫(kù):oracle 8.0.4 for digital unix
    服務(wù)器:alphaserver es40 小型機(jī)

    2. 數(shù)據(jù)導(dǎo)出
    在nt服務(wù)器上用oracle導(dǎo)出工具進(jìn)行數(shù)據(jù)導(dǎo)出,oracle導(dǎo)出工具有命令行和圖形界面兩種方式。
    本人直接用命令行方式進(jìn)行數(shù)據(jù)導(dǎo)出:
    c:> exp80 gxmisdba/manager file=c:expdat.dmp log=c:export.log
    即將導(dǎo)出指定的用戶...
    . 正在導(dǎo)出用戶gxmisdba的外部函數(shù)程序庫(kù)名稱
    . 正在導(dǎo)出用戶gxmisdba的對(duì)象類型定義
    即將導(dǎo)出gxmisdba的對(duì)象 ...
    . 正在導(dǎo)出數(shù)據(jù)庫(kù)鏈接
    . 正在導(dǎo)出序號(hào)
    . 正在導(dǎo)出群集定義
    . 即將導(dǎo)出gxmisdba的表通過(guò)常規(guī)路徑 ...
    . . 正在導(dǎo)出表     aaaaa          0 行被導(dǎo)出
    . . 正在導(dǎo)出表  evt_carrier_configuration   0 行被導(dǎo)出
    . . 正在導(dǎo)出表    tbl_aj_agks       331 行被導(dǎo)出
      .
      .
      .
    . 正在導(dǎo)出同義詞
    . 正在導(dǎo)出視圖
    . 正在導(dǎo)出存儲(chǔ)的過(guò)程
    . 正在導(dǎo)出參考資料一致性約束條件
    . 正在導(dǎo)出觸發(fā)器
    . 正在導(dǎo)出后期表活動(dòng)
    . 正在導(dǎo)出快照
    . 正在導(dǎo)出快照日志
    . 正在導(dǎo)出作業(yè)隊(duì)列
    . 正在導(dǎo)出刷新組和子組
    在沒(méi)有警告的情況下成功終止導(dǎo)出。

    3.數(shù)據(jù)導(dǎo)入
    在nt服務(wù)器上通過(guò)ftp命令將導(dǎo)出的輸出轉(zhuǎn)存二進(jìn)制文件expdat.dmp(使用binary傳輸模式)傳輸至digital unix服務(wù)器上。
    用oracle for digital unix 數(shù)據(jù)導(dǎo)入工具命令行方式進(jìn)行數(shù)據(jù)導(dǎo)入
    $imp gxmisdba/manager file=/expdat.dmp full=y log=u01import.log
    connected to: oracle8 enterprise edition release 8.0.4.0.0 - production
    pl/sql release 8.0.4.0.0 - production
    export file created by export:v08.00.05 via conventional path
    . importing gxmisdbas objects into gxmisdba
    . . importing table   "aaaaa"            0 rows imported
    . . importing table  "evt_carrier_configuration"   0 rows imported
    . . importing table   "tbl_aj_stk"         331 rows imported
    imp-00017: following statement failed with oracle error 2437:
    "alter table "tbl_kj_jlry" add constraint "pk_tbl_kj_jlry" primary key ("fld_kj_jlry_bh","fld_kj_jlry_xm") using index pctfree 10 initrans 2 maxtrans 255 storage (initial 10240 next 10240 minextents 1 maxextents 2147483645 pctincrease 50 freelists 1 freelist groups 1 buffer_pool default)"
    "      enable novalidate"
    imp-00003: oracle error 2437 encountered
    ora-02437: cannot enable (gxmisdba.pk_tbl_kj_jlry) - primary key violated
    .
    .
    .
    import terminated successfully with warnings.
    數(shù)據(jù)導(dǎo)入出現(xiàn)20多個(gè)以上類似錯(cuò)誤,后分析其中報(bào)錯(cuò)的"tbl_aj_stk"表,發(fā)現(xiàn)"fld_kj_jlry_xm"字段值(關(guān)鍵字組成之一)為中文字符而在digital unix服務(wù)器oracle數(shù)據(jù)庫(kù)中"fld_kj_jlry_xm"字段值顯示的為"????"(在客戶端用oracle sql plus查看),從而造成關(guān)鍵字沖突。
    在客戶端oracle sql plus對(duì)某行顯示"????"的字段值進(jìn)行修改,如改成中文值”測(cè)試”,提交后,用sql語(yǔ)句查看,剛修改的行中顯示"????"的字段值變成了”測(cè)試”,這說(shuō)明了digital unin服務(wù)器上的oracle數(shù)據(jù)集可以存儲(chǔ)中文字符,但oracle 8.0.4 for digital unin的導(dǎo)入工具imp未能將oracle 8.0.5 for windows nt imp80導(dǎo)出的中文數(shù)據(jù)進(jìn)行轉(zhuǎn)換。

    4.查看字符集參數(shù)
    4.1查看oracle 8.0.5 for windows nt props$內(nèi)容
    sql> connect sys/change_on_install
    sql> col value$ format a40
    sql> select name,value$ from props$;
    name              value$
    ---------------------------------------
    dict.base            2
    nls_language           american
    nls_territory          america
    nls_currency           $
    nls_iso_currency         america
    nls_numeric_characters     .,
    nls_calendar           gregorian
    nls_date_format         dd-mon-yy
    nls_date_language        american
    nls_characterset         zhs16gbk
    nls_sort            binary
    nls_nchar_characterset     zhs16gbk
    nls_rdbms_version        8.0.5.0.0
    global_db_name         oracle.world
    export_views_version      7
    已選擇15行。

    4.2查看oracle 8.0.4 for digital unin 的props$內(nèi)容
    sql> connect sys/change_on_install
    sql> col value$ format a40
    sql> select name,value$ from props$;
    name              value$
    ---------------------------------------
    dict.base            2
    nls_language           american
    nls_territory          america
    nls_currency           $
    nls_iso_currency         america
    nls_numeric_characters      .,
    nls_calendar           gregorian
    nls_date_format         dd-mon-yy
    nls_date_language        american
    nls_characterset         zhs16cgb231280
    nls_sort             binary
    nls_nchar_characterset      zhs16cgb231280
    nls_rdbms_version        8.0.4.0.0
    global_db_name          orcl.world
    export_views_version      7
    15 rows selected.
    發(fā)現(xiàn)oracle 8.0.4 for digital unin 采用了oracle在digital unix環(huán)境下建議的中文字符集zhs16cgb231280,兩者的字符集不同,于是本人就在digital unin服務(wù)器上重新安裝oracle,選擇了與nt上同樣的字符集zhs16gbk(中國(guó)簡(jiǎn)體漢字16位國(guó)標(biāo)庫(kù))。安裝完成后,通過(guò)查看props$的內(nèi)容,確認(rèn)了oracle 8.0.4 for digital unin和oracle 8.0.5 for windows nt的字符集一致。于是用oracle 8.0.4 for digital unin的導(dǎo)入工具imp重新進(jìn)行數(shù)據(jù)導(dǎo)入,但還是報(bào)同樣的錯(cuò)誤,問(wèn)題還未得到解決。

    5.問(wèn)題解決辦法
    后來(lái)本人發(fā)現(xiàn)在oracle 8.0.5 for windows nt的服務(wù)器(或裝有oracle 8.0.5 for windows 95/98的工作站)上直接用oracle 8.0.5 for windows nt的導(dǎo)入工具imp80遠(yuǎn)程對(duì)oracle 8.0.4 for digital unin數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)導(dǎo)入,問(wèn)題竟得到解決。
    5.1在nt的服務(wù)器上,修改tnsnames.ora(或通過(guò)oracle net8 easy config)設(shè)置數(shù)據(jù)庫(kù)連接字符串gxmis(可自行設(shè)定)指向oracle 8.0.4 for digital unin服務(wù)器。

    5.2在nt的服務(wù)器上進(jìn)行數(shù)據(jù)遠(yuǎn)程導(dǎo)入
    c:>imp80 gxmisdba/manager@gxmis file=c:expdat.dmpfull=y log=c:import.log

    已連接到:oracle8 enterprise edition release 8.0.4.0.0 - production
    pl/sql release 8.0.4.0.0 - production
    經(jīng)由常規(guī)路徑導(dǎo)出由export:v08.00.05創(chuàng)建的文件
    . 正在將gxmisdba的對(duì)象導(dǎo)入到 gxmisdba
    . . 正在導(dǎo)入表 "aaaaa" 0行被導(dǎo)入
    . . 正在導(dǎo)入表 "evt_carrier_configuration" 0行被導(dǎo)入
    . . 正在導(dǎo)入表 "tbl_aj_agks" 331行被導(dǎo)入
    .
    .
    .
    準(zhǔn)備啟用約束條件...
    成功終止導(dǎo)入

    5.3把oracle 8.0.4 for digital unin字符集重新又改成zhs16cgb231280,進(jìn)行數(shù)據(jù)遠(yuǎn)程導(dǎo)入測(cè)試,數(shù)據(jù)也同樣地導(dǎo)入成功。說(shuō)明zhs16cgb231280字符集可以兼容zhs16gbk字符集。

    6.經(jīng)驗(yàn)總結(jié)
    6.1在oracle 8.0.4 for digital unin服務(wù)器上(字符集zhs16gbk)用8.0.4 for digital unin的導(dǎo)出工具exp將已正常(即可存儲(chǔ)和顯示中文)的數(shù)據(jù)庫(kù)導(dǎo)出。
    $ exp gxmisdba/manager file=/u01/expdat.dmp log=/u01/export.log
    顯示成功導(dǎo)出。
    在用oracle 8.0.4 for digital unin的導(dǎo)入工具imp進(jìn)行導(dǎo)入
    $imp gxmisdba/manager file=/u01/expdat.dmp full=y log=u01import.log
    錯(cuò)誤又重現(xiàn)。

    6.2在nt服務(wù)器上通過(guò)ftp命令將在oracle 8.0.4 for digital unin服務(wù)器上剛導(dǎo)出的輸出轉(zhuǎn)存二進(jìn)制文件expdat.dmp下載至nt服務(wù)器上,用imp80進(jìn)行遠(yuǎn)程導(dǎo)入。
    c:>imp80 gxmisdba/manager@gxmis file=c:expdat.dmp full=y log=c:import.log
    已連接到:oracle8 enterprise edition release 8.0.4.0.0 – production
    pl/sql release 8.0.4.0.0 – production
    imp-00016: 不支持要求的字符集轉(zhuǎn)換(從類型1到852)
    imp-00000: 未成功終止導(dǎo)入

    6.3在nt服務(wù)器上對(duì)digital unin服務(wù)器上的數(shù)據(jù)進(jìn)行遠(yuǎn)程導(dǎo)出(備份)
    c:>exp80 gxmisdba/manager@gxmis file=c:expdat.dmp log=c:export.log
    顯示成功導(dǎo)出。再進(jìn)行遠(yuǎn)程導(dǎo)入
    c:>imp80 gxmisdba/manager@gxmis file=c:expdat.dmp full=y log=c:import.log
    顯示成功導(dǎo)入。通過(guò)客戶端oracle sql plus查看中文顯示正常。
    從而說(shuō)明在oracle 8.0.4 for digital unin服務(wù)器上對(duì)含有中文的數(shù)據(jù)庫(kù)的數(shù)據(jù)移植、備份、數(shù)據(jù)恢復(fù)不要用oracle 8.0.4 for digital unin本身自帶的導(dǎo)入導(dǎo)出工具imp,exp,應(yīng)使用能進(jìn)行中文導(dǎo)入導(dǎo)出的工具,如imp80,exp80。

    posted on 2005-10-28 15:41 閔毓 閱讀(505) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫(kù)心得與體會(huì)
    主站蜘蛛池模板: 亚洲免费日韩无码系列| 日韩亚洲产在线观看| 亚洲色精品88色婷婷七月丁香| 午夜亚洲av永久无码精品| 四虎永久免费影院| 亚洲国产综合人成综合网站| 四虎永久在线精品免费影视 | 美女被吸屁股免费网站| 综合偷自拍亚洲乱中文字幕 | 亚洲热妇无码AV在线播放| 亚洲人成网站在线播放vr| 亚洲人成亚洲人成在线观看| 亚洲AV无码久久| 久久精品国产精品亚洲毛片| 亚洲第一页在线播放| 国产精品亚洲一区二区麻豆| 亚洲AV无码AV日韩AV网站| 免费一级全黄少妇性色生活片| 一级做a爰片性色毛片免费网站 | 亚洲中文字幕无码mv| 亚洲av日韩av永久在线观看| 偷自拍亚洲视频在线观看| 在线播放免费人成视频网站| 91成人免费福利网站在线| 久久aa毛片免费播放嗯啊| 亚洲人成在线免费观看| 我想看一级毛片免费的| 深夜国产福利99亚洲视频| 国产亚洲综合一区柠檬导航| 亚洲美女视频免费| 亚洲综合精品第一页| 一级毛片a免费播放王色电影 | 视频免费在线观看| 97碰公开在线观看免费视频| 午夜电影免费观看| 亚洲精品老司机在线观看| 亚洲国产精品久久久久久| 亚洲无吗在线视频| 一级毛片免费在线播放| 亚洲欧洲免费视频| 国产精品冒白浆免费视频|