濮阳杆衣贸易有限公司

主頁 > 知識庫 > Oracle和MySQL的數(shù)據(jù)導(dǎo)入為何差別這么大

Oracle和MySQL的數(shù)據(jù)導(dǎo)入為何差別這么大

熱門標(biāo)簽:網(wǎng)貸外呼系統(tǒng)合法嗎 汽車4s店百度地圖標(biāo)注店 杭州網(wǎng)絡(luò)外呼系統(tǒng)運營商 地圖標(biāo)注效果的制作 電銷套路機器人 鶴壁電話機器人價格 地圖標(biāo)注坐標(biāo)圖標(biāo) 安陽企業(yè)電銷機器人供應(yīng)商 手機地圖標(biāo)注門店

經(jīng)常會有一些朋友咨詢我一些數(shù)據(jù)庫的問題,我注意到一個很有意思的現(xiàn)象,凡是數(shù)據(jù)導(dǎo)入的問題,基本上都是Oracle類的,MySQL類的問題腦子里想了下竟然一次都沒有。

我禁不住開始思考這個未曾注意的問題:

為什么Oracle導(dǎo)入數(shù)據(jù)會碰到很多的問題?

我們來梳理一下這個問題,分別從導(dǎo)出導(dǎo)入的方式來聊聊。

首先Oracle導(dǎo)出的文件格式就沒打算讓你拿來即用,導(dǎo)出文件叫做dump,換句話說可以理解這是一個二進制文件。當(dāng)然實際上這個文件還是有很多的方式去抓取一些關(guān)鍵的信息,比如dump頭部的信息可以通過strings來解析得到,我甚至在多年前碰到一個比較棘手的問題,DBA直接vim修改dump文件,這個操作風(fēng)險和成本是比較高的。

導(dǎo)出有哪些工具呢,主要有exp,expdp這兩個工具,expdp的導(dǎo)出性能相對來說可以更加充分利用系統(tǒng)資源,導(dǎo)出的效率更高。exp相對來說對于一些小表還是比較省事的,expdp的導(dǎo)出是基于服務(wù)端模式的,也就是你需要做一些數(shù)據(jù)庫層的配置才可以,這無疑增加了一些技術(shù)門檻。

不知道大家注意到一個問題沒有,那就是Oracle提供了SQL*Loader的工具導(dǎo)入,但是卻沒有一直提供一種簡單有效的導(dǎo)出csv的工具,在導(dǎo)出的時候算是各路英雄漢使盡各種技藝,結(jié)合數(shù)據(jù)字典,結(jié)合文本過濾來完成。

MySQL的導(dǎo)出方法相對比較簡單,設(shè)計思路很有意思,導(dǎo)出的文件就是可以直接打開,可以直接修改的SQL文件。這個設(shè)計在很多應(yīng)用場景中簡直絕了,對于開發(fā)同學(xué)是非常友好的。

導(dǎo)出工具原生的有mysqldump,新版本的是mysqlpump(總體感覺性價比不是很高),當(dāng)然還有一些補充的第三方工具,比如mydumper之類的。

所以導(dǎo)出這件事情,對于開發(fā)同學(xué)本身是有一個門檻的,而且在隔行如隔山的情況下,很多同學(xué)使用expdp導(dǎo)出的時候都一頭霧水。從安全性來看,這個二進制文件是原汁原味的,從靈活性來看,MySQL基于SQL文本的方式是比較便捷。

導(dǎo)出的部分其實不是最主要的,產(chǎn)生隔閡最大的是導(dǎo)入的部分,也是提出問題最多的。

MySQL有什么數(shù)據(jù)導(dǎo)入工具,可以理解沒有,就是SQL文本,你想怎么執(zhí)行都可以。包括工具mysqldump,mysqlpump導(dǎo)出的文件都是如此,mydump有個配套的myloader算是一個小小的例外。

Oracle有什么導(dǎo)入工具,有,而且是配套的,exp對應(yīng)imp,expdp對應(yīng)impdp

常見的數(shù)據(jù)導(dǎo)入問題有:

1)提示用戶創(chuàng)建失敗,導(dǎo)入失敗

2)提示表空間不存在,導(dǎo)入失敗

3)導(dǎo)入時如果創(chuàng)建的數(shù)據(jù)文件空間不足,導(dǎo)入失敗

4)導(dǎo)入時的用戶權(quán)限不足,導(dǎo)入失敗

所以我要導(dǎo)入一個dump文件,如果是exp導(dǎo)出的,解析成本還算低一些。

而如果是expdp導(dǎo)出的,通常很多開發(fā)同學(xué)都會一臉懵逼。

1)導(dǎo)入要輸入一個目錄,什么是目錄,不是系統(tǒng)目錄嗎?

2)如果數(shù)據(jù)庫用戶已經(jīng)存在,已經(jīng)存在10張表,導(dǎo)入的時候默認(rèn)會直接忽略這10章表,除非你手工刪除或者選擇額外的選項,比如replace或者truncate等。

3)表空間源端和目標(biāo)端環(huán)境不一致,要想知道到底有哪些表空間不一致,解析dump文件實話說不是很方便,有一個高級選項是remap_tablespaces

4)數(shù)據(jù)導(dǎo)入之后,業(yè)務(wù)同學(xué)發(fā)現(xiàn)有些表還是訪問不了,不好,需要重新分配下權(quán)限。

通常來說,如果要導(dǎo)入一個dump,在Oracle側(cè)其實是一件很嚴(yán)肅的事情,我們需要創(chuàng)建目錄:

create directory dump_data as '/data/dump_data';

grant read,write on directory dump_data to xxxx;

配置表空間存儲,有哪些表空間,哪些表空間需要映射,在數(shù)據(jù)導(dǎo)入之前,這些信息其實是不好提取的。我通常采用的方式是做下預(yù)導(dǎo)入,就是找個干凈的環(huán)境,然后默認(rèn)選項導(dǎo)入,看看哪些表空間報錯,哪些用戶報錯,把這些信息提取出來,然后重新拼接一個導(dǎo)入命令。

在這個基礎(chǔ)上我去構(gòu)建相關(guān)的表空間和數(shù)據(jù)文件的細節(jié)。

對于數(shù)據(jù)文件,我不大喜歡自動擴展的方式,而是喜歡預(yù)創(chuàng)建出來,然后加上自動擴展。

最后就是文件導(dǎo)入

impdp system/xxxx directory=dump_data dumpfile=test.DMP logfile=impdp_test.log remap_tablespace=TEST_DATA1:DATA,TEST_DATA2:DATA,TEST_INDEX1:IDX,TEST_INDEX2:IDX

對于Oracle DBA來說,這應(yīng)該是再正常不過的事情了,而且有很多地方要做到細致周到的多,但是這樣一個過程對于一個外行來說,成本就很高了。

總是有一種感覺,Oracle就像汽車?yán)锩娴膶汃R一樣,操控性很好,提供了很多專業(yè)有效的管理方式。

而Oracle的角色通常都是百GB起,TB上下,這樣的數(shù)據(jù)量管理,就得適配出各種工具特點和特性。我覺得這些工具一直在追求的是更加高效和安全,可能從這個角度理解,Oracle的維護管理模式是需要專人來完成的。

MySQL的管理方式很適合互聯(lián)網(wǎng)這種變化快,而且數(shù)據(jù)量相對要小一些的環(huán)境。在易用性和學(xué)習(xí)門檻方便簡直是做到了極致,比如你要到處一些有特色的insert語句(比如按照主鍵排序,顯示完全列名等),都可以通過mysqldump很容易實現(xiàn)。

以上就是Oracle和MySQL的數(shù)據(jù)導(dǎo)入為何差別這么大的詳細內(nèi)容,更多關(guān)于Oracle和MySQL的數(shù)據(jù)導(dǎo)入的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 快速解決mysql導(dǎo)數(shù)據(jù)時,格式不對、導(dǎo)入慢、丟數(shù)據(jù)的問題
  • MySQL 4種導(dǎo)入數(shù)據(jù)的方法
  • MySQL 表數(shù)據(jù)的導(dǎo)入導(dǎo)出操作示例
  • mysql數(shù)據(jù)庫創(chuàng)建賬號、授權(quán)、數(shù)據(jù)導(dǎo)出、導(dǎo)入操作示例
  • java實現(xiàn)批量導(dǎo)入.csv文件到mysql數(shù)據(jù)庫
  • 如何將Excel文件導(dǎo)入MySQL數(shù)據(jù)庫
  • HeidiSQL工具導(dǎo)出導(dǎo)入MySQL數(shù)據(jù)
  • Navicat把csv數(shù)據(jù)導(dǎo)入mysql
  • MySQL數(shù)據(jù)庫遷移快速導(dǎo)出導(dǎo)入大量數(shù)據(jù)
  • MySQL如何快速導(dǎo)入數(shù)據(jù)

標(biāo)簽:酒泉 河源 泰安 梧州 南陽 焦作 銀川 柳州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle和MySQL的數(shù)據(jù)導(dǎo)入為何差別這么大》,本文關(guān)鍵詞  Oracle,和,MySQL,的,數(shù)據(jù),導(dǎo)入,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle和MySQL的數(shù)據(jù)導(dǎo)入為何差別這么大》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle和MySQL的數(shù)據(jù)導(dǎo)入為何差別這么大的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    桂平市| 乌拉特后旗| 南平市| 独山县| 永昌县| 吴堡县| 鹿邑县| 平潭县| 库车县| 景洪市| 长乐市| 和林格尔县| 唐海县| 贵州省| 太谷县| 平阳县| 扎鲁特旗| 雷州市| 开江县| 乌鲁木齐县| 汝州市| 彭州市| 洪雅县| 甘洛县| 榕江县| 监利县| 博爱县| 汕尾市| 来凤县| 双峰县| 兴国县| 景德镇市| 丰镇市| 盐亭县| 麻城市| 五寨县| 恩施市| 沁源县| 怀远县| 望城县| 宣城市|