我想新建一个例程,我在教程上看到的是这样:oradim -new -sid orc_clone -intpwd oracle但是我在我的系统中没有找到这个命令,只有一个oradism命令,系统是LINUX。

解决方案 »

  1.   

    linux下不需要用到oradim,所以没有这个命令
      

  2.   

    那个命令是在cmd窗口下用的,在oracle 的bin目录下
      

  3.   

    windows 才需要 oradim创建服务,linux不需要.
      

  4.   

    谢谢楼上各位。但是如果假设说我这样使用:
    SET ORACLE_SID=ORC_CLONE在使用连接:
    sqlplus sys/oracle as sysdba我发现我连接的数据库还是原先的服务ORC_TEST,这是怎么回事呢,而且我也重新生成了PFILE和SPFILE文件,请教。
      

  5.   

    Linux用set可以吗?  试试用export呢?export ORACLE_SID=ORC_CLONE 
      

  6.   

    谢谢楼上指点。
    我现在在做数据库的克隆,但是现在出现一个这样的问题,请再帮我看一下,谢谢。
    我执行下面的脚本:
    run {
    set newname for datafile 1 to '/opt/oradata/orc_clone/system01.dbf';
    set newname for datafile 2 to '/opt/oradata/orc_clone/undotbs01.dbf';
    set newname for datafile 3 to '/opt/oradata/orc_clone/sysaux01.dbf';
    set newname for datafile 4 to '/opt/oradata/orc_clone/users01.dbf';
    set newname for datafile 5 to '/opt/oradata/orc_clone/rman_data.dbf';
    duplicate target database to orcclone logfile
    '/opt/oradata/orc_clone/redo01.log' size 10M,
    '/opt/oradata/orc_clone/redo02.log' size 10M,
    '/opt/oradata/orc_clone/redo03.log' size 10M;
    }结果报错:
    executing command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEStarting Duplicate Db at 15-MAY-09
    using channel ORA_AUX_DISK_1
    using channel ORA_AUX_DISK_2
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of Duplicate Db command at 05/15/2009 03:02:31
    RMAN-05501: aborting duplication of target database
    RMAN-05517: temporary file /opt/oradata/orc_test/temp01.dbf conflicts with file used by target database上面说我的temp文件冲突,我不是很理解这个意思。请指教一下。
      

  7.   

    我检查了我的克隆目录,里面并没有TEMP文件,请教指点。
      

  8.   

    你在同一台机子上复制吗?
    db_file_name_convert怎么设的?
      

  9.   

    我说的是你新库的db_file_name_convert?同一台机子上复制要设。当然你set newname for也行。看你的datafile1-5是转换过去了的。可以加在你的新库的pfile中,然后用它到nomount
      

  10.   

    我现在改成这样:
    run {
    set newname for datafile 1 to '/opt/oradata/orc_clone/system01.dbf';
    set newname for datafile 2 to '/opt/oradata/orc_clone/undotbs01.dbf';
    set newname for datafile 3 to '/opt/oradata/orc_clone/sysaux01.dbf';
    set newname for datafile 4 to '/opt/oradata/orc_clone/users01.dbf';
    set newname for datafile 5 to '/opt/oradata/orc_clone/rman_data.dbf';
    set newname for tempfile 1 to '/opt/oradata/orc_clone/temp01.DBF';
    duplicate target database to orcclone logfile
    '/opt/oradata/orc_clone/redo01.log' size 10M,
    '/opt/oradata/orc_clone/redo02.log' size 10M,
    '/opt/oradata/orc_clone/redo03.log' size 10M;
    }就可以运行成功了。但是我使用SQLPLUS SYS/ORACLE@ORC_CLONE AS SYSDBA却连接不上去,这个是怎么回事啊。还有,我想请问一下,db_file_name_convert需要设置成什么值?
      

  11.   

    连不上报什么错?你自己用set newname for了,就可以不用db_file_name_convert了。复制数据库其实不用像你这种步骤。你网上搜搜常规的复制方式。
      

  12.   

    sorry,可以连接上了,刚才是我的ORACLE_SID设置不对,克隆数据库在执行完以上脚本就已经打开了。
    但是我还是对db_file_name_convert这个参数有点疑问,查找资料是这样的解释:
    DB_FILE_NAME_CONVERT 用来创建一个以恢复为目的的备用数据库,它转换主数据库上的数据文件的文件名到备用数据库上的文件名,如果你在主数据库上添加了一个数据文件,你必须在备用数据库上添加相应的文件
    string1 is the pattern of the primary database filenamestring2 is the pattern of the standby database filename请指点一下,谢谢。
      

  13.   

    对呀。大概就是你查的这个资料的意思阿,你复制库也可以看作“以恢复为目的”。
    功能和set newname for一样。还有什么疑问呢?
      

  14.   

    谢谢,是我搞的太复杂了。
    最后一个小问题,假设说我以后又在不定期的加DATAFILE,那我也需要手工把这些DATAFILE加入到我的脚本中,是这样么?如果是,能否有一个比较自动的方法克隆到克隆数据库呢?
      

  15.   

    应该不是叫同步吧。
    我想是这样的一个流程,每天定时做克隆。放在fstab里面自动运行脚本。
    然后我就不明白我的那个脚本应该怎么去写,当目标数据库的DATAFILE改变的时候,我是否需要去修改脚本。