Friday, August 23, 2013

Using DBMS_STATS to backup and restore statistics

1) Check last analyzed date of scott schema tables

SQL> select table_name, last_analyzed from DBA_TABLES WHERE OWNER='SCOTT';

TABLE_NAME                     LAST_ANAL
------------------------------ ---------
TEMP                           18-AUG-13
SALGRADE                       18-AUG-13
BONUS                          18-AUG-13
EMP                            18-AUG-13
DEPT                           18-AUG-13


2) Create stat table in users Tablespace

SQL> exec dbms_stats.create_stat_table(ownname => 'SCOTT', stattab => 'stats_bkp_scott', tblspace => 'USERS');

PL/SQL procedure successfully completed.


3) Take the statistics backup of scott schema in stat table

SQL> exec dbms_stats.export_schema_stats(ownname => 'SCOTT', stattab => 'stats_bkp_scott');

PL/SQL procedure successfully completed.


4) Gather the statistics

SQL> exec dbms_stats.gather_table_stats(ownname=>'SCOTT', tabname=>'EMP', cascade=>true, method_opt => 'for all indexed columns',granularity =>'all',estimate_percent=> 30,degree=>12);

PL/SQL procedure successfully completed.

5) Check the last analyzed date of tables

SQL> select table_name, last_analyzed from DBA_TABLES WHERE OWNER='SCOTT';

TABLE_NAME                     LAST_ANAL
------------------------------ ---------
STATS_BKP_SCOTT
DEPT                           23-AUG-13
EMP                            23-AUG-13
BONUS                          18-AUG-13
SALGRADE                       18-AUG-13
TEMP                           18-AUG-13

6 rows selected.

6) Import/Revert the statistics of one/two table from the backup

SQL> exec dbms_stats.import_table_stats(ownname=>'SCOTT', tabname=>'EMP', statown=>'SCOTT', stattab=>'stats_bkp_scott', cascade=>true);

PL/SQL procedure successfully completed.

7) Check the last analyzed date of the tables

SQL>  select table_name, last_analyzed from DBA_TABLES WHERE OWNER='SCOTT';

TABLE_NAME                     LAST_ANAL
------------------------------ ---------
STATS_BKP_SCOTT
TEMP                           18-AUG-13
SALGRADE                       18-AUG-13
BONUS                          18-AUG-13
EMP                            18-AUG-13
DEPT                           23-AUG-13

6 rows selected.

8) Revert the statistics of whole schema from the backup

SQL> EXECUTE DBMS_STATS.IMPORT_SCHEMA_STATS ('SCOTT','stats_bkp_scott');

PL/SQL procedure successfully completed.


9) Check the last analyzed date of the tables

SQL> select table_name, last_analyzed from DBA_TABLES WHERE OWNER='SCOTT';

TABLE_NAME                     LAST_ANAL
------------------------------ ---------
STATS_BKP_SCOTT
DEPT                           18-AUG-13
EMP                            18-AUG-13
BONUS                          18-AUG-13
SALGRADE                       18-AUG-13
TEMP                           18-AUG-13

6 rows selected.




Tuesday, March 12, 2013

Using RMAN Incremental Backups to Roll Forward a Physical Standby Database

In this article, we will show the steps that can be used to resolve problems if a physical standby database has lost or corrupted archived redo data or has an unresolvable archive gap.



1). Check the CURRENT_SCN on Primary and Standby

--On Primary
SQL> select current_scn from v$database;

CURRENT_SCN
-----------
     871303

--On Standby
SQL> select current_scn from v$database;

CURRENT_SCN
-----------
     859798

2). On the standby database, stop the Managed Recovery Process.
SQL> alter database recover managed standby database cancel;

3). Take "FROM SCN" backup of Primary Database
RMAN> backup incremental from scn 859790 database format '/u01/stnd_backp_%U.bak';

4). Create Standby Controlfile at Primary:
SQL> alter database create standby controlfile as /u01/stnd_cntl.ctl';

5).Copy the backup files and control file to standby server.

scp oracle@192.168.195.128:/u01/stnd* /u01/

At Standby copy controlfiles to their loactaion:

cp stnd_cntl.ctl /u01/app/oracle/oradata/HCLDB/control01.ctl
cp stnd_cntl.ctl /u01/app/oracle/flash_recovery_area/HCLDB/control02.ctl

6). Mount the standby database using backup controlfile.
SQL> startup nomount
SQL> alter database mount standby database;

7).Catalog the backupieces which you have copied from primary server to standby server using below command on standby server.

RMAN> catalog start with '/u01/stnd_backp_0fo4apn7_1_1.bak';
RMAN> catalog start with '/u01/stnd_backp_0go4apov_1_1.bak';

8). Recover the standby database with the cataloged incremental backup.
RMAN> recover database noredo;

**You must also specify NOREDO if the online logs are available but the redo cannot be applied to the incrementals.
**If you do not specify NOREDO, then RMAN searches for redo logs after applying the incremental backup, and issues an error message when it does not find them.

9), Now check whether the standby database is properly synched or not
- On Primary database
SQL> select max(sequence#) from v$archived_log;

- On Standby database
SQL> select max(sequence#) from v$log_history;

10) On the standby database, start the MRP process.
SQL> alter database recover managed standby database disconnect from session;

Thursday, January 31, 2013

Step by Step - Physical Standby Setup using DUPLICATE in Oracle Database 11g Release 2


Step by Step - Physical Standby Setup using DUPLICATE in Oracle Database 11g Release 2

My Server Details:-
Primary Database - HCLDB - Sever - 192.168.195.128
Standby Database - HCLDB_STBY - Sever - 192.168.195.138
Oracle 11GR2 on RHEL5

Step1. Make sure your Primary DB is in Archivelog mode and Force logging is enabled if not put you DB in Archivelog mode

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     1
Next log sequence to archive   2
Current log sequence           2

**Enable forced logging by issuing the following command.

SQL> ALTER DATABASE FORCE LOGGING;

Database altered.

Step2. Check the setting for the DB_NAME and DB_UNIQUE_NAME parameters. In this case they are both set to "HCLDB" on the primary database.

SQL> show parameter db_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      HCLDB
SQL> show parameter db_unique_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      HCLDB

Step3. The DB_UNIQUE_NAME values of the primary and standby database should be used in the DG_CONFIG setting of the LOG_ARCHIVE_CONFIG parameter.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(HCLDB,HCLDB_STBY)';

System altered.

Step4. Set suitable remote archive log destinations.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=HCLDB_STBY NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=HCLDB_STBY';

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

System altered.

Step5. Set LOG_ARCHIVE_FORMAT and LOG_ARCHIVE_MAX_PROCESSES parameters

SQL> ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=30;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;

Step6. make sure the primary is ready to switch roles to become a standby

SQL> ALTER SYSTEM SET FAL_SERVER=HCLDB_STBY;
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='HCLDB_STBY','HCLDB' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='HCLDB_STBY','HCLDB'  SCOPE=SPFILE;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

Step7. Configure tnsnames on both servers.

>>>> tnsnames.ora entry
-------------------------------------------------------------------
HCLDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.128)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = HCLDB)
    )
  )

HCLDB_STBY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.138)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = HCLDB_STBY)

    )
  )
-----------------------------------------------------------------------------

>>>>> listener.ora entry at Primary
------------------------------------------------------------------------------
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = HCLDB)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = HCLDB)
    )
  )


LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.128)(PORT = 1521))
  )
-----------------------------------------------------------------------------------

>>>>>listener.ora entry at Standby
-------------------------------------------------------------------------------------
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = HCLDB_STBY)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = HCLDB_STBY)
    )
  )


LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.138)(PORT = 1521))
  )
---------------------------------------------------------------------------------------

Start listenter on both servers and confirm with tnsping

Step8. Copy the Primary DB init file (initHCLDB) to Standby server and rename the init file to initHCLDB_STBY

scp oracle@192.168.195.128:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initHCLDB.ora /u01/app/oracle/product/11.2.0/dbhome_1/dbs/
cp initHCLDB.ora initHCLDB_STBY.ora

Step9. Create orapwd file at Standby DB
orapwd file=orapwHCLDB_STBY password=oracle entries=10

Step10. Connect to Standby server and start in NOMOUNT stage

[oracle@localhost dbs]$ . oraenv
ORACLE_SID = [HCLDB_STBY] ?
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/11.2.0/dbhome_1/
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/ is /u01/app/oracle
[oracle@localhost dbs]$ sqlplus sys/oracle@HCLDB_STBY as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jan 31 16:09:45 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup nomount;
ORACLE instance started.

Total System Global Area  631914496 bytes
Fixed Size                  1338364 bytes
Variable Size             377488388 bytes
Database Buffers          247463936 bytes
Redo Buffers                5623808 bytes
SQL>

Step11. Connect to RMAN, specifying a full connect string for both the TARGET and AUXILLARY instances.

[oracle@localhost dbs]$ rman TARGET sys/oracle@HCLDB AUXILIARY sys/oracle@HCLDB_STBY

Recovery Manager: Release 11.2.0.1.0 - Production on Thu Jan 31 16:10:50 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: HCLDB (DBID=627848795)
connected to auxiliary database: HCLDB (not mounted)

RMAN> DUPLICATE TARGET DATABASE
  FOR STANDBY
  FROM ACTIVE DATABASE
  DORECOVER
  SPFILE
    SET db_unique_name='HCLDB_STBY' COMMENT 'Is standby'
    SET LOG_ARCHIVE_DEST_2='SERVICE=HCLDB ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=HCLDB'
    SET FAL_SERVER='HCLDB' COMMENT 'Is primary'
  NOFILENAMECHECK;2> 3> 4> 5> 6> 7> 8> 9>

Starting Duplicate Db at 31-JAN-13
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=19 device type=DISK

contents of Memory Script:
{
   backup as copy reuse
   targetfile  '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwHCLDB' auxiliary format
 '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwHCLDB_STBY'   targetfile
 '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileHCLDB.ora' auxiliary format
 '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileHCLDB_STBY.ora'   ;
   sql clone "alter system set spfile= ''/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileHCLDB_STBY.ora''";
}
executing Memory Script

Starting backup at 31-JAN-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=87 device type=DISK
Finished backup at 31-JAN-13

sql statement: alter system set spfile= ''/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileHCLDB_STBY.ora''

contents of Memory Script:
{
   sql clone "alter system set  db_unique_name =
 ''HCLDB_STBY'' comment=
 ''Is standby'' scope=spfile";
   sql clone "alter system set  LOG_ARCHIVE_DEST_2 =
 ''SERVICE=HCLDB ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=HCLDB'' comment=
 '''' scope=spfile";
   sql clone "alter system set  FAL_SERVER =
 ''HCLDB'' comment=
 ''Is primary'' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

sql statement: alter system set  db_unique_name =  ''HCLDB_STBY'' comment= ''Is standby'' scope=spfile

sql statement: alter system set  LOG_ARCHIVE_DEST_2 =  ''SERVICE=HCLDB ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=HCLDB'' comment= '''' scope=spfile

sql statement: alter system set  FAL_SERVER =  ''HCLDB'' comment= ''Is primary'' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     631914496 bytes

Fixed Size                     1338364 bytes
Variable Size                377488388 bytes
Database Buffers             247463936 bytes
Redo Buffers                   5623808 bytes

contents of Memory Script:
{
   backup as copy current controlfile for standby auxiliary format  '/u01/app/oracle/oradata/HCLDB/control01.ctl';
   restore clone controlfile to  '/u01/app/oracle/flash_recovery_area/HCLDB/control02.ctl' from
 '/u01/app/oracle/oradata/HCLDB/control01.ctl';
}
executing Memory Script

Starting backup at 31-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying standby control file
output file name=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_HCLDB.f tag=TAG20130131T161147 RECID=1 STAMP=806170309
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 31-JAN-13

Starting restore at 31-JAN-13
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=19 device type=DISK

channel ORA_AUX_DISK_1: copied control file copy
Finished restore at 31-JAN-13

contents of Memory Script:
{
   sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database
RMAN-05538: WARNING: implicitly using DB_FILE_NAME_CONVERT

contents of Memory Script:
{
   set newname for tempfile  1 to
 "/u01/app/oracle/oradata/HCLDB/temp01.dbf";
   switch clone tempfile all;
   set newname for datafile  1 to
 "/u01/app/oracle/oradata/HCLDB/system01.dbf";
   set newname for datafile  2 to
 "/u01/app/oracle/oradata/HCLDB/sysaux01.dbf";
   set newname for datafile  3 to
 "/u01/app/oracle/oradata/HCLDB/undotbs01.dbf";
   set newname for datafile  4 to
 "/u01/app/oracle/oradata/HCLDB/users01.dbf";
   backup as copy reuse
   datafile  1 auxiliary format
 "/u01/app/oracle/oradata/HCLDB/system01.dbf"   datafile
 2 auxiliary format
 "/u01/app/oracle/oradata/HCLDB/sysaux01.dbf"   datafile
 3 auxiliary format
 "/u01/app/oracle/oradata/HCLDB/undotbs01.dbf"   datafile
 4 auxiliary format
 "/u01/app/oracle/oradata/HCLDB/users01.dbf"   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/oradata/HCLDB/temp01.dbf in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting backup at 31-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/u01/app/oracle/oradata/HCLDB/system01.dbf
output file name=/u01/app/oracle/oradata/HCLDB/system01.dbf tag=TAG20130131T161159
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:25
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/u01/app/oracle/oradata/HCLDB/sysaux01.dbf
output file name=/u01/app/oracle/oradata/HCLDB/sysaux01.dbf tag=TAG20130131T161159
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:40
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/u01/app/oracle/oradata/HCLDB/undotbs01.dbf
output file name=/u01/app/oracle/oradata/HCLDB/undotbs01.dbf tag=TAG20130131T161159
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u01/app/oracle/oradata/HCLDB/users01.dbf
output file name=/u01/app/oracle/oradata/HCLDB/users01.dbf tag=TAG20130131T161159
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 31-JAN-13

sql statement: alter system archive log current

contents of Memory Script:
{
   backup as copy reuse
   archivelog like  "/u01/app/oracle/flash_recovery_area/HCLDB/archivelog/2013_01_31/o1_mf_1_5_8jnlsxh1_.arc" auxiliary format
 "/u01/app/oracle/flash_recovery_area/HCLDB_STBY/archivelog/2013_01_31/o1_mf_1_5_%u_.arc"   ;
   catalog clone recovery area;
   switch clone datafile all;
}
executing Memory Script

Starting backup at 31-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=5 RECID=4 STAMP=806170517
output file name=/u01/app/oracle/flash_recovery_area/HCLDB_STBY/archivelog/2013_01_31/o1_mf_1_5_06o0qbsn_.arc RECID=0 STAMP=0
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
Finished backup at 31-JAN-13

searching for all files in the recovery area

List of Files Unknown to the Database
=====================================
File Name: /u01/app/oracle/flash_recovery_area/HCLDB_STBY/archivelog/2013_01_31/o1_mf_1_5_06o0qbsn_.arc
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: /u01/app/oracle/flash_recovery_area/HCLDB_STBY/archivelog/2013_01_31/o1_mf_1_5_06o0qbsn_.arc

datafile 1 switched to datafile copy
input datafile copy RECID=1 STAMP=806170525 file name=/u01/app/oracle/oradata/HCLDB/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=2 STAMP=806170525 file name=/u01/app/oracle/oradata/HCLDB/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=3 STAMP=806170525 file name=/u01/app/oracle/oradata/HCLDB/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=4 STAMP=806170525 file name=/u01/app/oracle/oradata/HCLDB/users01.dbf

contents of Memory Script:
{
   set until scn  786126;
   recover
   standby
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 31-JAN-13
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 5 is already on disk as file /u01/app/oracle/flash_recovery_area/HCLDB_STBY/archivelog/2013_01_31/o1_mf_1_5_06o0qbsn_.arc
archived log file name=/u01/app/oracle/flash_recovery_area/HCLDB_STBY/archivelog/2013_01_31/o1_mf_1_5_06o0qbsn_.arc thread=1 sequence=5
media recovery complete, elapsed time: 00:00:01
Finished recover at 31-JAN-13
Finished Duplicate Db at 31-JAN-13


Step12. Start Apply Process on Standby

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered.

 Verify the Physical Standby Database Is Performing Properly

--On primary check database protection mode

SQL> SELECT protection_mode,protection_level FROM v$database;

PROTECTION_MODE      PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

--On standby:

SQL> alter session set nls_date_format='dd-mm-yyyy hh24:mi:ss';

Session altered.

SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

 SEQUENCE# FIRST_TIME          NEXT_TIME
---------- ------------------- -------------------
         5 31-01-2013 16:06:14 31-01-2013 16:15:17

-- Verify that received redo has been applied.

SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

 SEQUENCE# APPLIED
---------- ---------
         5 YES
         6 YES
         7 YES
         8 YES

--- check alert log of primary and standby


Open in Read Only Mode

-- cancel recovery

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;


ALTER DATABASE OPEN READ ONLY;


Again Put in Recovery Mode

SHUTDOWN IMMEDIATE

STARTUP MOUNT

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;



Sunday, January 27, 2013

Step by Step - Duplicating Oracle Database using RMAN Backup with connection to Target database


Step by Step Duplicating Oracle Database using RMAN Backup with connection to Target database:-
Details:

Oracle EE 11.2 on RHEL5
Target Server: 192.168.195.128
Clone Server: 192.168.195.137

As we are duplicating to a different we can use same SID for both Source and Clone. My source DBID is HCL

Step1. Put your target database in Archive log mode.

Step2. Start RMAN at Target and Configure CONTROLFILE AUTOBACKUP ON
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

Take Backup of Target database
RMAN> BACKUP DATABASE PLUS ARCHIVELOG

Step3. Configure tnsnames and listener at source and clone server as below:

At Source Server
--------------------------------------------------------------------
HCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.137)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = HCL)
    )
  )
---------------------------------------------------------------------
At Clone Server
----------------------------------------------------------------------
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = HCL)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = HCL)
    )
  )


LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.137)(PORT = 1521))
  )
------------------------------------------------------------------------

Step4: create orapwd file at clone server's dbs directory
orapwd file=orapwHCL password=oracle entries=10

Step5. Create pfile of Target database and copy pfile to Clone Server's dbs directory
SQL> create pfile from spfile;

Copy pfile to Clone Server
scp oracle@192.168.195.128:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initHCL.ora /u01/app/oracle/product/11.2.0/dbhome_1/dbs/

Step6. Create required directories at Clone server. Here I'm using same filesystem as source so no need to use DB_FILE_NAME_CONVERT

mkdir -p /u01/app/oracle/oradata/HCL
mkdir -p /u01/app/oracle/flash_recovery_area/HCL
mkdir -p /u01/app/oracle/admin/HCL
cd /u01/app/oracle/admin/HCL
mkdir adump dpdump

Step7. Copy backupfile to Clone Server from Source Server
scp -r oracle@192.168.195.128:/u01/app/oracle/flash_recovery_area/HCL/ /u01/app/oracle/flash_recovery_area/

Step8. At Remote Server set ORACLE_SID=HCL and start the Clone Server in NOMOUNT mode
SQL> STARTUP NOMOUNT;

Step9: start RMAN at source and connect RMAN to clone as well
At Source
RMAN TARGET /
connect auxiliary sys/oracle@HCL

***Make sure your Souce Database is in OPEN mode and Clone DB is in NOMOUNT Mode

Now run the Duplicate command # See the response as well

RMAN> DUPLICATE TARGET DATABASE TO HCL
NOFILENAMECHECK;2>

Starting Duplicate Db at 27-JAN-13
using channel ORA_AUX_DISK_1

contents of Memory Script:
{
   sql clone "alter system set  db_name =
 ''HCL'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   sql clone "alter system set  db_unique_name =
 ''HCL'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   shutdown clone immediate;
   startup clone force nomount
   restore clone primary controlfile;
   alter clone database mount;
}
executing Memory Script

sql statement: alter system set  db_name =  ''HCL'' comment= ''Modified by RMAN duplicate'' scope=spfile

sql statement: alter system set  db_unique_name =  ''HCL'' comment= ''Modified by RMAN duplicate'' scope=spfile

Oracle instance shut down

Oracle instance started

Total System Global Area     631914496 bytes

Fixed Size                     1338364 bytes
Variable Size                377488388 bytes
Database Buffers             247463936 bytes
Redo Buffers                   5623808 bytes

Starting restore at 27-JAN-13
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=18 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/HCL/autobackup/2013_01_27/o1_mf_s_805812962_8j9onctk_.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/flash_recovery_area/HCL/autobackup/2013_01_27/o1_mf_s_805812962_8j9onctk_.bkp tag=TAG20130127T125602
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
output file name=/u01/app/oracle/oradata/HCL/control01.ctl
output file name=/u01/app/oracle/flash_recovery_area/HCL/control02.ctl
Finished restore at 27-JAN-13

database mounted

contents of Memory Script:
{
   set until scn  763666;
   set newname for datafile  1 to
 "/u01/app/oracle/oradata/HCL/system01.dbf";
   set newname for datafile  2 to
 "/u01/app/oracle/oradata/HCL/sysaux01.dbf";
   set newname for datafile  3 to
 "/u01/app/oracle/oradata/HCL/undotbs01.dbf";
   set newname for datafile  4 to
 "/u01/app/oracle/oradata/HCL/users01.dbf";
   restore
   clone database
   ;
}
executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 27-JAN-13
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/HCL/system01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/HCL/sysaux01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/HCL/undotbs01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/HCL/users01.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/HCL/backupset/2013_01_27/o1_mf_nnndf_TAG20130127T125432_8j9okjyl_.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/flash_recovery_area/HCL/backupset/2013_01_27/o1_mf_nnndf_TAG20130127T125432_8j9okjyl_.bkp tag=TAG20130127T125432
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:22
Finished restore at 27-JAN-13

contents of Memory Script:
{
   switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy
input datafile copy RECID=1 STAMP=805814774 file name=/u01/app/oracle/oradata/HCL/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=2 STAMP=805814774 file name=/u01/app/oracle/oradata/HCL/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=3 STAMP=805814774 file name=/u01/app/oracle/oradata/HCL/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=4 STAMP=805814774 file name=/u01/app/oracle/oradata/HCL/users01.dbf

contents of Memory Script:
{
   set until scn  763666;
   recover
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 27-JAN-13
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 4 is already on disk as file /u01/app/oracle/flash_recovery_area/HCL/archivelog/2013_01_27/o1_mf_1_4_8j9on8j1_.arc
archived log file name=/u01/app/oracle/flash_recovery_area/HCL/archivelog/2013_01_27/o1_mf_1_4_8j9on8j1_.arc thread=1 sequence=4
media recovery complete, elapsed time: 00:00:00
Finished recover at 27-JAN-13

contents of Memory Script:
{
   shutdown clone immediate;
   startup clone nomount;
   sql clone "alter system set  db_name =
 ''HCL'' comment=
 ''Reset to original value by RMAN'' scope=spfile";
   sql clone "alter system reset  db_unique_name scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

database dismounted
Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     631914496 bytes

Fixed Size                     1338364 bytes
Variable Size                377488388 bytes
Database Buffers             247463936 bytes
Redo Buffers                   5623808 bytes

sql statement: alter system set  db_name =  ''HCL'' comment= ''Reset to original value by RMAN'' scope=spfile

sql statement: alter system reset  db_unique_name scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     631914496 bytes

Fixed Size                     1338364 bytes
Variable Size                377488388 bytes
Database Buffers             247463936 bytes
Redo Buffers                   5623808 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "HCL" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP  1  SIZE 50 M ,
  GROUP  2  SIZE 50 M ,
  GROUP  3  SIZE 50 M
 DATAFILE
  '/u01/app/oracle/oradata/HCL/system01.dbf'
 CHARACTER SET WE8MSWIN1252


contents of Memory Script:
{
   set newname for tempfile  1 to
 "/u01/app/oracle/oradata/HCL/temp01.dbf";
   switch clone tempfile all;
   catalog clone datafilecopy  "/u01/app/oracle/oradata/HCL/sysaux01.dbf",
 "/u01/app/oracle/oradata/HCL/undotbs01.dbf",
 "/u01/app/oracle/oradata/HCL/users01.dbf";
   switch clone datafile all;
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/oradata/HCL/temp01.dbf in control file

cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/HCL/sysaux01.dbf RECID=1 STAMP=805814812
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/HCL/undotbs01.dbf RECID=2 STAMP=805814812
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/HCL/users01.dbf RECID=3 STAMP=805814812

datafile 2 switched to datafile copy
input datafile copy RECID=1 STAMP=805814812 file name=/u01/app/oracle/oradata/HCL/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=805814812 file name=/u01/app/oracle/oradata/HCL/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=805814812 file name=/u01/app/oracle/oradata/HCL/users01.dbf

contents of Memory Script:
{
   Alter clone database open resetlogs;
}
executing Memory Script

database opened
Finished Duplicate Db at 27-JAN-13

RMAN>





Friday, January 18, 2013

RMAN : Recovery of a dropped tablespace


If a tablespace has been dropped, the Tablespace Point In Time Recovery (TSPITR) method cannot be used.

When you drop a tablespace, the controlfile will then no longer have any records of the tablespace which has been dropped. Attempts to use the RMAN RECOVER TABLESPACE command will return the RMAN error RMAN-06019 – “could not translate tablespace name” as shown below.

Step 1. Lets create a tablespace droptest first.
SQL> create tablespace droptest datafile '/u01/app/oracle/oradata/HCL/droptest01.dbf' size 50m;

Tablespace created.

Step 2. Delete this tablespace including contents and datafiles.
SQL> drop tablespace droptest including contents and datafiles;

Tablespace dropped.

Step 3. Now try to recover the dropped tablespace using RMAN
RMAN> recover tablespace droptest;

Starting recover at 18-JAN-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=43 device type=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 01/18/2013 20:43:24
RMAN-20202: Tablespace not found in the recovery catalog
RMAN-06019: could not translate tablespace name "DROPTEST"

RMAN>
See the error - RMAN-20202: Tablespace not found in the recovery catalog

Step 4. So to recover the dropped tablespace, we have two options:
1) Do a point in time recovery of the whole database until the time the tablespace was dropped.
2) Create a clone of the database from a valid backup, export the required tables from the tablespace which has been dropped, recreate the tablespace and then import the tables from the clone.

The first option will require the outage of the entire database and the entire database will be rolled back in tine in order to recover the tablespace.The second option can be peformed online, but we will need to factor in the disk space requirements to create a clone of the database from which the tablespace has been dropped.

Step 5. Lets create the same tablespace again and take a full backup of database including controlfile.

SQL> create tablespace droptest datafile '/u01/app/oracle/oradata/HCL/droptest01.dbf' size 50m;

Tablespace created.

Take full backup.

RMAN> backup database plus archivelog;

Drop the tablespace DROPTEST again and we will recover it as below.

Step 6. Start the database in nomount stage and restore the controlfile from backup.
SQL> startup nomount
ORACLE instance started.

Total System Global Area  631914496 bytes
Fixed Size                  1338364 bytes
Variable Size             394265604 bytes
Database Buffers          230686720 bytes
Redo Buffers                5623808 bytes

Step 7. Next We need to restore controlfile from backup which contains metadata of tablespace DROPTEST.

RMAN> restore controlfile from autobackup;

Starting restore at 18-JAN-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=17 device type=DISK

recovery area destination: /u01/app/oracle/flash_recovery_area
database name (or database unique name) used for search: HCL
channel ORA_DISK_1: AUTOBACKUP /u01/app/oracle/flash_recovery_area/HCL/autobackup/2013_01_18/o1_mf_s_805064205_8hltfpnt_.bkp found in the recovery area
AUTOBACKUP search with format "%F" not attempted because DBID was not set
channel ORA_DISK_1: restoring control file from AUTOBACKUP /u01/app/oracle/flash_recovery_area/HCL/autobackup/2013_01_18/o1_mf_s_805064205_8hltfpnt_.bkp
channel ORA_DISK_1: control file restore from AUTOBACKUP complete
output file name=/u01/app/oracle/oradata/HCL/control01.ctl
output file name=/u01/app/oracle/flash_recovery_area/HCL/control02.ctl
Finished restore at 18-JAN-13

Now restored controlfile contains the metadata of dropped Tablespace DROPTEST.

RMAN> report schema;

------

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    670      SYSTEM               ***     /u01/app/oracle/oradata/HCL/system01.dbf
2    450      SYSAUX               ***     /u01/app/oracle/oradata/HCL/sysaux01.dbf
3    30       UNDOTBS1             ***     /u01/app/oracle/oradata/HCL/undotbs01.dbf
4    5        USERS                ***     /u01/app/oracle/oradata/HCL/users01.dbf
5    0        DROPTEST             ***     /u01/app/oracle/oradata/HCL/droptest01.dbf
6    20       TEMP                 32767   /u01/app/oracle/oradata/HCL/temp01.dbf

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    20       TEMP                 32767       /u01/app/oracle/oradata/HCL/temp01.dbf



The alert log will also show the time when the tablespace was dropped. We can also see that a controlfile autobackup has taken place after the tablespace was dropped

Fri Jan 18 21:01:20 2013
drop tablespace droptest including contents and datafiles
Deleted file /u01/app/oracle/oradata/HCL/droptest01.dbf
Completed: drop tablespace droptest including contents and datafiles

Step 7.Now that we know the time the tablespace was dropped, we can do a point in time recovery of the DATABASE in order to recover the tablespace which has been dropped.

RMAN> run {
set until time "to_date('18-JAN-2013 21:01:00','DD-MON-YYYY HH24:Mi:SS')";
restore database;
recover database;
}
2> 3> 4> 5>
executing command: SET until clause

Starting restore at 18-JAN-13
using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/HCL/system01.dbf
channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/HCL/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/HCL/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/HCL/users01.dbf
channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/HCL/droptest01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/HCL/backupset/2013_01_18/o1_mf_nnndf_TAG20130118T205505_8hltbl5x_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/flash_recovery_area/HCL/backupset/2013_01_18/o1_mf_nnndf_TAG20130118T205505_8hltbl5x_.bkp tag=TAG20130118T205505
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:28
Finished restore at 18-JAN-13

Starting recover at 18-JAN-13
using channel ORA_DISK_1

starting media recovery

archived log for thread 1 with sequence 2 is already on disk as file /u01/app/oracle/flash_recovery_area/HCL/archivelog/2013_01_18/o1_mf_1_2_8hltfmh8_.arc
archived log for thread 1 with sequence 3 is already on disk as file /u01/app/oracle/oradata/HCL/redo03.log
archived log file name=/u01/app/oracle/flash_recovery_area/HCL/archivelog/2013_01_18/o1_mf_1_2_8hltfmh8_.arc thread=1 sequence=2
archived log file name=/u01/app/oracle/oradata/HCL/redo03.log thread=1 sequence=3
media recovery complete, elapsed time: 00:00:01
Finished recover at 18-JAN-13

RMAN> alter database open resetlogs;

database opened

Step 8 Now check the the restored tablespace.

SQL> select file_name,bytes from dba_data_files where tablespace_name='DROPTEST';

FILE_NAME                                               BYTES
-------------------------------------------------- ----------
/u01/app/oracle/oradata/HCL/droptest01.dbf           52428800





RMAN 'Duplicate From Active Database'

Metalink notes - RMAN 'Duplicate From Active Database' Feature in 11G [ID 452868.1]

***Active database duplication Method***

Target Database- HCL
Auxiliary Database- AUX

Step1. Create a pfile for AUX database and create the required directory as well.

db_name='AUX'
diagnostic_dest='/u01/app/oracle'
DB_FILE_name_CONVERT=('/u01/app/oracle/oradata/HCL','/u01/app/oracle/oradata/AUX') 
LOG_FILE_NAME_CONVERT=( '/u01/app/oracle/oradata/HCL','/u01/app/oracle/oradata/AUX')
sga_target=377487360
control_files='/u01/app/oracle/oradata/AUX/control01.ctl'
compatible='11.2.0.0.0'

Step2. Create password file for Auxilary database

orapwd file=orapwAUX password=oracle entries=10

Step3. Configure Listener on Aux
====================================================
SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (GLOBAL_DBNAME = AUX) 
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1) 
      (SID_NAME = AUX) 
    ) 
  )


LISTENER = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.128)(PORT = 1521)) 
  )
====================================================
Configure Configure Listener on Target
====================================================
SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (GLOBAL_DBNAME = HCL) 
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1) 
      (SID_NAME = HCL) 
    ) 
  )


LISTENER = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.134)(PORT = 1521)) 
  )
===========================================================

Configure tnsname.ora (In the TARGET and AUXILIARY host)
=================================================================
AUX = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.128)(PORT = 1521)) 
    (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = AUX) 
    ) 
  ) 


HCL = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.134)(PORT = 1521)) 
    (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = HCL)
    ) 
  )
======================================================================
Execute on the TARGET and AUXILIARY host
% tnsping HCL
% tnsping AUX


Step4. Start Auxilary database to nomount stage
SQL> startup nomount pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initAUX.ora';
ORACLE instance started.

Total System Global Area  376635392 bytes
Fixed Size                  1336652 bytes
Variable Size             121637556 bytes
Database Buffers          247463936 bytes
Redo Buffers                6197248 bytes
SQL> exit

Step.5 
Start RMAN to connect both DB Instances

RMAN> connect target sys/oracle@HCL

connected to target database: HCL (DBID=931429395)

RMAN> connect AUXILIARY sys/oracle@AUX

connected to auxiliary database: AUX (not mounted)

RMAN> 
=================

DUPLICATE TARGET DATABASE TO 'AUX' FROM ACTIVE DATABASE DB_FILE_NAME_CONVERT '/u01/app/oracle/oradata/HCL','/u01/app/oracle/oradata/AUX';

See output below

RMAN> DUPLICATE TARGET DATABASE TO 'AUX' FROM ACTIVE DATABASE DB_FILE_NAME_CONVERT '/u01/app/oracle/oradata/HCL','/u01/app/oracle/oradata/AUX';

Starting Duplicate Db at 13-JAN-13
using channel ORA_AUX_DISK_1

contents of Memory Script:
{
   sql clone "create spfile from memory";
}
executing Memory Script

sql statement: create spfile from memory

contents of Memory Script:
{
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     376635392 bytes

Fixed Size                     1336652 bytes
Variable Size                125831860 bytes
Database Buffers             243269632 bytes
Redo Buffers                   6197248 bytes

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''HCL'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   sql clone "alter system set  db_unique_name = 
 ''AUX'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   shutdown clone immediate;
   startup clone force nomount
   backup as copy current controlfile auxiliary format  '/u01/app/oracle/oradata/AUX/control01.dbf';
   alter clone database mount;
}
executing Memory Script

sql statement: alter system set  db_name =  ''HCL'' comment= ''Modified by RMAN duplicate'' scope=spfile

sql statement: alter system set  db_unique_name =  ''AUX'' comment= ''Modified by RMAN duplicate'' scope=spfile

Oracle instance shut down

Oracle instance started

Total System Global Area     376635392 bytes

Fixed Size                     1336652 bytes
Variable Size                125831860 bytes
Database Buffers             243269632 bytes
Redo Buffers                   6197248 bytes

Starting backup at 13-JAN-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=39 device type=DISK
channel ORA_DISK_1: starting datafile copy
copying current control file
output file name=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_HCL.f tag=TAG20130113T173439 RECID=7 STAMP=804620080
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 13-JAN-13

database mounted

contents of Memory Script:
{
   set newname for datafile  1 to 
 "/u01/app/oracle/oradata/AUX/system01.dbf";
   set newname for datafile  2 to 
 "/u01/app/oracle/oradata/AUX/sysaux01.dbf";
   set newname for datafile  3 to 
 "/u01/app/oracle/oradata/AUX/undotbs01.dbf";
   set newname for datafile  4 to 
 "/u01/app/oracle/oradata/AUX/users01.dbf";
   backup as copy reuse
   datafile  1 auxiliary format 
 "/u01/app/oracle/oradata/AUX/system01.dbf"   datafile 
 2 auxiliary format 
 "/u01/app/oracle/oradata/AUX/sysaux01.dbf"   datafile 
 3 auxiliary format 
 "/u01/app/oracle/oradata/AUX/undotbs01.dbf"   datafile 
 4 auxiliary format 
 "/u01/app/oracle/oradata/AUX/users01.dbf"   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting backup at 13-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/u01/app/oracle/oradata/HCL/system01.dbf
output file name=/u01/app/oracle/oradata/AUX/system01.dbf tag=TAG20130113T173446
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:05
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/u01/app/oracle/oradata/HCL/sysaux01.dbf
output file name=/u01/app/oracle/oradata/AUX/sysaux01.dbf tag=TAG20130113T173446
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:39
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/u01/app/oracle/oradata/HCL/undotbs01.dbf
output file name=/u01/app/oracle/oradata/AUX/undotbs01.dbf tag=TAG20130113T173446
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u01/app/oracle/oradata/HCL/users01.dbf
output file name=/u01/app/oracle/oradata/AUX/users01.dbf tag=TAG20130113T173446
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 13-JAN-13

sql statement: alter system archive log current

contents of Memory Script:
{
   backup as copy reuse
   archivelog like  "/u01/app/oracle/flash_recovery_area/HCL/archivelog/2013_01_13/o1_mf_1_3_8h58tfxh_.arc" auxiliary format 
 "/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_3_804600981.dbf"   ;
   catalog clone archivelog  "/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_3_804600981.dbf";
   switch clone datafile all;
}
executing Memory Script

Starting backup at 13-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=3 RECID=2 STAMP=804620197
output file name=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_3_804600981.dbf RECID=0 STAMP=0
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
Finished backup at 13-JAN-13

cataloged archived log
archived log file name=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_3_804600981.dbf RECID=2 STAMP=804620199

datafile 1 switched to datafile copy
input datafile copy RECID=7 STAMP=804620199 file name=/u01/app/oracle/oradata/AUX/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=8 STAMP=804620199 file name=/u01/app/oracle/oradata/AUX/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=9 STAMP=804620199 file name=/u01/app/oracle/oradata/AUX/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=10 STAMP=804620199 file name=/u01/app/oracle/oradata/AUX/users01.dbf

contents of Memory Script:
{
   set until scn  768903;
   recover
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 13-JAN-13
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=19 device type=DISK

starting media recovery

archived log for thread 1 with sequence 3 is already on disk as file /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_3_804600981.dbf
archived log file name=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_3_804600981.dbf thread=1 sequence=3
media recovery complete, elapsed time: 00:00:01
Finished recover at 13-JAN-13

contents of Memory Script:
{
   shutdown clone immediate;
   startup clone nomount;
   sql clone "alter system set  db_name = 
 ''AUX'' comment=
 ''Reset to original value by RMAN'' scope=spfile";
   sql clone "alter system reset  db_unique_name scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

database dismounted
Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     376635392 bytes

Fixed Size                     1336652 bytes
Variable Size                125831860 bytes
Database Buffers             243269632 bytes
Redo Buffers                   6197248 bytes

sql statement: alter system set  db_name =  ''AUX'' comment= ''Reset to original value by RMAN'' scope=spfile

sql statement: alter system reset  db_unique_name scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     376635392 bytes

Fixed Size                     1336652 bytes
Variable Size                125831860 bytes
Database Buffers             243269632 bytes
Redo Buffers                   6197248 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "AUX" RESETLOGS ARCHIVELOG 
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP  1 ( '/u01/app/oracle/oradata/AUX/redo01.log' ) SIZE 50 M  REUSE,
  GROUP  2 ( '/u01/app/oracle/oradata/AUX/redo02.log' ) SIZE 50 M  REUSE,
  GROUP  3 ( '/u01/app/oracle/oradata/AUX/redo03.log' ) SIZE 50 M  REUSE
 DATAFILE
  '/u01/app/oracle/oradata/AUX/system01.dbf'
 CHARACTER SET WE8MSWIN1252


contents of Memory Script:
{
   set newname for tempfile  1 to 
 "/u01/app/oracle/oradata/AUX/temp01.dbf";
   switch clone tempfile all;
   catalog clone datafilecopy  "/u01/app/oracle/oradata/AUX/sysaux01.dbf", 
 "/u01/app/oracle/oradata/AUX/undotbs01.dbf", 
 "/u01/app/oracle/oradata/AUX/users01.dbf";
   switch clone datafile all;
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/oradata/AUX/temp01.dbf in control file

cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/AUX/sysaux01.dbf RECID=1 STAMP=804620218
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/AUX/undotbs01.dbf RECID=2 STAMP=804620218
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/AUX/users01.dbf RECID=3 STAMP=804620218

datafile 2 switched to datafile copy
input datafile copy RECID=1 STAMP=804620218 file name=/u01/app/oracle/oradata/AUX/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=804620218 file name=/u01/app/oracle/oradata/AUX/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=804620218 file name=/u01/app/oracle/oradata/AUX/users01.dbf

contents of Memory Script:
{
   Alter clone database open resetlogs;
}
executing Memory Script

database opened
Finished Duplicate Db at 13-JAN-13

RMAN>