Oracle傳輸表空間高手支招
Oracle經(jīng)過長時間的發(fā)展,很多用戶都很了解Oracle傳輸表空間了,這里我發(fā)表一下個人理解,和大家討論討論。有時候,可以使用exp將以傳輸表空間的方式將其導(dǎo)出,Oracle傳輸表空間是一種機制,用來把一個數(shù)據(jù)庫上的格式數(shù)據(jù)文件附加到另一個數(shù)據(jù)庫。需要注意:
對于導(dǎo)出文件dmp來說,Oracle實現(xiàn)了跨平臺的處理,即在任何一個可運行的平臺上,都能使用imp將其導(dǎo)入,但是對于表空間所包含的數(shù)據(jù)文件而言,各個平臺上是不一樣的,包含不能通過簡單的復(fù)制來處理。數(shù)據(jù)文件不是獨立于OS的。Oracle傳輸表空間移動數(shù)據(jù)速度非常快。
使用前提:
1.源和目標數(shù)據(jù)庫使用相同的字符集。
2.目標數(shù)據(jù)庫不能有和源表空間相同的表空間
3.源和目標數(shù)據(jù)庫擁有相同的塊大小
4.必須傳輸自包含的對象集
5.源和目標數(shù)據(jù)庫運行的硬件平臺必須相同
這里以linux下Oracle9.2.0.4為例,簡要介紹一下使用:
1. 創(chuàng)建表空間,并生成數(shù)據(jù)
- 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
【編輯推薦】