国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Oracle數(shù)據(jù)庫(kù)的幾種數(shù)據(jù)遷移方法探析

2018-11-07 11:37饒淑珍
電腦知識(shí)與技術(shù) 2018年21期
關(guān)鍵詞:字符集服務(wù)端命令

饒淑珍

摘要:針對(duì)大數(shù)據(jù)背景下愈加龐大煩瑣的數(shù)據(jù)庫(kù),文章探討了幾種數(shù)據(jù)導(dǎo)入導(dǎo)出的遷移方法,用于數(shù)據(jù)的遷移維護(hù)和日常應(yīng)用,尤其是批量數(shù)據(jù)在不同版本、不同格式和跨數(shù)據(jù)庫(kù)之間的遷移。

關(guān)鍵詞:oracle;數(shù)據(jù)庫(kù);Export/Import;Date Pump;PLSQL;SQLloader

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)21-0013-02

近年來(lái),大數(shù)據(jù)的概念被越來(lái)越多的提及,數(shù)據(jù)庫(kù)作為其承載體也被愈加重視,在日常的開發(fā)應(yīng)用了,Oracle幾乎占據(jù)了絕大多數(shù)的市場(chǎng),無(wú)論是Oracle軟件本身的數(shù)據(jù)維護(hù)、備份,還是轉(zhuǎn)換版本乃至更換數(shù)據(jù)庫(kù)軟件,都需要掌握多種數(shù)據(jù)導(dǎo)入導(dǎo)出的遷移方法。

Oracle本身提供了相應(yīng)的工具解決導(dǎo)入導(dǎo)出功能,比如傳統(tǒng)工具Exp/Imp、數(shù)據(jù)泵Expdp/Impdp等,但在跨軟件環(huán)境之間還存在或多或少的兼容性問(wèn)題,本文以常用的Oracle 11g和PLSQL Developer軟件環(huán)境為例,從實(shí)際常用的編碼設(shè)置、DMP文件遷移、CSV(文本文件)遷移等入手,探討了幾種便捷實(shí)用的數(shù)據(jù)遷移方法。

1 統(tǒng)一數(shù)據(jù)庫(kù)字符集格式

服務(wù)端數(shù)據(jù)庫(kù)字符集一旦創(chuàng)建,所存儲(chǔ)的字符就受到了限制,在本地開發(fā)環(huán)境配置時(shí),應(yīng)保持服務(wù)端、客戶端、PLSQL Developer三者的一致性,對(duì)于導(dǎo)入的DMP數(shù)據(jù)文件,也要首先校驗(yàn)其字符集格式,否則極易引起亂碼等情況,給數(shù)據(jù)帶來(lái)不必要的隱患。排查步驟詳細(xì)如下:

1)查詢Oracle 11g服務(wù)端字符集格式

select * from sys.nls_database_parameters;

2)配置Oracle 11g 客戶端字符集格式

select * from nls_instance_parameters;

3)若與服務(wù)端字符集不相符

修改注冊(cè)表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1的NLS_LANG鍵值為服務(wù)器端字符集,比如:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

2 Export/Import工具遷移數(shù)據(jù)

Export/Import工具歷史悠久,自O(shè)racle軟件推廣應(yīng)用以來(lái)就被作為備份遷移的配套工具,雖然存在速度慢、效率低的詬病,但其便捷部署、靈活選擇、跨平臺(tái)、跨版本的特性,使得其非常吻合中小數(shù)據(jù)的備份遷移工作。

1)Export進(jìn)行數(shù)據(jù)的導(dǎo)出

Export命令結(jié)構(gòu)為:EXP USER/PASSWORD@SID FILE=EXPDAT.DMP [ PARAMETER 參數(shù) ],因篇幅所限,本處僅列出幾種常用參數(shù)和優(yōu)化參數(shù)。

1TABLES:指定導(dǎo)出的數(shù)據(jù)表,該參數(shù)允許同時(shí)指定多個(gè)表名,相互之間以逗號(hào)分開即可。

2QUERY:指定數(shù)據(jù)表導(dǎo)出的條件,其條件只能限制在導(dǎo)出表中使用,如同時(shí)指定了多個(gè)表,其條件必須同時(shí)滿足所有表,一般可以和WHERE等查詢語(yǔ)句嵌套使用。

3BUFFER:指定數(shù)據(jù)緩沖區(qū)的大小,根據(jù)服務(wù)器配置和數(shù)據(jù)表大小適當(dāng)調(diào)整緩存區(qū)大小可縮短導(dǎo)出時(shí)間。

4LOG:指定操作目錄日志的輸出,如不指定則默認(rèn)輸出屏幕顯示不進(jìn)行保存,考慮對(duì)備份文件的詳細(xì)說(shuō)明,強(qiáng)烈建議養(yǎng)成日志操作的習(xí)慣。

5例如:D:\oracle\dmp>EXP LPSZY/RSZZZ@JSSPRE_192.168.1.9 FILE=LPSZY_0612.DMP FILESIZE=500M TABLES=(table1,table2) QUERY=\"WHERE ID='01'\" LOG=LPSZY_0612.LOG

2)Import進(jìn)行數(shù)據(jù)的導(dǎo)入

Import相當(dāng)于Export的反向操作,Import在處理DMP文件時(shí),首先依賴EXP命令導(dǎo)出的數(shù)據(jù),如果EXP未導(dǎo)入相應(yīng)的對(duì)象,那么IMP業(yè)務(wù)進(jìn)行導(dǎo)入;其次根據(jù)IMP命令設(shè)置的參數(shù)控制導(dǎo)入的類型和內(nèi)容。常用參數(shù)和示例如下:

1FROMUSER:用來(lái)指定DMP對(duì)象文件原有的屬主。

2TOUSER:用來(lái)指定DMP文件的新屬主,即要導(dǎo)入的目標(biāo)用戶。

3例如:IMP TEMP1/RSZZZ FILE=LPSZY_0612.DMP FROMUSER=LPSZY TOUSER=TEMP1 FULL=Y

3 Date Pump導(dǎo)入和導(dǎo)出數(shù)據(jù)

隨著數(shù)據(jù)量爆炸式的增長(zhǎng),原生的EXP/IMP在大數(shù)據(jù)量處理時(shí)愈加力不從心,在Oracle發(fā)展到10g版本后,Date Pump橫沖出世,中文譯名一般稱之為“數(shù)據(jù)泵”,加強(qiáng)了數(shù)據(jù)的并行處理能力,并支持暫停和遠(yuǎn)端操作,大幅提高了數(shù)據(jù)遷移的效率,其對(duì)應(yīng)命令分別為EXPDP和IMPDP。

1)Date Pump執(zhí)行導(dǎo)出

雖然Date Pump數(shù)據(jù)操作與原生的Export/Import工具在功能和效率區(qū)別很大,但兩者的命令操作極為相似,但Date Pump是服務(wù)端工具,最終的DUMP文件是保存在目標(biāo)服務(wù)器的,在執(zhí)行命令之前必須為Dump文件指定Directory對(duì)象,即創(chuàng)建相關(guān)Directory對(duì)象并授予讀寫權(quán)限,相關(guān)步驟示例如下:

Date Pump的數(shù)據(jù)導(dǎo)出極為靈活,可按照用戶、進(jìn)程、表名、表空間乃至全庫(kù)導(dǎo)出,例如按照表名進(jìn)行導(dǎo)出:expdp LPSZY/RSZZZ@JSSPRE TABLES=table1 dumpfile=table1.dmp DIRECTORY=dump_dir;

雖然說(shuō)Date Pump是工作在服務(wù)端的導(dǎo)出工具,但其提供了一個(gè)network_link命令參數(shù),允許通過(guò)一個(gè)指定的本地用戶導(dǎo)出遠(yuǎn)端數(shù)據(jù)庫(kù)服務(wù)器的數(shù)據(jù),通過(guò)這個(gè)參數(shù)我們可以變相導(dǎo)出遠(yuǎn)端數(shù)據(jù)庫(kù)到本地,但需要在創(chuàng)建Directory對(duì)象和授予讀寫權(quán)限之前增加連接源數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)鏈接。若導(dǎo)出文件較大,應(yīng)盡量避免數(shù)據(jù)庫(kù)鏈的導(dǎo)出方式,因?yàn)榭鐢?shù)據(jù)庫(kù)鏈必然占用網(wǎng)絡(luò)帶寬,不僅僅會(huì)降低速度,還會(huì)影響其他依賴網(wǎng)絡(luò)的應(yīng)用,建議數(shù)據(jù)源端導(dǎo)出后使用壓縮軟件壓縮后直接傳輸。

2)Date Pump執(zhí)行導(dǎo)入

IMPDP命令與EXPDP相對(duì)應(yīng),一般常用按用戶導(dǎo)入,全庫(kù)導(dǎo)入、按表空間導(dǎo)入和追加數(shù)據(jù)。

1按用戶導(dǎo)入:impdp LPSZY/RSZZZDIRECTORY=dump_dir dumpfile=table1.dmp SCHEMAS=lpszy;

2全庫(kù)導(dǎo)入:impdp LPSZY/RSZZZDIRECTORY=dump_dir dumpfile=full.dmp FULL=y;

3按表空間導(dǎo)入:impdp LPSZY/RSZZZDIRECTORY=dump_dir dumpfile=table1.dmp TABLESPACES=example;

4追加數(shù)據(jù)導(dǎo)入:impdp LPSZY/RSZZZDIRECTORY=dump_dir dumpfile=table1.dmp SCHEMAS=lpszy TABLE_EXISTS_ACTION

4 第三方工具PLSQL Developer導(dǎo)入和導(dǎo)出數(shù)據(jù)

PLSQL Developer是一個(gè)第三方公司開發(fā)的集成開發(fā)環(huán)境,主要用于數(shù)據(jù)庫(kù)的開發(fā)、測(cè)試、調(diào)試和優(yōu)化操作,功能全而且提供了開始化界面,尤其是Windows端加入了64位操作系統(tǒng)支持,已基本成為Oracle操作的必備工具。

PLSQL Developer的文件導(dǎo)入導(dǎo)出可通過(guò)可視化窗口界面直接操作,一般常用導(dǎo)出格式為dmp文件、sql文件和pde文件,如下圖所示:

dmp文件和Exp/Imp工具導(dǎo)出文件一致,可以跨平臺(tái)使用,效率也不錯(cuò),應(yīng)用最為廣泛;

sql文件可直接用文本編輯器查看編輯,通用性較好,但效率低于dmp文件,比較適合小數(shù)據(jù)量的遷移導(dǎo)出,需要注意的是sql文件不支持大字段導(dǎo)出,pde文件是PLSQL Developer的專用文件格式,只能使用PLSQL Developer軟件進(jìn)行導(dǎo)入導(dǎo)出。

5 CSV(文本文件)的導(dǎo)入

在日常的數(shù)據(jù)遷移中,往往會(huì)遇到其他非標(biāo)準(zhǔn)DMP格式文件,例如軟件生成的TXT文件或者電子表格的CSV文件,此時(shí)就需要利用第三方軟件PLSQL Developer或者SQLloader數(shù)據(jù)加載工具進(jìn)行導(dǎo)入。

1)PLSQL Developer導(dǎo)入CSV(文本文件)

PLSQL提供了圖形化向?qū)Ы缑娴腃SV(文本文件)導(dǎo)入,相應(yīng)導(dǎo)入步驟如下:

1開始菜單—工具—文本導(dǎo)入器—打開數(shù)據(jù)文件(或粘貼文件)

2切換至到Oracle數(shù)據(jù)—?jiǎng)?chuàng)建表—對(duì)應(yīng)導(dǎo)入文件與數(shù)據(jù)表字段

3配置每次提交數(shù)量—選擇是否覆蓋—微調(diào)個(gè)別字段參數(shù)—確定數(shù)據(jù)導(dǎo)入

2)SQLloader導(dǎo)入CSV(文本文件)

SQLloader是Oracle發(fā)布時(shí)包含的命令行工具,命令名稱為sqlldr,主要用于外部文件的導(dǎo)入,尤其是大量數(shù)據(jù)的導(dǎo)入,其效率極高。SQLLoader在運(yùn)行時(shí),需要一個(gè)控制文件和一個(gè)數(shù)據(jù)文件,在命令下執(zhí)行sqlldr就可看到其詳細(xì)參數(shù)說(shuō)明,應(yīng)著重關(guān)注一下幾個(gè)參數(shù):

6 結(jié)束語(yǔ)

在當(dāng)今的信息化時(shí)代,包括各種概念提及的大數(shù)據(jù)、物聯(lián)網(wǎng),歸根到底的載體都是數(shù)據(jù),說(shuō)一句數(shù)據(jù)為王并不過(guò)分,作為一個(gè)數(shù)據(jù)庫(kù)操作管理人員,必須掌握一種或者多種數(shù)據(jù)備份遷移的技能,唯有如此才能減少損失,應(yīng)對(duì)各種情況可能帶來(lái)的數(shù)據(jù)隱患。文中雖列舉了集中數(shù)據(jù)遷移的方法,但技術(shù)不是唯一的,例如TOad、ODBC數(shù)據(jù)源和聯(lián)機(jī)備份等也能完成數(shù)據(jù)的 遷移,應(yīng)當(dāng)盡量掌握了解各種方法的優(yōu)缺點(diǎn)和便捷程度,在合適的場(chǎng)景選擇最穩(wěn)妥快速的解決方案。

參考文獻(xiàn):

[1] 徐小亞 謝延華. 基于Oracle數(shù)據(jù)庫(kù)的備份和恢復(fù)分析[M]. 信息安全與技術(shù), 2014(03).

[2] 李慧. 基于RMAN的Oracle備份及其與IT服務(wù)管理的整合[M]. 信息通信,2013(03).

[3] 劉娟. Oracle超大型數(shù)據(jù)庫(kù)數(shù)據(jù)遷移方法論[M]. 電腦知識(shí)與技術(shù),2016(30).

[4] 張懷亮 徐京渝. 醫(yī)院信息系統(tǒng)Oracle數(shù)據(jù)庫(kù)更換字符集的技術(shù)實(shí)踐[M]. 醫(yī)療衛(wèi)生裝備,2017(01).

[5] 方約翰. 基于oracle數(shù)據(jù)庫(kù)的信息系統(tǒng)的備份方案設(shè)計(jì)[M]. 信息技術(shù)與信息化,2017(Z1).

【通聯(lián)編輯:王力】

猜你喜歡
字符集服務(wù)端命令
只聽主人的命令
ORACLE字符集問(wèn)題的分析
云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
新時(shí)期《移動(dòng)Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
移防命令下達(dá)后
在Windows Server 2008上創(chuàng)建應(yīng)用
ORACLE數(shù)據(jù)庫(kù)字符集問(wèn)題及解決方法
醫(yī)院信息系統(tǒng)Oracle數(shù)據(jù)庫(kù)中導(dǎo)入數(shù)據(jù)中文亂碼的解決技術(shù)
這是人民的命令
摸清黑客套路防范木馬侵入
金昌市| 广丰县| 若尔盖县| 剑川县| 平远县| 南昌县| 巴楚县| 临邑县| 通海县| 张北县| 白城市| 阳谷县| 江永县| 云南省| 西昌市| 疏附县| 仁布县| 璧山县| 登封市| 牡丹江市| 双辽市| 顺义区| 西藏| 普兰店市| 武乡县| 灵寿县| 贺州市| 全南县| 车致| 桂东县| 侯马市| 宜昌市| 三江| 萍乡市| 德江县| 二手房| 介休市| 隆尧县| 花莲县| 阳高县| 连山|