0% found this document useful (0 votes)
23 views36 pages

XTTS for Large Databases: Parallel Setup

The document outlines the process for Cross Platform Incremental Transportable Tablespace (XTTS) aimed at minimizing downtime for very large databases, specifically those around 500 Terabytes. It emphasizes the importance of parallelism by creating separate directories for different schemas and provides detailed steps, prerequisites, and known issues related to the migration process. Additionally, it includes a disclaimer noting that the procedure is experimental and should be attempted at the user's own risk.

Uploaded by

legitr884
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views36 pages

XTTS for Large Databases: Parallel Setup

The document outlines the process for Cross Platform Incremental Transportable Tablespace (XTTS) aimed at minimizing downtime for very large databases, specifically those around 500 Terabytes. It emphasizes the importance of parallelism by creating separate directories for different schemas and provides detailed steps, prerequisites, and known issues related to the migration process. Additionally, it includes a disclaimer noting that the procedure is experimental and should be attempted at the user's own risk.

Uploaded by

legitr884
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

XTTS, Cross Platform Incremental Transportable Tablespace

Most Important Note

Specia Note: For Very Large Database like 500 Terabytes and Least Down Time

You want to achieve parallelism [ Step 2.2 & Step 2.3]


Doing it at the same time for 3 different schemas like user_x, user_y, user_z
Create 3 separate directories, and unzip rman_xttconvert_VER4.[Link] in each of the directory
So you get 3 [Link] files, you can trigger for each of the schemas at the same time in
parallel and separately, they should have self-consistent and independent tablespaces.
/home/oracle/userx_xtt
/home/oracle/usery_xtt
/home/oracle/userz_xtt

Because the below parameters in the [Link] can have value for one location only
1. src_scratch_location
2. dest_scratch_location
3. dest_datafile_location

This is the secret of least down time, for a very large database like 500TB, yes Terabytes
Table of Contents
XTTS, Cross Platform Incremental Transportable Tablespace ............................................................. 0
Most Important Note .......................................................................................................................... 0
XTTS, Cross Platform Incremental Transportable Tablespace ............................................................. 2
Disclaimer............................................................................................................................................ 2
Oracle Metalink Documents Referred................................................................................................. 2
Notes ................................................................................................................................................... 2
Environment........................................................................................................................................ 3
Prerequisites ....................................................................................................................................... 4
Known Issues....................................................................................................................................... 6
ACTION ................................................................................................................................................ 8
Step 2.1 - Run the backup on the source system .............................................................................. 10
Step 2.2 - Transfer the following files to the destination system Backups created from source
src_scratch_location to destination dest_scratch_location............................................................. 14
Step 2.3 - Restore the datafiles on the destination system. ............................................................. 14
Phase 3 - Roll Forward Phase ................................................................................................................ 16
Step 3.1 - Create an incremental backup of the tablespaces being transported on the source
system. .............................................................................................................................................. 16
Step 3.2 - Transfer incremental backups and [Link] to the destination system. .............................. 19
Step 3.3 - Apply the incremental backup to the datafile copies on the destination system. ........... 20
Phase 4 - Final Incremental Backup. ..................................................................................................... 21
Option1.A: Alter source tablespace(s) to READ ONLY in the source database ................................. 23
On the source system, logged in as the oracle user with the environment (ORACLE_HOME and
ORACLE_SID environment variables) pointing to the source database, alter the tablespaces being
transported to READ ONLY. ............................................................................................................... 23
Option1.B: Create the final incremental backup of the tablespaces being transported on the source
system. .............................................................................................................................................. 24
Option1.C: Transfer incremental backups and [Link] to the destination system ............................. 28
Option1.D: Apply last incremental backup to destination datafiles ................................................. 29
Phase 5 - Transport Phase: Export Metadata and Plug-in Tablespaces into Destination Database ...... 30
Option1.B: Transfer the export file to destination directory used by datapump.............................. 31
Option1.C: Run datapump import using the export file on destination to plug in the tablespaces. 31
Step 6.2 Check tablespaces for corruption ....................................................................................... 33
Step 6.3 - Alter the tablespace(s) READ WRITE in the destination database.................................... 34
XTTS, Cross Platform Incremental Transportable Tablespace

Disclaimer
This is just an experiment to validate and practice to gain the
knowledge
I am not saying this would work for you; decision of
implementation goes to you
Please attempt at your own risk
This is a simulated, ideal and pristine set up, so a lot of issues
would not show up
Purpose of this document is to let the reader know, the outcome of
the simulation

Oracle Metalink Documents Referred


V4 Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID
2471245.1)

XTTS Creates Alias on Destination when Source and Destination use ASM (Doc ID 2351123.1)

Known Issues for Cross Platform Transportable Tablespaces XTTS (Doc ID 2311677.1)

Notes

Source is Little Endian, and Target is Little Endian, I did not find resources to
simulate a Big Endian. Conversion looks ok, and no issues found during this
simulation

If your source and target both are using ASM, obvious production scenario, then please check this

Document ID : 2471245.1
Section : Known Issues
Bullet point number : 2

Which says the below.


If using ASM in both source and destination, see XTTS Creates
Alias on Destination when Source and Destination use ASM(Note
2351123.1)
Environment
Source Target
OS $ cat /etc/release $ cat /etc/redhat-release
Oracle Solaris 10 1/13 s10x_u11wos_24a Red Hat Enterprise Linux
X86 Server release 7.9 (Maipo)
Copyright (c) 1983, 2013, Oracle and/or its
affiliates. All rights reserved.
Assembled 17 January 2013
Endian $ python [oracle@Target_host ~]$
Python 2.6.4 (r264:75706, Jun 26 2012, 21:27:36) [C] python
on sunos5 Python 2.7.5 (default, May 27
Type "help", "copyright", "credits" or "license" for 2020, 06:51:48)
more information. [GCC 4.8.5 20150623 (Red Hat
>>> from sys import byteorder 4.8.5-44.0.1)] on linux2
>>> print(byteorder) Type "help", "copyright",
little "credits" or "license" for more
>>> information.
>>> from sys import byteorder
*** The script does the endian format conversion >>> print(byteorder)
automatically; no exclusive steps are there for it. little
May be you can look in metalink documents if you
have doubt or concern that this conversion phase
may not go smoothly.

Database Release [Link].0 Production Oracle Database 19c


version Enterprise Edition Release
[Link].0 - Production
Version [Link].0

Schemas Schemas : Tablespaces : Size Schemas


-------- ----------- ----- --------
user_p : user_p_tbsp : 1GB user_p
user_x : user_x_tbsp : 1GB user_x
user_y : user_y_tbsp : 1GB user_y
user_z : user_z_tbsp : 1GB user_z

*** All of these 4 schemas are populated from the


HR schema

File Local Disk Based ASM


System

Cluster Stand Alone Stand Alone

Dataguard No No

Container None Container Container


Prerequisites
1. The current version does NOT support Windows as either source or destination.
a. Source is Solaris 10 and Target is Oracle Linux 7.9

2. Cross platform is only possible with Enterprise Edition


a. Both source and target databases are of Enterprise Edition.

3. The source database's COMPATIBLE parameter must not be greater than the destination
database's COMPATIBLE parameter.
a. show parameter compatible
b. Source is [Link].0
c. Target is 19.0.0

4. The source database must be in ARCHIVELOG mode. Yes, it is in Archive log Mode

5. Before running XTTs scripts, set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1. Other


NLS_LANG settings may cause errors.

a. show parameter NLS_LANG


b. In Source : AMERICAN
c. In Target : AMERICAN

6. RMAN configuration
a. RMAN on the source system must not have DEVICE TYPE DISK configured with
COMPRESSED.
b. RMAN on the source system must not have BACKUP TYPE TO COPY. The source must
have BACKUP TYPE TOBACKUPSET.
c. RMAN on the source system must not have default channel configured to type SBT.
I.e., this procedure can only be used with DISK channels.
d. RMAN on the source system must not have ANY channel configuration limitations.
For example, MAXSETSIZE,MAXPIECESIZE, etc.

e. RMAN> show all


i. RMAN configuration parameters for database with db_unique_name
SOL10DB11G are:
ii. CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
iii. CONFIGURE BACKUP OPTIMIZATION OFF; # default
iv. CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
v. CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
vi. CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'%F'; # default
vii. CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
# default
viii. CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
ix. CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; #
default
x. CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT
'/u01/app/oracle/backup/%U';
xi.
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
xii.
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
xiii.
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
[Link] COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT'
OPTIMIZE FOR LOAD TRUE ; # default
xv. CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
xvi. CONFIGURE SNAPSHOT CONTROLFILE NAME TO
'/u01/app/oracle/product/[Link]/db_1/dbs/snapcf_sourcehostdb11g.f'; #
default
7. The set of tablespaces being moved must all be online, and contain no offline data files.
Tablespaces must beREAD WRITE.
a. All data files are online
b. All tablespaces are online
set line 500
set pagesize 500
col tablespace_name format a20
col file_name format a60
select
tbsp.tablespace_name TBSP_NAME
,[Link] TBSP_STATUS
,ddf.file_name FILE_NAME
,[Link] DATA_FILE_STATUS
,ddf.ONLINE_STATUS DATAFILE_ONLINE_STATUS
from dba_tablespaces tbsp, dba_data_files ddf
where tbsp.tablespace_name = ddf.tablespace_name
and tbsp.tablespace_name like '%_TBSP'
order by tbsp.tablespace_name;

TBSP_NAME TBSP_STAT FILE_NAME


DATA_FILE DATAFIL
---------------- --------- -------------------------------------------------------
----- --------- -------
USER_P_TBSP ONLINE
/u01/app/oracle/oradata/sourcehostdb11g/sol10db11g/user_p_tbsp AVAILABLE ONLINE
.dbf

USER_X_TBSP ONLINE
/u01/app/oracle/oradata/sourcehostdb11g/sol10db11g/user_x_tbsp AVAILABLE ONLINE
.dbf

USER_Y_TBSP ONLINE
/u01/app/oracle/oradata/sourcehostdb11g/sol10db11g/user_y_tbsp AVAILABLE ONLINE
.dbf

USER_Z_TBSP ONLINE
/u01/app/oracle/oradata/sourcehostdb11g/sol10db11g/user_z_tbsp AVAILABLE ONLINE
.dbf
8. Although preferred destination system is Linux (either 64-bit Oracle Linux or a certified
version of RedHat Linux), this procedure can be used with other Unix based operating
systems. However, any non-Linux operating system must be running [Link] or higher in
both destination and source.
a. Not Applicable in this scenario

9. The Oracle version of source must be lower or equal to destination. Therefore, this
procedure can be used as an upgrade method.
a. Source is 11g and Target is 19C
10. Transportable tablespace restrictions WILL apply. Minimum version for source and
destination is [Link]. Earlier 11.2 versions will likely function the same, however were not
tested. As suggested, test the procedure before relying on it for a production environment.
a. The source database version is [Link].0, which earlier than [Link].0 so I
am testing
11. ASM can only be used for final location of datafiles in destination, backups cannot be placed
on ASM with this version. The backup location of destination MUST be a device with
read/write privileges. I.e., cannot be a READONLY device. This can cause ORA-19624 on the
backupset conversion.
a. Here backups will be stored in a disk locally, NAS/NFS with read/write
permission can also be used.

12. The source and target database must use a compatible character set and national character
set.
a. select * from database_properties where PROPERTY_NAME in
('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
b. In Source
i. NLS_CHARACTERSET : AL32UTF8
ii. NLS_NCHAR_CHARACTERSET : AL16UTF16
c. In Target
i. NLS_CHARACTERSET : AL32UTF8
ii. NLS_NCHAR_CHARACTERSET : AL16UTF16

13. The tablespace must be in READ WRITE at the first backup


14. select TABLESPACE_NAME,STATUS from dba_tablespaces where TABLESPACE_NAME like
'%_TBSP';
TABLESPACE_NAME STATUS
------------------------------ ---------
USER_P_TBSP ONLINE
USER_X_TBSP ONLINE
USER_Y_TBSP ONLINE
USER_Z_TBSP ONLINE
15. All steps in this procedure are run as the oracle user that is a member of the OSDBA group.
OS authentication is used to connect to both the source and destination databases.
a. Yes, the same will be attempted

16. Although NOT recommended, a standby database can be used for this procedure. See Using
XTTs in a Data Guard Environment ( Doc ID 2853054.1 )
a. Source is a standalone database, and this is not part of this experiment

17. A Snapshot Standby database is NOT supported for this procedure.


a. Not attempting the same here

18. No datafiles should be dropped from the tablespaces being migrated once the migration
begins. This can especially be a problem if the datafile number is reassigned to an added
datafile to a migrated tablespace.
a. This recommendation is considered

Known Issues
1. If your source database is running 12c or higher, un-comment the usermantransport
parameter in the [Link] parameter should ONLY be used for an 12c and higher
source.
i.e.,:

usermantransport=1 <== remove the '#'

Regardless of the destination version, the value of this parameter in the destination's
[Link] must be the SAME as the source.

a. Not Applicable source is 11g

2. If using ASM in both source and destination, see XTTS Creates Alias on Destination when
Source and Destination use ASM( Note 2351123.1 )

a. A production scenario for sure


b. Here only target is using ASM

3. If using ASM for datafiles, an error deleting file system file using ASMCMD can be ignored.
(unpublished Bug 29268792, currently open)
a. I did not see it, in my case
4. The existence of a [Link], in either source or destination, can cause syntax errors.
a. $ORACLE_HOME/sqlplus/admin/[Link] ,
b. If the script is there it should be an empty file
c. For my test case scripts are there and I did not see any issues while doing the tests

5. For other known issues, see other issues within Known Issues for Cross Platform
Transportable Tablespaces XTTS (Note2311677.1 ).

6. You cannot use this procedure for a TDE tablespace.


a. Not Applicable

7. This procedure has only been tested with English language.


a. Language is English
b.
8. Be aware of open bug 30777480 which can cause an issue if the CDB's tablespace number
(TS#) is the same as the tablespace id (TS#) belonging to a tablespaces being transported.
You may receive an error RMAN-20201 'datafile not found in the recovery catalog's on the
datafile number.

9. Backup creation parallelism is defined by RMAN configuration for DEVICE TYPE DISK
PARALLELISM. For incremental backups (after Level 0), parallelism is on the tablespace level.
a. CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; #
default, so no impact on this POC

10. If the target database character set is not compatible with source database character set the
following error may occur at tablespace plug-in (phase 5):
ORA-39123: Data Pump transportable tablespace job aborted
ORA-19736: cannot plug a tablespace into a database using a different national character set
V4 Transport Tablespaces with Reduced Downtime using Cross Platform Incremental Backup
a. ------------- Not Applicable in this POC
ACTION

Step 1.1 - Doing it for only one schema as a test,

Schemas : Tablespaces : Size

-------- ----------- -----

user_p : user_p_tbsp : 1GB

Step 1.2 - Identify tablespaces to be transported

Schemas : Tablespaces : Size

-------- ----------- -----

user_p : user_p_tbsp : 1GB

Step 1.3 - Install xttconvert scripts on the source system

On the source system, as the oracle software owner, download and extract the supporting scripts
rman_xttconvert_VER4.[Link]
bash-3.2$ pwd
/export/home/oracle/xtt
bash-3.2$ ls -ltr
total 82
-rw-r--r-- 1 oracle oinstall 41929 Mar 8 13:17 rman_xttconvert_VER4.[Link]
bash-3.2$
bash-3.2$
bash-3.2$ unzip rman_xttconvert_VER4.[Link]
Archive: rman_xttconvert_VER4.[Link]
inflating: [Link]
inflating: [Link]
inflating: [Link]
inflating: [Link]
inflating: [Link]
inflating: [Link]
extracting: [Link]

Step 1.4 – Find source database platform ID

select PLATFORM_ID from V$DATABASE;


it is 20 for this test case

Step 1.5 – Modify source [Link]

## tablespaces
## -----------
## Comma separated list of tablespaces to transport from source database to destination database.
## Do NOT use quotes
## Specify tablespace names in CAPITAL letters.
## Be sure there are NO space between the names
tablespaces=USER_P_TBSP

## Source database platform ID


## ===========================
##
## platformid
## ----------
## Source database platform id, obtained from V$DATABASE.PLATFORM_ID
platformid=20

####### Make sure this directory is created already in source


## SOURCE system file locations
## ============================
##
## src_scratch_location
## ------------
## Location where datafile copies and incremental backups are created on the source system.
##
## This location may be an NFS-mounted filesystem that is shared with the
## destination system, in which case it should reference the same NFS location
## as the dest_scratch_location property for the destination system.
##src_scratch_location=/src_backups/
src_scratch_location=/u01/app/oracle/backup/

####### Make sure this directory is created already in destination


## dest_scratch_location
## -----------
## This is the location where datafile copies and backups are placed on the destination system.
## transferred manually from the souce system. This location must have
## sufficient free space to hold copies of all datafiles and backups being transported.
##
## This location may be a DBFS-mounted filesystem.
##
## This location may be an NFS-mounted filesystem that is shared with the
## source system in which case it should reference the same NFS location
## as the src_scratch_location for the source system.
dest_scratch_location=/u01/app/oracle/backup/

####### Make sure this directory is created already in destination, if not using ASM
## DESTINATION system file locations
## =================================
##
## dest_datafile_location
## -------------
##
## This is the FINAL location of the datafiles to be used by the destination database.
## Be sure there are NO TRAILING space
## Location where the converted datafile copies will be written in the destination.
## If using ASM, this should be set to the disk group name:
## dest_datafile_location=+DATA
dest_datafile_location=+FRADATA

usermantransport=1 -
It is recommended this be set if the source database is running 12c or higher.
This causes new 12c (and higher) functionality to be used when this parameter is set.
NOTE: regardless of the destination version, the value of this parameter in the destination's
[Link] must be
the SAME as the source

Here database is 11g so we are not setting it in source.


will also be not setting it in target to make the target same as source for this parameter.

## userrmantransport
## -----------------
## This should be set if using 12c or higher.
#usermantransport=1
## END

Step 1.6 - Copy xttconvert scripts and [Link] to the destination system
As the oracle software owner copy all xttconvert scripts and the modified
[Link] file to the destination system.
[oracle@source_host]$ scp -r /export/home/oracle/xtt
oracle@target_host:/home/oracle/xtt

Step 1.7 - Set TMPDIR environment variable


In the shell environment on both source and destination systems, set environment variable
TMPDIR to the location
Where the supporting scripts exist. Use this shell to run the Perl script [Link] as shown
in the steps below. If TMPDIR is not set, output files are created in and input files are
expected to be in /tmp.

[oracle@source_host]$ export TMPDIR=/export/home/oracle/xtt


[oracle@target_host]$ export TMPDIR=/home/oracle/xtt

Step 2.1 - Run the backup on the source system


On the source system, logged in as the oracle user with the environment (ORACLE_HOME
and ORACLE_SID environment variables) pointing to the source database, run the backup as
follows:

[oracle@source_host]$ $ORACLE_HOME/perl/bin/perl [Link] --backup --debug


3

bash-3.2$ export TMPDIR=/export/home/oracle/xtt


bash-3.2$
bash-3.2$ echo $ORACLE_SID
sourcehostdb11g
bash-3.2$
bash-3.2$ echo $ORACLE_HOME
/u01/app/oracle/product/[Link]/db_1
bash-3.2$
bash-3.2$ pwd
/export/home/oracle/xtt
bash-3.2$
bash-3.2$ ls -ltr
total 522
-rw-r--r-- 1 oracle oinstall 1390 May 24 2017 [Link]
-rw-r--r-- 1 oracle oinstall 52 May 24 2017 [Link]
-rw-r--r-- 1 oracle oinstall 11710 May 24 2017 [Link]
-rw-r--r-- 1 oracle oinstall 71 May 24 2017 [Link]
-rw-r--r-- 1 oracle oinstall 5169 Feb 19 2019 [Link]
-rw-r--r-- 1 oracle oinstall 180408 Jul 7 2019 [Link]
-rw-r--r-- 1 oracle oinstall 41929 Mar 8 13:17
rman_xttconvert_VER4.[Link]
-rw-r--r-- 1 oracle oinstall 5350 Mar 10 03:20 [Link]
bash-3.2$

bash-3.2$ $ORACLE_HOME/perl/bin/perl [Link] --backup --debug 3

============================================================
trace file is
/export/home/oracle/xtt/backup_Mar10_Mon_03_37_09_890//Mar10_Mon_03_37_09_890_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------

Key: platformid
Values: 20
Key: src_scratch_location
Values: /u01/app/oracle/backup/
Key: parallel
Values: 3
Key: rollparallel
Values: 2
Key: dest_scratch_location
Values: /u01/app/oracle/backup/
Key: dest_datafile_location
Values: +FRADATA
Key: tablespaces
Values: USER_P_TBSP
Key: getfileparallel
Values: 4

--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------

--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------

ARGUMENT tablespaces
ARGUMENT platformid
ARGUMENT backupformat

--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------

ORACLE_SID : sourcehostdb11g
ORACLE_HOME : /u01/app/oracle/product/[Link]/db_1
112000

PRIMARY

Running on PRIMARY

--------------------------------------------------------------------
Starting prepare phase
--------------------------------------------------------------------

Parallel:3
scalar(or1
XXX: adding here for 1, 0, USER_P_TBSP
XXX: adding proper here for index 0, b4 added 'USER_P_TBSP'
,

XXX: adding proper here for index 0, added 'USER_P_TBSP'

--------------------------------------------------------------------
Find list of datafiles in system
--------------------------------------------------------------------

sqlplus -L -s / as sysdba
@/export/home/oracle/xtt/backup_Mar10_Mon_03_37_09_890//[Link] +FRADATA
::USER_P_TBSP6,+FRADATA/USER_P_TBSP_6.dbf

--------------------------------------------------------------------
Done finding list of datafiles in system
--------------------------------------------------------------------

/ as sysdba
size of tablespace 1
No. of tablespaces per batch 1
TABLESPACE STRING :'USER_P_TBSP'
Prepare source for Tablespaces:
'USER_P_TBSP' /u01/app/oracle/backup/
[Link] for 'USER_P_TBSP' started at Mon Mar 10 03:37:10 2025
#PLAN:USER_P_TBSP::::997982
#CONVERT:host 'echo ts::USER_P_TBSP';
#CONVERT: convert from platform 'Solaris Operating System (x86-64)'
#CONVERT: datafile
backup as copy tag 'prepare' datafile
#CONVERT: '/u01/app/oracle/backup//USER_P_TBSP_6.tf'
6
#PLAN:6
#CONVERT: format '+FRADATA/%N_%[Link]'
#CONVERT: parallelism 3;
format '/u01/app/oracle/backup//%N_%[Link]';

[Link] for ended at Mon Mar 10 03:37:10 2025


#PLAN:USER_P_TBSP::::997982#CONVERT:host 'echo ts::USER_P_TBSP';
#CONVERT: convert from platform 'Solaris Operating System (x86-64)'
#CONVERT: datafile
backup as copy tag 'prepare' datafile
#CONVERT: '/u01/app/oracle/backup//USER_P_TBSP_6.tf'
6
#PLAN:6
#CONVERT: format '+FRADATA/%N_%[Link]'
#CONVERT: parallelism 3;
format '/u01/app/oracle/backup//%N_%[Link]';

/export/home/oracle/xtt/backup_Mar10_Mon_03_37_09_890//[Link]

Recovery Manager: Release [Link].0 - Production on Mon Mar 10 03:37:10 2025

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

RMAN-06005: connected to target database: SRC_DB_UNQ_NAME (DBID=123456789)

RMAN> #PLAN:USER_P_TBSP::::997982
2> #CONVERT:host 'echo ts::USER_P_TBSP';
3> #CONVERT: convert from platform 'Solaris Operating System (x86-64)'
4> #CONVERT: datafile
5> backup as copy tag 'prepare' datafile
6> #CONVERT: '/u01/app/oracle/backup//USER_P_TBSP_6.tf'
7> 6
8> #PLAN:6
9> #CONVERT: format '+FRADATA/%N_%[Link]'
10> #CONVERT: parallelism 3;
11> format '/u01/app/oracle/backup//%N_%[Link]';
12>
RMAN-03090: Starting backup at 10-MAR-25
RMAN-06009: using target database control file instead of recovery catalog
RMAN-08030: allocated channel: ORA_DISK_1
RMAN-08500: channel ORA_DISK_1: SID=37 device type=DISK
RMAN-08580: channel ORA_DISK_1: starting datafile copy
RMAN-08522: input datafile file number=00006
name=/u01/app/oracle/oradata/sourcehostdb11g/sol10db11g/user_p_tbsp.dbf
RMAN-08586: output file name=/u01/app/oracle/backup/USER_P_TBSP_6.tf tag=PREPARE
RECID=2 STAMP=1195357054
RMAN-08581: channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25
RMAN-03091: Finished backup at 10-MAR-25

Recovery Manager complete.

TABLESPACE STRING :''''


Prepare source for Tablespaces:
'''' /u01/app/oracle/backup/
[Link] for '''' started at Mon Mar 10 03:37:43 2025

[Link] for ended at Mon Mar 10 03:37:43 2025

/export/home/oracle/xtt/backup_Mar10_Mon_03_37_09_890//[Link]

Recovery Manager: Release [Link].0 - Production on Mon Mar 10 03:37:43 2025

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

RMAN-06005: connected to target database: SRC_DB_UNQ_NAME (DBID=123456789)

RMAN>

Recovery Manager complete.

--------------------------------------------------------------------
Done with prepare phase
--------------------------------------------------------------------

/ as sysdba
size of tablespace 3
No. of tablespaces per batch 1
TABLESPACE STRING :'USER_P_TBSP'
Prepare newscn for Tablespaces: 'USER_P_TBSP'

TABLESPACE STRING :''''


Prepare newscn for Tablespaces: ''''

New /export/home/oracle/xtt/[Link] with FROM SCN's generated


scalar(or1
XXX: adding here for 1, 0, USER_P_TBSP
XXX: adding proper here for index 0, b4 added 'USER_P_TBSP'
,

XXX: adding proper here for index 0, added 'USER_P_TBSP'

Number of tb arrays is 1

::USER_P_TBSP:::SCN:::9982546=998254,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf
::USER_P_TBSP:::SCN:::998254
/export/home/oracle/xtt/[Link]: ::USER_P_TBSP:::SCN:::998254
/export/home/oracle/xtt/[Link]: 6=998254,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf
/export/home/oracle/xtt/backup_Mar10_Mon_03_37_09_890//[Link]:
::USER_P_TBSP:::SCN:::998254
/export/home/oracle/xtt/backup_Mar10_Mon_03_37_09_890//[Link]:
6=998254,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf
Writing new 6=998254,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf

Writing1 new 6, +FRADATA/USER_P_TBSP_6.dbf

Added fname here 1:/u01/app/oracle/backup//USER_P_TBSP_6.tf


YYY: ::USER_P_TBSP:::SCN:::998254

============================================================
No new datafiles added
=============================================================

Step 2.2 - Transfer the following files to the destination system


Backups created from source src_scratch_location to destination
dest_scratch_location.

NOTE: Only one location is allowed for these parameters.

The [Link] file from source $TMPDIR to destination $TMPDIR:

In the example below, scp is used to transfer the level=0 backup created by the previous step
from the source system to the destination system.

[oracle@source_host]$ scp /u01/app/oracle/backup/* oracle@target_host:/u01/app/oracle/backup

[oracle@source_host]$ scp /export/home/oracle/xtt/[Link] oracle@target_host:/home/oracle/xtt

-----Done

Step 2.3 - Restore the datafiles on the destination system.


On the destination system, logged in as the oracle user with the environment (ORACLE_HOME and
ORACLE_SID environment variables) pointing to the destination database, run the restore as follows:

[oracle@target_host]$ $ORACLE_HOME/perl/bin/perl [Link] --restore --debug 3

Datafiles will be placed on the destination system in the defined dest_datafile_location.

NOTE: Only one location is allowed for this parameter.

[oracle@Target_host backup]$ pwd


/u01/app/oracle/backup
[oracle@Target_host backup]$
[oracle@Target_host backup]$ echo $ORACLE_SID
LINUX19DB
[oracle@Target_host backup]$
[oracle@Target_host backup]$ echo $ORACLE_HOME
/u01/app/oracle/product/19.3.0/db1
[oracle@Target_host backup]$
[oracle@Target_host backup]$
[oracle@Target_host backup]$ echo $ORACLE_PDB_SID
LINX19PDB
[oracle@Target_host backup]$
[oracle@Target_host backup]$

[oracle@Target_host xtt]$ $ORACLE_HOME/perl/bin/perl [Link] --restore --


debug 3

============================================================
trace file is
/home/oracle/xtt/restore_Mar10_Mon_23_44_50_58//Mar10_Mon_23_44_50_58_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------

Key: dest_datafile_location
Values: +FRADATA
Key: platformid
Values: 20
Key: dest_scratch_location
Values: /u01/app/oracle/backup/
Key: parallel
Values: 3
Key: rollparallel
Values: 2
Key: tablespaces
Values: USER_P_TBSP
Key: src_scratch_location
Values: /u01/app/oracle/backup/
Key: getfileparallel
Values: 4

--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------

--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------

ARGUMENT tablespaces
ARGUMENT platformid
ARGUMENT backupformat

--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------

ORACLE_SID : LINUX19DB
ORACLE_HOME : /u01/app/oracle/product/19.3.0/db1
190000

#0:::6,20,USER_P_TBSP_6.dbf,0,997982,0,0,0,USER_P_TBSP,USER_P_TBSP_6.dbf

--------------------------------------------------------------------
Performing convert for file 6
--------------------------------------------------------------------

/home/oracle/xtt/restore_Mar10_Mon_23_44_50_58//rman_convert_USER_P_TBSP_6.cmd

Recovery Manager: Release [Link].0 - Production on Mon Mar 10 23:44:53 2025


Version [Link].0

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

RMAN-06005: connected to target database: LINUX19DB:LINX19PDB (DBID=987654321)

RMAN> convert from platform 'Solaris Operating System (x86-64)' datafile


'/u01/app/oracle/backup//USER_P_TBSP_6.tf' format '+FRADATA/USER_P_TBSP_6.dbf' ;
2>
RMAN-03090: Starting conversion at target at 10-MAR-25
RMAN-06009: using target database control file instead of recovery catalog
RMAN-08030: allocated channel: ORA_DISK_1
RMAN-08500: channel ORA_DISK_1: SID=43 device type=DISK
RMAN-08589: channel ORA_DISK_1: starting datafile conversion
RMAN-08506: input file name=/u01/app/oracle/backup/USER_P_TBSP_6.tf
RMAN-08588: converted datafile=+FRADATA/user_p_tbsp_6.dbf
RMAN-08590: channel ORA_DISK_1: datafile conversion complete, elapsed time:
00:00:36
RMAN-03091: Finished conversion at target at 10-MAR-25

Recovery Manager complete.

YYY:

Phase 3 - Roll Forward Phase


[ This phase can be repeated, so doing it once, the next incremental will be done as the cut off
simulation ]

During this phase an incremental backup is created from the source database, transferred to the
destination system, converted to the destination system endian format, then applied to the
converted destination datafile copies to roll them forward.

This phase may be run multiple times. Each successive incremental backup should take less time than
the prior incremental backup, and will bring the destination datafile copies more current with the
source database.

The data being transported (source) is fully accessible during this phase.

NOTE: Multiple backups can be executed against the source without applying them to the
destination.

The backup files and the [Link] must be copied before the '--restore' is executed at the destination.

NOTE: The script will shut down and startup, in NOMOUNT, the destination database before the --
restore.

Step 3.1 - Create an incremental backup of the tablespaces being


transported on the source system.
On the source system, logged in as the oracle user with the environment (ORACLE_HOME and
ORACLE_SID environment variables) pointing to the source database, run the create incremental step
as follows:

[oracle@source_host]$ $ORACLE_HOME/perl/bin/perl [Link] --backup --debug 3

bash-3.2$ $ORACLE_HOME/perl/bin/perl [Link] --backup --debug 3


============================================================
trace file is
/export/home/oracle/xtt/backup_Mar10_Mon_04_20_21_896//Mar10_Mon_04_20_21_896_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------

Key: platformid
Values: 20
Key: src_scratch_location
Values: /u01/app/oracle/backup/
Key: parallel
Values: 3
Key: rollparallel
Values: 2
Key: dest_scratch_location
Values: /u01/app/oracle/backup/
Key: dest_datafile_location
Values: +FRADATA
Key: tablespaces
Values: USER_P_TBSP
Key: getfileparallel
Values: 4

--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------

--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------

ARGUMENT tablespaces
ARGUMENT platformid
ARGUMENT backupformat

--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------

ORACLE_SID : sourcehostdb11g
ORACLE_HOME : /u01/app/oracle/product/[Link]/db_1
112000

PRIMARY

Running on PRIMARY

--------------------------------------------------------------------
Backup incremental
--------------------------------------------------------------------

scalar(or1
XXX: adding here for 1, 0, USER_P_TBSP
XXX: adding proper here for index 0, b4 added 'USER_P_TBSP'
,

XXX: adding proper here for index 0, added 'USER_P_TBSP'

Number of tb arrays is 1

::USER_P_TBSP:::SCN:::9982546=998254,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf
::USER_P_TBSP:::SCN:::998254
/export/home/oracle/xtt/[Link]: ::USER_P_TBSP:::SCN:::998254
/export/home/oracle/xtt/[Link]:
6=998254,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf
/export/home/oracle/xtt/backup_Mar10_Mon_04_20_21_896//[Link]:
::USER_P_TBSP:::SCN:::998254

/export/home/oracle/xtt/backup_Mar10_Mon_04_20_21_896//[Link]:
6=998254,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf
Writing new 6=998254,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf

Writing1 new 6, +FRADATA/USER_P_TBSP_6.dbf

Added fname here 1:/u01/app/oracle/backup//USER_P_TBSP_6.tf


YYY: ::USER_P_TBSP:::SCN:::998254

============================================================
No new datafiles added
=============================================================
/ as sysdba
size of tablespace 1
No. of tablespaces per batch 1
TABLESPACE STRING :'USER_P_TBSP'
Prepare newscn for Tablespaces: 'USER_P_TBSP'
USER_P_TBSP::::998254 6
TABLESPACE STRING :''''
Prepare newscn for Tablespaces: ''''

--------------------------------------------------------------------
Starting incremental backup
--------------------------------------------------------------------

/export/home/oracle/xtt/backup_Mar10_Mon_04_20_21_896//[Link]

Recovery Manager: Release [Link].0 - Production on Mon Mar 10


04:20:22 2025

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

RMAN-06005: connected to target database: SRC_DB_UNQ_NAME


(DBID=123456789)

RMAN> set nocfau;


2> host 'echo ts::USER_P_TBSP';
3> backup incremental from scn 997982
4> tablespace 'USER_P_TBSP' format
5> '/u01/app/oracle/backup/%U';
6>
RMAN-03023: executing command: SET NOCFAU
RMAN-06009: using target database control file instead of recovery
catalog

ts::USER_P_TBSP
RMAN-06134: host command complete

RMAN-03090: Starting backup at 10-MAR-25

RMAN-08030: allocated channel: ORA_DISK_1


RMAN-08500: channel ORA_DISK_1: SID=37 device type=DISK
RMAN-06518: backup will be obsolete on date 17-MAR-25
RMAN-06520: archived logs will not be kept or backed up
RMAN-08008: channel ORA_DISK_1: starting full datafile backup set
RMAN-08010: channel ORA_DISK_1: specifying datafile(s) in backup set
RMAN-08522: input datafile file number=00006
name=/u01/app/oracle/oradata/sourcehostdb11g/sol10db11g/user_p_tbsp.dbf
RMAN-08038: channel ORA_DISK_1: starting piece 1 at 10-MAR-25
RMAN-08044: channel ORA_DISK_1: finished piece 1 at 10-MAR-25
RMAN-08530: piece handle=/u01/app/oracle/backup/023jvfc9_1_1
tag=TAG20250310T042025 comment=NONE
RMAN-08540: channel ORA_DISK_1: backup set complete, elapsed time:
00:00:16
RMAN-12016: using channel ORA_DISK_1
RMAN-06518: backup will be obsolete on date 17-MAR-25
RMAN-06520: archived logs will not be kept or backed up
RMAN-08008: channel ORA_DISK_1: starting full datafile backup set
RMAN-08010: channel ORA_DISK_1: specifying datafile(s) in backup set
RMAN-08011: including current control file in backup set
RMAN-08038: channel ORA_DISK_1: starting piece 1 at 10-MAR-25
RMAN-08044: channel ORA_DISK_1: finished piece 1 at 10-MAR-25
RMAN-08530: piece handle=/u01/app/oracle/backup/033jvfcp_1_1
tag=TAG20250310T042025 comment=NONE
RMAN-08540: channel ORA_DISK_1: backup set complete, elapsed time:
00:00:01
RMAN-03091: Finished backup at 10-MAR-25

Recovery Manager complete.

--------------------------------------------------------------------
Done backing up incrementals
--------------------------------------------------------------------

/ as sysdba
size of tablespace 3
No. of tablespaces per batch 1
TABLESPACE STRING :'USER_P_TBSP'
Prepare newscn for Tablespaces: 'USER_P_TBSP'

TABLESPACE STRING :''''


Prepare newscn for Tablespaces: ''''

New /export/home/oracle/xtt/[Link] with FROM SCN's generated

Step 3.2 - Transfer incremental backups and [Link] to the destination


system.
Transfer the incremental backup(s) (between src_scratch_location and dest_scratch_location) and
the [Link](between the $TMPDIRs) from the source to the destination. The list of incremental
backup files from current backup can be found in the [Link] file on the source system.

[oracle@source_host]$ scp `cat [Link]` oracle@target_host:/dest_scratch_location


[oracle@source_host]$ scp [Link] oracle@target_host:/home/oracle/xtt

bash-3.2$ pwd
/export/home/oracle/xtt
bash-3.2$
bash-3.2$ ls -ltr [Link]
-rw-r--r-- 1 oracle oinstall 37 Mar 10 04:20 [Link]
bash-3.2$
bash-3.2$ cat [Link]
/u01/app/oracle/backup//023jvfc9_1_1
bash-3.2$
bash-3.2$
bash-3.2$ scp `cat [Link]` oracle@target_host:/u01/app/oracle/backup
oracle@target_host's password:
023jvfc9_1_1 100%
|*********************************************************************************************
********************| 40960 00:00
bash-3.2$

bash-3.2$ scp /export/home/oracle/xtt/[Link]


oracle@target_host:/home/oracle/xtt
oracle@target_host's password:
[Link] 100%
|*********************************************************************************************
********************| 152 00:00
If the src_scratch_location on the source system and the dest_scratch_location on the destination
system refer to the same NFS storage location, then the backups do not need to be copied as they are
available in the expected location on the destination system.

However, the [Link] file MUST be copied after the LAST incremental backup before it can be applied
on destination (step 3.3).

Step 3.3 - Apply the incremental backup to the datafile copies on the
destination system.
On the destination system, logged in as the oracle user with the environment (ORACLE_HOME and
ORACLE_SID environment variables) pointing to the destination database, run the roll forward
datafiles step as follows:

[oracle@target_host]$ $ORACLE_HOME/perl/bin/perl [Link] --restore --debug 3

The roll forward step connects to destination database and applies the incremental backups on the
tablespaces' datafiles for each tablespace being transported.

NOTE: Although multiple backups can be executed against the source without being applied on the
destination, the [Link] must be copied after the last backup and before the '--restore' is executed at
the destination.

[oracle@Target_host xtt]$ $ORACLE_HOME/perl/bin/perl [Link] --restore --debug 3

============================================================
trace file is
/home/oracle/xtt/restore_Mar11_Tue_00_19_59_727//Mar11_Tue_00_19_59_727_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------

Key: dest_scratch_location
Values: /u01/app/oracle/backup/
Key: tablespaces
Values: USER_P_TBSP
Key: getfileparallel
Values: 4
Key: platformid
Values: 20
Key: parallel
Values: 3
Key: dest_datafile_location
Values: +FRADATA
Key: rollparallel
Values: 2
Key: src_scratch_location
Values: /u01/app/oracle/backup/

--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------
--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------

ARGUMENT tablespaces
ARGUMENT platformid
ARGUMENT backupformat

--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------

ORACLE_SID : LINUX19DB
ORACLE_HOME : /u01/app/oracle/product/19.3.0/db1
190000

YYY: USER_P_TBSP_6.dbf::6:::1=023jvfc9_1_1

--------------------------------------------------------------------
Start rollforward
--------------------------------------------------------------------

ROLLFORWARD: Starting DB in nomount mode


ORACLE instance started.
Total System Global Area 1124073328 bytes
Fixed Size 9133936 bytes
Variable Size 335544320 bytes
Database Buffers 771751936 bytes
Redo Buffers 7643136 bytes
rdfno 6

BEFORE ROLLPLAN

datafile number : 6

datafile name : +FRADATA/USER_P_TBSP_6.dbf

AFTER ROLLPLAN

sqlplus -L -s "/ as sysdba"


@/home/oracle/xtt/restore_Mar11_Tue_00_19_59_727//xxttconv_023jvfc9_1_1_6.sql
/u01/app/oracle/backup//023jvfc9_1_1 /u01/app/oracle/backup/ 20

CONVERTED BACKUP PIECE/u01/app/oracle/backup//xib_023jvfc9_1_1_6


PL/SQL procedure successfully completed.
Entering RollForwardAfter applySetDataFile
Done: applyDataFileTo
Done: applyDataFileTo
Done: RestoreSetPiece
Done: RestoreBackupPiece

PL/SQL procedure successfully completed.

--------------------------------------------------------------------
End of rollforward phase
--------------------------------------------------------------------

Phase 4 - Final Incremental Backup.


During this phase the source data is made READ ONLY
And the destination datafiles are made consistent with the source database by creating and applying
a final incremental backup.

After the destination datafiles are made consistent, the normal transportable tablespace steps are
performed to export object metadata from the source database and import it into the destination
database.

The data being transported is accessible only in READ ONLY mode until the end of this phase.

There are two options for this phase if you are running 12c and higher. If you are running 11g, only
option #1is available.

AS WE ARE EXPERIMENTING, lets create a table and insert a record in it, before putting the
tablespace into read only mode.

SQL> select object_name, object_type from dba_objects where owner='USER_P' order by 2,1;

OBJECT_NAME OBJECT_TYPE
------------------------------ -------------------
COUNTRY_C_ID_PK INDEX
DEPT_ID_PK INDEX
DEPT_LOCATION_IX INDEX
EMP_DEPARTMENT_IX INDEX
EMP_EMAIL_UK INDEX
EMP_EMP_ID_PK INDEX
EMP_JOB_IX INDEX
EMP_MANAGER_IX INDEX
EMP_NAME_IX INDEX
JHIST_DEPARTMENT_IX INDEX
JHIST_EMPLOYEE_IX INDEX
JHIST_EMP_ID_ST_DATE_PK INDEX
JHIST_JOB_IX INDEX
JOB_ID_PK INDEX
LOC_CITY_IX INDEX
LOC_COUNTRY_IX INDEX
LOC_ID_PK INDEX
LOC_STATE_PROVINCE_IX INDEX
REG_ID_PK INDEX
ADD_JOB_HISTORY PROCEDURE
SECURE_DML PROCEDURE
DEPARTMENTS_SEQ SEQUENCE
EMPLOYEES_SEQ SEQUENCE
LOCATIONS_SEQ SEQUENCE
COUNTRIES TABLE
DEPARTMENTS TABLE
EMPLOYEES TABLE
JOBS TABLE
JOB_HISTORY TABLE
LOCATIONS TABLE
REGIONS TABLE
SECURE_EMPLOYEES TRIGGER
UPDATE_JOB_HISTORY TRIGGER
EMP_DETAILS_VIEW VIEW

34 rows selected.

SQL> create table user_p.DUMMY_COUNTRIES tablespace user_p_tbsp as select * from


ser_p.COUNTRIES;

Table created.

SQL> select object_name,object_type from dba_objects where owner='USER_P' order by 2,1;


OBJECT_NAME OBJECT_TYPE
------------------------------ -------------------
COUNTRY_C_ID_PK INDEX
DEPT_ID_PK INDEX
DEPT_LOCATION_IX INDEX
EMP_DEPARTMENT_IX INDEX
EMP_EMAIL_UK INDEX
EMP_EMP_ID_PK INDEX
EMP_JOB_IX INDEX
EMP_MANAGER_IX INDEX
EMP_NAME_IX INDEX
JHIST_DEPARTMENT_IX INDEX
JHIST_EMPLOYEE_IX INDEX
JHIST_EMP_ID_ST_DATE_PK INDEX
JHIST_JOB_IX INDEX
JOB_ID_PK INDEX
LOC_CITY_IX INDEX
LOC_COUNTRY_IX INDEX
LOC_ID_PK INDEX
LOC_STATE_PROVINCE_IX INDEX
REG_ID_PK INDEX
ADD_JOB_HISTORY PROCEDURE
SECURE_DML PROCEDURE
DEPARTMENTS_SEQ SEQUENCE
EMPLOYEES_SEQ SEQUENCE
LOCATIONS_SEQ SEQUENCE
COUNTRIES TABLE
DEPARTMENTS TABLE
DUMMY_COUNTRIES TABLE
EMPLOYEES TABLE
JOBS TABLE
JOB_HISTORY TABLE
LOCATIONS TABLE
REGIONS TABLE
SECURE_EMPLOYEES TRIGGER
UPDATE_JOB_HISTORY TRIGGER
EMP_DETAILS_VIEW VIEW

35 rows selected.

SQL> select tablespace_name from dba_segments where segment_name='DUMMY_COUNTRIES' and


owner='USER_P';

TABLESPACE_NAME
------------------------------
USER_P_TBSP

Option1.A: Alter source tablespace(s) to READ ONLY in the source


database
On the source system, logged in as the oracle user with the environment (ORACLE_HOME and
ORACLE_SID environment variables) pointing to the source database, alter the tablespaces being
transported to READ ONLY.

SQL> set line 500


SQL> set pagesize 500
col tablespace_name format a20
col file_name format a60
select
tbsp.tablespace_name TBSP_NAME
,[Link] TBSP_STATUS
,ddf.file_name FILE_NAME
,[Link] DATA_FILE_STATUS
,ddf.ONLINE_STATUS DATAFILE_ONLINE_STATUS
from dba_tablespaces tbsp, dba_data_files ddf
where tbsp.tablespace_name = ddf.tablespace_name
and tbsp.tablespace_name = 'USER_P_TBSP'
order by tbsp.tablespace_name;SQL> SQL> SQL> 2 3 4 5 6 7 8
9 10

TBSP_NAME TBSP_STAT FILE_NAME


DATA_FILE DATAFIL
------------------------------ --------- -----------------------------------------------------
------- --------- -------
USER_P_TBSP ONLINE
/u01/app/oracle/oradata/sourcehostdb11g/sol10db11g/user_p_tbsp AVAILABLE ONLINE
.dbf

SQL> alter tablespace USER_P_TBSP read only;

Tablespace altered.

SQL> set line 500


SQL> set pagesize 500
col tablespace_name format a20
col file_name format a60
select
tbsp.tablespace_name TBSP_NAME
,[Link] TBSP_STATUS
,ddf.file_name FILE_NAME
,[Link] DATA_FILE_STATUS
,ddf.ONLINE_STATUS DATAFILE_ONLINE_STATUS
from dba_tablespaces tbsp, dba_data_files ddf
where tbsp.tablespace_name = ddf.tablespace_name
and tbsp.tablespace_name = 'USER_P_TBSP'
order by tbsp.tablespace_name;SQL> SQL> SQL> 2 3 4 5 6 7 8
9 10

TBSP_NAME TBSP_STAT FILE_NAME


DATA_FILE DATAFIL
------------------------------ --------- -----------------------------------------------------
------- --------- -------
USER_P_TBSP READ ONLY
/u01/app/oracle/oradata/sourcehostdb11g/sol10db11g/user_p_tbsp AVAILABLE ONLINE
.dbf

Option1.B: Create the final incremental backup of the tablespaces


being transported on the source system.

On the source system, logged in as the oracle user with the environment (ORACLE_HOME and
ORACLE_SID environment variables) pointing to the source database, run the backup as follows:

[oracle@source_host]$ $ORACLE_HOME/perl/bin/perl [Link] --backup --debug 3

bash-3.2$ $ORACLE_HOME/perl/bin/perl [Link] --backup --debug 3


============================================================
trace file is
/export/home/oracle/xtt/backup_Mar10_Mon_05_05_02_786//Mar10_Mon_05_05_02_786_.log

=============================================================

--------------------------------------------------------
------------
Parsing properties
--------------------------------------------------------
------------

Key: platformid
Values: 20
Key: src_scratch_location
Values: /u01/app/oracle/backup/
Key: parallel
Values: 3
Key: rollparallel
Values: 2
Key: dest_scratch_location
Values: /u01/app/oracle/backup/
Key: dest_datafile_location
Values: +FRADATA
Key: tablespaces
Values: USER_P_TBSP
Key: getfileparallel
Values: 4

--------------------------------------------------------
------------
Done parsing properties
--------------------------------------------------------
------------

--------------------------------------------------------
------------
Checking properties
--------------------------------------------------------
------------

ARGUMENT tablespaces
ARGUMENT platformid
ARGUMENT backupformat

--------------------------------------------------------
------------
Done checking properties
--------------------------------------------------------
------------

ORACLE_SID : sourcehostdb11g
ORACLE_HOME : /u01/app/oracle/product/[Link]/db_1
112000

PRIMARY

Running on PRIMARY

--------------------------------------------------------
------------
Backup incremental
--------------------------------------------------------
------------

scalar(or1
XXX: adding here for 1, 0, USER_P_TBSP
XXX: adding proper here for index 0, b4 added
'USER_P_TBSP'
,

XXX: adding proper here for index 0, added 'USER_P_TBSP'

Number of tb arrays is 1

::USER_P_TBSP:::SCN:::10004756=1000475,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf
::USER_P_TBSP:::SCN:::1000475
/export/home/oracle/xtt/[Link]:
::USER_P_TBSP:::SCN:::1000475
/export/home/oracle/xtt/[Link]:
6=1000475,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf

/export/home/oracle/xtt/backup_Mar10_Mon_05_05_02_786//[Link]:
::USER_P_TBSP:::SCN:::1000475

/export/home/oracle/xtt/backup_Mar10_Mon_05_05_02_786//[Link]:
6=1000475,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf
Writing new
6=1000475,USER_P_TBSP,+FRADATA/USER_P_TBSP_6.dbf

Writing1 new 6, +FRADATA/USER_P_TBSP_6.dbf

Added fname here


1:/u01/app/oracle/backup//USER_P_TBSP_6.tf
YYY: ::USER_P_TBSP:::SCN:::1000475

============================================================
No new datafiles added

=============================================================
/ as sysdba
size of tablespace 1
No. of tablespaces per batch 1
TABLESPACE STRING :'USER_P_TBSP'
Prepare newscn for Tablespaces: 'USER_P_TBSP'
USER_P_TBSP::::1000475 6
TABLESPACE STRING :''''
Prepare newscn for Tablespaces: ''''

--------------------------------------------------------
------------
Starting incremental backup
--------------------------------------------------------
------------

/export/home/oracle/xtt/backup_Mar10_Mon_05_05_02_786//[Link]

Recovery Manager: Release [Link].0 - Production on Mon


Mar 10 05:05:03 2025

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


All rights reserved.

RMAN-06005: connected to target database:


SRC_DB_UNQ_NAME (DBID=123456789)

RMAN> set nocfau;


2> host 'echo ts::USER_P_TBSP';
3> backup incremental from scn 998254
4> tablespace 'USER_P_TBSP' format
5> '/u01/app/oracle/backup/%U';
6>
RMAN-03023: executing command: SET NOCFAU
RMAN-06009: using target database control file instead
of recovery catalog

ts::USER_P_TBSP
RMAN-06134: host command complete

RMAN-03090: Starting backup at 10-MAR-25

RMAN-08030: allocated channel: ORA_DISK_1


RMAN-08500: channel ORA_DISK_1: SID=37 device type=DISK
RMAN-06518: backup will be obsolete on date 17-MAR-25
RMAN-06520: archived logs will not be kept or backed up
RMAN-08008: channel ORA_DISK_1: starting full datafile
backup set
RMAN-08010: channel ORA_DISK_1: specifying datafile(s)
in backup set
RMAN-08522: input datafile file number=00006
name=/u01/app/oracle/oradata/sourcehostdb11g/sol10db11g/user_p_tbsp.dbf
RMAN-08038: channel ORA_DISK_1: starting piece 1 at 10-
MAR-25
RMAN-08044: channel ORA_DISK_1: finished piece 1 at 10-
MAR-25
RMAN-08530: piece
handle=/u01/app/oracle/backup/043jvi01_1_1 tag=TAG20250310T050505 comment=NONE
RMAN-08540: channel ORA_DISK_1: backup set complete,
elapsed time: 00:00:17

RMAN-12016: using channel ORA_DISK_1


RMAN-06518: backup will be obsolete on date 17-MAR-25
RMAN-06520: archived logs will not be kept or backed up
RMAN-08008: channel ORA_DISK_1: starting full datafile
backup set
RMAN-08010: channel ORA_DISK_1: specifying datafile(s)
in backup set
RMAN-08011: including current control file in backup set
RMAN-08038: channel ORA_DISK_1: starting piece 1 at 10-
MAR-25
RMAN-08044: channel ORA_DISK_1: finished piece 1 at 10-
MAR-25
RMAN-08530: piece
handle=/u01/app/oracle/backup/053jvi0i_1_1 tag=TAG20250310T050505 comment=NONE
RMAN-08540: channel ORA_DISK_1: backup set complete,
elapsed time: 00:00:01
RMAN-03091: Finished backup at 10-MAR-25

Recovery Manager complete.

--------------------------------------------------------
------------
Done backing up incrementals
--------------------------------------------------------
------------

/ as sysdba
size of tablespace 3
No. of tablespaces per batch 1
TABLESPACE STRING :'USER_P_TBSP'
Prepare newscn for Tablespaces: 'USER_P_TBSP'
DECLARE*
ERROR at line 1:
ORA-20001: TABLESPACE(S) IS READONLY OR,
OFFLINE JUST CONVERT, COPY
ORA-06512: at line 284

####################################################################
Warning:
------
Warnings found in executing
/export/home/oracle/xtt/backup_Mar10_Mon_05_05_02_786//[Link]
####################################################################
DECLARE*
ERROR at line 1:
ORA-20001: TABLESPACE(S) IS READONLY OR,
OFFLINE JUST CONVERT, COPY
ORA-06512: at line 284
TABLESPACE STRING :''''
Prepare newscn for Tablespaces: ''''

New /export/home/oracle/xtt/[Link] with FROM SCN's


generated

************ As mentioned in the metalink document the warning can be ignored.

Option1.C: Transfer incremental backups and [Link] to the destination


system

bash-3.2$ pwd
/export/home/oracle/xtt
bash-3.2$
bash-3.2$
bash-3.2$ ls -ltr
total 544
-rw-r--r-- 1 oracle oinstall 1390 May 24 2017
[Link]
-rw-r--r-- 1 oracle oinstall 52 May 24 2017
[Link]
-rw-r--r-- 1 oracle oinstall 11710 May 24 2017 [Link]
-rw-r--r-- 1 oracle oinstall 71 May 24 2017 [Link]
-rw-r--r-- 1 oracle oinstall 5169 Feb 19 2019 [Link]
-rw-r--r-- 1 oracle oinstall 180408 Jul 7 2019 [Link]
-rw-r--r-- 1 oracle oinstall 41929 Mar 8 13:17
rman_xttconvert_VER4.[Link]
-rw-r--r-- 1 oracle oinstall 5350 Mar 10 03:20 [Link]
-rw-r--r-- 1 oracle oinstall 43 Mar 10 03:37
[Link]
-rw-r--r-- 1 oracle oinstall 198 Mar 10 03:37 [Link]
drwxr-xr-x 2 oracle oinstall 512 Mar 10 03:37
backup_Mar10_Mon_03_37_09_890
drwxr-xr-x 2 oracle oinstall 1024 Mar 10 04:20
backup_Mar10_Mon_04_20_21_896
-rw-r--r-- 1 oracle oinstall 79 Mar 10 05:05 [Link]
-rw-r--r-- 1 oracle oinstall 27 Mar 10 05:05 [Link]
-rw-r--r-- 1 oracle oinstall 32 Mar 10 05:05 [Link]
-rw-r--r-- 1 oracle oinstall 37 Mar 10 05:05 [Link]
-rw-r--r-- 1 oracle oinstall 232 Mar 10 05:05 [Link]
-rw-r--r-- 1 oracle oinstall 27 Mar 10 05:05 [Link]
drwxr-xr-x 2 oracle oinstall 1024 Mar 10 05:05
backup_Mar10_Mon_05_05_02_786
bash-3.2$ cat [Link]
/u01/app/oracle/backup//043jvi01_1_1
bash-3.2$
bash-3.2$

[oracle@source_host]$ scp `cat [Link]`


oracle@target_host:/dest_scratch_location
[oracle@source_host]$ scp [Link] oracle@target_host:/home/oracle/xtt

bash-3.2$ scp `cat [Link]` oracle@target_host:/u01/app/oracle/backup


oracle@target_host's password:
043jvi01_1_1 100%
|*********************************************************************************************
********************| 90112 00:00
bash-3.2$
bash-3.2$ scp [Link] oracle@target_host:/home/oracle/xtt
oracle@target_host's password:
[Link] 100%
|*********************************************************************************************
********************| 232 00:00
bash-3.2$

Option1.D: Apply last incremental backup to destination datafiles


The final incremental backup must be applied to the destination datafiles:

[oracle@target_host]$ $ORACLE_HOME/perl/bin/perl [Link] --restore --debug 3

This step will apply the last incremental backup to the datafiles on the destination.

[oracle@Target_host xtt]$ $ORACLE_HOME/perl/bin/perl [Link] --restore --debug 3


============================================================
trace file is
/home/oracle/xtt/restore_Mar11_Tue_00_50_59_723//Mar11_Tue_00_50_59_723_.log
=============================================================

----------------------------------------------------------------
----
Parsing properties
----------------------------------------------------------------
----

Key: dest_scratch_location
Values: /u01/app/oracle/backup/
Key: dest_datafile_location
Values: +FRADATA
Key: getfileparallel
Values: 4
Key: tablespaces
Values: USER_P_TBSP
Key: rollparallel
Values: 2
Key: src_scratch_location
Values: /u01/app/oracle/backup/
Key: platformid
Values: 20
Key: parallel
Values: 3

----------------------------------------------------------------
----
Done parsing properties
----------------------------------------------------------------
----

----------------------------------------------------------------
----
Checking properties
----------------------------------------------------------------
----

ARGUMENT tablespaces
ARGUMENT platformid
ARGUMENT backupformat
----------------------------------------------------------------
----
Done checking properties
----------------------------------------------------------------
----

ORACLE_SID : LINUX19DB
ORACLE_HOME : /u01/app/oracle/product/19.3.0/db1
190000

YYY: USER_P_TBSP_6.dbf::6:::1=043jvi01_1_1

----------------------------------------------------------------
----
Start rollforward
----------------------------------------------------------------
----

ROLLFORWARD: Starting DB in nomount mode


ORACLE instance started.
Total System Global Area 1124073328 bytes
Fixed Size 9133936 bytes
Variable Size 335544320 bytes
Database Buffers 771751936 bytes
Redo Buffers 7643136 bytes
rdfno 6

BEFORE ROLLPLAN

datafile number : 6

datafile name : +FRADATA/USER_P_TBSP_6.dbf

AFTER ROLLPLAN

sqlplus -L -s "/ as sysdba"


@/home/oracle/xtt/restore_Mar11_Tue_00_50_59_723//xxttconv_043jvi01_1_1_6.sql
/u01/app/oracle/backup//043jvi01_1_1 /u01/app/oracle/backup/ 20

CONVERTED BACKUP PIECE/u01/app/oracle/backup//xib_043jvi01_1_1_6


PL/SQL procedure successfully completed.
Entering RollForwardAfter applySetDataFile
Done: applyDataFileTo
Done: applyDataFileTo
Done: RestoreSetPiece
Done: RestoreBackupPiece

PL/SQL procedure successfully completed.

----------------------------------------------------------------
----
End of rollforward phase
----------------------------------------------------------------
----

Phase 5 - Transport Phase: Export Metadata and Plug-in


Tablespaces into Destination Database
Run datapump export on source database
Perform the tablespace transport by running transportable mode Data Pump export on the source
database to export the object metadata being transported into a dump file. The below example
assumes a directory
(data_dump) already exists in the source. For example:

cat user_p.par

dumpfile=[Link]
directory=data_dump
exclude=TABLE_STATISTICS,INDEX_STATISTICS
transport_tablespaces=user_p_tbsp
transport_full_check=yes
logfile=tts_export.log

expdp parfile=user_p.par

Export: Release [Link].0 - Production on Mon Mar 10 05:28:25 2025

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

Username: / as sysdba

Connected to: Oracle Database 11g Enterprise Edition Release [Link].0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYS"."SYS_EXPORT_TRANSPORTABLE_01": /******** AS SYSDBA parfile=user_p.par
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type TRANSPORTABLE_EXPORT/INDEX
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/COMMENT
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/TRIGGER
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Master table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:
/u01/app/oracle/dump/[Link]
******************************************************************************
Datafiles required for transportable tablespace USER_P_TBSP:
/u01/app/oracle/oradata/sourcehostdb11g/sol10db11g/user_p_tbsp.dbf
Job "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 05:29:19

Option1.B: Transfer the export file to destination directory used by


datapump

Option1.C: Run datapump import using the export file on destination


to plug in the tablespaces.

For example:
[oracle@target_host]$ cat manual_imp.par
dumpfile= [Link]
directory=data_dump
transport_datafiles='+FRADATA/USER_P_TBSP_6.dbf'
logfile=tts_import.log

[oracle@target_host]$ impdp parfile=manual_imp.par

Before doing the import set the environment variable as below to point the import job to PDB
export ORACLE_PDB_SID=<PDB_NAME>

[oracle@Target_host dump]$ impdp parfile=manual_imp.par

Import: Release [Link].0 - Production on Tue Mar 11 01:43:42 2025


Version [Link].0

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

Username: / as sysdba
Password:

Connected to: Oracle Database 19c Enterprise Edition Release [Link].0 - Production
Master table "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
Starting "SYS"."SYS_IMPORT_TRANSPORTABLE_01": /******** AS SYSDBA parfile=manual_imp.par
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/GRANT/OWNER_GRANT/OBJECT_GRANT
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'OE' does not exist

Failing sql is:


GRANT SELECT, REFERENCES ON "USER_P"."COUNTRIES" TO "OE"

ORA-39083: Object type OBJECT_GRANT failed to create with error:


ORA-01917: user or role 'OE' does not exist

Failing sql is:


GRANT SELECT, REFERENCES ON "USER_P"."LOCATIONS" TO "OE"

ORA-39083: Object type OBJECT_GRANT failed to create with error:


ORA-01917: user or role 'OE' does not exist

Failing sql is:


GRANT SELECT ON "USER_P"."DEPARTMENTS" TO "OE"

ORA-39083: Object type OBJECT_GRANT failed to create with error:


ORA-01917: user or role 'OE' does not exist

Failing sql is:


GRANT SELECT ON "USER_P"."JOBS" TO "OE"

ORA-39083: Object type OBJECT_GRANT failed to create with error:


ORA-01917: user or role 'OE' does not exist

Failing sql is:


GRANT SELECT, REFERENCES ON "USER_P"."EMPLOYEES" TO "OE"

ORA-39083: Object type OBJECT_GRANT failed to create with error:


ORA-01917: user or role 'OE' does not exist

Failing sql is:


GRANT SELECT ON "USER_P"."JOB_HISTORY" TO "OE"
Processing object type TRANSPORTABLE_EXPORT/INDEX
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/COMMENT
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/TRIGGER
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
ORA-39082: Object type TRIGGER:"USER_P"."SECURE_EMPLOYEES" created with compilation warnings

ORA-39082: Object type TRIGGER:"USER_P"."UPDATE_JOB_HISTORY" created with compilation warnings

Job "SYS"."SYS_IMPORT_TRANSPORTABLE_01" completed with 8 error(s) at Tue Mar 11 01:44:12 2025


elapsed 0 00:00:19

Step 6.2 Check tablespaces for corruption

At this step, the transported data is READ ONLY in the destination database. Perform application
specific validation to verify the transported data.

Also, run RMAN to check for physical and logical block corruption by running VALIDATE TABLESPACE
as follows:

RMAN> validate tablespace TS1, TS2 check logical;

in Target PDB

SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
+FRADATA/LINUX19DB/2FCB39CE06AC0B75E065524DE5264FBD/DATAFILE/system.275.1195194469
+FRADATA/LINUX19DB/2FCB39CE06AC0B75E065524DE5264FBD/DATAFILE/sysaux.276.1195194469
+FRADATA/LINUX19DB/2FCB39CE06AC0B75E065524DE5264FBD/DATAFILE/undotbs1.274.11951944
69

+FRADATA/LINUX19DB/2FCB39CE06AC0B75E065524DE5264FBD/DATAFILE/users.278.1195194543
+FRADATA/user_p_tbsp_6.dbf

SQL> set line 500


SQL> set pagesize 500
SQL> col tablespace_name format a20
SQL> col file_name format a60
select
SQL> 2 tbsp.tablespace_name TBSP_NAME
3 ,[Link] TBSP_STATUS
,ddf.file_name FILE_NAME
4 5 ,[Link] DATA_FILE_STATUS
6 ,ddf.ONLINE_STATUS DATAFILE_ONLINE_STATUS
from dba_tablespaces tbsp, dba_data_files ddf
where tbsp.tablespace_name = ddf.tablespace_name
7 8 9 and tbsp.tablespace_name like '%_TBSP'
10 order by tbsp.tablespace_name;

TBSP_NAME TBSP_STAT FILE_NAME DATA_FILE DATAFIL


------------------------------ --------- ------------------------------------------------------------ --------- -------
USER_P_TBSP READ ONLY +FRADATA/user_p_tbsp_6.dbf AVAILABLE ONLINE

SQL> select owner,object_name,object_type from dba_objects where owner='USER_P' order by


object_type;

OWNER OBJECT_NAME OBJECT_TYPE


-------------------- ------------------------------ -----------------------
USER_P COUNTRY_C_ID_PK INDEX
USER_P JHIST_EMP_ID_ST_DATE_PK INDEX
USER_P JHIST_JOB_IX INDEX
USER_P JHIST_EMPLOYEE_IX INDEX
USER_P JHIST_DEPARTMENT_IX INDEX
USER_P EMP_EMAIL_UK INDEX
USER_P EMP_EMP_ID_PK INDEX
USER_P EMP_DEPARTMENT_IX INDEX
USER_P EMP_JOB_IX INDEX
USER_P EMP_MANAGER_IX INDEX
USER_P REG_ID_PK INDEX
USER_P LOC_COUNTRY_IX INDEX
USER_P LOC_STATE_PROVINCE_IX INDEX
USER_P LOC_CITY_IX INDEX
USER_P LOC_ID_PK INDEX
USER_P DEPT_LOCATION_IX INDEX
USER_P DEPT_ID_PK INDEX
USER_P JOB_ID_PK INDEX
USER_P EMP_NAME_IX INDEX
USER_P JOBS TABLE
USER_P REGIONS TABLE
USER_P DUMMY_COUNTRIES TABLE
USER_P JOB_HISTORY TABLE
USER_P EMPLOYEES TABLE
USER_P COUNTRIES TABLE
USER_P DEPARTMENTS TABLE
USER_P LOCATIONS TABLE
USER_P UPDATE_JOB_HISTORY TRIGGER
USER_P SECURE_EMPLOYEES TRIGGER

You can see DUMMY_COUNTRIES is present.

Step 6.3 - Alter the tablespace(s) READ WRITE in the destination


database

The final step is to make the destination tablespace(s) READ WRITE in the destination database.

SQL> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED


---------- ------------------------------ ---------- ----------
3 LINX19PDB READ WRITE NO
SQL>
SQL> alter tablespace USER_P_TBSP read write;

Tablespace altered.

SQL> set line 500


SQL> set pagesize 500
SQL> col tablespace_name format a20
col file_name format a60
SQL> SQL> select
tbsp.tablespace_name TBSP_NAME
2 3 ,[Link] TBSP_STATUS
4 ,ddf.file_name FILE_NAME
,[Link] DATA_FILE_STATUS
,ddf.ONLINE_STATUS DATAFILE_ONLINE_STATUS
5 6 7 from dba_tablespaces tbsp, dba_data_files ddf
where tbsp.tablespace_name = ddf.tablespace_name
8 9 and tbsp.tablespace_name like '%_TBSP'
order by tbsp.tablespace_name; 10

TBSP_NAME TBSP_STAT FILE_NAME DATA_FILE DATAFIL


------------------------------ --------- ------------------------------------------------------------ --------- -------
USER_P_TBSP ONLINE +FRADATA/user_p_tbsp_6.dbf AVAILABLE ONLINE

Common questions

Powered by AI

The usermantransport parameter in xtt.properties must have the same version on both source and destination databases to ensure compatibility during transportable tablespace operations. This parameter affects the way data transport is managed and differences might lead to errors or inconsistencies, thus using the same version helps maintain synchronization in data handling across platforms .

Setting the tablespace to 'READ ONLY' mode ensures that no further modifications are made to the data, maintaining consistency between source and destination data during the migration. This setting is critical as it allows the creation and application of a final incremental backup that synchronizes the data at both ends. The document describes altering the source tablespace to 'READ ONLY' after creating a dummy table for testing, and this is essential in the phase where metadata is exported and imported to the destination .

For transportable tablespace migration, both the source and target databases must use compatible character sets and national character sets. This ensures data consistency and integrity during the migration process. In the given scenario, both source and target databases use AL32UTF8 for NLS_CHARACTERSET and AL16UTF16 for NLS_NCHAR_CHARACTERSET, which matches the requirement .

Using a standalone database without a standby configuration eliminates redundancy and recovery options available in a Data Guard environment. This raises potential risks during migration, such as data loss or increased downtime if any part of the process fails. While not part of this experiment, utilizing a standby database could provide a safety net, allowing recovery and continuity in case of migration issues that could not be managed in a standalone setup .

Once the migration process has begun, no datafiles should be dropped from the tablespaces being migrated. If a datafile is dropped and its number is reassigned to a newly added datafile, it can cause problems with the migration's data integrity. This recommendation is crucial to maintaining the consistency and reliability of the migration process .

Non-Linux operating systems must be running Oracle version 12.1.0.1 or higher, both at the source and destination, to use the transportable tablespace feature. This is necessary to ensure compatibility and functionality during migration .

Using OS authentication via an Oracle user who is a member of the OSDBA group is important for maintaining the appropriate security and permissions needed to execute the migration process successfully. This ensures necessary administrative access rights are in place for interactions with both source and destination databases, facilitating secure data handling .

When using ASM for database migration, it is necessary to ensure that backups are not placed on ASM devices since ASM can only be used as the final location for datafiles. Instead, backups should be stored locally or on NAS/NFS systems with read/write permissions to avoid errors like ORA-19624 .

The RMAN convert command is essential for enhancing datafile compatibility when migrating across different platforms with differing file structures. This feature allows for the conversion of datafile formats to ensure they are compatible with the destination platform's architecture, supporting a seamless transition and maintaining data accessibility post-migration .

During the incremental backup phase, an initial backup set is created from the source database, capturing all changes up to the point of backup initiation. This phase ensures that any new updates after the initial full backup are captured incrementally, allowing the destination to be kept in sync with the source. This process maintains the consistency between source and destination databases, enabling a smoother final synchronization before the data migration is considered complete .

You might also like