Oracle經過長時間的發展,很多用戶都很了解Oracle傳輸表空間了,這裡我發表一下個人理解,和大家討論討論。有時候,可以使用exp將以傳輸表空間的方式將其導出,Oracle傳輸表空間是一種機制,用來把一個數據庫上的格式數據文件附加到另一個數據庫。需要注意:
對於導出文件dmp來說,Oracle實現了跨平台的處理,即在任何一個可運行的平台上,都能使用imp將其導入,但是對於表空間所包含的數據文件而言,各個平台上是不一樣的,包含不能通過簡單的復制來處理。數據文件不是獨立於OS的。Oracle傳輸表空間移動數據速度非常快。
使用前提:
1.源和目標數據庫使用相同的字符集。
2.目標數據庫不能有和源表空間相同的表空間
3.源和目標數據庫擁有相同的塊大小
4.必須傳輸自包含的對象集
5.源和目標數據庫運行的硬件平台必須相同
這裡以Linux下Oracle9.2.0.4為例,簡要介紹一下使用:
1. 創建表空間,並生成數據
- sqlplus "/ as sysdba"
- create tablespace hexiong datafile ?/hexiong.dbf size 1M;
- create user hexiong identifIEd by hexiong default tablespace hexiong;
- grant connect, resource to hexiong;
- conn hexiong/hexiong
- create table t as select * from all_objects;
2.檢查一下表空間是否齊備:
- exec sys.dbms_tts.transport_set_check('hexiong', TRUE);
- PL/SQL procedure successfully completed.
- SQL> select * from sys.transport_set_violations;
- no rows selected