oracle通過資料幫浦匯出匯入資料

2021-08-20 09:42:44 字數 2823 閱讀 3773

1,建立表空間,建立使用者的時候指明使用者所在的表空間。

create tablespace test datafile 'h:/work/database/myoracle/oradata/test/testdb.dbf' size 2048m autoextend on next 100 maxsize unlimited;

執行修改表空間命令如下:alter tablespace  test rename to test1; 注:可連續對多個表空間進行重新命名
授權給使用者sys表空間test

grant read,write on directory test to sys;

2,建立邏輯目錄,此資料夾下面放需要插入的或者匯出的資料庫(通常資料是從乙個伺服器到另外乙個伺服器,所以建立表空間需要兩次,可能原來的伺服器就有表空間,不需要建立了,可以進行查詢) 

create directory test as 'h:\work\database\myoracle\admin\test\dpdump'

查詢邏輯目錄select * from dba_directories;或者select * from all_directories;

select * from all_directories where directory_name = 'tian';目錄檔名要大寫,嚴格區分大小寫

刪除directory使用者

drop directory tian; 必須有分號(;)

3,通過impdp匯入資料庫

impdp casei/casei directory=test dumpfile=test.dmp schemas=test;

從不同版本的oracle匯入的時候可能需要這兩個引數

1.remap_tablespace=test:test

2.remap_schmas=test:test

如果報錯ora-39083: object type table failed to create with error:

ora-00959: tablespace 'eas_d_hprprd001_standard' does not exist

failing sql is:

create table "hprtst140811"."t_csl_interchecksolutionentry" ("fid" varchar2(44 b

yte) not null enable, "ftemgroup" nvarchar2(240), "ftemnumber" nvarchar2(240), "

ftemname" nvarchar2(240), "fdiffmode" nvarchar2(160), "fitemid" nvarchar2(160),

"fitemname" nvarchar2(160), "fdataelement" nvarchar2(160), "fonloandirection" nv

archar2(160), "fchecksolutionid" varchar2(44 byte) n

ora-39083: object type table failed to create with error:

類似這樣子的:我這裡是tablespace 不存在,可實際上,我是新建了表空間,確實是存在的,以為是沒有授權給當前的使用者,導致了這個表空間不能使用,通過各種方法,始終沒有將這個許可權授權給當前使用者,擁有者依然是sys,後來我把表空間的名字換了,加了個db,結果就好了。

當然了,大家碰到了這樣的問題,不一定是由於我這樣的原因,可能是其他的,那就乙個乙個的實驗嘛,總會有機會發現的。

4,通過empdp匯出資料庫

expdp test/test@orcl directory=test_dir  dumpfile=casei.dmp exclude=table:\"in('sys_achive')\"(一定注意最後的不需要加「;」,加了這個會報錯),如果有雙引號,在windows系統中需要加「\」轉義字元。

5,exclude與include

包含與不包含的關係。排除不需要的或者只取其中一部分表。

6.關於表空間轉移的問題:

可以通過alter方法,將乙個表移動到另外乙個表空間中:

sql: alter table spaceone.tablename move tablespace spacetwo;

解釋:以上語句就是把tablename表從spaceone移動到spacetwo中。

備註一:

當前的使用者必須對spacetwo、spaceone都有操作許可權才可以。

備註二:

其實如果對兩個表空間都有許可權的話,可以通過

create spacetwo.tablename as select * from spaceone.tablename;

之後再刪除spaceone中tablename表的間接方式也能實現。sql: alter table spaceone.tablename move tablespace spacetwo;

解釋:以上語句就是把tablename表從spaceone移動到spacetwo中。

備註一:

當前的使用者必須對spacetwo、spaceone都有操作許可權才可以。

備註二:

其實如果對兩個表空間都有許可權的話,可以通過

create spacetwo.tablename as select * from spaceone.tablename;

之後再刪除spaceone中tablename表的間接方式也能實現。

grant read,write on directory tian to system; 

oracle 資料幫浦匯入匯出

sqlplus system system egov create directory dump dir as d dbback exit expdp system system egov directory dump dir dumpfile urbanyw.dmp schemas urbanyw...

oracle資料幫浦匯入匯出

使用expdp和impdp時應該注意的事項 exp和imp是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。expdp和impdp是服務端的工具程式,他們只能在oracle服務端使用,不能在客戶端使用。imp只適用於exp匯出的檔案,不適用於expdp匯出檔案 impdp只適用於expd...

oracle資料幫浦匯入匯出

1.建立資料幫浦目錄 create directory home as home expdp 2.授權 grant read,write on directory home to scott 資料字典dba directories 3.匯出 全庫匯出 expdp system oracle comp...