Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

duplicate from active database - spfile parameter_value_convert

EdStevensMar 18 2016 — edited Mar 21 2016

Oracle 11.2.0.4.0 SE-One 64-bit

Oracle ASM 11.2.0.4.0

Oracle Linux 6.7

Project is to migrate from OL5 to OL6.  Weekend outage is tolerated.

I am using rman duplicate database to migrate to new servers with a better ASM configuration.

One of the 'sins of the past' that I'm trying to leave behind is some badly configured ASM diskgroups.  On the old dev system, which has 2 databases, each db has two diskgroups.  On the new, it's just one DG per db.  And yes, I know that some would advocate for one DG, period.  On the old system, we have DGs '+DEV_LARGE' and '+DEV_SMALL'.  On the new system it is just '+DEV_DATA'

I have worked through a variety of small 'gotchas', but am stumped on this one. My rman script looks like this:

Listing 1

rman << EOF

set echo on

connect target sys/mypwd@dwdev5

connect auxiliary sys/mypwd@dwdev6

connect catalog rman/cat@rmcat

duplicate database to dwdev

from active database

db_file_name_convert ('+DEV_SMALL','+DEV_DATA',

                      '+DEV_LARGE','+DEV_DATA')

spfile parameter_value_convert ('+DEV_LARGE','+DEV_DATA',

                                '+DEV_SMALL','+DEV_DATA')

nofilenamecheck

;

EOF

It works great all the way through the data files, but then gets down to the control file and we get this:

Listing 2

connected to auxiliary database (not started)

Oracle instance started

Total System Global Area     839282688 bytes

Fixed Size                     2257880 bytes

Variable Size                545262632 bytes

Database Buffers             289406976 bytes

Redo Buffers                   2355200 bytes

sql statement: CREATE CONTROLFILE REUSE SET DATABASE "DWDEV" RESETLOGS ARCHIVELOG

  MAXLOGFILES     16

  MAXLOGMEMBERS      3

  MAXDATAFILES      100

  MAXINSTANCES     8

  MAXLOGHISTORY      292

LOGFILE

  GROUP   1  SIZE 50 M ,

  GROUP   2  SIZE 50 M ,

  GROUP   3  SIZE 50 M

DATAFILE

  '+DEV_DATA/dwdev/datafile/system.258.906807975'

CHARACTER SET WE8MSWIN1252

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of Duplicate Db command at 03/18/2016 11:07:57

RMAN-05501: aborting duplication of target database

RMAN-06136: ORACLE error from auxiliary database: ORA-01503: CREATE CONTROLFILE failed

ORA-00349: failure obtaining block size for '+DEV_LARGE'

ORA-15001: diskgroup "DEV_LARGE" does not exist or is not mounted

ORA-15001: diskgroup "DEV_LARGE" does not exist or is not mounted

Given that I specified 'spfile parameter_value_convert' (listing 1, line 10) I don't understand where it is getting the reference to DEV_LARGE, which is one of the two DGs used by the source db.  I see it in the created spfile also, but again, don't understand why, given my specification.  The spfile that rman created for the aux (destination) db is this:

Listing 3

oracle:dwdev$ ls -l spfile*

-rw-r----- 1 oracle oinstall 2560 Mar 18 11:07 spfiledwdev.ora

2016-03-18 11:39:28

oracle:dwdev$ strings spfiledwdev.ora

dwdev.__db_cache_size=289406976

dwdev.__java_pool_size=4194304

dwdev.__large_pool_size=71303168

dwdev.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment

dwdev.__pga_aggregate_target=339738624

dwdev.__sga_target=503316480

dwdev.__shared_io_pool_size=0

dwdev.__shared_pool_size=130023424

dwdev.__streams_pool_size=0

*.audit_file_dest='/u01/app/oracle/admin/dwdev/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='+DEV_DATA/dwdev/controlfile/current.257.9068

07953'#Set by RMAN

*.db_block_size=8192

*.db_create_file_dest='+DEV_LARGE'

*.db_domain=''

*.db_name='DWDEV'#Reset to original value by RMAN

*.diagnostic_dest='/u01/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=dwdevXDB)'

*.log_archive_dest_1='location=/backup/dwdev/archive'

*.memory_target=842006528

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_tablespace='UNDOTBS1'

BTW, when the process first starts, the spfile for the aux instance contains just one parameter - db_name=dwdev.

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 18 2016
Added on Mar 18 2016
11 comments
3,851 views