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