遷移資料到Oracle的方法思考

尛樣兒發表於2010-09-16

/*Oracle遷移到Oracle的方案一--DBLINK*/

資料字典被破壞,無法修復,無法用正常的oracle匯入匯出工具匯入匯出資料。考慮使用DBLINK方式。DBLINK無法完成CLOB,BLOB,LONG,LONG RAW型別的資料抽取。所以要將相關的表排除。

--生成啟用表的nologging屬性的批次SQL
select 'alter table '||owner||'.'||table_name||' nologging;' from dba_tables where owner in ('SSO','WEBLOGIC') ;
--where table_name not in (
--select table_name from dba_tab_columns where owner in ('SSO','WEBLOGIC') and (data_type  like '%LOB' or --data_type='LONG' or data_type='LONG RAW'));

--生成禁用表的約束的批次SQL
select 'alter table '||owner||'.'||table_name||' disable constraint '||constraint_name||';' from dba_constraints   where owner in ('SSO','WEBLOGIC');
--where table_name not in (
--select table_name from dba_tab_columns where owner in ('SSO','WEBLOGIC') and (data_type  like '%LOB' or --data_type='LONG' or data_type='LONG RAW'));

--生成清空表的資料,%_BAK是系統中的備份表,可以排除
select 'truncate table '||owner||'.'||table_name||';' from dba_tables where owner in ('SSO','WEBLOGIC')  and  table_name not in (
select table_name from dba_tab_columns where owner in ('SSO','WEBLOGIC') and (data_type  like '%LOB' or data_type='LONG' or data_type='LONG RAW')) and table_name not like '%_BAK';

--生成插入資料的批次SQL,@QHPORTAL87是連線到遠端伺服器的DBLINK。
select 'insert into /*+append nologging*/ '||owner||'.'||table_name ||' select * from '||owner||'.'||table_name
from dba_tables  where owner in ('SSO','WEBLOGIC') and table_name not in (
select table_name from dba_tab_columns where owner in ('SSO','WEBLOGIC') and (data_type  like '%LOB' or data_type='LONG' or data_type='LONG RAW'))   and table_name not like '%_BAK';

--完成插入後,再修改上面的指令碼生成啟用約束和啟用logging屬性的批次SQL,執行這些批次SQL完成dblink資料的抽取工作。

/*剩餘的包含CLOB,BLOB,LONG,LONG RAW欄位的表用SQLSERVER DTS進行抽取。*/

 

/*Oracle遷移到Oracle的方案二--使用RMAN進行遷移*/
/*Oracle遷移到Oracle的方案三--直接複製資料檔案、控制檔案、日誌檔案、引數檔案*/
/*Oracle遷移到Oracle的方案四--使用exp、expdp|imp、impdp工具完成遷移*/
/*Oracle遷移到Oracle的方案五--使用pl/sql(ODBC轉換器) DBArtiscan工具(資料庫同步工具) sqlserver dts的匯入匯出工具 powercenter等第三方抽取工具*/
/*Oracle遷移到Oracle的方案六--生成資料的批次SQL(pl/sql、oracle sql developer等)*/
/*Oracle遷移到Oracle的方案七--GodenGate、DataGuard*/


/*匯入表結構*/
--1.使用原有的dmp檔案,利用imp或impdp工具將表結構匯入。
--2.使用erwin,power designer等工具的反轉功能匯入資料庫的表,生成表結構的DDL語句,然後執行。
--3.使用dblink執行CTAS方式進行表的COPY。

 

/*非Oracle資料庫與Oracle資料庫的遷移*/
--1.部署oracle gateway組建,利用這個組建+DBLINK+CTAS方式完成資料的抽取,BLOB,CLOB,LONG,LONG RAW使用sqlserver dts完成抽取。
--2.使用DBArtiscan、sqlserver dts、powercenter等第三方遷移工具。
--3.Sybase使用bcp,sqlserver使用企業管理器的匯出成文字功能匯出成文字,然後使用oracle sqlloader工具匯入到資料庫。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23135684/viewspace-674034/,如需轉載,請註明出處,否則將追究法律責任。

相關文章