Introduction
Point-in-Time Recovery (PITR) is an Oracle RMAN recovery technique used to recover a database to a specific point in time, SCN, or log sequence. It is particularly useful when unwanted changes, accidental data deletion, or logical corruption occurs and the database needs to be restored to a known consistent state before the incident.
In this article, we will demonstrate how to perform an RMAN Point-in-Time Recovery using database backups, incremental backups, archived redo logs, and the control file. We will restore the database to a specific point in time and verify the database after recovery.
PITR Scenario
For this demonstration, we have an Oracle database named CDBORCL. We will first take an RMAN Level 0 backup followed by Level 1 incremental backups, archived redo log backups, and control file backups.
After taking the required backups, we will perform additional INSERT and UPDATE operations on a sample table. We will then identify a specific recovery point using the database SCN and timestamp.
In this demonstration, we will perform an RMAN backup-based database duplication to create a duplicate database from the available RMAN backups. The duplicate database will then be used to demonstrate Point-in-Time Recovery (PITR) to the required recovery point.
RMAN SET UNTIL Clause
The SET UNTIL clause is used to specify the target recovery point during RMAN recovery. The recovery can be performed based on time, SCN, or archived redo log sequence.
1. UNTIL TIME
Recovers the database up to a specified date and time.
SET UNTIL TIME "TO_DATE('01-JAN-2026 00:00:00',
'DD-MON-YYYY HH24:MI:SS')";
2. UNTIL SCN
Recovers the database up to a specific System Change Number (SCN).
SET UNTIL SCN 1234567;
This is useful when the exact SCN corresponding to the required recovery point is known.
3. UNTIL SEQUENCE
Recovers the database up to a specified archived redo log sequence number.
SET UNTIL SEQUENCE 100;
In a RAC environment, the redo thread can also be specified:
SET UNTIL SEQUENCE 100 THREAD 1;
Summary
| Option | Purpose |
|---|---|
| SET UNTIL TIME | Recover to a specific date and time |
| SET UNTIL SCN | Recover to a specific SCN |
| SET UNTIL SEQUENCE | Recover up to a specific archived redo log sequence |
Prerequisites
- A valid RMAN backup.
- An uninterrupted sequence of archived redo logs (or their RMAN backups) spanning from the time of the full backup up to the target recovery time.
Environment Used in This Guide
These are the source and target databases used throughout this walkthrough. Swap them for your own hostnames and database names, just keep the same values consistent across every step below.
| Hostname | orcl.oraeasy.com |
|---|---|
| Database Name | CDBORCL |
| Database Version | 26ai (23.26) |
| Hostname | orcldev.oraeasy.com |
|---|---|
| Database Name | ORCLDEV |
| Database Version | 26ai (23.26) |
Step 1: Create a Test User and Table at the Source
We create a small table at the source database so we have a simple way to confirm the data made it across after PITR completes.
SQL> def
DEFINE _DATE = "10-AUG-26" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "cdborcl" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "2326010000" (CHAR)
DEFINE _EDITOR = "vi" (CHAR)
DEFINE _O_VERSION = "Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production
Version 23.26.1.0.0" (CHAR)
DEFINE _O_RELEASE = "2326010000" (CHAR)
SQL>
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDBORCL READ WRITE NO
SQL>
SQL> alter session set container=PDBORCL;
Session altered.
SQL> create user test identified by your@password;
User created.
SQL> grant connect,resource to test;
Grant succeeded.
SQL> alter user test quota unlimited on users;
User altered.
SQL> conn test@pdborcl
Enter password:
Connected.
SQL>
SQL> show user
USER is "TEST"
SQL>
SQL> CREATE TABLE employees (
emp_id NUMBER,
emp_name VARCHAR2(50),
department VARCHAR2(50),
salary NUMBER
);
Table created.
SQL> INSERT INTO employees VALUES (101, 'Rahul', 'IT', 50000);
1 row created.
SQL> INSERT INTO employees VALUES (102, 'Amit', 'HR', 45000);
1 row created.
SQL> INSERT INTO employees VALUES (103, 'Priya', 'Finance', 55000);
1 row created.
SQL> COMMIT;
Commit complete.
SQL> SELECT * FROM employees;
EMP_ID EMP_NAME DEPARTMENT SALARY
---------- ------------- -------------- ----------
101 Rahul IT 50000
102 Amit HR 45000
103 Priya Finance 55000
SQL> alter session set nls_date_format= 'DD-MON-YYYY HH24:MI:SS';
Session altered.
SQL> select sysdate from dual;
SYSDATE
--------------------
10-AUG-2026 09:03:08
SQL>
Step 2: Create Directories for Backups
Separate directories for the L0 baseline and each L1 incremental keep the backup pieces organized by level, which makes it much easier to identify what needs transferring to the target later and in what order they need to be applied during recovery.
[oracle@orcl ~]$ mkdir -p /u01/app2/oracle/rman/L0
[oracle@orcl ~]$ mkdir -p /u01/app2/oracle/rman/L1_1
[oracle@orcl ~]$ mkdir -p /u01/app2/oracle/rman/L1_2
[oracle@orcl ~]$ mkdir -p /u01/app2/oracle/rman/L1_3
Step 3: Take the L0 Backup
The L0 backup is effectively a full database backup, and it serves as the baseline that every later incremental will be applied on top of during recovery. Alongside the datafiles, we also back up all archived logs and the current control file, since a complete recovery set needs all three.
[oracle@orcl ~]$ rman target /
Recovery Manager: Release 23.26.1.0.0 - Production on Mon Aug 10 09:12:27 2026
Version 23.26.1.0.0
Copyright (c) 1982, 2026, Oracle and/or its affiliates. All rights reserved.
connected to target database: CDBORCL (DBID=3216361938)
RMAN>
RMAN> report schema;
report schema;
using target database control file instead of recovery catalog
Report of database schema for database with db_unique_name CDBORCL
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 1500 SYSTEM YES /u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_system_nymt4wnr_.dbf
3 1000 SYSAUX NO /u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_sysaux_nymt8k0t_.dbf
4 750 UNDOTBS1 YES /u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_undotbs1_nymtb7vf_.dbf
5 650 PDB$SEED:SYSTEM NO /u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_system_nymwog0k_.dbf
6 610 PDB$SEED:SYSAUX NO /u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_sysaux_nymwog10_.dbf
7 5 USERS NO /u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_users_nymtb90b_.dbf
8 245 PDB$SEED:UNDOTBS1 NO /u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_undotbs1_nymwog17_.dbf
9 650 PDBORCL:SYSTEM YES /u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_system_nymz5qxb_.dbf
10 680 PDBORCL:SYSAUX NO /u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf
11 245 PDBORCL:UNDOTBS1 YES /u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf
12 5 PDBORCL:USERS NO /u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf
13 1024 PDBORCL:TEST1 NO /u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf
14 500 PDBORCL:TEST_TDE NO /u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 221 TEMP 32767 /u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_temp_nymtf5mn_.tmp
2 211 PDB$SEED:TEMP 32767 /u01/app/oracle/oradata/CDBORCL/datafile/temp012026-04-23_15-52-27-082-PM.dbf
3 211 PDBORCL:TEMP 32767 /u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_temp_nymz5r3k_.dbf
RMAN>
RMAN> RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
BACKUP AS BACKUPSET
INCREMENTAL LEVEL 0
DATABASE
FORMAT '/u01/app2/oracle/rman/L0/db_L0_%U.bkp';
BACKUP AS BACKUPSET
ARCHIVELOG ALL
FORMAT '/u01/app2/oracle/rman/L0/arch_%U.bkp';
BACKUP CURRENT CONTROLFILE
FORMAT '/u01/app2/oracle/rman/L0/controlfile_%U.bkp';
RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
}
RUN {
2> ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
3> ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
4> BACKUP AS BACKUPSET
5> INCREMENTAL LEVEL 0
6> DATABASE
7> FORMAT '/u01/app2/oracle/rman/L0/db_L0_%U.bkp';
8>
9> BACKUP AS BACKUPSET
10> ARCHIVELOG ALL
11> FORMAT '/u01/app2/oracle/rman/L0/arch_%U.bkp';
12>
13> BACKUP CURRENT CONTROLFILE
14> FORMAT '/u01/app2/oracle/rman/L0/controlfile_%U.bkp';
15>
16> RELEASE CHANNEL c1;
17> RELEASE CHANNEL c2;
18>
}
allocated channel: c1
channel c1: SID=292 device type=DISK
allocated channel: c2
channel c2: SID=71 device type=DISK
Starting backup at 10-AUG-26
channel c1: starting incremental level 0 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_system_nymt4wnr_.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_undotbs1_nymtb7vf_.dbf
channel c1: starting piece 1 at 10-AUG-26
channel c2: starting incremental level 0 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00003 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_sysaux_nymt8k0t_.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_users_nymtb90b_.dbf
channel c2: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L0/db_L0_0er5ii4j_14_1_1.bkp tag=TAG20260810T091250 comment=NONE
channel c2: backup set complete, elapsed time: 00:01:45
channel c2: starting incremental level 0 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00013 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf
input datafile file number=00014 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf
input datafile file number=00011 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf
channel c2: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L0/db_L0_0f89ii7v_15_1_1.bkp tag=TAG20260810T091250 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:15
channel c2: starting incremental level 0 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00010 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf
input datafile file number=00009 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_system_nymz5qxb_.dbf
input datafile file number=00012 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf
channel c2: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L0/db_L0_0dr5ii4i_13_1_1.bkp tag=TAG20260810T091250 comment=NONE
channel c1: backup set complete, elapsed time: 00:02:42
channel c1: starting incremental level 0 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_sysaux_nymwog10_.dbf
input datafile file number=00008 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_undotbs1_nymwog17_.dbf
channel c1: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L0/db_L0_0htaii9k_17_1_1.bkp tag=TAG20260810T091250 comment=NONE
channel c1: backup set complete, elapsed time: 00:01:16
channel c1: starting incremental level 0 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00005 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_system_nymwog0k_.dbf
channel c1: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L0/db_L0_0go9ii8g_16_1_1.bkp tag=TAG20260810T091250 comment=NONE
channel c2: backup set complete, elapsed time: 00:01:52
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L0/db_L0_0j8diic0_19_1_1.bkp tag=TAG20260810T091250 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:25
Finished backup at 10-AUG-26
Starting backup at 10-AUG-26
current log archived
channel c1: starting archived log backup set
channel c1: specifying archived log(s) in backup set
input archived log thread=1 sequence=66 RECID=53 STAMP=1240909715
channel c1: starting piece 1 at 10-AUG-26
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=71 RECID=57 STAMP=1240909716
input archived log thread=1 sequence=72 RECID=58 STAMP=1240909718
input archived log thread=1 sequence=73 RECID=59 STAMP=1240910241
channel c2: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L0/arch_0lbeiid3_21_1_1.bkp tag=TAG20260810T091721 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:01
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=67 RECID=52 STAMP=1240909715
input archived log thread=1 sequence=68 RECID=54 STAMP=1240909716
input archived log thread=1 sequence=69 RECID=55 STAMP=1240909716
input archived log thread=1 sequence=70 RECID=56 STAMP=1240909716
channel c2: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L0/arch_0mdeiid5_22_1_1.bkp tag=TAG20260810T091721 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:01
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L0/arch_0kaeiid2_20_1_1.bkp tag=TAG20260810T091721 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:10
Finished backup at 10-AUG-26
Starting backup at 10-AUG-26
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
including current control file in backup set
channel c1: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L0/controlfile_0nqeiide_23_1_1.bkp tag=TAG20260810T091733 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 10-AUG-26
Starting Control File and SPFILE Autobackup at 10-AUG-26
piece handle=/u01/app/oracle/fast_recovery_area/CDBORCL/autobackup/2026_08_10/o1_mf_s_1240910260_o7llgwj4_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 10-AUG-26
released channel: c1
released channel: c2
RMAN>
Step 4: Add Some Data to the Table
Adding a few records and noting the exact timing gives us a known checkpoint for the data changes that happened after the L0 backup but before the first L1, useful later for confirming exactly which changes each incremental backup actually captured.
SQL> show user
USER is "TEST"
SQL>
SQL> INSERT INTO employees VALUES (104, 'Neha', 'IT', 60000);
1 row created.
SQL> INSERT INTO employees VALUES (105, 'Rohit', 'Sales', 48000);
1 row created.
SQL> UPDATE employees
SET salary = 55000
WHERE emp_id = 101;
1 row updated.
SQL> UPDATE employees
SET department = 'Finance'
WHERE emp_id = 102;
1 row updated.
SQL> commit;
Commit complete.
SQL> SELECT * FROM employees ORDER BY emp_id;
EMP_ID EMP_NAME DEPARTMENT SALARY
---------- ------------- ------------- ----------
101 Rahul IT 55000
102 Amit Finance 45000
103 Priya Finance 55000
104 Neha IT 60000
105 Rohit Sales 48000
SQL> alter session set nls_date_format= 'DD-MON-YYYY HH24:MI:SS';
Session altered.
SQL> select sysdate from dual;
SYSDATE
--------------------
10-AUG-2026 10:33:41
SQL>
Step 5: Take the First L1 Backup
By default, an incremental level 1 backup in RMAN is differential, meaning it only backs up blocks that changed since the last incremental backup at level 1 or level 0, whichever is more recent. That's why the output below shows several datafiles being skipped as unchanged, they haven't been touched since the L0, so there's nothing new to capture yet.
RMAN> RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
BACKUP AS BACKUPSET
INCREMENTAL LEVEL 1
DATABASE
FORMAT '/u01/app2/oracle/rman/L1_1/db_L1_%U.bkp';
BACKUP AS BACKUPSET
ARCHIVELOG ALL
FORMAT '/u01/app2/oracle/rman/L1_1/arch_%U.bkp';
BACKUP CURRENT CONTROLFILE
FORMAT '/u01/app2/oracle/rman/L1_1/controlfile_%U.bkp';
RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
}
RUN {
2> ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
3> ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
4>
5> BACKUP AS BACKUPSET
6> INCREMENTAL LEVEL 1
7> DATABASE
8> FORMAT '/u01/app2/oracle/rman/L1_1/db_L1_%U.bkp';
9>
10> BACKUP AS BACKUPSET
11> ARCHIVELOG ALL
12> FORMAT '/u01/app2/oracle/rman/L1_1/arch_%U.bkp';
13>
14> BACKUP CURRENT CONTROLFILE
15> FORMAT '/u01/app2/oracle/rman/L1_1/controlfile_%U.bkp';
16>
17> RELEASE CHANNEL c1;
18> RELEASE CHANNEL c2;
19>
}
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=301 device type=DISK
allocated channel: c2
channel c2: SID=60 device type=DISK
Starting backup at 10-AUG-26
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_system_nymt4wnr_.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_undotbs1_nymtb7vf_.dbf
channel c1: starting piece 1 at 10-AUG-26
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00003 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_sysaux_nymt8k0t_.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_users_nymtb90b_.dbf
channel c2: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_1/db_L1_0pb0nmv3_25_1_1.bkp tag=TAG20260810T103515 comment=NONE
channel c1: backup set complete, elapsed time: 00:01:05
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00013 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf
input datafile file number=00014 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf
input datafile file number=00011 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf
channel c1: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_1/db_L1_0qb0nmv3_26_1_1.bkp tag=TAG20260810T103515 comment=NONE
channel c2: backup set complete, elapsed time: 00:01:05
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00010 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf
input datafile file number=00009 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_system_nymz5qxb_.dbf
input datafile file number=00012 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf
channel c2: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_1/db_L1_0rc2nn14_27_1_1.bkp tag=TAG20260810T103515 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:08
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_sysaux_nymwog10_.dbf
skipping datafile 00006 because it has not changed
input datafile file number=00008 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_undotbs1_nymwog17_.dbf
skipping datafile 00008 because it has not changed
channel c1: backup cancelled because all files were skipped
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00005 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_system_nymwog0k_.dbf
skipping datafile 00005 because it has not changed
channel c1: backup cancelled because all files were skipped
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_1/db_L1_0sd2nn15_28_1_1.bkp tag=TAG20260810T103515 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:36
Finished backup at 10-AUG-26
Starting backup at 10-AUG-26
current log archived
channel c1: starting archived log backup set
channel c1: specifying archived log(s) in backup set
input archived log thread=1 sequence=66 RECID=53 STAMP=1240909715
channel c1: starting piece 1 at 10-AUG-26
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=74 RECID=60 STAMP=1240911138
input archived log thread=1 sequence=75 RECID=61 STAMP=1240912038
input archived log thread=1 sequence=76 RECID=62 STAMP=1240912938
input archived log thread=1 sequence=77 RECID=63 STAMP=1240913836
input archived log thread=1 sequence=78 RECID=64 STAMP=1240914737
input archived log thread=1 sequence=79 RECID=65 STAMP=1240915018
channel c2: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_1/arch_10j3nn2b_32_1_1.bkp tag=TAG20260810T103658 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:03
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=67 RECID=52 STAMP=1240909715
input archived log thread=1 sequence=68 RECID=54 STAMP=1240909716
input archived log thread=1 sequence=69 RECID=55 STAMP=1240909716
input archived log thread=1 sequence=70 RECID=56 STAMP=1240909716
input archived log thread=1 sequence=71 RECID=57 STAMP=1240909716
input archived log thread=1 sequence=72 RECID=58 STAMP=1240909718
input archived log thread=1 sequence=73 RECID=59 STAMP=1240910241
channel c2: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_1/arch_0vj3nn2b_31_1_1.bkp tag=TAG20260810T103658 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:04
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_1/arch_11n3nn2f_33_1_1.bkp tag=TAG20260810T103658 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:01
Finished backup at 10-AUG-26
Starting backup at 10-AUG-26
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
including current control file in backup set
channel c1: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_1/controlfile_12s3nn2h_34_1_1.bkp tag=TAG20260810T103705 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 10-AUG-26
Starting Control File and SPFILE Autobackup at 10-AUG-26
piece handle=/u01/app/oracle/fast_recovery_area/CDBORCL/autobackup/2026_08_10/o1_mf_s_1240915030_o7lq3ykx_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 10-AUG-26
released channel: c1
released channel: c2
RMAN>
Step 6: Make More Changes to the Table
Adding and updating more rows here creates the next block of changes, this is exactly what the second L1 backup will capture, giving us another distinct, identifiable checkpoint in the data's history.
SQL> show user
USER is "TEST"
SQL>
SQL> INSERT INTO employees VALUES (106, 'Sneha', 'HR', 52000);
1 row created.
SQL> INSERT INTO employees VALUES (107, 'Vikas', 'Finance', 58000);
1 row created.
SQL> commit;
Commit complete.
SQL> set lines 333 pages 333
SQL> UPDATE employees SET salary = salary + 5000
WHERE department = 'IT';
2 rows updated.
SQL> commit;
Commit complete.
SQL> select * from employees order by 1;
EMP_ID EMP_NAME DEPARTMENT SALARY
---------- --------------- -------------- ----------
101 Rahul IT 60000
102 Amit Finance 45000
103 Priya Finance 55000
104 Neha IT 65000
105 Rohit Sales 48000
106 Sneha HR 52000
107 Vikas Finance 58000
7 rows selected.
SQL> alter session set nls_date_format= 'DD-MON-YYYY HH24:MI:SS';
Session altered.
SQL> select sysdate from dual;
SYSDATE
--------------------
10-AUG-2026 11:30:00
Step 7: Take the Second L1 Backup
This incremental captures everything changed since the first L1, cumulatively, so recovering through this point only needs the L0 plus these two L1 backups, not every individual change in between.
RMAN> RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
BACKUP AS BACKUPSET
INCREMENTAL LEVEL 1
DATABASE
FORMAT '/u01/app2/oracle/rman/L1_2/db_L1_%U.bkp';
BACKUP AS BACKUPSET
ARCHIVELOG ALL
FORMAT '/u01/app2/oracle/rman/L1_2/arch_%U.bkp';
BACKUP CURRENT CONTROLFILE
FORMAT '/u01/app2/oracle/rman/L1_2/controlfile_%U.bkp';
RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
}
RUN {
2> ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
3> ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
4>
5> BACKUP AS BACKUPSET
6> INCREMENTAL LEVEL 1
7> DATABASE
8> FORMAT '/u01/app2/oracle/rman/L1_2/db_L1_%U.bkp';
9>
10> BACKUP AS BACKUPSET
11> ARCHIVELOG ALL
12> FORMAT '/u01/app2/oracle/rman/L1_2/arch_%U.bkp';
13>
14> BACKUP CURRENT CONTROLFILE
15> FORMAT '/u01/app2/oracle/rman/L1_2/controlfile_%U.bkp';
16>
17> RELEASE CHANNEL c1;
18> RELEASE CHANNEL c2;
19>
}
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=324 device type=DISK
allocated channel: c2
channel c2: SID=63 device type=DISK
Starting backup at 10-AUG-26
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_system_nymt4wnr_.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_undotbs1_nymtb7vf_.dbf
channel c1: starting piece 1 at 10-AUG-26
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00003 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_sysaux_nymt8k0t_.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_users_nymtb90b_.dbf
channel c2: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_2/db_L1_14m8qq7e_36_1_1.bkp tag=TAG20260810T113053 comment=NONE
channel c1: backup set complete, elapsed time: 00:01:05
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00013 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf
input datafile file number=00014 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf
input datafile file number=00011 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf
channel c1: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_2/db_L1_15m8qq7e_37_1_1.bkp tag=TAG20260810T113053 comment=NONE
channel c2: backup set complete, elapsed time: 00:01:06
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00010 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf
input datafile file number=00009 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_system_nymz5qxb_.dbf
input datafile file number=00012 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf
channel c2: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_2/db_L1_16oaqq9f_38_1_1.bkp tag=TAG20260810T113053 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:07
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_sysaux_nymwog10_.dbf
skipping datafile 00006 because it has not changed
input datafile file number=00008 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_undotbs1_nymwog17_.dbf
skipping datafile 00008 because it has not changed
channel c1: backup cancelled because all files were skipped
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00005 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_system_nymwog0k_.dbf
skipping datafile 00005 because it has not changed
channel c1: backup cancelled because all files were skipped
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_2/db_L1_17oaqq9g_39_1_1.bkp tag=TAG20260810T113053 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:36
Finished backup at 10-AUG-26
Starting backup at 10-AUG-26
current log archived
channel c1: starting archived log backup set
channel c1: specifying archived log(s) in backup set
input archived log thread=1 sequence=66 RECID=53 STAMP=1240909715
channel c1: starting piece 1 at 10-AUG-26
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=76 RECID=62 STAMP=1240912938
input archived log thread=1 sequence=77 RECID=63 STAMP=1240913836
input archived log thread=1 sequence=78 RECID=64 STAMP=1240914737
input archived log thread=1 sequence=79 RECID=65 STAMP=1240915018
input archived log thread=1 sequence=80 RECID=66 STAMP=1240915918
input archived log thread=1 sequence=81 RECID=67 STAMP=1240916819
input archived log thread=1 sequence=82 RECID=68 STAMP=1240917718
input archived log thread=1 sequence=83 RECID=69 STAMP=1240918359
channel c2: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_2/arch_1b0cqqao_43_1_1.bkp tag=TAG20260810T113239 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:01
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=67 RECID=52 STAMP=1240909715
input archived log thread=1 sequence=68 RECID=54 STAMP=1240909716
input archived log thread=1 sequence=69 RECID=55 STAMP=1240909716
input archived log thread=1 sequence=70 RECID=56 STAMP=1240909716
input archived log thread=1 sequence=71 RECID=57 STAMP=1240909716
input archived log thread=1 sequence=72 RECID=58 STAMP=1240909718
input archived log thread=1 sequence=73 RECID=59 STAMP=1240910241
input archived log thread=1 sequence=74 RECID=60 STAMP=1240911138
input archived log thread=1 sequence=75 RECID=61 STAMP=1240912038
channel c2: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_2/arch_1c1cqqap_44_1_1.bkp tag=TAG20260810T113239 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:01
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_2/arch_1avbqqan_42_1_1.bkp tag=TAG20260810T113239 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:05
Finished backup at 10-AUG-26
Starting backup at 10-AUG-26
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
including current control file in backup set
channel c1: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_2/controlfile_1d9cqqau_45_1_1.bkp tag=TAG20260810T113246 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 10-AUG-26
Starting Control File and SPFILE Autobackup at 10-AUG-26
piece handle=/u01/app/oracle/fast_recovery_area/CDBORCL/autobackup/2026_08_10/o1_mf_s_1240918370_o7ltdcno_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 10-AUG-26
released channel: c1
released channel: c2
RMAN>
Step 8: Mark the Point in Time for Recovery
We update the table one more time and capture both the SCN and the human-readable timestamp at this exact moment, this is the actual target we'll recover to later. Capturing both matters: RMAN's SET UNTIL TIME clause needs the timestamp format, while the SCN gives an exact, unambiguous marker to cross-check against once the duplicate database is verified.
SQL> UPDATE employees
SET salary = salary + 2000
WHERE department = 'Finance';
3 rows updated.
SQL> COMMIT;
Commit complete.
SQL> select * from employees order by 1;
EMP_ID EMP_NAME DEPARTMENT SALARY
---------- -------------- -------------- ----------
101 Rahul IT 60000
102 Amit Finance 47000
103 Priya Finance 57000
104 Neha IT 65000
105 Rohit Sales 48000
106 Sneha HR 52000
107 Vikas Finance 60000
7 rows selected.
SQL> conn / as sysdba
Connected.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDBORCL READ WRITE NO
SQL> alter session set nls_date_format= 'DD-MON-YYYY HH24:MI:SS';
Session altered.
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
3934360
SQL> select sysdate from dual;
SYSDATE
--------------------
10-AUG-2026 12:19:24
SQL> select scn_to_timestamp(3934360) from dual;
SCN_TO_TIMESTAMP(3934360)
---------------------------------------------------------------------------
10-AUG-26 12.19.14.000000000 PM
SQL>
We will do our recovery till 10-AUG-2026 12:19:24.
Step 9: Simulate Further, Unwanted Changes
Now we add and change more data in the table. These changes represent the "unwanted" activity that happened after our target recovery point, exactly the kind of thing PITR is meant to undo. Since we'll compare against this state after recovery, seeing these later rows and updates absent from the recovered database is the clearest proof that PITR worked correctly.
SQL> show user
USER is "TEST"
SQL>
SQL> INSERT INTO employees VALUES (108, 'Anjali', 'IT', 65000);
1 row created.
SQL> UPDATE employees
SET department = 'Management',
salary = 70000
WHERE emp_id = 103;
1 row updated.
SQL> commit;
Commit complete.
SQL> select * from employees order by 1;
EMP_ID EMP_NAME DEPARTMENT SALARY
---------- -------------- ---------------- ----------
101 Rahul IT 60000
102 Amit Finance 47000
103 Priya Management 70000
104 Neha IT 65000
105 Rohit Sales 48000
106 Sneha HR 52000
107 Vikas Finance 60000
108 Anjali IT 65000
8 rows selected.
SQL> conn /as sysdba
Connected.
SQL>
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDBORCL READ WRITE NO
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
3939320
SQL> alter session set nls_date_format= 'DD-MON-YYYY HH24:MI:SS';
Session altered.
SQL> select sysdate from dual;
SYSDATE
--------------------
10-AUG-2026 12:46:36
SQL>
SQL> select scn_to_timestamp(3939320) from dual;
SCN_TO_TIMESTAMP(3939320)
---------------------------------------------------------------------------
10-AUG-26 12.45.56.000000000 PM
SQL>
Step 10: Take the Third L1 Backup
This final incremental captures the redo needed to cover the entire window since the second L1, including both our target recovery point from Step 8 and the unwanted changes from Step 9. Having this backup in place means we have everything necessary to recover to any point within that window, not just the exact target time.
RMAN> RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
BACKUP AS BACKUPSET
INCREMENTAL LEVEL 1
DATABASE
FORMAT '/u01/app2/oracle/rman/L1_3/db_L1_%U.bkp';
BACKUP AS BACKUPSET
ARCHIVELOG ALL
FORMAT '/u01/app2/oracle/rman/L1_3/arch_%U.bkp';
BACKUP CURRENT CONTROLFILE
FORMAT '/u01/app2/oracle/rman/L1_3/controlfile_%U.bkp';
RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
}
RUN {
2> ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
3> ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
4>
5> BACKUP AS BACKUPSET
6> INCREMENTAL LEVEL 1
7> DATABASE
8> FORMAT '/u01/app2/oracle/rman/L1_3/db_L1_%U.bkp';
9>
10> BACKUP AS BACKUPSET
11> ARCHIVELOG ALL
12> FORMAT '/u01/app2/oracle/rman/L1_3/arch_%U.bkp';
13>
14> BACKUP CURRENT CONTROLFILE
15> FORMAT '/u01/app2/oracle/rman/L1_3/controlfile_%U.bkp';
16>
17> RELEASE CHANNEL c1;
18> RELEASE CHANNEL c2;
19>
}
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=75 device type=DISK
allocated channel: c2
channel c2: SID=292 device type=DISK
Starting backup at 10-AUG-26
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_system_nymt4wnr_.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_undotbs1_nymtb7vf_.dbf
channel c1: starting piece 1 at 10-AUG-26
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00003 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_sysaux_nymt8k0t_.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_users_nymtb90b_.dbf
channel c2: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_3/db_L1_1g4quuos_48_1_1.bkp tag=TAG20260810T124827 comment=NONE
channel c2: backup set complete, elapsed time: 00:01:15
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00013 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf
input datafile file number=00014 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf
input datafile file number=00011 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf
channel c2: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_3/db_L1_1f4quuos_47_1_1.bkp tag=TAG20260810T124827 comment=NONE
channel c1: backup set complete, elapsed time: 00:01:32
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00010 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf
input datafile file number=00009 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_system_nymz5qxb_.dbf
input datafile file number=00012 name=/u01/app/oracle/oradata/CDBORCL/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf
channel c1: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_3/db_L1_1hhsuur8_49_1_1.bkp tag=TAG20260810T124827 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:15
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_sysaux_nymwog10_.dbf
skipping datafile 00006 because it has not changed
input datafile file number=00008 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_undotbs1_nymwog17_.dbf
skipping datafile 00008 because it has not changed
channel c2: backup cancelled because all files were skipped
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00005 name=/u01/app/oracle/oradata/CDBORCL/datafile/o1_mf_system_nymwog0k_.dbf
skipping datafile 00005 because it has not changed
channel c2: backup cancelled because all files were skipped
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_3/db_L1_1i0tuuro_50_1_1.bkp tag=TAG20260810T124827 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:56
Finished backup at 10-AUG-26
Starting backup at 10-AUG-26
current log archived
channel c1: starting archived log backup set
channel c1: specifying archived log(s) in backup set
input archived log thread=1 sequence=66 RECID=53 STAMP=1240909715
channel c1: starting piece 1 at 10-AUG-26
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=79 RECID=65 STAMP=1240915018
input archived log thread=1 sequence=80 RECID=66 STAMP=1240915918
input archived log thread=1 sequence=81 RECID=67 STAMP=1240916819
input archived log thread=1 sequence=82 RECID=68 STAMP=1240917718
input archived log thread=1 sequence=83 RECID=69 STAMP=1240918359
input archived log thread=1 sequence=84 RECID=70 STAMP=1240919255
input archived log thread=1 sequence=85 RECID=71 STAMP=1240920154
input archived log thread=1 sequence=86 RECID=72 STAMP=1240921053
input archived log thread=1 sequence=87 RECID=73 STAMP=1240921953
input archived log thread=1 sequence=88 RECID=74 STAMP=1240922854
input archived log thread=1 sequence=89 RECID=75 STAMP=1240923063
channel c2: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_3/arch_1m2vuutq_54_1_1.bkp tag=TAG20260810T125104 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:07
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=67 RECID=52 STAMP=1240909715
input archived log thread=1 sequence=68 RECID=54 STAMP=1240909716
input archived log thread=1 sequence=69 RECID=55 STAMP=1240909716
input archived log thread=1 sequence=70 RECID=56 STAMP=1240909716
input archived log thread=1 sequence=71 RECID=57 STAMP=1240909716
input archived log thread=1 sequence=72 RECID=58 STAMP=1240909718
input archived log thread=1 sequence=73 RECID=59 STAMP=1240910241
input archived log thread=1 sequence=74 RECID=60 STAMP=1240911138
input archived log thread=1 sequence=75 RECID=61 STAMP=1240912038
input archived log thread=1 sequence=76 RECID=62 STAMP=1240912938
input archived log thread=1 sequence=77 RECID=63 STAMP=1240913836
input archived log thread=1 sequence=78 RECID=64 STAMP=1240914737
channel c2: starting piece 1 at 10-AUG-26
channel c2: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_3/arch_1ncvuuu3_55_1_1.bkp tag=TAG20260810T125104 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:03
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_3/arch_1l1vuutp_53_1_1.bkp tag=TAG20260810T125104 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:26
Finished backup at 10-AUG-26
Starting backup at 10-AUG-26
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
including current control file in backup set
channel c1: starting piece 1 at 10-AUG-26
channel c1: finished piece 1 at 10-AUG-26
piece handle=/u01/app2/oracle/rman/L1_3/controlfile_1o50vuum_56_1_1.bkp tag=TAG20260810T125133 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 10-AUG-26
Starting Control File and SPFILE Autobackup at 10-AUG-26
piece handle=/u01/app/oracle/fast_recovery_area/CDBORCL/autobackup/2026_08_10/o1_mf_s_1240923103_o7lz08gs_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 10-AUG-26
released channel: c1
released channel: c2
RMAN>
Now assuming the application did some unwanted changes around 10-AUG-2026 12:19 PM, and they want the DBA to recover the database to that time on a separate instance. The given timing falls after the 2nd L1 and before the 3rd L1, so no single backup on its own can satisfy the requirement, this is exactly the scenario Point-in-Time Recovery is built for.
So now let's proceed with the recovery.
Step 11: Transfer the Backups to the Target
Since we'll use backup-based RMAN duplication rather than DUPLICATE ... FROM ACTIVE DATABASE, RMAN reads from backup pieces sitting on the target host itself rather than pulling live over the network from the source. Everything needs to be physically present on the target before the duplicate can run.
[oracle@orcl ~]$ cd /u01/app2/oracle/rman
[oracle@orcl rman]$ ls -lrth
total 16K
drwxr-xr-x. 2 oracle oinstall 4.0K Aug 10 09:17 L0
drwxr-xr-x. 2 oracle oinstall 4.0K Aug 10 10:37 L1_1
drwxr-xr-x. 2 oracle oinstall 4.0K Aug 10 11:32 L1_2
drwxr-xr-x. 2 oracle oinstall 4.0K Aug 10 12:51 L1_3
[oracle@orcl rman]$
[oracle@orcl rman]$ du -sh *
4.3G L0
182M L1_1
181M L1_2
214M L1_3
[oracle@orcl rman]$ scp -r * oracle@orcldev.oraeasy.com:/u01/app/oracle/rman
The authenticity of host 'orcldev.oraeasy.com (192.168.1.41)' can't be established.
ED25519 key fingerprint is SHA256:2CH2fx4xpcQBVTKO/W+6utc3T81pa7JcFmKngApPvDs.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? Yes
Warning: Permanently added 'orcldev.oraeasy.com' (ED25519) to the list of known hosts.
oracle@orcldev.oraeasy.com's password:
db_L0_0dr5ii4i_13_1_1.bkp 100% 1343MB 19.9MB/s 01:07
db_L0_0er5ii4j_14_1_1.bkp 100% 700MB 8.8MB/s 01:19
db_L0_0f89ii7v_15_1_1.bkp 100% 4168KB 3.5MB/s 00:01
db_L0_0go9ii8g_16_1_1.bkp 100% 1074MB 3.5MB/s 05:07
db_L0_0htaii9k_17_1_1.bkp 100% 533MB 11.0MB/s 00:48
db_L0_0j8diic0_19_1_1.bkp 100% 572MB 15.8MB/s 00:36
arch_0kaeiid2_20_1_1.bkp 100% 136MB 27.2MB/s 00:04
arch_0lbeiid3_21_1_1.bkp 100% 338KB 6.7MB/s 00:00
arch_0mdeiid5_22_1_1.bkp 100% 68KB 9.5MB/s 00:00
controlfile_0nqeiide_23_1_1.bkp 100% 18MB 23.1MB/s 00:00
db_L1_0pb0nmv3_25_1_1.bkp 100% 6224KB 22.8MB/s 00:00
db_L1_0qb0nmv3_26_1_1.bkp 100% 9192KB 19.0MB/s 00:00
db_L1_0rc2nn14_27_1_1.bkp 100% 352KB 1.3MB/s 00:00
db_L1_0sd2nn15_28_1_1.bkp 100% 816KB 9.1MB/s 00:00
arch_0vj3nn2b_31_1_1.bkp 100% 136MB 23.9MB/s 00:05
arch_10j3nn2b_32_1_1.bkp 100% 11MB 24.4MB/s 00:00
arch_11n3nn2f_33_1_1.bkp 100% 403KB 5.4MB/s 00:00
controlfile_12s3nn2h_34_1_1.bkp 100% 18MB 26.1MB/s 00:00
db_L1_14m8qq7e_36_1_1.bkp 100% 3616KB 7.0MB/s 00:00
db_L1_15m8qq7e_37_1_1.bkp 100% 6032KB 18.3MB/s 00:00
db_L1_16oaqq9f_38_1_1.bkp 100% 336KB 3.6MB/s 00:00
db_L1_17oaqq9g_39_1_1.bkp 100% 672KB 11.5MB/s 00:00
arch_1avbqqan_42_1_1.bkp 100% 136MB 19.1MB/s 00:07
arch_1b0cqqao_43_1_1.bkp 100% 10MB 17.9MB/s 00:00
arch_1c1cqqap_44_1_1.bkp 100% 5964KB 16.0MB/s 00:00
controlfile_1d9cqqau_45_1_1.bkp 100% 18MB 8.4MB/s 00:02
db_L1_1f4quuos_47_1_1.bkp 100% 3792KB 1.1MB/s 00:03
db_L1_1g4quuos_48_1_1.bkp 100% 6680KB 3.8MB/s 00:01
db_L1_1hhsuur8_49_1_1.bkp 100% 6368KB 8.1MB/s 00:00
db_L1_1i0tuuro_50_1_1.bkp 100% 6760KB 17.9MB/s 00:00
arch_1l1vuutp_53_1_1.bkp 100% 136MB 21.0MB/s 00:06
arch_1m2vuutq_54_1_1.bkp 100% 25MB 21.5MB/s 00:01
arch_1ncvuuu3_55_1_1.bkp 100% 11MB 18.9MB/s 00:00
controlfile_1o50vuum_56_1_1.bkp 100% 18MB 20.2MB/s 00:00
[oracle@orcl rman]$
Step 12: Create the Directories on the Target
These paths need to exist on the target before we start the instance, they match the locations we'll reference in the pfile parameters in the next step.
[oracle@orcldev ~]$ mkdir -p /u01/app/oracle/admin/ORCLDEV/adump
[oracle@orcldev ~]$ mkdir -p /u01/app/oracle/oradata/ORCLDEV/
[oracle@orcldev ~]$ mkdir -p /u01/app/oracle/fast_recovery_area/ORCLDEV
Step 13: Create the Password File and Pfile
orapwd creates the auxiliary instance's password file, needed since RMAN authenticates to the auxiliary as SYSDBA during the duplicate. In the pfile, DB_FILE_NAME_CONVERT and LOG_FILE_NAME_CONVERT handle translating the source database's file paths to the target's automatically during the duplicate, the same mechanism used when setting up a standby database.
[oracle@orcldev ~]$ . oraenv
ORACLE_SID = [oracle] ? orcldev
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/26ai/dbhome_1
The Oracle base has been set to /u01/app/oracle
[oracle@orcldev ~]$
[oracle@orcldev ~]$
[oracle@orcldev ~]$ orapwd file=/u01/app/oracle/26ai/dbhome_1/dbs/orapworcldev entries=15 password=sys format=12
[oracle@orcldev ~]$ ls -lrth /u01/app/oracle/26ai/dbhome_1/dbs/orapworcldev
-rw-r-----. 1 oracle oinstall 2.0K Aug 10 14:41 /u01/app/oracle/26ai/dbhome_1/dbs/orapworcldev
[oracle@orcldev ~]$ vi /u01/app/oracle/26ai/dbhome_1/dbs/initorcldev.ora
[oracle@orcldev ~]$ cat /u01/app/oracle/26ai/dbhome_1/dbs/initorcldev.ora
db_name=orcldev
db_block_size=8192
remote_login_passwordfile=EXCLUSIVE
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/CDBORCL/','/u01/app/oracle/oradata/ORCLDEV/'
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/CDBORCL/','/u01/app/oracle/oradata/ORCLDEV/'
CONTROL_FILES='/u01/app/oracle/oradata/ORCLDEV/control01.ctl'
DB_RECOVERY_FILE_DEST_SIZE='15G'
DB_RECOVERY_FILE_DEST='/u01/app/oracle/fast_recovery_area/ORCLDEV'
enable_pluggable_database=true
[oracle@orcldev ~]$
Step 14: Start the Database Instance in Nomount State
Now we will start the database instance in nomount state with the created pfile. This is the essential step towards the backup-based RMAN duplication. Later we'll create the spfile and bounce the instance.
[oracle@orcldev ~]$ . oraenv
ORACLE_SID = [orcldev] ?
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/26ai/dbhome_1
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@orcldev ~]$
[oracle@orcldev ~]$ sqlplus / as sysdba
SQL*Plus: Release 23.26.1.0.0 - Production on Mon Aug 10 14:45:51 2026
Version 23.26.1.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to an idle instance.
SQL> def
DEFINE _DATE = "10-AUG-26" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "orcldev" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "2326010000" (CHAR)
DEFINE _EDITOR = "vi" (CHAR)
DEFINE _O_VERSION = "" (CHAR)
DEFINE _O_RELEASE = "" (CHAR)
SQL> startup nomount pfile='/u01/app/oracle/26ai/dbhome_1/dbs/initorcldev.ora';
ORACLE instance started.
Total System Global Area 344747248 bytes
Fixed Size 5008624 bytes
Variable Size 297795584 bytes
Database Buffers 33554432 bytes
Redo Buffers 8388608 bytes
SQL>
SQL> create spfile from pfile='/u01/app/oracle/26ai/dbhome_1/dbs/initorcldev.ora';
File created.
SQL> shut immediate
ORA-01507: database not mounted
Help: https://docs.oracle.com/error-help/db/ora-01507/
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 344747248 bytes
Fixed Size 5008624 bytes
Variable Size 297795584 bytes
Database Buffers 33554432 bytes
Redo Buffers 8388608 bytes
SQL>
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/26ai/dbhome_1/
dbs/spfileorcldev.ora
SQL>
SQL> exit
Step 15: Connect to the Target as Auxiliary in RMAN
RMAN's DUPLICATE command specifically requires an auxiliary connection, since the auxiliary is the instance actually being built. There's no target connection here at all, unlike an active-database duplicate, because backup-based duplication reads directly from the backup pieces already sitting on this host rather than from a live source database.
[oracle@orcldev ~]$ rman auxiliary /
Recovery Manager: Release 23.26.1.0.0 - Production on Mon Aug 10 14:50:47 2026
Version 23.26.1.0.0
Copyright (c) 1982, 2026, Oracle and/or its affiliates. All rights reserved.
connected to auxiliary database: ORCLDEV (not mounted)
RMAN>
Step 16: Execute the Recovery Script
Now we will execute the recovery script. In the script we will use SET UNTIL TIME for PITR.
RUN {
-- Specify the point in time to which the database will be recovered.
SET UNTIL TIME "TO_DATE('10-AUG-2026 12:19:14',
'DD-MON-YYYY HH24:MI:SS')";
-- Perform a backup-based duplicate of the target database.
DUPLICATE TARGET DATABASE TO ORCLDEV
-- Specify the RMAN backup location.
BACKUP LOCATION '/u01/app/oracle/rman'
-- Do not check for filename conflicts.
NOFILENAMECHECK;
}
SET UNTIL TIME scopes the DUPLICATE command that follows to stop recovery at exactly the timestamp captured back in Step 8. BACKUP LOCATION tells RMAN where on this host to scan for backup pieces, since there's no catalog or target connection to look them up automatically. NOFILENAMECHECK is necessary here because the source and target reused overlapping default file paths, you can see this reflected in the RMAN-05158 warnings about conflicting logfile names further down in the output below.
RMAN> RUN {
SET UNTIL TIME "TO_DATE('10-AUG-2026 12:19:14','DD-MON-YYYY HH24:MI:SS')";
DUPLICATE target DATABASE TO orcldev
BACKUP LOCATION '/u01/app/oracle/rman'
NOFILENAMECHECK;
}
RUN {
2> SET UNTIL TIME "TO_DATE('10-AUG-2026 12:19:14','DD-MON-YYYY HH24:MI:SS')";
3> DUPLICATE target DATABASE TO orcldev
4> BACKUP LOCATION '/u01/app/oracle/rman'
5> NOFILENAMECHECK;
6>
}
executing command: SET until clause (TIME)
Starting Duplicate Db at 10-AUG-26
Starting Search Files at 10-AUG-26
Finished Search Files at 10-AUG-26
searching for database ID
found backup of database ID 3216361938
contents of Memory Script:
{
sql clone "alter system set db_name =
''CDBORCL'' comment=
''Modified by RMAN duplicate'' scope=spfile";
sql clone "alter system set db_unique_name =
''orcldev'' comment=
''Modified by RMAN duplicate'' scope=spfile";
shutdown clone immediate;
startup clone force nomount
restore clone primary controlfile from '/u01/app/oracle/rman/L1_2/controlfile_1d9cqqau_45_1_1.bkp';
alter clone database mount;
}
executing Memory Script
sql statement: alter system set db_name = ''CDBORCL'' comment= ''Modified by RMAN duplicate'' scope=spfile
sql statement: alter system set db_unique_name = ''orcldev'' comment= ''Modified by RMAN duplicate'' scope=spfile
Oracle instance shut down
Oracle instance started
Total System Global Area 344747248 bytes
Fixed Size 5008624 bytes
Variable Size 297795584 bytes
Database Buffers 33554432 bytes
Redo Buffers 8388608 bytes
Starting restore at 10-AUG-26
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=42 device type=DISK
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u01/app/oracle/oradata/ORCLDEV/control01.ctl
Finished restore at 10-AUG-26
database mounted
released channel: ORA_AUX_DISK_1
Starting Search Files at 10-AUG-26
Finished Search Files at 10-AUG-26
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=42 device type=DISK
RMAN-05158: WARNING: auxiliary (logfile) file name /u01/app/oracle/fast_recovery_area/CDBORCL/onlinelog/o1_mf_1_nymtd0d3_.log conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (logfile) file name /u01/app/oracle/fast_recovery_area/CDBORCL/onlinelog/o1_mf_2_nymtd10g_.log conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (logfile) file name /u01/app/oracle/fast_recovery_area/CDBORCL/onlinelog/o1_mf_3_nymtd26q_.log conflicts with a file used by the target database
contents of Memory Script:
{
set until scn 3932350;
set newname for datafile 1 to
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_system_nymt4wnr_.dbf";
set newname for datafile 3 to
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymt8k0t_.dbf";
set newname for datafile 4 to
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymtb7vf_.dbf";
set newname for datafile 5 to
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_system_nymwog0k_.dbf";
set newname for datafile 6 to
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymwog10_.dbf";
set newname for datafile 7 to
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_users_nymtb90b_.dbf";
set newname for datafile 8 to
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymwog17_.dbf";
set newname for datafile 9 to
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_system_nymz5qxb_.dbf";
set newname for datafile 10 to
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf";
set newname for datafile 11 to
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf";
set newname for datafile 12 to
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf";
set newname for datafile 13 to
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf";
set newname for datafile 14 to
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf";
restore
clone database
;
}
executing Memory Script
executing command: SET until clause (SCN)
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 10-AUG-26
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/ORCLDEV/datafile/o1_mf_system_nymt4wnr_.dbf
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymtb7vf_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L0/db_L0_0dr5ii4i_13_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L0/db_L0_0dr5ii4i_13_1_1.bkp tag=TAG20260810T091250
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:36
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 00003 to /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymt8k0t_.dbf
channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_users_nymtb90b_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L0/db_L0_0er5ii4j_14_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L0/db_L0_0er5ii4j_14_1_1.bkp tag=TAG20260810T091250
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
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 00009 to /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_system_nymz5qxb_.dbf
channel ORA_AUX_DISK_1: restoring datafile 00010 to /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf
channel ORA_AUX_DISK_1: restoring datafile 00012 to /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L0/db_L0_0go9ii8g_16_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L0/db_L0_0go9ii8g_16_1_1.bkp tag=TAG20260810T091250
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:05
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 00011 to /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf
channel ORA_AUX_DISK_1: restoring datafile 00013 to /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf
channel ORA_AUX_DISK_1: restoring datafile 00014 to /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L0/db_L0_0f89ii7v_15_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L0/db_L0_0f89ii7v_15_1_1.bkp tag=TAG20260810T091250
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
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 00005 to /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_system_nymwog0k_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L0/db_L0_0j8diic0_19_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L0/db_L0_0j8diic0_19_1_1.bkp tag=TAG20260810T091250
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
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 00006 to /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymwog10_.dbf
channel ORA_AUX_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymwog17_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L0/db_L0_0htaii9k_17_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L0/db_L0_0htaii9k_17_1_1.bkp tag=TAG20260810T091250
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
Finished restore at 10-AUG-26
contents of Memory Script:
{
switch clone datafile all;
}
executing Memory Script
datafile 1 switched to datafile copy
input datafile copy RECID=14 STAMP=1240930759 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_system_nymt4wnr_.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=15 STAMP=1240930759 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymt8k0t_.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=16 STAMP=1240930759 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymtb7vf_.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=17 STAMP=1240930759 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_system_nymwog0k_.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=18 STAMP=1240930759 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymwog10_.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=19 STAMP=1240930759 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_users_nymtb90b_.dbf
datafile 8 switched to datafile copy
input datafile copy RECID=20 STAMP=1240930759 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymwog17_.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=21 STAMP=1240930759 file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_system_nymz5qxb_.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=22 STAMP=1240930760 file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=23 STAMP=1240930760 file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=24 STAMP=1240930760 file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf
datafile 13 switched to datafile copy
input datafile copy RECID=25 STAMP=1240930760 file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf
datafile 14 switched to datafile copy
input datafile copy RECID=26 STAMP=1240930760 file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf
contents of Memory Script:
{
set until time "to_date('2026/08/10 12:19:14', 'YYYY/MM/DD HH24:MI:SS')";
recover
clone database
delete archivelog
;
}
executing Memory Script
executing command: SET until clause (TIME)
Starting recover at 10-AUG-26
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting incremental datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_system_nymt4wnr_.dbf
destination for restore of datafile 00004: /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymtb7vf_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L1_1/db_L1_0pb0nmv3_25_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L1_1/db_L1_0pb0nmv3_25_1_1.bkp tag=TAG20260810T103515
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_AUX_DISK_1: starting incremental datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00003: /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymt8k0t_.dbf
destination for restore of datafile 00007: /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_users_nymtb90b_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L1_1/db_L1_0qb0nmv3_26_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L1_1/db_L1_0qb0nmv3_26_1_1.bkp tag=TAG20260810T103515
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting incremental datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00009: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_system_nymz5qxb_.dbf
destination for restore of datafile 00010: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf
destination for restore of datafile 00012: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L1_1/db_L1_0sd2nn15_28_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L1_1/db_L1_0sd2nn15_28_1_1.bkp tag=TAG20260810T103515
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting incremental datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00011: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf
destination for restore of datafile 00013: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf
destination for restore of datafile 00014: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L1_1/db_L1_0rc2nn14_27_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L1_1/db_L1_0rc2nn14_27_1_1.bkp tag=TAG20260810T103515
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting incremental datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_system_nymt4wnr_.dbf
destination for restore of datafile 00004: /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymtb7vf_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L1_2/db_L1_14m8qq7e_36_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L1_2/db_L1_14m8qq7e_36_1_1.bkp tag=TAG20260810T113053
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_AUX_DISK_1: starting incremental datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00003: /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymt8k0t_.dbf
destination for restore of datafile 00007: /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_users_nymtb90b_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L1_2/db_L1_15m8qq7e_37_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L1_2/db_L1_15m8qq7e_37_1_1.bkp tag=TAG20260810T113053
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting incremental datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00009: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_system_nymz5qxb_.dbf
destination for restore of datafile 00010: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf
destination for restore of datafile 00012: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L1_2/db_L1_17oaqq9g_39_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L1_2/db_L1_17oaqq9g_39_1_1.bkp tag=TAG20260810T113053
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting incremental datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00011: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf
destination for restore of datafile 00013: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf
destination for restore of datafile 00014: /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L1_2/db_L1_16oaqq9f_38_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L1_2/db_L1_16oaqq9f_38_1_1.bkp tag=TAG20260810T113053
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
starting media recovery
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=83
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=84
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=85
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=86
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=87
channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/rman/L1_3/arch_1m2vuutq_54_1_1.bkp
channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/rman/L1_3/arch_1m2vuutq_54_1_1.bkp tag=TAG20260810T125104
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
recovery status time_needed 2026-08-10 11:30:54
archived log file name=/u01/app/oracle/fast_recovery_area/ORCLDEV/ORCLDEV/archivelog/2026_08_10/o1_mf_1_83_o7m6k9xk_.arc thread=1 sequence=83
channel ORA_AUX_DISK_1: deleting archived log(s)
archived log file name=/u01/app/oracle/fast_recovery_area/ORCLDEV/ORCLDEV/archivelog/2026_08_10/o1_mf_1_83_o7m6k9xk_.arc RECID=5 STAMP=1240930818
recovery status time_needed 2026-08-10 11:32:38
archived log file name=/u01/app/oracle/fast_recovery_area/ORCLDEV/ORCLDEV/archivelog/2026_08_10/o1_mf_1_84_o7m6k9xw_.arc thread=1 sequence=84
channel ORA_AUX_DISK_1: deleting archived log(s)
archived log file name=/u01/app/oracle/fast_recovery_area/ORCLDEV/ORCLDEV/archivelog/2026_08_10/o1_mf_1_84_o7m6k9xw_.arc RECID=1 STAMP=1240930818
recovery status time_needed 2026-08-10 11:47:35
archived log file name=/u01/app/oracle/fast_recovery_area/ORCLDEV/ORCLDEV/archivelog/2026_08_10/o1_mf_1_85_o7m6kb02_.arc thread=1 sequence=85
channel ORA_AUX_DISK_1: deleting archived log(s)
archived log file name=/u01/app/oracle/fast_recovery_area/ORCLDEV/ORCLDEV/archivelog/2026_08_10/o1_mf_1_85_o7m6kb02_.arc RECID=3 STAMP=1240930818
recovery status time_needed 2026-08-10 12:02:34
archived log file name=/u01/app/oracle/fast_recovery_area/ORCLDEV/ORCLDEV/archivelog/2026_08_10/o1_mf_1_86_o7m6k9yx_.arc thread=1 sequence=86
channel ORA_AUX_DISK_1: deleting archived log(s)
archived log file name=/u01/app/oracle/fast_recovery_area/ORCLDEV/ORCLDEV/archivelog/2026_08_10/o1_mf_1_86_o7m6k9yx_.arc RECID=2 STAMP=1240930818
recovery status time_needed 2026-08-10 12:17:33
archived log file name=/u01/app/oracle/fast_recovery_area/ORCLDEV/ORCLDEV/archivelog/2026_08_10/o1_mf_1_87_o7m6k9x4_.arc thread=1 sequence=87
channel ORA_AUX_DISK_1: deleting archived log(s)
archived log file name=/u01/app/oracle/fast_recovery_area/ORCLDEV/ORCLDEV/archivelog/2026_08_10/o1_mf_1_87_o7m6k9x4_.arc RECID=4 STAMP=1240930818
media recovery complete, elapsed time: 00:00:03
Finished recover at 10-AUG-26
Oracle instance started
Total System Global Area 344747248 bytes
Fixed Size 5008624 bytes
Variable Size 297795584 bytes
Database Buffers 33554432 bytes
Redo Buffers 8388608 bytes
contents of Memory Script:
{
sql clone "alter system set db_name =
''ORCLDEV'' comment=
''Reset to original value by RMAN'' scope=spfile";
sql clone "alter system reset db_unique_name scope=spfile";
}
executing Memory Script
sql statement: alter system set db_name = ''ORCLDEV'' comment= ''Reset to original value by RMAN'' scope=spfile
sql statement: alter system reset db_unique_name scope=spfile
Oracle instance started
Total System Global Area 344747248 bytes
Fixed Size 5008624 bytes
Variable Size 297795584 bytes
Database Buffers 33554432 bytes
Redo Buffers 8388608 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "ORCLDEV" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 1024
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 ( '/u01/app/oracle/oradata/ORCLDEV/onlinelog/o1_mf_1_nymtcwk5_.log', '/u01/app/oracle/fast_recovery_area/CDBORCL/onlinelog/o1_mf_1_nymtd0d3_.log' ) SIZE 200 M REUSE,
GROUP 2 ( '/u01/app/oracle/oradata/ORCLDEV/onlinelog/o1_mf_2_nymtcwlf_.log', '/u01/app/oracle/fast_recovery_area/CDBORCL/onlinelog/o1_mf_2_nymtd10g_.log' ) SIZE 200 M REUSE,
GROUP 3 ( '/u01/app/oracle/oradata/ORCLDEV/onlinelog/o1_mf_3_nymtcwoc_.log', '/u01/app/oracle/fast_recovery_area/CDBORCL/onlinelog/o1_mf_3_nymtd26q_.log' ) SIZE 200 M REUSE
DATAFILE
'/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_system_nymt4wnr_.dbf',
'/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_system_nymwog0k_.dbf',
'/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_system_nymz5qxb_.dbf'
CHARACTER SET AL32UTF8
contents of Memory Script:
{
set newname for tempfile 1 to
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_temp_nymtf5mn_.tmp";
set newname for tempfile 2 to
"/u01/app/oracle/oradata/ORCLDEV/datafile/temp012026-04-23_15-52-27-082-PM.dbf";
set newname for tempfile 3 to
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_temp_nymz5r3k_.dbf";
switch clone tempfile all;
catalog clone datafilecopy "/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymt8k0t_.dbf",
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymtb7vf_.dbf",
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymwog10_.dbf",
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_users_nymtb90b_.dbf",
"/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymwog17_.dbf",
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf",
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf",
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf",
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf",
"/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf";
switch clone datafile all;
}
executing Memory Script
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
renamed tempfile 1 to /u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_temp_nymtf5mn_.tmp in control file
renamed tempfile 2 to /u01/app/oracle/oradata/ORCLDEV/datafile/temp012026-04-23_15-52-27-082-PM.dbf in control file
renamed tempfile 3 to /u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_temp_nymz5r3k_.dbf in control file
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymt8k0t_.dbf RECID=1 STAMP=1240930854
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymtb7vf_.dbf RECID=2 STAMP=1240930854
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymwog10_.dbf RECID=3 STAMP=1240930854
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_users_nymtb90b_.dbf RECID=4 STAMP=1240930854
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymwog17_.dbf RECID=5 STAMP=1240930854
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf RECID=6 STAMP=1240930854
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf RECID=7 STAMP=1240930854
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf RECID=8 STAMP=1240930854
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf RECID=9 STAMP=1240930855
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf RECID=10 STAMP=1240930855
datafile 3 switched to datafile copy
input datafile copy RECID=1 STAMP=1240930854 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymt8k0t_.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=2 STAMP=1240930854 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymtb7vf_.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=3 STAMP=1240930854 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_sysaux_nymwog10_.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=4 STAMP=1240930854 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_users_nymtb90b_.dbf
datafile 8 switched to datafile copy
input datafile copy RECID=5 STAMP=1240930854 file name=/u01/app/oracle/oradata/ORCLDEV/datafile/o1_mf_undotbs1_nymwog17_.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=6 STAMP=1240930854 file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_sysaux_nymz5r3g_.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=7 STAMP=1240930854 file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_undotbs1_nymz5r3j_.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=8 STAMP=1240930854 file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/o1_mf_users_nymzk6kx_.dbf
datafile 13 switched to datafile copy
input datafile copy RECID=9 STAMP=1240930855 file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test1.dbf
datafile 14 switched to datafile copy
input datafile copy RECID=10 STAMP=1240930855 file name=/u01/app/oracle/oradata/ORCLDEV/501F9BE43D9F38CEE0650A0027BEE017/datafile/test_tde1.dbf
contents of Memory Script:
{
Alter clone database open resetlogs;
}
executing Memory Script
database opened
contents of Memory Script:
{
sql clone "alter pluggable database all open";
}
executing Memory Script
sql statement: alter pluggable database all open
Finished Duplicate Db at 10-AUG-26
RMAN>
Step 17: Verify the Data in the Table
Now that recovery has completed, we need to verify the data.
After completing the PITR, the CURRENT_SCN of the duplicate database may be higher than the recovery SCN because Oracle generates new SCNs during the duplicate, recovery, and subsequent database operations. Therefore, CURRENT_SCN should not be used as the sole validation of PITR; instead, verify the data state at the specified recovery point.
[oracle@orcldev ~]$ sqlplus / as sysdba
SQL*Plus: Release 23.26.1.0.0 - Production on Mon Aug 10 15:03:26 2026
Version 23.26.1.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production
Version 23.26.1.0.0
SQL> select NAME,DB_UNIQUE_NAME,DATABASE_ROLE,OPEN_MODE from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE
--------- ------------------------------ ---------------- --------------------
ORCLDEV ORCLDEV PRIMARY READ WRITE
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDBORCL READ WRITE NO
SQL> alter session set nls_date_format= 'DD-MON-YYYY HH24:MI:SS';
Session altered.
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
3942151
SQL> select sysdate from dual;
SYSDATE
--------------------
10-AUG-2026 15:04:21
SQL> select scn_to_timestamp(3942151) from dual;
SCN_TO_TIMESTAMP(3942151)
---------------------------------------------------------------------------
10-AUG-26 03.04.11.000000000 PM
SQL> alter session set container=PDBORCL;
Session altered.
SQL> select * from test.employees order by 1;
EMP_ID EMP_NAME DEPARTMENT SALARY
---------- -------------- -------------- ----------
101 Rahul IT 60000
102 Amit Finance 47000
103 Priya Finance 57000
104 Neha IT 65000
105 Rohit Sales 48000
106 Sneha HR 52000
107 Vikas Finance 60000
7 rows selected.
SQL>
The recovered table shows seven rows with the salary values as they stood at 10-AUG-2026 12:19:14, matching Step 8 exactly and correctly excluding Anjali's row and Priya's department change from Step 9. That confirms the point-in-time recovery landed precisely where we intended.
Thank you for reading!
I hope this content has been helpful to you. Your feedback and suggestions are always welcome. Feel free to leave a comment or reach out with any queries.
Abhishek Shrivastava
Oracle DBA with hands-on experience managing production Data Guard, RAC, GoldenGate, and APEX environments. I write practical, tested installation and troubleshooting guides based on real deployment work.

Comments
Post a Comment