1、建立和設定資料表空間
CREATE TABLESPACE mydb2
DATAFILE 'D:\oracle\product\10.2.0\oradata\test\MYDB4.DBF'
SIZE 30M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED,
'D:\oracle\product\10.2.0\oradata\test\MYDB5.DBF'
SIZE 20M AUTOEXTEND ON NEXT 5 MAXSIZE 100M;
ALTER DATABASE DATAFILE 'D:\oracle\product\10.2.0\oradata\test\MYDB4.DBF' RESIZE 40M;
ALTER DATABASE DATAFILE 'D:\oracle\product\10.2.0\oradata\test\MYDB5.DBF'
AUTOEXTEND ON NEXT 10M
MAXSIZE UNLIMITED;
ps.
如果檔案不存在,則 DATAFILE 需要 SIZE;如果檔案存在,則 DATAFILE 需要指定 REUSE 關鍵字。
2、更改使用者預設資料表空間,並授權
ALTER USER kiant DEFAULT TABLESPACE mydb2;
SELECT USERNAME, DEFAULT_TABLESPACE FROM dba_users;
GRANT UNLIMITED TABLESPACE, DBA TO kiant;
3、建立表並插入測試資料
CREATE TABLE k7 (a1 VARCHAR2(255));
SELECT * FROM dba_tables WHERE table_name= 'K7';
INSERT INTO k7 SELECT sys_guid() FROM dual CONNECT BY LEVEL <=10000;
COMMIT;
SELECT * FROM k7 WHERE ROWNUM<=5;
4.1、使用者級資料匯入匯出
ALTER TABLESPACE mydb2 READ ONLY;
ho $ exp userid=kiant/love2you@test file=d:\123.dmp;
ALTER TABLESPACE mydb2 READ WRITE;
ho $ imp userid=kiant/love2you@test file=d:\123.dmp full=y ignore=y rows=n;
ho $ imp userid=kiant/love2you@test file=d:\123.dmp full=y ignore=y rows=y buffer=64000;
ps.
匯入時應優先匯入所有資料庫結構 rows=n;然後才匯入結構和資料 rows=y。
4.2、資料表空間資料匯入匯出
ALTER TABLESPACE mydb2 READ ONLY;
ho $ exp userid=kiant/love2you@test file=d:\124.dmp tablespaces=mydb2;
ho $ imp userid=kiant/love2you@test file=d:\124.dmp tablespaces=mydb2 full=y ignore=y rows=n;
ho $ imp userid=kiant/love2you@test file=d:\124.dmp tablespaces=mydb2 full=y ignore=y rows=y buffer=64000;
4.3、資料表空間遷移
ALTER TABLESPACE mydb2 READ ONLY;
ho $ exp userid='sys/love2you as sysdba' file=d:\mydb2.dmp tablespaces=mydb2 transport_tablespace=y;
DROP TABLESPACE mydb2 INCLUDING CONTENTS;
ho $ imp userid='sys/love2you as sysdba' file=d:\mydb2.dmp tablespaces=mydb2 transport_tablespace=y
datafiles=D:\oracle\product\10.2.0\oradata\test\MYDB4.DBF, D:\oracle\product\10.2.0\oradata\test\MYDB5.DBF;
ps.
a.必須以 'sysdba' 身份串連,才能進行時間點恢複或可傳輸的資料表空間匯入。
b.搬移資料表空間時,源資料表空間中存放的所有資料對象的所有者在目標資料庫中必須存在,如果不存在,則應在匯入資料表空間之前建立相應的使用者,然後再匯入資料表空間。
參考檔案:
資料庫遷移幾種方式
[推薦]移動Oracle的資料表空間
使用Oracle 的 imp ,exp 命令實現資料的匯入匯出
Oracle利用傳輸資料表空間匯出匯入資料的步驟