怎樣移動Oracle資料庫的表空間
在使用Oracle資料庫的過程中,經常會碰到將資料庫中的資料從
一個資料庫移動到另一個資料庫的情況,假如移動的資料量不是太大,
我們能夠使用EXPORT/IMPORT將資料進行匯出/匯入。但假如需要搬移的
資料量很龐大,則用這種方法進行資料移動很緩慢。在Oracle8i版本中
,提供了能夠對錶空間進行移動的方法,通過搬移表空間可大大降低數
據遷移的速度,提高工作效率。
對錶空間進行移動時應注意以下幾點:
(1)源資料庫和目標資料庫必須在相同硬體平臺上。例如我們能夠在
Sun Solaris平臺的Oracle資料庫之間搬移表空間,也能夠在Windows
2000平臺的Oracle資料庫之間搬移表空間,但是不能在Sun
Solaris/Windows 2000之間搬移表空間。
(2)源資料庫和目標資料庫的字符集和民族字符集必須相同。
(3)不能將表空間搬移到具備同名表空間的目標資料庫中。
(4)在Oracle8i之間搬移表空間時,源資料庫和目標資料庫的資料塊
尺寸一定要相同。
下面我們以Oracle8i(8.1.5) for Windows 2000為例說明移動表空
間的具體方法。
一、檢查要移動的表空間
當搬移表空間時,假如被搬移表空間中的資料沒有和其他表空間中
的資料有參照關係,則可直接對此表空間進行搬移;假如被搬移表空間
中的資料和其他表空間中的資料有參照關係,那麼在移動表空間時,凡
和被移動表空間有參照關的表空間也應進行搬移,否則移動到目的地的
表空間中的資料是不完整的。例如表空間local包含了表A1,而表空間
local2包含了表A1的索引IDX_A1,此時假如要搬移表空間local,則也
應同時搬移表空間local2,此時我們稱表空間local、local2為自包含
的。在進行表空間搬移之前,能夠用下列方法檢視被搬移的表空間是否
為自包含表空間。
SQL>execute dbms_tts.transport_set_check(ts_list=>’local
’,
incl_constraints=>TRUE);
引數ts_list用於指定要搬移的表空間,incl_constraints用於指
定是否檢查完整性約束。
執行完過程dbms_tts.transport_set_check之後,系統將違反自包
含表空間的資訊存入臨時表transport_set_violations。查詢該表時,
假如沒有返回任何資訊,說明表空間是自包含的,否則會返回非自含表
空間的原因。
二、匯出表空間資訊
為保持資料文件的一致性,在匯出自包含表空間資料字典資訊之前
,應首先將自包含表空間轉變為只讀狀態,作用是使表空間資訊不會發
生變化。
SQL>alter tablespace local read only;
SQL>alter tablespace local2 read only;
將表空間配置為只讀關態時,會在表空間資料文件上發出檢查點,
並且其內容不會發生任何變化,此時就能夠匯出表空間資訊了。匯出表
空間僅僅是匯出和其相關的資料字典資訊,而不是匯出表空間的任何數
據,使用如下作業系統命令可匯出表空間local和local2的資訊。
D:\>EXP transport_tablespace=y tablespaces=local,local2
file=
expdat.dmp
使用者名稱:internal/oracle@testas sysdba
引數:transport_tablespace搬移表空間選項,Y表示匯出表空間
資訊;tablespaces用於指定要匯出的表空間;file用於指定存放匯出
資訊的文件。
匯出表空間資訊之後,使用作業系統命令將表空間資料文件和匯出
文件(expdat.dmp)複製到目標資料庫所在機器相應的目錄中。
bbs.bitsCN.com
三、匯入表空間
在將表空間資料文件和匯出文件複製到目標資料庫所在機器之後,
就能夠將表空間資訊匯入到目標資料庫中了。匯入自包含表空間實際是
將資料字典資訊從匯出文件裝載到目標資料中,如表空間名稱、表空間
所對應資料文件連同資料物件名稱等。具體的作業系統命令如下:
D:\>IMP transport_tablespace=y datafiles= ’d:\localdb\
local1.dbf’
,’d:\localdb\local2.dbf’
使用者名稱:internal/oracle@testas sysdba
當執行完上述命令之後,會將表空間local和local2及其所包含的
任何資料物件資訊匯入到目標資料庫中。
注意:在Oracle8.1.5中搬移表空間時,源表空間中存放的任何數
據物件的任何者在目標資料庫中必須存在,假如不存在,則應在匯入表
空間之前建立相應的使用者,然後再匯入表空間。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10701850/viewspace-504754/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫和表空間資料移動資料庫
- 在資料庫之間移動表空間資料庫
- Oracle表移動表空間Oracle
- oracle 表移動表空間Oracle
- 將ORACLE資料庫審計相關的表移動到其他表空間Oracle資料庫
- 資料庫物件遷移表空間資料庫物件
- 資料檔案,表空間的移動
- oracle清除資料庫表空間Oracle資料庫
- Oracle 表空間資料檔案遷移Oracle
- 檢視Oracle資料庫表空間大小,是否需要增加表空間的資料檔案Oracle資料庫
- Oracle查詢表佔磁碟空間大小及移動表空間Oracle
- oracle的空間資料庫:Oracle資料庫
- Oracle資料庫表空間的資料檔案大小上限。Oracle資料庫
- PostgreSQL在不同的表空間移動資料檔案SQL
- (個人)Oracle 表空間資料檔案遷移(轉)Oracle
- PostgreSQL:表空間-->資料庫-->表SQL資料庫
- 表空間online移動資料檔案
- 誤刪oracle資料庫表空間檔案Oracle資料庫
- Oracle資料庫設定預設表空間Oracle資料庫
- 磁碟空間不足,線上移動Oracle的資料檔案Oracle
- ORACLE表批量遷移表空間Oracle
- 如何檢視Oracle資料庫表空間大小(空閒、已使用),是否要增加表空間的資料檔案...Oracle資料庫
- 【AWR】該怎樣清理SYSAUX表空間相關資料UX
- oracle 10g資料庫表空間遷移之詳細步驟Oracle 10g資料庫
- oracle 10g資料庫之表空間遷移詳細步驟Oracle 10g資料庫
- 移動資料檔案、系統表空間檔案、臨時表空間檔案
- 移動表空間的指令碼指令碼
- [轉移]ORACLE MOVE 表空間Oracle
- ORACLE資料庫中刪除表資料後,資料庫表空間已使用不會自動減少Oracle資料庫
- 清理oracle資料庫空間Oracle資料庫
- 【Oracle】rman 恢復只讀表空間資料庫Oracle資料庫
- 多臺ORACLE資料庫表空間監控方案Oracle資料庫
- oracle 表空間下資料檔案遷移的三種方法Oracle
- 【資料遷移】使用傳輸表空間遷移資料
- 使用exp/imp來移動表空間到另一個資料庫中的例子資料庫
- Oracle - 資料庫的例項、表空間、使用者、表之間關係Oracle資料庫
- 檢視資料庫表空間資料庫
- 刪除資料庫表空間資料庫