oracle匯入dmp表空間問題

2021-07-25 14:10:35 字數 2109 閱讀 5800

折騰了一下午..........(原諒我這個oracle菜鳥).......

首先說一下oracle匯入

匯入前需先建立使用者,表空間,並賦予許可權

建立使用者:create user rc2 identified by 123;

賦予許可權:

grant resource,connect,dba to rc2;

grant create tablespace to rc2 with admin option;

grant create trigger to rc2 with admin option;

grant debug connect session to rc2 with admin option;

grant execute any type to rc2 with admin option;

grant unlimited tablespace to rc2 ;

建立表空間

create tablespace rc2

datafile '+data/sirac_new/datafile/zhrc.dbf'

size 1500m

autoextend on next 5m maxsize 3000m;

修改預設表空間

alter user rc2  default tablespace  rc2;

完成後,進行dmp匯入

執行cmd進入dos視窗後,輸入命令:

imp 使用者名稱/密碼@服務名  file=d:/test.dmp log=d:/test123.log  fromuser=rc1  touser=rc2

匯入成功後發現表空間使用的還是匯出的dmp所在的表空間

(原因為資料庫存在dmp檔案的表空間,在匯入的時候應該制定表空間的,當時菜鳥不知道啊!!!

指定表空間:

imp 使用者名稱/密碼@服務名  file=d:/test.dmp log=d:/test123.log    tablespaces =表空間名  fromuser=rc1  touser=rc2

在當前新建使用者下修改表所在表空間

alter table db01 move tablespace rc2;

或進行批量修改:select 'alter table  '|| table_name ||'  move tablespace rc2 ;'  from user_tables;

修改索引所在表空間

alter index pk_zp10 rebuild tablespace rc2;

或進行批量修改:select 'alter index '|| index_name ||' rebuild tablespace rc2 ;' from user_indexes;

涉及到blob的表時,特殊處理一下:

alter table 表名 move    lob(涉及blob欄位名)          store as log_segment( ---log_segment  對應dba_lobs表中segment_name欄位

tablespace rc2 --新建的表空間

enable storage in row  --如果disable這個屬性,那麼lob資料會在行外儲存,行內只儲存該lob值得指標,而且這個屬性在表

--建立後只能在move表時才可以被改變

chunk 8192             --是乙個很特別的屬性,對一次lob資料的操作(插入或更新),因該分配多少儲存空間,

--指定的值最好是資料庫塊的倍數,而且指定的值不能大於表空間區間中next的值,

--要不然oracle會return乙個錯誤,如果以前已經設定這個值了,那麼在後期指定的值是不能被改變的。

retention              --應用了automatic undo mode中的undo_retention通過時間來管理lob映象空間.

--freepools             --給log segment指定free list.rac環境下integer為例項的個數.單例項環境下為1.

--在automatic undo mode下oracle預設採用

nocache);

到此!問題解決!

oracle菜鳥還有很多知識要學啊.......

oracle 建立使用者 表空間 匯入dmp 集合

分為四步 第1步 建立臨時表空間 create temporary tablespace user temp tempfile d oracle oradata oracle9i user temp.dbf size 50m autoextend on next 50m maxsize 20480m...

oracle建立表空間,建立使用者,匯入dmp資料

匯入oracle資料的時候,經常到用的時候忘記,特整理乙份,方便以後操作。需要注意的是 建立表空間和使用者是在sqlplus中執行,而匯入資料需要在cmd視窗執行。一 建立表空間 create tablespace 表空間名 datafile d dbf size m在建立的時候定義表空間名,表空間...

oracle建立表空間和匯入dmp檔案命令

1 建立表空間myspace create tablespace mysapce logging datafile d programfiles oracle product 10.2.0 oradata orcl myfile.dbf size 100m autoextend on next 50...