Oracle 筆記(五)、表空間管理

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利用傳輸表空間導出導入數據的步驟
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章