各位大侠:
    现在我的数据库需要从一台机器移植到另一台机器,具体情况和要求如下
   1。操作系统为 AIX
   2。oracle版本为10g
   3。数据库大小为100G左右
   4。数据库要求最快的速度切换
   5。exp/imp肯定不能满足要求请各位大侠指导,谢谢!

解决方案 »

  1.   

    -- RMAN 备份,然后将备份文件 拷贝到目标机器进行恢复!
    -- 如果数据文件太大,而当前负载不是很大,可以考虑用 RMAN 压缩备份( 10g支持 RMAN 压缩备份)
      

  2.   

    -- 参考步骤如下:-- 7.8.6 使用RMAN恢复备份集到不同主机 ( P331 )
    -- 当未使用Catalog方式进行RMAN备份时,将备份集转移到其他主机时,除非目录结构相同,否则控制文件将无法识别路径不同的备份集,针对这类问题,
    -- 可以使用dbms_backup_restore包进行文件回复;但是从Oracle 10g开始,Oracle 终于简化了这类问题的处理,现在通过RMAN就可以很容易地处理不同主机的RMAN备份集恢复。-- 通过以下实例来看一下Oracle的这一新特性增强。首先备份源数据库,并以这个备份做为恢复的基础:
    RMAN> backup database plus archivelog;......-- 再备份控制文件:
    RMAN> backup current controlfile;-- 然后生成源数据库的参数文件,修改后传送至目标数据库,修改后的参数文件可以用于数据库启动,主要修改的参数应该包括:*_dump_dest、controlfiles、
    -- db_recover_file_dest、db_create_file_dest等。-- 在Windows平台下,可以通过oradim创建一个服务启动Oracle环境:
    C:\> oradim -new -sid julia-- 然后可以通过RMAN来启动数据库到nomount状态:
    C:\> set oracle_sid=julia
    C:\> rman target /......RMAN> startup nomount;......-- 通过备份的控制文件恢复出控制文件:
    RMAN> restore controlfile to
     'E:\ORADATA/JULIA\CONTROLFILE\1.CTL'
     from
     'E:\ORADATA\BACKUPSET\2007_04_23\01_MF_NCNNF_TAG20070423T143224_32RNQT90_.BKP';......-- 有了控制文件之后,数据库可以被加载:
    RMAN> alter database mount;......-- 注 意 ----------------------------------------------------------------------------
    -- 前面恢复出来的控制文件位置及名称取决于你在参数文件中的设置。--------------------------------------------------------------------------------------- 关键的步骤是向控制文件中加载备份集,这是Oracle 10g 新增加的特性,通过Catalog Start With 命令,Oracle 可以搜索制定目录中的备份文件,
    -- 并将这些备份文件加入控制文件,从而使得从这些文件的恢复成为可能:
    RMAN> catalog start with 'e:\oradata\backupset';......是否确实将上述文件列入目录 (输入 YES 或 NO)? YES......-- 然后可以通过crosscheck backup进行备份集校验,源数据库的备份文件肯定是无法发现的,所以会被标记出来。解析来通过控制文件获得表空间及数据文件列表:
    RMAN> report schema;......-- 通过列表编写恢复脚本,然后执行恢复:
    RMAN> run {
    set newname for datafile 1
    to 'E:\ORADATA\JULIA\DATAFILE\SYSTEM.DBF';
    set newname for datafile 2
    to 'E:\ORADATA\JULIA\DATAFILE\UNDOTBS1.DBF';
    set newname for datafile 3
    to 'E:\ORADATA\JULIA\DATAFILE\SYSAUX.DBF';
    set newname for datafile 4
    to 'E:\ORADATA\JULIA\DATAFILE\USERS.DBF';
    restore database;
    switch datafile all;
    }......-- 在数据文件恢复出来以后,可以对数据库应用归档日志进行恢复:
    RMAN> recover database;......-- 最后通过Resetlogs方式打开数据库:
    RMAN> alter database open resetlogs;
      

  3.   

    补充:俩个系统是一样的,都是aix系统,操作系统基本一样,
    我想三种方案
    1。硬copy(copy数据文件,参数文件,控制文件,日志文件)
    2。exp/imp(太慢)
    3。方案比较复杂(先更新影响系统的数据库对象,其他实效性要求不高的就慢慢导入)
      

  4.   


    数据库要求最快的速度切
    -- 这个允许有多长时间? 如果时间长,可以考虑用10g的数据泵(expdp/impdp)。 在导出和导入的时候加上parallel 并行参数, 只要服务器CPU 的压力不大, 一个小时应该可以搞定。 
    这个搬迁肯定是需要时间。 不管用哪种方法, 都需要时间。 RMAN 复制的话,还需要把备份文件copy 过去,这个过程也是需要时间。 楼主自己做决定吧。 
      

  5.   

    Oracle GoldenGate 可以考录试试