最近公司要做一次数据迁移,由于本人无相关经验,至今一头雾水,特请各位高手献策!
    数据是从一公司的oracle9i迁移到另一公司的oracle11g的brm数据库 ,即Oracle Billing and Revenue Management (BRM)计费系统中,迁移后的表结构与原先的表结构不同。
数据量30g左右,20多张表,千万条记录。oracle brm官方文档推荐的迁移方案是将数据转化为xml结构的数据,然后用oracle官方提供的cmt迁移工具实施,我查看了配置文件,迁移工具实际上是用
sqlloader进行的。
    我的问题是:
    1。迁移数据前,我应该注意些什么?
    2。相对与sqlloader,有无其他方案?
    3。如何将数据转化成xml格式的数据?
    4。9i的表结构与11g的表结构是不同的,我该怎么做映射?

解决方案 »

  1.   

    手工迁移,先导出数据,再用sqlloader导入数据
      

  2.   

    准备工作务必的是备份吧
    我想sqlloader应该是很高效的方案了
    数据导出为xml格式就好了啊
      

  3.   

    先写程序导出数据成文本文件, 格式就是新表的格式, 再 sqllodder 就行了, 以前证券系统数据就是这么迁移的
      

  4.   


    1,做好完全备份。2,如果数据量小的话,可以用应用程序或者plsql导出xml数据或者excel数据,然后再通过应用程序或者plsql工具导入到oracle11g库里面去。3,用plsql工具或者写java代码。4,表结构不同,你需要一个个字段映射,去校对,没有捷径可言,一个个字段比对。
      

  5.   

    动手之前备份是必须的.
    表结构不一样可以试试:
    1. 在11g上创建db link到9i
    2. alter table new_table nologging.
    3. 迁移数据
    create new_table tablespace ts_name as
    select c1, c2, c3...
    from old_table1@db_link_name, old_table2@db_link_name...
    where condition1...
    4. 然后再补上PK,indexes,constraints等.
    5. grant
    6. alter table new_table logging.
      

  6.   

    嗯,表结构不一样,那是得db_link了。对于停机时间有没有要求啊?
      

  7.   

    可以在目标建立一个单独的表空间A,然后将9i备份的dmp文件导入到A中,然后通过sql语句往目标库中插入数据。
      

  8.   

    啊,终于搞明白一些东西了,原来oracle的售前给我们提供了一种迁移工具,并且这个工具有自己的xml解析与控制文件,需要按照规定的格式进行导出,再迁入。但是此工具亚太地区仅一个人会使用,所以,还是相当头痛的东西,看来只能等到签下合约之后,请oracle的那位牛人来指导了。
    谢谢各位给的意见,对我很受用。