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

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

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

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

我禁不住開(kāi)始思考這個(gè)未曾注意的問(wèn)題:

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

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

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

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

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

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

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

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

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

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

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

常見(jiàn)的數(shù)據(jù)導(dǎo)入問(wèn)題有:

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

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

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

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

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

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

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

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

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

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

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

create directory dump_data as '/data/dump_data';

grant read,write on directory dump_data to xxxx;

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

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

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

最后就是文件導(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

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

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

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

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

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

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

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

巨人網(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)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle和MySQL的數(shù)據(jù)導(dǎo)入為何差別這么大》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Oracle和MySQL的數(shù)據(jù)導(dǎo)入為何差別這么大的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章