oracle怎么導(dǎo)出序列,oracle怎么導(dǎo)出存儲過程

求教linux 下oracle數(shù)據(jù)的導(dǎo)入導(dǎo)出方法詳細(xì)步驟

一. 導(dǎo)出工具 exp

創(chuàng)新互聯(lián)建站長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為崗巴企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站設(shè)計,崗巴網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

1. 它是操作系統(tǒng)下一個可執(zhí)行的文件 存放目錄/ORACLE_HOME/bin

exp導(dǎo)出工具將數(shù)據(jù)庫中數(shù)據(jù)備份壓縮成一個二進制系統(tǒng)文件.可以在不同OS間遷移

它有三種模式:

a. 用戶模式: 導(dǎo)出用戶所有對象以及對象中的數(shù)據(jù);

b. 表模式: 導(dǎo)出用戶所有表或者指定的表;

c. 整個數(shù)據(jù)庫: 導(dǎo)出數(shù)據(jù)庫中所有對象。

2. 導(dǎo)出工具exp交互式命令行方式的使用的例子

$exp test/test123@appdb

Enter array fetch buffer size: 4096 回車

Export file: expdat.dmp m.dmp 生成導(dǎo)出的文件名

(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U 3

Export table data (yes/no): yes 回車

Compress extents (yes/no): yes 回車

Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set

About to export specified tables via Conventional Path ...

Table(T) or Partition(T:P) to be exported: (RETURN to quit) cmamenu 要導(dǎo)出的表名

. . exporting table CMAMENU 4336 rows exported

Table(T) or Partition(T:P) to be exported: (RETURN to quit) 要導(dǎo)出的表名n

Table(T) or Partition(T:P) to be exported: (RETURN to quit) 回車

Export terminated successfully without warnings.

3. 導(dǎo)出工具exp非交互式命令行方式的例子

$exp scott/tiger tables=(emp,dept) file=/directory/scott.dmp grants=y

說明:把scott用戶里兩個表emp,dept導(dǎo)出到文件/directory/scott.dmp

$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\1600\" file=/directory/scott2.dmp

說明:在exp里面加上導(dǎo)出emp的查詢條件job='salesman' and sal1600

(但我個人很少這樣用,還是把滿足條件的記錄生成臨時表后,再exp會方便一些)

$exp parfile=username.par

file=/directory1/username_1.dmp,/directory1/username_2.dmp

filesize=2000M log=/directory2/username_exp.log

參數(shù)文件username.par內(nèi)容

userid=username/userpassword

buffer=8192000

compress=n

grants=y

說明:username.par為導(dǎo)出工具exp用的參數(shù)文件,里面具體參數(shù)可以根據(jù)需要去修改

filesize指定生成的二進制備份文件的最大字節(jié)數(shù)

(可用來解決某些OS下2G物理文件的限制及加快壓縮速度和方便刻歷史數(shù)據(jù)光盤等)

二.導(dǎo)入工具 imp

1. 它是操作系統(tǒng)下一個可執(zhí)行的文件 存放目錄/ORACLE_HOME/bin

imp導(dǎo)入工具將EXP形成的二進制系統(tǒng)文件導(dǎo)入到數(shù)據(jù)庫中.

它有三種模式:

a. 用戶模式: 導(dǎo)出用戶所有對象以及對象中的數(shù)據(jù);

b. 表模式: 導(dǎo)出用戶所有表或者指定的表;

c. 整個數(shù)據(jù)庫: 導(dǎo)出數(shù)據(jù)庫中所有對象。

只有擁有IMP_FULL_DATABASE和DBA權(quán)限的用戶才能做整個數(shù)據(jù)庫導(dǎo)入

imp步驟:

(1) create table (2) insert data (3) create index (4) create triggers,constraints

2.導(dǎo)入工具imp交互式命令行方式的例子

$ imp

Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001

(c) Copyright 1999 Oracle Corporation. All rights reserved.

用戶名: test

口令:****

連接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production

With the Partitioning option

JServer Release 8.1.6.0.0 - Production

導(dǎo)入文件: expdat.dmp /tmp/m.dmp

輸入插入緩沖區(qū)大?。ㄗ钚?8192 ) 30720

經(jīng)由常規(guī)路徑導(dǎo)出由EXPORT:V08.01.06創(chuàng)建的文件

警告: 此對象由 TEST 導(dǎo)出, 而不是當(dāng)前用戶

已經(jīng)完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的導(dǎo)入

只列出導(dǎo)入文件的內(nèi)容(yes/no):no

由于對象已存在, 忽略創(chuàng)建錯誤(yes/no):no yes

導(dǎo)入權(quán)限(yes/no):yes

導(dǎo)入表數(shù)據(jù)(yes/no):yes

導(dǎo)入整個導(dǎo)出文件(yes/no):no yes

. 正在將TEST的對象導(dǎo)入到 SCOTT

. . 正在導(dǎo)入表 "CMAMENU" 4336行被導(dǎo)入

成功終止導(dǎo)入,但出現(xiàn)警告。

3.導(dǎo)入工具imp非交互式命令行方式的例子

$ imp system/manager fromuser=jones tables=(accts)

$ imp system/manager fromuser=scott tables=(emp,dept)

$ imp system/manager fromuser=scott touser=joe tables=emp

$ imp scott/tiger file = expdat.dmp full=y

$ imp scott/tiger file = /mnt1/t1.dmp show=n buffer=2048000 ignore=n

commit=y grants=y full=y log=/oracle_backup/log/imp_scott.log

$ imp system/manager parfile=params.dat

params.dat 內(nèi)容

file=dba.dmp show=n ignore=n grants=y fromuser=scott tables=(dept,emp)

4.導(dǎo)入工具imp可能出現(xiàn)的問題

(1) 數(shù)據(jù)庫對象已經(jīng)存在

一般情況, 導(dǎo)入數(shù)據(jù)前應(yīng)該徹底刪除目標(biāo)數(shù)據(jù)下的表, 序列, 函數(shù)/過程,觸發(fā)器等;

數(shù)據(jù)庫對象已經(jīng)存在, 按缺省的imp參數(shù), 則會導(dǎo)入失敗

如果用了參數(shù)ignore=y, 會把exp文件內(nèi)的數(shù)據(jù)內(nèi)容導(dǎo)入

如果表有唯一關(guān)鍵字的約束條件, 不合條件將不被導(dǎo)入

如果表沒有唯一關(guān)鍵字的約束條件, 將引起記錄重復(fù)

(2) 數(shù)據(jù)庫對象有主外鍵約束

不符合主外鍵約束時, 數(shù)據(jù)會導(dǎo)入失敗

解決辦法: 先導(dǎo)入主表, 再導(dǎo)入依存表

disable目標(biāo)導(dǎo)入對象的主外鍵約束, 導(dǎo)入數(shù)據(jù)后, 再enable它們

(3) 權(quán)限不夠

如果要把A用戶的數(shù)據(jù)導(dǎo)入B用戶下, A用戶需要有imp_full_database權(quán)限

(4) 導(dǎo)入大表( 大于80M ) 時, 存儲分配失敗

默認(rèn)的EXP時, compress = Y, 也就是把所有的數(shù)據(jù)壓縮在一個數(shù)據(jù)塊上.

導(dǎo)入時, 如果不存在連續(xù)一個大數(shù)據(jù)塊, 則會導(dǎo)入失敗.

導(dǎo)出80M以上的大表時, 記得compress= N, 則不會引起這種錯誤.

(5) imp和exp使用的字符集不同

如果字符集不同, 導(dǎo)入會失敗, 可以改變unix環(huán)境變量或者NT注冊表里NLS_LANG相關(guān)信息.

導(dǎo)入完成后再改回來.

(6) imp和exp版本不能往上兼容

imp可以成功導(dǎo)入低版本exp生成的文件, 不能導(dǎo)入高版本exp生成的文件

根據(jù)情況我們可以用

$ imp username/password@connect_string

說明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora

定義的本地或者遠(yuǎn)端數(shù)據(jù)庫的名稱

注意事項:

UNIX: /etc/hosts 要定義本地或者遠(yuǎn)端數(shù)據(jù)庫服務(wù)器的主機名

win98: windows\hosts 和IP地址的對應(yīng)關(guān)系

win2000: winnt\system32\drivers\etc\hosts

ORACLE中怎么把觸發(fā)器、序列、等等導(dǎo)出導(dǎo)入呢

用owner關(guān)鍵字就行了,它會導(dǎo)出用戶下所有的東西,當(dāng)然包括觸發(fā)器和序列舉個例子,用戶是lyn/lynexp lyn/lyn file=c:\lyn.dmp owner=lyn不清楚怎么用可以exp help=y查看

oracle怎么導(dǎo)出數(shù)據(jù)

Oracle導(dǎo)出導(dǎo)出有兩中方式:一、利用exp imp導(dǎo)出導(dǎo)入;二、利用Oracel數(shù)據(jù)泵expdp impdp導(dǎo)出導(dǎo)入。

一、利用exp imp導(dǎo)出導(dǎo)入

exp imp 語法如下:

exp:

1) 將數(shù)據(jù)庫orcl完全導(dǎo)出

exp system/manager@orcl file=d:\orcl_bak.dmp full=y

2) 將數(shù)據(jù)庫中system用戶的表導(dǎo)出

exp system/manager@orcl file=d:\system_bak.dmp owner=system

3) 將數(shù)據(jù)庫中表table1,table2導(dǎo)出

exp system/manager@orcl file=d:\table_bak.dmp tables=(table1,table2)

4) 將數(shù)據(jù)庫中的表customer中的字段mobile以"139"開頭的數(shù)據(jù)導(dǎo)出

exp system/manager@orcl file=d:\mobile_bak.dmp tables=customer query=\"where mobile like '139%' \"

imp:

1) 將備份文件bak.dmp導(dǎo)出數(shù)據(jù)庫

imp system/manager@orcl file=d:\bak.dmp

如果數(shù)據(jù)表中表已經(jīng)存在,會提示錯誤,在后面加上ignore=y就可以了。

2) 將備份文件bak.dmp中的表table1導(dǎo)入

imp system/manager@orcl file=d:\bak.dmp tables=(table1)

exp imp導(dǎo)出導(dǎo)入數(shù)據(jù)方式的好處是只要你本地安裝了Oracle客戶端,你就可以將服務(wù)器中的數(shù)據(jù)導(dǎo)出到你本地計算機。同樣也可以將dmp文件從你本地導(dǎo)入到服務(wù)器數(shù)據(jù)庫中。但是這種方式在Oracle11g版本中會出現(xiàn)一個問題:不能導(dǎo)出空表。Oracle11g新增了一個參數(shù)deferred_segment_creation,含義是段延遲創(chuàng)建,默認(rèn)是true。當(dāng)你新建了一張表,并且沒用向其中插入數(shù)據(jù)時,這個表不會立即分配segment。

解決辦法:

1、設(shè)置deferred_segment_creation參數(shù)為false后,無論是空表,還是非空表,都分配segment。

在sqlplus中,執(zhí)行如下命令:

SQLalter system set deferred_segment_creation=false;

查看:

SQLshow parameter deferred_segment_creation;

該值設(shè)置后,只對后面新增的表起作用,對之前建立的空表不起作用,并且注意要重啟數(shù)據(jù)庫讓參數(shù)生效。

2、使用 ALLOCATE EXTEN

使用 ALLOCATE EXTEN可以為數(shù)據(jù)庫對象分配Extent,語法如下:

alter table table_name allocate extent

構(gòu)建對空表分配空間的SQL命令:

SQLselect 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

批量生成要修改的語句。

然后執(zhí)行這些修改語句,對所有空表分配空間。

此時用exp命令,可將包括空表在內(nèi)的所有表導(dǎo)出。

二、利用expdp impdp導(dǎo)出導(dǎo)入

在Oracle10g中exp imp被重新設(shè)計為Oracle Data Pump(保留了原有的 exp imp工具)

數(shù)據(jù)泵與傳統(tǒng)導(dǎo)出導(dǎo)入的區(qū)別;

1) exp和imp是客戶端工具,他們既可以在客戶端使用,也可以在服務(wù)端使用。

2) expdp和impdp是服務(wù)端工具,只能在Oracle服務(wù)端使用。

3) imp只適用于exp導(dǎo)出文件,impdp只適用于expdp導(dǎo)出文件。

expdp導(dǎo)出數(shù)據(jù):

1、為輸出路徑建立一個數(shù)據(jù)庫的directory對象。

create or replace directory dumpdir as 'd:\';

可以通過:select * from dba_directories;查看。

2、給將要進行數(shù)據(jù)導(dǎo)出的用戶授權(quán)訪問。

grant read,write on directory dumpdir to test_expdp;

3、將數(shù)據(jù)導(dǎo)出

expdp test_expdp/test_expdp directory=dumpdir dumpfile=test_expdp_bak.dmp logfile=test_expdp_bak.log schemas=test_expdp

注意:這句話在cmd窗口中運行,并且最后不要加分號,否則會提示錯誤。因為這句話是操作系統(tǒng)命令而不是SQL。

impdp導(dǎo)入數(shù)據(jù):

1、給將要進行數(shù)據(jù)導(dǎo)入的用戶授權(quán)訪問。

grant read,write on directory dumpdir to test_impdp;

2、將數(shù)據(jù)導(dǎo)入

impdp test_impdp/impdp directory=dumpdir dumpfile=test_expdp_bak.dmp remap_schema=test_expdp:test_impdp

ORACLE 如何只導(dǎo)出導(dǎo)入索引?

一、使用PLSQL導(dǎo)出導(dǎo)入ORACLE數(shù)據(jù)庫:

1、打開plsql--工具----》導(dǎo)出用戶對象(可以導(dǎo)出表結(jié)構(gòu)和序列、視圖)

ps:如果上面不選中"包括所有者",這樣到導(dǎo)出的表結(jié)構(gòu)等就不包含所有者,

這樣就可以將A所有者的表結(jié)構(gòu)等導(dǎo)入到B所有者的表空間中

2、導(dǎo)出表結(jié)構(gòu)和表數(shù)據(jù):

1、想要導(dǎo)入數(shù)據(jù)庫必須首先創(chuàng)建用戶和表空間并賦權(quán)限

(1)創(chuàng)建用戶:

(2)創(chuàng)建表空間:電腦開始菜單-----》找到Oracle目錄----》找到數(shù)據(jù)要導(dǎo)入進的數(shù)據(jù)庫---》打開該數(shù)據(jù)庫的控制臺---》然后可以創(chuàng)建表空間

2、導(dǎo)入表結(jié)構(gòu)、序列和數(shù)據(jù)

(1)導(dǎo)入表結(jié)構(gòu)和序列: plsql---》工具---》導(dǎo)入表

(2)導(dǎo)入表數(shù)據(jù):

到此數(shù)據(jù)導(dǎo)入完成;

注:(1)創(chuàng)建的用戶和表空間是和導(dǎo)出數(shù)據(jù)庫中的用戶和表空間對應(yīng)的;如要從A數(shù)據(jù)庫中導(dǎo)出B用戶C表空間下的所有表、數(shù)據(jù)、序列到M數(shù)據(jù)庫;則在M數(shù)據(jù)庫中創(chuàng)建B用戶

和C表 空間。

(2)oracle11數(shù)據(jù)庫不能導(dǎo)出orcale10的數(shù)據(jù)

(3)plsql導(dǎo)出表數(shù)據(jù)是如果數(shù)據(jù)中用Long類型的大數(shù)據(jù),導(dǎo)出格式不能是sql,只有dmp格式才可以。

分享標(biāo)題:oracle怎么導(dǎo)出序列,oracle怎么導(dǎo)出存儲過程
分享URL:http://muchs.cn/article32/phespc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序小程序開發(fā)、品牌網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)外貿(mào)建站、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作