RMAN convert optimization

When converting a database from one operating system to another one (to phase out your Itanium infrastructure for example) you may be tempted to play with parallelism parameter when converting your tablespaces (having one datafile in our example). This RMAN convert phase is obviously needed when your destination platform endian format is not he same:

SQL> SET lines 130
SQL> col PLATFORM_NAME FOR a40
SQL> SELECT platform_name, endian_format FROM v$transportable_platform ORDER BY 1;
 
PLATFORM_NAME                            ENDIAN_FORMAT
---------------------------------------- --------------
AIX-Based Systems (64-bit)               Big
Apple Mac OS                             Big
HP IA OPEN VMS                           Little
HP OPEN VMS                              Little
HP Tru64 UNIX                            Little
HP-UX (64-bit)                           Big
HP-UX IA (64-bit)                        Big
IBM POWER Based Linux                    Big
IBM zSeries Based Linux                  Big
Linux 64-bit FOR AMD                     Little
Linux IA (32-bit)                        Little
Linux IA (64-bit)                        Little
Microsoft Windows 64-bit FOR AMD         Little
Microsoft Windows IA (32-bit)            Little
Microsoft Windows IA (64-bit)            Little
Solaris Operating SYSTEM (AMD64)         Little
Solaris Operating SYSTEM (x86)           Little
Solaris[tm] OE (32-bit)                  Big
Solaris[tm] OE (64-bit)                  Big
 
19 ROWS selected.

You see in below example that a datafile conversion is sequential and parallelism is not apply at all (testing has been done with Oracle 10.2.0.3.0 on HPUX IA 11.23):

server1{oracle}# rman
 
Recovery Manager: RELEASE 10.2.0.3.0 - Production ON Thu Apr 7 17:35:28 2011
 
Copyright (c) 1982, 2005, Oracle.  ALL rights reserved.
 
RMAN> CONNECT target /
 
connected TO target DATABASE: DB1 (DBID=329576362)
 
RMAN> show ALL;
 
USING target DATABASE control FILE instead OF recovery catalog
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # DEFAULT
CONFIGURE BACKUP OPTIMIZATION OFF; # DEFAULT
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # DEFAULT
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # DEFAULT
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # DEFAULT
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # DEFAULT
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # DEFAULT
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # DEFAULT
CONFIGURE MAXSETSIZE TO UNLIMITED; # DEFAULT
CONFIGURE ENCRYPTION FOR DATABASE OFF; # DEFAULT
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # DEFAULT
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # DEFAULT
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/ora_db1/software/dbs/snapcf_db1.f'; # DEFAULT
 
RMAN> SQL 'alter tablespace DMDATA3 read only';
 
SQL statement: ALTER TABLESPACE DMDATA3 read only
 
RMAN> CONVERT TABLESPACE DMDATA3  TO platform 'Linux 64-bit for AMD' format '/backup/%U';
 
Starting backup AT 07-APR-11
USING channel ORA_DISK_1
channel ORA_DISK_1: starting datafile conversion
input datafile fno=00007 name=/ora_db1/data01/db1/dmdata3_01.dbf
converted datafile=/backup/data_D-DB1_I-329576362_TS-DMDATA3_FNO-7_01m96nr6
channel ORA_DISK_1: datafile conversion complete, elapsed TIME: 00:05:06
Finished backup AT 07-APR-11
 
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
 
NEW RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
NEW RMAN configuration parameters are successfully stored
released channel: ORA_DISK_1
 
RMAN> CONVERT TABLESPACE DMDATA3 TO platform 'Linux 64-bit for AMD' format '/backup/%U';
 
Starting backup AT 07-APR-11
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=402 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=433 devtype=DISK
channel ORA_DISK_1: starting datafile conversion
input datafile fno=00007 name=/ora_db1/data01/db1/dmdata3_01.dbf
converted datafile=/backup/data_D-DB1_I-329576362_TS-DMDATA3_FNO-7_02m96o7p
channel ORA_DISK_1: datafile conversion complete, elapsed TIME: 00:05:45
Finished backup AT 07-APR-11

This last example of conversion clearly demonstrate that main bottleneck is I/O and that figures are quite erratic if other processes are using same disk:

RMAN> CONVERT TABLESPACE DMDATA3 TO platform 'Linux 64-bit for AMD' format '/backup/%U' parallelism=6;
 
Starting backup AT 07-APR-11
USING channel ORA_DISK_1
USING channel ORA_DISK_2
USING channel ORA_DISK_3
USING channel ORA_DISK_4
allocated channel: ORA_DISK_5
channel ORA_DISK_5: sid=423 devtype=DISK
allocated channel: ORA_DISK_6
channel ORA_DISK_6: sid=418 devtype=DISK
channel ORA_DISK_1: starting datafile conversion
input datafile fno=00007 name=/ora_db1/data01/db1/dmdata3_01.dbf
converted datafile=/backup/data_D-DB1_I-329576362_TS-DMDATA3_FNO-7_04m96otf
channel ORA_DISK_1: datafile conversion complete, elapsed TIME: 00:03:25
Finished backup AT 07-APR-11
 
RMAN> CONVERT TABLESPACE DMDATA3 TO platform 'Linux 64-bit for AMD' format '/backup/%U' parallelism=1;
 
Starting backup AT 07-APR-11
USING channel ORA_DISK_1
channel ORA_DISK_1: starting datafile conversion
input datafile fno=00007 name=/ora_db1/data01/db1/dmdata3_01.dbf
converted datafile=/backup/data_D-DB1_I-329576362_TS-DMDATA3_FNO-7_05m96p9m
channel ORA_DISK_1: datafile conversion complete, elapsed TIME: 00:03:25
Finished backup AT 07-APR-11

But parallelism parameter do have an interest when converting, one shot, a whole database and/or tablespaces with many datafiles (more common configuration). In this case each channel will handle a datafile and will parallelize the job, having fast disk for target directory is, in this case, mandatory…

About Post Author

Share the knowledge!
This entry was posted in Oracle and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>