匯出匯入Oracle的全部方法

2021-10-23 13:49:55 字數 4880 閱讀 6025

版本資訊

本文件使用的oracle版本為11.2.0.1.0 - 64bit

本文件使用的linux系統版本為centos linux release 7.6.1810 (core)

oracle的匯入匯出的方法一般分為以下幾種

1:傳統方式——exp(匯出)和(imp)匯入:

2:資料幫浦方式——expdp匯出和(impdp)匯入;

二者優缺點描述:

1.exp/imp:

優點:**書寫簡單易懂,從本地即可直接匯入,不用在伺服器中操作,降低難度,減少伺服器上的操作也就保證了伺服器上資料檔案的安全性。

缺點:這種匯入匯出的速度相對較慢,合適資料庫資料較少的時候。如果檔案超過幾個g,一般效能的電腦,至少需要4~5個小時左右。

2.expdp/impdp:

優點:匯入匯出速度相對較快,幾個g的資料檔案一般在1~2小時左右。

缺點:**相對不易理解,要想實現匯入匯出的操作,必須在伺服器上建立邏輯目錄(不是真正的目錄)。我們都知道資料庫伺服器的重要性,所以在上面的操作必須慎重。所以這種方式一般需要由專業的程式人員來完成.

特別強調:

目標資料庫:資料即將匯入的資料庫(一般是專案上正式資料庫);

源資料庫:資料匯出的資料庫(一般是專案上的測試資料庫);

1.目標資料庫要與源資料庫有著名稱相同的表空間。

2.目標資料在進行匯入時,使用者名稱盡量相同(這樣保證使用者的許可權級別相同)。

3.目標資料庫每次在進行資料匯入前,應做好資料備份,以防資料丟失。

4.使用資料幫浦時,一定要現在伺服器端建立可用的邏輯目錄,並檢查是否可用。

5.弄清是匯入匯出到相同版本還是不同版本(oracle10g版本與oracle11g版本)。

6.目標資料匯入前,弄清楚是資料覆蓋(替換),還是僅插入新資料或替換部分資料表。

7.確定目標資料庫磁碟空間是否足夠容納新資料,是否需要擴充表空間。

8.匯入匯出時注意字符集是否相同,一般oracle資料庫的字符集只有乙個,並且固定,一般不改變。

10.確定操作者的賬號許可權。

1、傳統方法:

通用命令:

exp(imp) username/password@servicename:1521 file="e:\temp.dmp" full = y;

資料庫匯出舉例:

exp test/[email protected]:1521 file="/home/oracle/test.dmp" full = y;

exp:匯出命令,匯出時必寫。

imp:匯入命令,匯入時必寫,每次操作,二者只能選擇乙個執行。

username:匯出資料的使用者名稱,必寫;

password:匯出資料的密碼,必寫;

@:位址符號,必寫;

servicename:oracle的服務名,必寫;

1521:埠號,1521是預設的可以不寫,非預設要寫;

file="/home/oracle/test.dmp": 檔案存放路徑位址,必寫;

full=y :表示全庫匯出。可以不寫,則預設為no,則只匯出使用者下的物件;

方法細分:

1.完全匯入匯出:

exp(imp)  username/password@servicename:1521 file="/home/oracle/test.dmp" full = y;

2.部分使用者表table匯入匯出:

exp(imp)  username/password@servicename:1521 file="/home/oracle/test.dmp" tabels=(table1,table2,table3,...);

3.表空間tablespaces匯入匯出:

乙個資料庫例項可以有n個表空間(tablespace),乙個表空間下可以有n張表(table)。

exp(imp)  username/password@servicename:1521 file="/home/oracle/test.dmp" tablespaces=(tablespace1,tablespace2,tablespace3,...);

4.使用者名稱username物件匯入匯出:

exp(imp)  username/password@servicename:1521 file="/home/oracle/test.dmp owner(username1,username2,username3);

2、資料幫浦方法:

建立directory:

expdp(impdp) username/password@servicename:1521 schemas=username dumpfile=file1.dmp logfile=file1.log directory=testdata1 remap_schema=test:test;

資料庫匯出舉例:

expdp test/[email protected]:1521 schemas=test dumpfile=test.dmp logfile=test.log directory=testdata1;

exp:匯出命令,匯出時必寫。

imp:匯入命令,匯入時必寫,每次操作,二者只能選擇乙個執行。

username:匯出資料的使用者名稱,必寫;

password:匯出資料的密碼,必寫;

@:位址符號,必寫;

servicename:oracle的服務名,必寫;

1521:埠號,1521是預設的可以不寫,非預設要寫;

schemas:匯出操作的使用者名稱;

dumpfile:匯出的檔案;

logfile:匯出的日誌檔案,可以不寫;

directory:建立的資料夾名稱;

remap_schema=源資料庫使用者名稱:目標資料庫使用者名稱,二者不同時必寫,相同可以省略;

1.檢視表空間:

select * from dba_tablespaces;

2.檢視管理理員目錄(同時檢視作業系統是否存在,因為oracle並不關心該目錄是否存在,如果不存在,則出錯)。

select * from dba_directories;

3.建立邏輯目錄,該命令不會在作業系統建立真正的目錄,最好以system等管理員建立。

create directory testdata1 as '/test/dump';

4.給test使用者賦予在指定目錄的操作許可權,最好以system等管理員賦予。

test 是使用者名稱(123456是使用者密碼)

grant read,write on directory testdata1 to test;

5.匯出資料

1)按使用者導

expdp test/123456@orcl schemas=test dumpfile=expdp.dmp directory=testdata1;

2)並行程序parallel

expdp test/123456@orcl directory=testdata1 dumpfile=test3.dmp parallel=40 job_name=test3

3)按表名導

expdp test/123456@orcl tables=emp,dept dumpfile=expdp.dmp directory=testdata1;

4)按查詢條件導

expdp test/123456@orcl directory=testdata1 dumpfile=expdp.dmp tables=emp query='where deptno=20';

5)按表空間導

expdp system/manager directory=testdata1 dumpfile=tablespace.dmp tablespaces=temp,example;

6)導整個資料庫

expdp system/manager directory=testdata1 dumpfile=full.dmp full=y;

6.還原資料

1)匯入到指定使用者下

impdp test/123456 directory=testdata1 dumpfile=expdp.dmp schemas=test;

2)改變表的owner

impdp system/manager directory=testdata1 dumpfile=expdp.dmp tables=test.dept remap_schema =test:system;

3)匯入表空間

impdp system/manager directory=testdata1 dumpfile=tablespace.dmp tablespaces=example;

4)匯入資料庫

impdb system/manager directory=dump_dir dumpfile=full.dmp full=y;

5)追加資料

impdp system/manager directory=testdata1 dumpfile=expdp.dmp schemas=system table_exists_action;

Oracle匯入匯出方法

匯出表 exp scott tiger mycon tables dept,emp file tab1.dmp 匯出使用者 exp system manager mycon owner scott file usr1.dmp 匯出資料庫 1.完全匯出 exp system manager mycon...

關於匯入匯出oracle資料的方法

匯出的方法 1 將資料庫test完全匯出,使用者名稱system 密碼manager 匯出到d daochu.dmp中 exp system manager test 10.204.4.28 資料庫名為test 10.204.4.28 file d daochu.dmp full y 2 將資料庫中...

oracle匯出,匯入

匯出,在dos下執行 1.exp username userpassword databasename 可以是資料庫也可是遠端的,如username userpassword caac135 2.enter array fetch buffer size 4096 回車 3.export file ...