/*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 ||'@QHPORTAL87;' 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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23135684/viewspace-674034/