FAQ
Hello,
I am trying to perform copy of database that RMAN does with duplicate from
active database but manually step by step.
I took debug and trace of "duplicate target database to ... from active
database"
and using contents of memory scripts repeated them manually once again

It all went almost fine until steps where controlfile being created,
copies cataloged and data files switched to them.

Based on memory scripts contents, control file recreated just with system
file
and other copied files cataloged. When I tried to switch datafiles to their
copies manually
(after successful catalog operation) operation failed with:

RMAN> switch datafile 2 to copy;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of switch to copy command at 10/25/2011 01:33:12
RMAN-20201: datafile not found in the recovery catalog
RMAN-06010: error while looking up datafile: 2

It seems to me that it is not possible to add file through catalog and
switch commands
when control file was recreated with only system file, but based on log RMAN
somehow does it.

Do you know how RMAN does it and where is the problem in manual execution
that I can not reach the same result.

Attached output of RMAN duplicate and log of actions for manual execution.

--
Thank you,
Andrey Goryunov



--
http://www.freelists.org/webpage/oracle-l

Search Discussions

  • Andrey Goryunov at Oct 31, 2011 at 12:58 am
    Hello,
    finally I understood where was the problem.

    To add data file copy first of all set name should be issued
    followed by catalog datafilecopy and switch datafile


    (just system and undo files there)
    RMAN> sql clone "CREATE CONTROLFILE REUSE SET DATABASE TEMP RESETLOGS
    ARCHIVELOG
    2> MAXLOGFILES 16
    MAXLOGMEMBERS 3
    3> 4> MAXDATAFILES 100
    5> MAXINSTANCES 8
    6> MAXLOGHISTORY 292
    7> LOGFILE
    8> GROUP 1 ( ''/u02/oradata/temp/redo01.log'' ) SIZE 50 M REUSE,
    9> GROUP 2 ( ''/u02/oradata/temp/redo02.log'' ) SIZE 50 M REUSE,
    10> GROUP 3 ( ''/u02/oradata/temp/redo03.log'' ) SIZE 50 M REUSE
    11> DATAFILE
    12> ''/u02/oradata/temp/system01.dbf'',
    13> ''/u02/oradata/temp/undotbs01.dbf''";

    using target database control file instead of recovery catalog
    sql statement: CREATE CONTROLFILE REUSE SET DATABASE TEMP RESETLOGS
    ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES
    100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 (
    ''/u02/oradata/temp/redo01.log'' ) SIZE 50 M REUSE, GROUP 2 (
    ''/u02/oradata/temp/redo02.log'' ) SIZE 50 M REUSE, GROUP 3 (
    ''/u02/oradata/temp/redo03.log'' ) SIZE 50 M REUSE DATAFILE
    ''/u02/oradata/temp/system01.dbf'', ''/u02/oradata/temp/undotbs01.dbf''


    ******************************************

    temp> select name, file#, status from v$datafile;

    NAME
    -------------------------------------------------
    FILE# STATUS
    ---------- -------
    /u02/oradata/temp/system01.dbf
    1 SYSTEM

    /u02/oradata/temp/undotbs01.dbf
    3 RECOVER


    Elapsed: 00:00:02.91

    ******************************************

    RMAN> run {
    set newname for tempfile 1 to
    "/u02/oradata/temp/temp01.dbf";
    switch clone tempfile all;2> 3> 4> }

    executing command: SET NEWNAME

    renamed tempfile 1 to /u02/oradata/temp/temp01.dbf in control file


    ******************************************

    temp> select name, file#, status from v$tempfile;

    NAME
    --------------------------------------------------
    FILE# STATUS
    ---------- -------
    /u02/oradata/temp/temp01.dbf
    1 ONLINE


    Elapsed: 00:00:00.02

    ******************************************
    (set names for sysaux and one of tablespaces)
    RMAN> run {
    set newname for datafile 2 to "/u02/oradata/temp/sysaux01.dbf";
    2> 3> set newname for datafile 8 to "/u02/oradata/temp/t.dbf";
    4> catalog clone datafilecopy "/u02/oradata/temp/sysaux01.dbf",
    "/u02/oradata/temp/undotbs01.dbf", "/u02/oradata/temp/t.dbf";
    switch clone datafile all;
    }5> 6>

    executing command: SET NEWNAME

    executing command: SET NEWNAME

    cataloged datafile copy
    datafile copy file name=/u02/oradata/temp/sysaux01.dbf RECID=1
    STAMP=765883206
    cataloged datafile copy
    datafile copy file name=/u02/oradata/temp/undotbs01.dbf RECID=2
    STAMP=765883210
    cataloged datafile copy
    datafile copy file name=/u02/oradata/temp/t.dbf RECID=3 STAMP=765883210

    datafile 2 switched to datafile copy
    input datafile copy RECID=1 STAMP=765883206 file
    name=/u02/oradata/temp/sysaux01.dbf
    datafile 8 switched to datafile copy
    input datafile copy RECID=3 STAMP=765883210 file
    name=/u02/oradata/temp/t.dbf


    ******************************************

    temp> select name, file#, status from v$datafile;

    NAME
    -------------------------------------------------
    FILE# STATUS
    ---------- -------
    /u02/oradata/temp/system01.dbf
    1 SYSTEM

    /u02/oradata/temp/sysaux01.dbf
    2 RECOVER

    /u02/oradata/temp/undotbs01.dbf
    3 RECOVER

    /u02/oradata/temp/t.dbf
    8 RECOVER


    Elapsed: 00:00:00.17

    ******************************************


    RMAN> run {
    Alter clone database open resetlogs;
    }2> 3>

    database opened

    RMAN>

    ******************************************

    temp> /

    NAME
    ---------------------------------------------------------
    FILE# STATUS
    ---------- -------
    /u02/oradata/temp/system01.dbf
    1 SYSTEM

    /u02/oradata/temp/sysaux01.dbf
    2 ONLINE

    /u02/oradata/temp/undotbs01.dbf
    3 ONLINE

    /u02/app/oracle/product/11.2.0/dbhome_1/dbs/MISSING00004
    4 RECOVER

    /u02/app/oracle/product/11.2.0/dbhome_1/dbs/MISSING00005
    5 RECOVER

    /u02/app/oracle/product/11.2.0/dbhome_1/dbs/MISSING00006
    6 RECOVER

    /u02/app/oracle/product/11.2.0/dbhome_1/dbs/MISSING00007
    7 RECOVER

    /u02/oradata/temp/t.dbf
    8 ONLINE

    /u02/app/oracle/product/11.2.0/dbhome_1/dbs/MISSING00009
    9 RECOVER

    /u02/app/oracle/product/11.2.0/dbhome_1/dbs/MISSING00010
    10 RECOVER

    /u02/app/oracle/product/11.2.0/dbhome_1/dbs/MISSING00011
    11 RECOVER

    /u02/app/oracle/product/11.2.0/dbhome_1/dbs/MISSING00012
    12 RECOVER

    /u02/app/oracle/product/11.2.0/dbhome_1/dbs/MISSING00013
    13 RECOVER


    13 rows selected.

    Elapsed: 00:00:04.14


    Thanks,
    Andrey
    On 26 October 2011 00:16, Andrey Goryunov wrote:

    Hello,

    I am trying to perform copy of database that RMAN does with duplicate from
    active database but manually step by step.
    I took debug and trace of "duplicate target database to ... from active
    database"
    and using contents of memory scripts repeated them manually once again

    It all went almost fine until steps where controlfile being created,
    copies cataloged and data files switched to them.

    Based on memory scripts contents, control file recreated just with system
    file
    and other copied files cataloged. When I tried to switch datafiles to
    their copies manually
    (after successful catalog operation) operation failed with:

    RMAN> switch datafile 2 to copy;

    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of switch to copy command at 10/25/2011 01:33:12
    RMAN-20201: datafile not found in the recovery catalog
    RMAN-06010: error while looking up datafile: 2

    It seems to me that it is not possible to add file through catalog and
    switch commands
    when control file was recreated with only system file, but based on log
    RMAN somehow does it.

    Do you know how RMAN does it and where is the problem in manual execution
    that I can not reach the same result.

    Attached output of RMAN duplicate and log of actions for manual execution.

    --
    Thank you,
    Andrey Goryunov


    --
    Regards,
    Andrey Goryunov


    --
    http://www.freelists.org/webpage/oracle-l

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouporacle-l @
categoriesoracle
postedOct 25, '11 at 1:17p
activeOct 31, '11 at 12:58a
posts2
users1
websiteoracle.com

1 user in discussion

Andrey Goryunov: 2 posts

People

Translate

site design / logo © 2022 Grokbase