target DB:orc_test
clone DB:clone
script:
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 tempfile 1 to '/opt/oradata/orc_clone/temp01.DBF';
duplicate target database to clone 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;
}
运行红报错:
RMAN> run {
2> set newname for datafile 1 to '/opt/oradata/orc_clone/system01.dbf';
3> set newname for datafile 2 to '/opt/oradata/orc_clone/undotbs01.dbf';
4> set newname for datafile 3 to '/opt/oradata/orc_clone/sysaux01.dbf';
5> set newname for datafile 4 to '/opt/oradata/orc_clone/users01.dbf';
6> set newname for tempfile 1 to '/opt/oradata/orc_clone/temp01.DBF';
7> duplicate target database to clone 
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "clone": expecting one of: "double-quoted-string, identifier, single-quoted-string"
RMAN-01007: at line 7 column 30 file: /opt/share/run.sql求教,谢谢。

解决方案 »

  1.   

    找到问题了,我使用了clone的关键字,导致不能继续。还想问一下,在克隆钱必须要先备份数据库么。
      

  2.   

    现在碰到了一个新的问题:
    现在报这样的错误:
    RMAN> run {
    2> set newname for datafile 1 to '/opt/oradata/orc_clone/system01.dbf';
    3> set newname for datafile 2 to '/opt/oradata/orc_clone/undotbs01.dbf';
    4> set newname for datafile 3 to '/opt/oradata/orc_clone/sysaux01.dbf';
    5> set newname for datafile 4 to '/opt/oradata/orc_clone/users01.dbf';
    6> set newname for tempfile 1 to '/opt/oradata/orc_clone/temp01.DBF';
    7> duplicate target database to clone1 logfile
    8> '/opt/oradata/orc_clone/redo01.log' size 10M,
    9> '/opt/oradata/orc_clone/redo02.log' size 10M,
    10> '/opt/oradata/orc_clone/redo03.log' size 10M;
    11> }
    executing command: SET NEWNAME
    using target database control file instead of recovery catalogexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEStarting Duplicate Db at 09-APR-09
    allocated channel: ORA_AUX_DISK_1
    channel ORA_AUX_DISK_1: sid=159 devtype=DISK
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of Duplicate Db command at 04/09/2009 01:02:10
    ORA-01405: fetched column value is NULLRMAN> **end-of-file**这里说列值为空,不知道是什么意思?
      

  3.   

    查找资料,输入 ALTER SYSTEM SWITCH LOGFILE ,问题解决。
    但是我有点不明白,为什么需要使用这个转换语句,不知道这个语句是起到了什么作用,还有就是想请教是否在克隆前需要全备数据库,谢谢,请指教。
      

  4.   

    ALTER SYSTEM SWITCH LOGFILE是手工的切换redo log,把当前log buffer全部写入当前的current redo file。然后切换到下一个redo.log.