orcal 匯入匯出

2021-07-24 04:41:11 字數 4634 閱讀 4619

oracle資料匯入匯出

imp/exp

就相當於

oracle

資料還原與備份。

exp命令可以把資料從遠端資料庫伺服器匯出到本地的

dmp檔案,

imp命令可以把

dmp檔案從本地匯入到遠處的資料庫伺服器中。利用這個功能

我們可以

從生產庫中匯出資料庫,再匯入資料庫到測試庫中。

執行環境:可以在sqlplus.exe

或者dos

(命令列)中執行,

dos中可以執行是由於在

oracle

中,安裝目錄

\ora9i\bin

被設定為全域性路徑(也可直接在系統環境變數中設定),該目錄下有

exp.exe

與imp.exe

檔案被用來執行匯入匯出。

下面是匯入匯出的例項。

資料匯出:

1 將資料庫

zxcc

完全匯出,使用者名稱

kf 密碼

zx 匯出到

d:\zxcc.dmp

中exp kf/zx@zxcc file=d:\zxcc.dmp full=y

full=y 表示全庫匯出。

full

總共有2

個可選項

yes(y)/no(n)

,預設情況下

full=no

,這時只會將該使用者下的物件匯出。

2 將資料庫

zxcc中kf

使用者與cc

使用者的表匯出

exp kf/zx@zxcc file=d:\zxcc_ur.dmp owner=(kf,cc)

full方式可以備份所有使用者的資料庫物件,包括表空間、使用者資訊等,

owner=xx

只能備份指定使用者的物件,其他使用者下的就不備份了,

exp中

full=y

和owner=xx

是不能同時使用的。

3 將資料庫

zxcc

中的表kf_operator

、kf_role

匯出exp kf/zx@zxcc file= d:\zxcc_tb.dmp tables=(kf_operator,kf_role) 

tables=xx 表示備份相關表,不能同時和

owner

、full

使用。4 將資料庫中的表

kf_operator

中的字段

oper_id

以"00"

打頭的資料匯出

exp kf/zx@zxcc file=d:\zxcc_t.dmp tables=(kf_operator) query=\" where oper_id like '00%'\"

query主要是匯出合適條件的資料。使用該引數時,需要注意對所有作業系統保留字元都要使用轉義符號。若有括號()也需要轉義:

query=\"where dt=to_date\(\'2007-09-22\',\'yyyy-mm-dd\'\)\" 。

如果遇到條件比較繁瑣的語句,頻繁的轉義操作不僅費時,還很容易出錯。我們可以使用exp

或expdp

的parfile

引數避免

query

內容的繁瑣轉義問題。

例:oracle dbalnp01 > cat > zxcc.par

tables=kf_operator

file=zxcc.dmp

query="where dt_time=to_date('2010-06-25','yyyy-mm-dd')" 

這時就可以盡情的再雙引號中寫條件語句了。

上面是常用的匯出,對於比較大的資料庫,我們可以對匯出檔案進行壓縮處理,可用winzip

把dmp

檔案進行壓縮。

也可以在上面命令後面加上 compress=y 

來實現。

資料的匯入:

1、將d:\zxcc.dmp 

中的資料匯入 

zxcc

資料庫中。

imp kf/zx@zxcc file=

d:\zxcc.dmp

導資料得時候,有可能報錯。為什麼?有以下主要的原因:

a. 匯入的物件(表,檢視,方法等)原本不屬於當前連線的使用者的

b. 匯入的物件在該資料庫的指定使用者下已經存在

c. 匯入的物件的原本使用者不在這個資料庫裡

對於這三個問題的處理方法如下:

a/c、所有物件全部匯入到指定的賬戶下:

imp kf_new/zx@zxcc_new file=d:\zxcc.dmp fromuser=kf touser=kf_new

其中fromuser=kf

為.dmp

檔案裡的物件的原先的

owner, touser=kf_new 

為作為匯入的物件的新的

owner.

b、忽略

/插入資料:

imp 

kf_new/zx

@zxcc_new

file=

d:\zxcc.dmp

ignore=y

其中ignore=y

告訴imp.exe

把資料直接插入到相應物件(並且如果匯入的物件裡面有其他的物件,如約束,索引等,會在資料插入後被建立)。

2、將d:\zxcc_tb.dmp

中的表tb_operator 

匯入imp kf/zx@zxcc  file=d:\zxcc_tb.dmp  tables=(tb_operator)

忽略載入約束

有時候導資料進來的時候,我們不需要把它的約束,比如一些外來鍵約束等都導進來,可以加上引數constraints=n

不載入索引(比如唯一性的索引),可以加上引數indexs=n

只載入結構,不載入資料,如果只要表的結構等定義(約束,觸發器),而不要裡面的資料,可以加上引數rows=n

對於上述操作登陸操作的使用者需是管理員,如果不是管理員,而是普通使用者,那麼這個使用者必須有建立刪除物件的權利,物件可能包括表,檢視,方法,儲存過程等等常見的物件。為什麼「可能」包括?因為這個視匯入匯出的時候是否涉及相關型別的物件而定。 

imp kf/zx@zxcc_new file=d:\zxcc.dmp fromuser=kf touser=kf_new ignore=y

基本上面的匯入匯出夠用了。不少情況要先是將表徹底刪除,然後匯入。

注意:(1

)、操作者要有足夠的許可權,許可權不夠會有提示。

(2)、資料庫鏈結正常,可以用

tnsping zxcc 

來檢測資料庫

zxcc

能否連上。

(3)、匯入

/匯出資料庫時注意字符集。可能會出現匯出

/匯入時資料庫字符集不一致而報錯。

oracle資料庫其他常用命令:

1、給使用者增加匯入資料許可權的操作

第一,啟動sql*puls

第二,以管理員(dba

)使用者登陸

第三,create user 

使用者名稱 

identified by 

密碼 (如果已經建立過使用者,這步可以省略)

第四,>

grant create user

,drop user

,alter user

,create any view

,drop any view

,exp_full_database

,imp_full_database

,dba

,resource

,create session to

使用者名字;

第五, 

執行cmd

進入dmp

檔案所在的目錄

,imp userid=管理員使用者名稱

/密碼 

full=y file= filename.dmp

或者 imp userid=

管理員使用者名稱

/密碼 

full=y file=filename.dmp

2、oracle 

不允許直接改變表的擁有者

, 利用

export/import

可以達到這一目的

.先建立.par

檔案()

然後,使用時命令如下:imp parfile=/filepath/import9.par

例 import9.par 

內容如下:

fromuser=user       

touser=user_new     (注:把錶的擁有者由

fromuser

改為touser

,fromuser

和touser

的使用者可以不同)          

rows=y

indexes=y

grants=y

constraints=y

buffer=409600

file==/filepath/***x.dmp

log==/filepath/import_log.log

Orcal資料庫檔案(dmp)的匯入和匯出

orcal資料庫移植到另外一台電腦的時候,需要把資料庫中的 匯出dmp檔案然後在另一台電腦上匯入相應的dmp檔案即可。1.在oracl資料伺服器中匯出dmp檔案需要使用命令列進行匯出,必須使用系統的控制台程式來完成 2.輸入命令列 exp root 1235 orcl file e orcl.dmp...

mysql 匯入匯出 mysql匯入匯出sql檔案

window下 1.匯出整個資料庫 mysqldump u 使用者名稱 p 資料庫名 匯出的檔名 mysqldump u dbuser p dbname dbname.sql 2.匯出乙個表 mysqldump u 使用者名稱 p 資料庫名 表名 匯出的檔名 mysqldump u dbuser p...

mysql匯入匯出教程 mysql匯入匯出資料方法

摘要 在平時的mysql應用中,總會碰到匯入資料,匯出資料,當然有很多方法,這篇文章,主要介紹應用mysqlmysqldump命令進行資料匯入匯出,希望對大家有所幫助。一 mysql匯入檔案或資料或執行相關sql mysql h主機位址 u使用者名稱 p使用者密碼 1.檔案形式。shell命令列 m...