轉(zhuǎn)移Oracle海量數(shù)據(jù)的“竅門”
如果你在實(shí)際的相關(guān)操作中想要把Oracle海量數(shù)據(jù)(80MB以上),把它轉(zhuǎn)移到另外一個(gè)的用戶或者是另外的相關(guān)表空間里。我們建議你可以使用以下的快速轉(zhuǎn)移數(shù)據(jù)的方法。即,建新表的方式 以及直接插入的方法 。
一、建新表的方式
- create table target_tablename tablespace
- target_tablespace_name nologging
- pctfree 10 pctused 60
- storage(initial 5M next 5M minextents 1
- maxextents unlimited pctincrease 0)
- as select * from username.source_tablename where 條件;
注意事項(xiàng): 新建的表沒有原來表的索引和默認(rèn)值, 只有非空(not null)的約束素條件可以繼承過來,其它的約束條件或索引需要重新建立.
二、直接插入的方法
- INSERT /*+ APPEND */ INTO target_tablename
- SELECT * FROM username.source_tablename where 條件;
- COMMIT;
注意事項(xiàng):
用INSERT /*+ APPEND */ 的方法會(huì)對(duì)target_tablename產(chǎn)生級(jí)別為6的獨(dú)占鎖,如果運(yùn)行此命令時(shí)還有對(duì)target_tablename的DML操作會(huì)排隊(duì)在它后面,對(duì)OLTP系統(tǒng)在用的表操作是不合適的。
說明:這兩種方法轉(zhuǎn)移數(shù)據(jù)時(shí)沒有用SGA里數(shù)據(jù)緩沖區(qū)和事物處理的回滾段, 也不寫聯(lián)機(jī)事物日志,就象數(shù)據(jù)庫裝載工具Solload一樣直接把數(shù)據(jù)寫到物理文件,速度是很快的。在Oracle8i以后的版本都可以使用。
以上的相關(guān)內(nèi)容就是對(duì)快速轉(zhuǎn)移Oracle海量數(shù)據(jù)的具體操作方案的介紹,望你能有所收獲。
文章出自:http://database.csdn.net/c_oracle/tag/2
【編輯推薦】