下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、oracle中邏輯導(dǎo)出exp/導(dǎo)入imp詳解導(dǎo)入/導(dǎo)出是oracle幸存的最古老的兩個(gè)命令行工具,其實(shí)我從來(lái)不認(rèn)為exp/imp是一種好的備份方式,正確的說(shuō)法是exp/imp只能是一個(gè)好的轉(zhuǎn)儲(chǔ)工具,特別是在小型數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ),表空間的遷移,表的抽取,檢測(cè)邏輯和物理沖突等中有不小的功勞。當(dāng)然,我們也可以把它作為小型數(shù)據(jù)庫(kù)的物理備份后的一個(gè)邏輯輔助備份,也是不錯(cuò)的建議。對(duì)于越來(lái)越大的數(shù)據(jù)庫(kù),特別是tb級(jí)數(shù)據(jù)庫(kù)和越來(lái)越多數(shù)據(jù)倉(cāng)庫(kù)的出現(xiàn),exp/imp越來(lái)越力不從心了,這個(gè)時(shí)候,數(shù)據(jù)庫(kù)的備份都轉(zhuǎn)向了rman和第三方工具。下面說(shuō)明一下exp/imp的使用。如何使exp的幫助以不同的字符集顯示:set nl
2、s_lang=simplified chinese_china.zhs16gbk,通過(guò)設(shè)置環(huán)境變量,可以讓exp的幫助以中文顯示,如果set nls_lang=american_america.字符集,那么幫助就是英文的了。exp的所有參數(shù)(括號(hào)中為參數(shù)的默認(rèn)值):userid 用戶名/口令 如: userid=duanl/duanlfull 導(dǎo)出整個(gè)數(shù)據(jù)庫(kù) (n)buffer 數(shù)據(jù)緩沖區(qū)的大小owner 所有者用戶名列表,你希望導(dǎo)出哪個(gè)用戶的對(duì)象,就用owner=usernamefile 輸出文件 (expdat.dmp)tables 表名列表 ,指定導(dǎo)出的table名稱(chēng),如:tables=
3、table1,table2compress 導(dǎo)入一個(gè)extent (y)recordlength io 記錄的長(zhǎng)度grants 導(dǎo)出權(quán)限 (y)inctype 增量導(dǎo)出類(lèi)型indexes 導(dǎo)出索引 (y)record 跟蹤增量導(dǎo)出 (y)rows 導(dǎo)出數(shù)據(jù)行 (y)parfile 參數(shù)文件名,如果你exp的參數(shù)很多,可以存成參數(shù)文件.constraints 導(dǎo)出約束 (y)consistent 交叉表一致性log 屏幕輸出的日志文件statistics 分析對(duì)象 (estimate)direct 直接路徑 (n)triggers 導(dǎo)出觸發(fā)器 (y)feedback 顯示每 x 行 (0) 的進(jìn)
4、度f(wàn)ilesize 各轉(zhuǎn)儲(chǔ)文件的最大尺寸query 選定導(dǎo)出表子集的子句下列關(guān)鍵字僅用于可傳輸?shù)谋砜臻gtransport_tablespace 導(dǎo)出可傳輸?shù)谋砜臻g元數(shù)據(jù) (n)tablespaces 將傳輸?shù)谋砜臻g列表imp的所有參數(shù)(括號(hào)中為參數(shù)的默認(rèn)值):userid 用戶名/口令full 導(dǎo)入整個(gè)文件 (n)buffer 數(shù)據(jù)緩沖區(qū)大小fromuser 所有人用戶名列表file 輸入文件 (expdat.dmp)touser 用戶名列表show 只列出文件內(nèi)容 (n)tables 表名列表ignore 忽略創(chuàng)建錯(cuò)誤 (n)recordlength io 記錄的長(zhǎng)度grants 導(dǎo)入權(quán)限
5、(y)inctype 增量導(dǎo)入類(lèi)型indexes 導(dǎo)入索引 (y)commit 提交數(shù)組插入 (n)rows 導(dǎo)入數(shù)據(jù)行 (y)parfile 參數(shù)文件名log 屏幕輸出的日志文件constraints 導(dǎo)入限制 (y)destroy 覆蓋表空間數(shù)據(jù)文件 (n)indexfile 將表/索引信息寫(xiě)入指定的文件skip_unusable_indexes 跳過(guò)不可用索引的維護(hù) (n)analyze 執(zhí)行轉(zhuǎn)儲(chǔ)文件中的 analyze 語(yǔ)句 (y)feedback 顯示每 x 行 (0) 的進(jìn)度toid_novalidate 跳過(guò)指定類(lèi)型 id 的校驗(yàn)filesize 各轉(zhuǎn)儲(chǔ)文件的最大尺寸recalc
6、ulate_statistics 重新計(jì)算統(tǒng)計(jì)值 (n)下列關(guān)鍵字僅用于可傳輸?shù)谋砜臻gtransport_tablespace 導(dǎo)入可傳輸?shù)谋砜臻g元數(shù)據(jù) (n)tablespaces 將要傳輸?shù)綌?shù)據(jù)庫(kù)的表空間datafiles 將要傳輸?shù)綌?shù)據(jù)庫(kù)的數(shù)據(jù)文件tts_owners 擁有可傳輸表空間集中數(shù)據(jù)的用戶關(guān)于增量參數(shù)的說(shuō)明:exp/imp的增量并不是真正意義上的增量,所以最好不要使用。使用方法:exp parameter_name=value or exp parameter_name=(value1,value2)只要輸入?yún)?shù)help=y就可以看到所有幫助.exp常用選項(xiàng)1.full ,這個(gè)
7、用于導(dǎo)出整個(gè)數(shù)據(jù)庫(kù),在rows=n一起使用時(shí),可以導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu)。例如:exp userid=test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y注:在oracle10g中,userid這個(gè)是可以不用寫(xiě)的直接寫(xiě) 用戶名/密碼 就可以了像這樣:exp test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y2. owner和table ,這兩個(gè)選項(xiàng)用于定義exp的對(duì)象。owner定義導(dǎo)出指
8、定用戶的對(duì)象;table指定exp的table名稱(chēng),例如:exp userid=test/test file=./db_str.dmp log=./db_str.log owner=duanl注:有的時(shí)候我們可能會(huì)遇到只導(dǎo)出單表的情況,下面這種方法可以幫你解決問(wèn)題exp userid=test/test file=./db_str.dmp log=./db_str.log table=nc_data,fi_arap3.buffer和feedback ,在導(dǎo)出比較多的數(shù)據(jù)時(shí),我會(huì)考慮設(shè)置這兩個(gè)參數(shù)。例如:exp userid=test/test file=yw97_2003.dmp log=yw
9、97_2003_3.log feedback=10000 buffer=100000000 tables=wo4,ok_yt4.file和log ,這兩個(gè)參數(shù)分別指定備份的dmp名稱(chēng)和log名稱(chēng),包括文件名和目錄,例子見(jiàn)上面。5.compress 參數(shù)不壓縮導(dǎo)出數(shù)據(jù)的內(nèi)容。用來(lái)控制導(dǎo)出對(duì)象的storage語(yǔ)句如何產(chǎn)生。默認(rèn)值為y,使用默認(rèn)值,對(duì)象的存儲(chǔ)語(yǔ)句的init extent等于當(dāng)前導(dǎo)出對(duì)象的extent的總和。推薦使用compress=n。6. filesize該選項(xiàng)在8i中可用 。如果導(dǎo)出的dmp文件過(guò)大時(shí),最好使用filesize參數(shù),限制文件大小不要超過(guò)2g。如:exp useri
10、d=duanl/duanl file=f1,f2,f3,f4,f5 filesize=2g owner=scott這樣將創(chuàng)建f1.dmp, f2.dmp等一系列文件,每個(gè)大小都為2g,如果導(dǎo)出的總量小于10gexp不必創(chuàng)建f5.bmp.imp常用選項(xiàng)1、fromuser和touser ,使用它們實(shí)現(xiàn)將數(shù)據(jù)從一個(gè)schema中導(dǎo)入到另外一個(gè)schema中。例如:假設(shè)我們做exp時(shí)導(dǎo)出的為test的對(duì)象,現(xiàn)在我們想把對(duì)象導(dǎo)入用戶:imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test12、ignore、grants和ind
11、exes ,其中ignore參數(shù)將忽略表的存在,繼續(xù)導(dǎo)入,這個(gè)對(duì)于需要調(diào)整表的存儲(chǔ)參數(shù)時(shí)很有用,我們可以先根據(jù)實(shí)際情況用合理的存儲(chǔ)參數(shù)建好表,然后直接導(dǎo)入數(shù)據(jù)。而grants和indexes則表示是否導(dǎo)入授權(quán)和索引,如果想使用新的存儲(chǔ)參數(shù)重建索引,或者為了加快到入速度,我們可以考慮將indexes設(shè)為n,而grants一般都是y。例如:imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1 indexes=n表空間傳輸表空間傳輸是8i新增加的一種快速在數(shù)據(jù)庫(kù)間移動(dòng)數(shù)據(jù)的一種辦法,是把一個(gè)數(shù)據(jù)庫(kù)上的格式數(shù)據(jù)文件附加到另
12、外一個(gè)數(shù)據(jù)庫(kù)中,而不是把數(shù)據(jù)導(dǎo)出成dmp文件,這在有些時(shí)候是非常管用的,因?yàn)閭鬏敱砜臻g移動(dòng)數(shù)據(jù)就象復(fù)制文件一樣快。關(guān)于傳輸表空間有一些規(guī)則,即:源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)必須運(yùn)行在相同的硬件平臺(tái)上。源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)必須使用相同的字符集。源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)一定要有相同大小的數(shù)據(jù)塊目標(biāo)數(shù)據(jù)庫(kù)不能有與遷移表空間同名的表空間sys的對(duì)象不能遷移必須傳輸自包含的對(duì)象集有一些對(duì)象,如物化視圖,基于函數(shù)的索引等不能被傳輸可以用以下的方法來(lái)檢測(cè)一個(gè)表空間或一套表空間是否符合傳輸標(biāo)準(zhǔn):exec sys.dbms_tts.transport_set_check(tablespace_name,true);sele
13、ct * from sys.transport_set_violation;如果沒(méi)有行選擇,表示該表空間只包含表數(shù)據(jù),并且是自包含的。對(duì)于有些非自包含的表空間,如數(shù)據(jù)表空間和索引表空間,可以一起傳輸。以下為簡(jiǎn)要使用步驟,如果想?yún)⒖荚敿?xì)使用方法,也可以參考o(jì)racle聯(lián)機(jī)幫助。1.設(shè)置表空間為只讀(假定表空間名字為app_data 和app_index)alter tablespace app_data read only;alter tablespace app_index read only;2.發(fā)出exp命令sqlhost exp userid=”sys/password as sysdb
14、a”transport_tablespace=y tablespace=(app_data, app_index)以上需要注意的是為了在sql中執(zhí)行exp,userid必須用三個(gè)引號(hào),在unix中也必須注意避免“/”的使用在816和以后,必須使用sysdba才能操作這個(gè)命令在sql中必須放置在一行(這里是因?yàn)轱@示問(wèn)題放在了兩行)3.拷貝數(shù)據(jù)文件到另一個(gè)地點(diǎn),即目標(biāo)數(shù)據(jù)庫(kù)可以是cp(unix)或copy(windows)或通過(guò)ftp傳輸文件(一定要在bin方式)4.把本地的表空間設(shè)置為讀寫(xiě)5.在目標(biāo)數(shù)據(jù)庫(kù)附加該數(shù)據(jù)文件imp file=expdat.dmp userid=”sys/passwor
15、d as sysdba” transport_tablespace=y “datafile=(c:tempapp_data,c:tempapp_index)”6.設(shè)置目標(biāo)數(shù)據(jù)庫(kù)表空間為讀寫(xiě)alter tablespace app_data read write;alter tablespace app_index read write;優(yōu)化exp/imp的方法:當(dāng)需要exp/imp的數(shù)據(jù)量比較大時(shí),這個(gè)過(guò)程需要的時(shí)間是比較長(zhǎng)的,我們可以用一些方法來(lái)優(yōu)化exp/imp的操作。exp:使用直接路徑 direct=yoracle會(huì)避開(kāi)sql語(yǔ)句處理引擎,直接從數(shù)據(jù)庫(kù)文件中讀取數(shù)據(jù),然后寫(xiě)入導(dǎo)出文件.
16、可以在導(dǎo)出日志中觀察到: exp-00067: table xxx will be exported in conventional path如果沒(méi)有使用直接路徑,必須保證buffer參數(shù)的值足夠大.有一些參數(shù)于direct=y不兼容,無(wú)法用直接路徑導(dǎo)出可移動(dòng)的tablespace,或者用query參數(shù)導(dǎo)出數(shù)據(jù)庫(kù)子集.當(dāng)導(dǎo)入導(dǎo)出的數(shù)據(jù)庫(kù)運(yùn)行在不同的os下時(shí),必須保證recordlength參數(shù)的值一致.imp:通過(guò)以下幾個(gè)途徑優(yōu)化1.避免磁盤(pán)排序?qū)ort_area_size設(shè)置為一個(gè)較大的值,比如100m2.避免日志切換等待增加重做日志組的數(shù)量,增大日志文件大小.3.優(yōu)化日志緩沖區(qū)比如將lo
17、g_buffer容量擴(kuò)大10倍(最大不要超過(guò)5m)4.使用陣列插入與提交commit = y注意:陣列方式不能處理包含lob和long類(lèi)型的表,對(duì)于這樣的table,如果使用commit = y,每插入一行,就會(huì)執(zhí)行一次提交.5.使用nologging方式減小重做日志大小在導(dǎo)入時(shí)指定參數(shù)indexes=n,只導(dǎo)入數(shù)據(jù)而忽略index,在導(dǎo)完數(shù)據(jù)后在通過(guò)腳本創(chuàng)建index,指定 nologging選項(xiàng)導(dǎo)出/導(dǎo)入與字符集進(jìn)行數(shù)據(jù)的導(dǎo)入導(dǎo)出時(shí),我們要注意關(guān)于字符集的問(wèn)題。在exp/imp過(guò)程中我們需要注意四個(gè)字符集的參數(shù):導(dǎo)出端的客戶端字符集,導(dǎo)出端數(shù)據(jù)庫(kù)字符集,導(dǎo)入端的客戶端字符集,導(dǎo)入端數(shù)據(jù)庫(kù)字
18、符集。我們首先需要查看這四個(gè)字符集參數(shù)。查看數(shù)據(jù)庫(kù)的字符集的信息:sql select * from nls_database_parameters;parameter value- -nls_language americannls_territory americanls_currency $nls_iso_currency americanls_numeric_characters .,nls_characterset zhs16gbknls_calendar gregoriannls_date_format dd-mon-rrnls_date_language americannls_
19、sort binarynls_time_format hh.mi.ssxff amnls_timestamp_format dd-mon-rr hh.mi.ssxff amnls_time_tz_format hh.mi.ssxff am tzh:tzmnls_timestamp_tz_format dd-mon-rr hh.mi.ssxff am tzh:tzmnls_dual_currency $nls_comp binarynls_nchar_characterset zhs16gbknls_rdbms_version .1nls_characterset:zhs16gbk
20、是當(dāng)前數(shù)據(jù)庫(kù)的字符集。我們?cè)賮?lái)查看客戶端的字符集信息:客戶端字符集的參數(shù)nls_lang=_.language:指定oracle消息使用的語(yǔ)言,日期中日和月的顯示。territory:指定貨幣和數(shù)字的格式,地區(qū)和計(jì)算星期及日期的習(xí)慣。characterset:控制客戶端應(yīng)用程序使用的字符集。通常設(shè)置或等于客戶端的代碼頁(yè)?;蛘邔?duì)于unicode應(yīng)用設(shè)為utf8。在windows中,查詢和修改nls_lang可在注冊(cè)表中進(jìn)行:hkey_local_machinesoftwareoraclehomexxxx指存在多個(gè)oracle_home時(shí)的系統(tǒng)編號(hào)。在unix中:$ env|grep nls_la
21、ngnls_lang=simplified chinese_china.zhs16gbk修改可用:$ export nls_lang=american_america.utf8通常在導(dǎo)出時(shí)最好把客戶端字符集設(shè)置得和數(shù)據(jù)庫(kù)端相同。當(dāng)進(jìn)行數(shù)據(jù)導(dǎo)入時(shí),主要有以下兩種情況:(1) 源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)具有相同的字符集設(shè)置。這時(shí),只需設(shè)置導(dǎo)出和導(dǎo)入端的客戶端nls_lang等于數(shù)據(jù)庫(kù)字符集即可。(2) 源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)字符集不同。先將導(dǎo)出端客戶端的nls_lang設(shè)置成和導(dǎo)出端的數(shù)據(jù)庫(kù)字符集一致,導(dǎo)出數(shù)據(jù),然后將導(dǎo)入端客戶端的nls_lang設(shè)置成和導(dǎo)出端一致,導(dǎo)入數(shù)據(jù),這樣轉(zhuǎn)換只發(fā)生在數(shù)據(jù)庫(kù)端,而
22、且只發(fā)生一次。這種情況下,只有當(dāng)導(dǎo)入端數(shù)據(jù)庫(kù)字符集為導(dǎo)出端數(shù)據(jù)庫(kù)字符集的嚴(yán)格超集時(shí),數(shù)據(jù)才能完全導(dǎo)成功,否則,可能會(huì)有數(shù)據(jù)不一致或亂碼出現(xiàn)。不同版本的exp/imp問(wèn)題一般來(lái)說(shuō),從低版本導(dǎo)入到高版本問(wèn)題不大,麻煩的是將高版本的數(shù)據(jù)導(dǎo)入到低版本中,在oracle9i之前,不同版本oracle之間的exp/imp可以通過(guò)下面的方法來(lái)解決:1、在高版本數(shù)據(jù)庫(kù)上運(yùn)行底版本的catexp.sql;2、使用低版本的exp來(lái)導(dǎo)出高版本的數(shù)據(jù);3、使用低版本的imp將數(shù)據(jù)庫(kù)導(dǎo)入到低版本數(shù)據(jù)庫(kù)中;4、在高版本數(shù)據(jù)庫(kù)上重新運(yùn)行高版本的catexp.sql腳本。但在9i中,上面的方法并不能解決問(wèn)題。如果直接使用低版本exp/imp會(huì)出現(xiàn)如下錯(cuò)誤:exp-00008: oracle error %lu encounteredora-00904: invalid column name這已經(jīng)是一個(gè)公布的bug,需要等到oracle10.0才能解決,bug號(hào)為2261722,你可以到metalink上去查看有關(guān)此bug的詳細(xì)信息。bug歸bug,我們的工作還是要做,在沒(méi)有oracle的支持之前,我們就自己解決。在oracle9i中執(zhí)行下面的sql重建exu81rls
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上網(wǎng)課學(xué)習(xí)心得體會(huì)(3篇)
- 課題申報(bào)參考:教育數(shù)字化轉(zhuǎn)型下高校輔導(dǎo)員數(shù)字素養(yǎng)測(cè)評(píng)及提升路徑研究
- 2025年度個(gè)人商鋪長(zhǎng)期租賃合同標(biāo)的物詳細(xì)清單3篇
- 2025年度個(gè)人肖像權(quán)授權(quán)使用協(xié)議書(shū)個(gè)人肖像權(quán)體育賽事推廣授權(quán)3篇
- 二零二五年度出租房屋消防安全設(shè)施改造施工合同4篇
- 二零二五年度假離婚法律風(fēng)險(xiǎn)評(píng)估及解決方案合同3篇
- 2025年度無(wú)人機(jī)租賃合同協(xié)議書(shū)8篇
- 2025版木工預(yù)制構(gòu)件生產(chǎn)與安裝合同范本4篇
- 個(gè)人合同擔(dān)保書(shū)(2024年樣本):教育貸款擔(dān)保2篇
- 2025年個(gè)人挖機(jī)租賃合同續(xù)簽協(xié)議4篇
- 2025水利云播五大員考試題庫(kù)(含答案)
- 老年髖部骨折患者圍術(shù)期下肢深靜脈血栓基礎(chǔ)預(yù)防專(zhuān)家共識(shí)(2024版)解讀
- 中藥飲片驗(yàn)收培訓(xùn)
- 手術(shù)室專(zhuān)科護(hù)士工作總結(jié)匯報(bào)
- DB34T 1831-2013 油菜收獲與秸稈粉碎機(jī)械化聯(lián)合作業(yè)技術(shù)規(guī)范
- 創(chuàng)傷處理理論知識(shí)考核試題及答案
- (正式版)HG∕T 21633-2024 玻璃鋼管和管件選用規(guī)定
- 抖音認(rèn)證承諾函
- 高等數(shù)學(xué)(第二版)
- 四合一體系基礎(chǔ)知識(shí)培訓(xùn)課件
- ICD-9-CM-3手術(shù)與操作國(guó)家臨床版亞目表
評(píng)論
0/150
提交評(píng)論