日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

oracle导入 表 卡住了,oracle数据库怎么导入dmp,只导入数据不导入表结构?

發(fā)布時(shí)間:2025/3/15 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle导入 表 卡住了,oracle数据库怎么导入dmp,只导入数据不导入表结构? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用方法:

Exp parameter_name=value or Exp parameter_name=(value1,value2……)

只要輸入?yún)?shù)help=y就可以看到所有幫助.

EXP常用選項(xiàng)

1.FULL,這個(gè)用于導(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

OWNER和TABLE,這兩個(gè)選項(xiàng)用于定義EXP的對(duì)象。OWNER定義導(dǎo)出指定用戶的對(duì)象;TABLE指定EXP的table名稱,例如:

exp userid=test/test file=./db_str.dmp log=./db_str.log owner=duanl

exp userid=test/test file=./db_str.dmp log=./db_str.log table=nc_data,fi_arap

3.BUFFER和FEEDBACK,在導(dǎo)出比較多的數(shù)據(jù)時(shí),我會(huì)考慮設(shè)置這兩個(gè)參數(shù)。例如:

exp userid=test/test file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000 tables=WO4,OK_YT

4.FILE和LOG,這兩個(gè)參數(shù)分別指定備份的DMP名稱和LOG名稱,包括文件名和目錄,例子見(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。

FILESIZE該選項(xiàng)在8i中可用。如果導(dǎo)出的dmp文件過(guò)大時(shí),最好使用FILESIZE參數(shù),限制文件大小不要超過(guò)2G。如:

exp userid=duanl/duanl file=f1,f2,f3,f4,f5 filesize=2G owner=scott

這樣將創(chuàng)建f1.dmp, f2.dmp等一系列文件,每個(gè)大小都為2G,如果導(dǎo)出的總量小于10G

EXP不必創(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=test1

2、IGNORE、GRANTS和INDEXES,其中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ù)文件附加到另外一個(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);

select * from sys.transport_set_violation;

如果沒(méi)有行選擇,表示該表空間只包含表數(shù)據(jù),并且是自包含的。對(duì)于有些非自包含的表空間,如數(shù)據(jù)表空間和索引表空間,可以一起傳輸。

以下為簡(jiǎn)要使用步驟,如果想?yún)⒖荚敿?xì)使用方法,也可以參考ORACLE聯(lián)機(jī)幫助。

1.設(shè)置表空間為只讀(假定表空間名字為APP_Data 和APP_Index)

alter tablespace app_data read only;

alter tablespace app_index read only;

2.發(fā)出EXP命令

SQL>host exp userid=”””sys/password as sysdba”””

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/password 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=y

oracle會(huì)避開(kāi)sql語(yǔ)句處理引擎,直接從數(shù)據(jù)庫(kù)文件中讀取數(shù)據(jù),然后寫(xiě)入導(dǎo)出文件.

可以在導(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)排序

將sort_area_size設(shè)置為一個(gè)較大的值,比如100M

2.避免日志切換等待

增加重做日志組的數(shù)量,增大日志文件大小.

3.優(yōu)化日志緩沖區(qū)

比如將log_buffer容量擴(kuò)大10倍(最大不要超過(guò)5M)

4.使用陣列插入與提交

commit = y

注意:陣列方式不能處理包含LOB和LONG類型的表,對(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ù)字符集。

我們首先需要查看這四個(gè)字符集參數(shù)。

查看數(shù)據(jù)庫(kù)的字符集的信息:

SQL> select * from nls_database_parameters;

PARAMETER VALUE

NLS_LANGUAGE AMERICAN

NLS_TERRITORY AMERICA

NLS_CURRENCY $

NLS_ISO_CURRENCY AMERICA

NLS_NUMERIC_CHARACTERS .,

NLS_CHARACTERSET ZHS16GBK

NLS_CALENDAR GREGORIAN

NLS_DATE_FORMAT DD-MON-RR

NLS_DATE_LANGUAGE AMERICAN

NLS_SORT BINARY

NLS_TIME_FORMAT HH.MI.SSXFF AM

NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM

NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM

NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM

NLS_DUAL_CURRENCY $

NLS_COMP BINARY

NLS_NCHAR_CHARACTERSET ZHS16GBK

NLS_RDBMS_VERSION 8.1.7.4.1

NLS_CHARACTERSET:ZHS16GBK是當(dāng)前數(shù)據(jù)庫(kù)的字符集。

我們?cè)賮?lái)查看客戶端的字符集信息:

客戶端字符集的參數(shù)NLSLANG=< territory >.

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_MACHINESOFTWAREOracleHOMExx

xx指存在多個(gè)Oracle_HOME時(shí)的系統(tǒng)編號(hào)。

在unix中:

$ env|grep NLS_LANG

NLS_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ù)端,而且只發(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)。

不管新庫(kù)是不是分區(qū),就正常導(dǎo)入,而且你要看新庫(kù)的字符集什么的,上邊的資料僅供參考。收起

總結(jié)

以上是生活随笔為你收集整理的oracle导入 表 卡住了,oracle数据库怎么导入dmp,只导入数据不导入表结构?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。