我的oracle版本是10g,想在另一台机子上再建个相同的测试库,由于原库表空间和用户繁多,也有相当的数据量,故手动在新库上建表空间用户不是很适宜,请问哪位知道,怎么能能将原来库中的所有结构和数据(包括表空间、用户、数据等)一次性导出,然后在新库安装完成后,执行一次导入即可?
请详细说明过程,一经解决,立马结贴。

解决方案 »

  1.   

    直接冷备份过去就可以了原数据库
    shutdown immediate;

    E:\oracle\product\10.2.0\oradata\orcl
    下的所有文件拷出来(可能你的路径不一样,找对应的就行),把新库也shutdown immediate,
    E:\oracle\product\10.2.0\oradata\orcl下的文件切出去,
    把原库的拷进来,
    再startup即可
      

  2.   

    生成全库脚本
    然后 建个 DBLINK 
    insert into 
    select * from 
    导入数据
      

  3.   

    热备和rman异地备份恢复都可以,
    这些要自己看文档,三言两语说不清楚
      

  4.   

    http://topic.csdn.net/u/20081208/10/00d4324c-8d5b-4b75-9856-a23830122094.html
      

  5.   


    热备份或者用RMAN来做备份恢复
      

  6.   

    想在另一台机子上再建个相同的测试库
    ===================================
    如果允许 shutdown 数据库的话,拷贝覆盖的方法最可行(只适用于非裸设备表空间)。具体步骤和需要拷贝的文件,可以 google 一下。
      

  7.   


    RMAN就不多说了,这里主要谈一下热备份的方法,热备份不同于冷备份,冷备份需要当机备份,热备份可以在生产过程中进行首先确定已经归档模式,如不是归档模式,只能进行冷备份
    确定归档模式,可以如下开始热备份
    1. 设置tablespace为热备份状态
    SQL>alter tablespace users begin backup;2. 物理备份数据文件
    #cp $ORACLE_BASE/oradata/orcl/users01.dbf /u01/backup/orcl3. 设置为非备份状态
    SQL>alter tablespace users end backup;4. 切换redo log file
    SQL>alter system swtich logfile;对所有tablespace执行以上操作备份所有归档文件。备份control file
    SQL>alter database backup contorlfile to '/u01/backup/control01.ctl';备份spfile现在就已经做完了热备份了,用这个热备份就可以做恢复了。