-
关于两个一样oracle9i数据库的数据迁移问题(急)20
目前有两个oracle9i数据库db1与db2,表、序列器等数据结构都是一样的。他们都各自运行了一段时间了,现在想将db1的所有表的数据迁移到db2中。比如有将db1的表ta和tb的数据迁移到db2的表ta和tb中。
现在遇到3个问题:
1、两个数据库的表ta的主键pk_ta是sequence生成的,如果直接用dblink来insert db2.ta select * from db1.ta,那么主键将重复。
2、表tb有一字段关联了表ta的主键pk_ta(没建立外键),那么迁移的时候表tb的该字段也要随表ta的主键改变而改变。
3、表ta有lob字段(clob),无法直接使用dblink来复制。
我目前想到两个办法:
1、写程序解决。
2、建临时表,生成db1的表ta的主键字段与db2的sequence的对照表。然后临时表放在db1中,update掉db1的ta和tb表的sequence相关字段,然后用oracle的export/import功能,迁移到db2中。
请问有什么更好的解决办法?
问题补充:
后来我这样解决,在db1建立ta和tb表的复制表,如
create table tmp_cpy_ta as select * from ta;
create table tmp_cpy_tb as select * from tb;
在db1使用oracle的export功能导出,在db2使用import导入,因此在db2中有了tmp_cpy_ta和tmp_cpy_tb两个表。
在db2中建立dbLink_db1,连接db1,建临时表tmp_dz_seq_db1,生成db1的表ta的主键字段与db2的sequence的对照表。然后在db2中执行:
insert into ta
select dz.xh_dest, cpy的其它字段
from tmp_dz_seq_db1 dz, tmp_cpy_ta cpy
where dz.xh_src = cpy.xh; (或者dz.xh_src(+)=cpy.xh)
tb表也是一样的做法,然后将tmp_cpy_ta、tmp_cpy_tb, tmp_dz_seq_db1删除,就OK了。
2008年6月27日 09:28
3个答案 按时间排序 按投票排序
-
乱弹一下。给db2.ta加多一列叫pk_ta_clone和pk_ta定义一样,然后假设,sequence是seq_pk_ta,把db1.ta.pk_ta那列拷贝到pk_ta_clone里面
insert db2.ta select db2.seq_pk_ta,db1.pk_ta,... from db1.ta。
然后假设tb的有个fk_ta引用了ta的pk_ta:
update db2.tb set db2.tb.fk_ta=db2.ta.pk_ta where db2.ta.pk_ta_clone=db2.tb.fk_ta
是否可行?2008年6月27日 18:57
-
我觉得你的第2个方法可以啊,更新序列就可以直接导入导出了啊,临时表都不用,你这个不能算什么问题啊,你说的遇到3个问题,其实主要还是这个序列不对应的问题,就一个,如果可以解决就没事了呗,建议以后问问题要么 提出问题,没有办法,征集办法要么有办法了但是可能性能、时间等等有其它缘故无法实施,也就是说没有可行的办法,征集建议,你这种问法我感觉很晕,至少你先把你的办法试了再说呗,干吗不试就跑来询问呢?
2008年6月27日 13:57
相关推荐
综上所述,Oracle9i数据库系统是一个功能强大的解决方案,它在数据库管理、对象管理、安全性、完整性和并发控制方面提供了丰富的特性,以满足大型企业的复杂需求。理解和掌握这些知识点对于任何Oracle数据库管理员来...
- 在目标数据库中手动创建名为`temp3`和`temp101`的临时表空间,确保这两个表空间的`block size`与源数据库保持一致。 - 例如,如果源数据库的`block size`为16K,则创建的临时表空间也应设置为16K。 ##### 3. 分...
- **数据迁移**:当需要将数据从一个Oracle数据库迁移到另一个数据库时,Oracle9i提供了导出导入工具(Export/Import)、数据泵(Data Pump)等手段,简化了数据迁移的过程。 总之,Oracle9i数据库不仅是数据存储和...
Oracle 9i数据库系统是Oracle公司的一个重要版本,它提供了许多功能来支持数据管理,其中包括数据导入(IMP)和导出(EXP)工具。这两个工具是数据库管理员进行数据迁移、备份和恢复操作的关键组件。 **EXP(Export...
了解并掌握Oracle 9i数据库的高级特性,如RAC、数据泵(Data Pump)迁移、数据库审计、物化视图等,将有助于提升数据库管理的专业技能。 本教程的压缩包文件包含了利用DBCA建立Oracle 9i数据库的具体步骤和指南,...
总结来说,Oracle 9i 数据库在AIX 5L上的移动涉及数据文件、控制文件、日志文件和TEMP表空间的迁移。这个过程需要对Oracle数据库有深入理解,以确保数据的安全和完整性。在实际操作中,一定要仔细执行每一步,并做好...
### Oracle9i数据库管理基础知识点概述 #### 一、Oracle9i企业版及数据库管理员的任务 **Oracle9i企业版**是Oracle公司在2002年发布的一款数据库管理系统,它在Oracle8i的基础上进行了功能增强和技术升级,为用户...
例如,Oracle7的Export工具无法直接导出数据到Oracle9i或更高版本。 在进行跨版本迁移时,需要注意的一个关键点是数据泵(Data Pump)的引入。从Oracle10g开始,Oracle推出了expdp和impdp,这两个工具提供了更高效...
通过阅读《Oracle9i 数据库管理基础 I Ed 1.1 Vol.1.pdf》和《Oracle9i 数据库管理基础 I Ed 1.1 Vol.2.pdf》这两部分资料,你将系统地掌握Oracle9i的各个方面,并逐步成长为一名Oracle数据库专家。记住,理论知识...
5. **互联网数据库连接(Internet Database Connectivity, JDBC)**和**开放数据库连接(Open Database Connectivity, ODBC)**:Oracle9i提供了对这两种标准数据库连接接口的全面支持,使得应用程序可以轻松地与...
这两个工具在数据迁移、备份恢复以及数据库维护中起到关键作用。 在Oracle9i版本中,EXP 和 IMP 提供了对数据库对象(如表、索引、存储过程等)和数据的导出与导入功能。EXP 可以创建一个转储文件,包含所有选定...
Oracle9i DBA Fundamentals I中文版是一本针对Oracle9i数据库管理员基础知识的教程,旨在帮助初学者理解和掌握Oracle数据库的基本操作与管理。这本教程分为两册,包含丰富的理论知识和实践经验,对于那些在E问(可能...
Oracle 9i Real Application Clusters (RAC) 是Oracle数据库的一种高可用性和可扩展性解决方案,它允许多台服务器共享同一个数据库实例,从而提供故障切换和负载均衡的能力。本安装手册将详细介绍在安装和配置Oracle...
Oracle9i数据库支持57种语言、88个国家地域和235种字符集,为全球化的应用提供了基础。在处理泰文、韩文、阿拉伯文等非中文语言入库时,如果数据库的默认字符集(如ZHS16GBK)和国家字符集(如AL16UTF16)不适应这些...
在这个"Oracle升级-数据库迁移(part5 update)"中,我们将会深入探讨升级过程中可能遇到的问题及解决方案。 首先,Oracle 9i到10g的升级是数据库技术的一个显著进步,10g引入了诸多新特性,如Real Application ...
根据题目中的描述,问题的核心在于Oracle 10g的`exp`工具无法正常导出9i数据库中的数据。这主要是由于两个不同版本的Oracle数据库之间存在一些不兼容的地方,具体包括: 1. **数据格式差异**:不同版本的Oracle...
本参考手册旨在为管理员提供详尽的指导,帮助他们更好地理解和管理Oracle9i数据库系统。下面将根据提供的信息,深入解析Oracle9i的管理关键知识点。 1. **数据库安装与配置**:Oracle9i的安装过程包括准备环境、...
本篇文章将详细介绍如何利用Oracle Migration Workbench (OMWB) 将Microsoft SQL Server 2000的数据迁移至Oracle 9i数据库。首先,我们需要理解这两个数据库系统的差异以及为什么要进行这样的迁移。 SQL Server ...