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.關於表空間轉移的問題:
grant read,write on directory tian to system;可以通過alter方法,將乙個表移動到另外乙個表空間中:
sql: alter table spaceone.tablename move tablespace spacetwo;sql: alter table spaceone.tablename move tablespace spacetwo;
解釋:以上語句就是把tablename表從spaceone移動到spacetwo中。
備註一:
當前的使用者必須對spacetwo、spaceone都有操作許可權才可以。
備註二:
其實如果對兩個表空間都有許可權的話,可以通過
create spacetwo.tablename as select * from spaceone.tablename;
之後再刪除spaceone中tablename表的間接方式也能實現。
解釋:以上語句就是把tablename表從spaceone移動到spacetwo中。
備註一:
當前的使用者必須對spacetwo、spaceone都有操作許可權才可以。
備註二:
其實如果對兩個表空間都有許可權的話,可以通過
create spacetwo.tablename as select * from spaceone.tablename;
之後再刪除spaceone中tablename表的間接方式也能實現。
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...