How to Rename ASM Diskgroup

OS Environment: Oracle Linux 8.7 (64bit)

DB Environment: Oracle Database 19.27.0.0


This article explains how to change the ASM disk group name in Oracle 19c. It covers how to rename both a disk group without DB data (such as DBF files) and a disk group containing DB data. For reference, in the current environment, RAC is configured using the oracleasm library.

Tests

  1. Renaming a disk group without DB data
  2. Renaming a disk group with DB data

Test

1. Renaming a disk group without DB data

Check CRS information:

$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       ora19rac1                STABLE
               ONLINE  ONLINE       ora19rac2                STABLE
ora.chad
               ONLINE  ONLINE       ora19rac1                STABLE
               OFFLINE OFFLINE      ora19rac2                STABLE
ora.net1.network
               ONLINE  ONLINE       ora19rac1                STABLE
               ONLINE  ONLINE       ora19rac2                STABLE
ora.ons
               ONLINE  ONLINE       ora19rac1                STABLE
               ONLINE  ONLINE       ora19rac2                STABLE
ora.proxy_advm
               OFFLINE OFFLINE      ora19rac1                STABLE
               OFFLINE OFFLINE      ora19rac2                STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       ora19rac1                STABLE
      2        ONLINE  ONLINE       ora19rac2                STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       ora19rac1                STABLE
      2        ONLINE  ONLINE       ora19rac2                STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       ora19rac2                STABLE
ora.OCRVOTE.dg(ora.asmgroup)
      1        ONLINE  ONLINE       ora19rac1                STABLE
      2        ONLINE  ONLINE       ora19rac2                STABLE
ora.RECO.dg(ora.asmgroup) <<---
      1        ONLINE  ONLINE       ora19rac1                STABLE
      2        ONLINE  ONLINE       ora19rac2                STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       ora19rac1                Started,STABLE
      2        ONLINE  ONLINE       ora19rac2                Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       ora19rac1                STABLE
      2        ONLINE  ONLINE       ora19rac2                STABLE
ora.cvu
      1        ONLINE  ONLINE       ora19rac2                STABLE
ora.ora19db.db
      1        ONLINE  ONLINE       ora19rac1                Open,HOME=/oracle/ap
                                                             p/oracle/product/19c
                                                             ,STABLE
      2        ONLINE  ONLINE       ora19rac2                Open,HOME=/oracle/ap
                                                             p/oracle/product/19c
                                                             ,STABLE
ora.ora19rac1.vip
      1        ONLINE  ONLINE       ora19rac1                STABLE
ora.ora19rac2.vip
      1        ONLINE  ONLINE       ora19rac2                STABLE
ora.qosmserver
      1        ONLINE  ONLINE       ora19rac2                STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       ora19rac2                STABLE
--------------------------------------------------------------------------------

Check with lsdg:

$ asmcmd
ASMCMD> lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304     29696    11028                0           11028              0             N  DATA/
MOUNTED  NORMAL  N         512             512   4096  4194304      6144     5108             2048            1530              0             Y  OCRVOTE/
MOUNTED  EXTERN  N         512             512   4096  4194304    101376    86848                0           86848              0             N  RECO/

Check v$asm_diskgroup:

SQL> select inst_id,name, state from gv$asm_diskgroup;
 
   INST_ID NAME                           STATE
---------- ------------------------------ -----------
         2 DATA                           MOUNTED
         2 OCRVOTE                        MOUNTED
         2 RECO                           MOUNTED
         1 DATA                           MOUNTED
         1 OCRVOTE                        MOUNTED
         1 RECO                           MOUNTED
 
6 rows selected.

If the disk is not in use, unmount it (if it’s a DG with DBF files, shut down the DB first):

# Node 1
# asmcmd umount 
ASMCMD> umount RECO
ASMCMD> lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304     29696    11028                0           11028              0             N  DATA/
MOUNTED  NORMAL  N         512             512   4096  4194304      6144     5108             2048            1530              0             Y  OCRVOTE/

# Node 2
# asmcmd umount 
ASMCMD> umount RECO
ASMCMD> lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304     29696    11028                0           11028              0             N  DATA/

Check v$asm_diskgroup:

SQL> select inst_id,name, state from gv$asm_diskgroup;
 
   INST_ID NAME                           STATE
---------- ------------------------------ -----------
         1 RECO                           DISMOUNTED
         1 DATA                           CONNECTED
         1 OCRVOTE                        MOUNTED
         2 RECO                           DISMOUNTED
         2 DATA                           CONNECTED
         2 OCRVOTE                        MOUNTED
 
6 rows selected.

Rename the disk group (Run as the grid user) Example) $ renamedg phase=both dgname=<old_dg_name> newdgname=<new_dg_name> verbose=true

$ which renamedg
/oracle/app/grid/19c/bin/renamedg
$ renamedg phase=both dgname=RECO newdgname=RECONEW verbose=true
 
Parameters in effect:
 
         Old DG name       : RECO
         New DG name          : RECONEW
         Phases               :
                 Phase 1
                 Phase 2
         Discovery str        : (null)
         Clean              : TRUE
         Raw only           : TRUE
renamedg operation: phase=both dgname=RECO newdgname=RECONEW verbose=true
Executing phase 1
Discovering the group
Performing discovery with string:
Identified disk ASM:ASM Library - Generic Linux, version 2.0.17 (KABI_V2):ORCL:RECO02 with disk number:0 and timestamp (33183368 2133368832)
Checking for hearbeat...
Re-discovering the group
Performing discovery with string:
Identified disk ASM:ASM Library - Generic Linux, version 2.0.17 (KABI_V2):ORCL:RECO02 with disk number:0 and timestamp (33183368 2133368832)
Checking if the diskgroup is mounted or used by CSS
Checking disk number:0
Generating configuration file..
Completed phase 1
Executing phase 2
Looking for ORCL:RECO02
Pre-image dump of header : ORCL:RECO02
kfbh.endian:                          1 ; 0x000: 0x01
 
kfbh.hard:                          130 ; 0x001: 0x82
 
kfbh.type:                            1 ; 0x002: KFBTYP_DISKHEAD
 
kfbh.datfmt:                          1 ; 0x003: 0x01
 
kfbh.block.blk:                       0 ; 0x004: blk=0
 
kfbh.block.obj:              2147483648 ; 0x008: disk=0
 
kfbh.check:                  1919283327 ; 0x00c: 0x7265f07f
 
kfbh.fcn.base:                        0 ; 0x010: 0x00000000
 
kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
 
kfbh.spare1:                          0 ; 0x018: 0x00000000
 
kfbh.spare2:                          0 ; 0x01c: 0x00000000
 
kfdhdb.driver.provstr:   ORCLDISKRECO02 ; 0x000: length=14
 
kfdhdb.driver.reserved[0]:   1329808722 ; 0x008: 0x4f434552
 
kfdhdb.driver.reserved[1]:        12848 ; 0x00c: 0x00003230
 
kfdhdb.driver.reserved[2]:            0 ; 0x010: 0x00000000
 
kfdhdb.driver.reserved[3]:            0 ; 0x014: 0x00000000
 
kfdhdb.driver.reserved[4]:            0 ; 0x018: 0x00000000
 
kfdhdb.driver.reserved[5]:            0 ; 0x01c: 0x00000000
 
kfdhdb.compat:                318767104 ; 0x020: 0x13000000
 
kfdhdb.dsknum:                        0 ; 0x024: 0x0000
 
kfdhdb.grptyp:                        1 ; 0x026: KFDGTP_EXTERNAL
 
kfdhdb.hdrsts:                        3 ; 0x027: KFDHDR_MEMBER
 
kfdhdb.dskname:               RECO_0000 ; 0x028: length=9
 
kfdhdb.grpname:                    RECO ; 0x048: length=4
 
kfdhdb.fgname:                RECO_0000 ; 0x068: length=9
 
kfdhdb.siteguid[0]:                   0 ; 0x088: 0x00
 
kfdhdb.siteguid[1]:                   0 ; 0x089: 0x00
 
kfdhdb.siteguid[2]:                   0 ; 0x08a: 0x00
 
kfdhdb.siteguid[3]:                   0 ; 0x08b: 0x00
 
kfdhdb.siteguid[4]:                   0 ; 0x08c: 0x00
 
kfdhdb.siteguid[5]:                   0 ; 0x08d: 0x00
 
kfdhdb.siteguid[6]:                   0 ; 0x08e: 0x00
 
kfdhdb.siteguid[7]:                   0 ; 0x08f: 0x00
 
kfdhdb.siteguid[8]:                   0 ; 0x090: 0x00
 
kfdhdb.siteguid[9]:                   0 ; 0x091: 0x00
 
kfdhdb.siteguid[10]:                  0 ; 0x092: 0x00
 
kfdhdb.siteguid[11]:                  0 ; 0x093: 0x00
 
kfdhdb.siteguid[12]:                  0 ; 0x094: 0x00
 
kfdhdb.siteguid[13]:                  0 ; 0x095: 0x00
 
kfdhdb.siteguid[14]:                  0 ; 0x096: 0x00
 
kfdhdb.siteguid[15]:                  0 ; 0x097: 0x00
 
kfdhdb.ub1spare[0]:                   0 ; 0x098: 0x00
 
kfdhdb.ub1spare[1]:                   0 ; 0x099: 0x00
 
kfdhdb.ub1spare[2]:                   0 ; 0x09a: 0x00
 
kfdhdb.ub1spare[3]:                   0 ; 0x09b: 0x00
 
kfdhdb.ub1spare[4]:                   0 ; 0x09c: 0x00
 
kfdhdb.ub1spare[5]:                   0 ; 0x09d: 0x00
 
kfdhdb.ub1spare[6]:                   0 ; 0x09e: 0x00
 
kfdhdb.ub1spare[7]:                   0 ; 0x09f: 0x00
 
kfdhdb.ub1spare[8]:                   0 ; 0x0a0: 0x00
 
kfdhdb.ub1spare[9]:                   0 ; 0x0a1: 0x00
 
kfdhdb.ub1spare[10]:                  0 ; 0x0a2: 0x00
 
kfdhdb.ub1spare[11]:                  0 ; 0x0a3: 0x00
 
kfdhdb.ub1spare[12]:                  0 ; 0x0a4: 0x00
 
kfdhdb.ub1spare[13]:                  0 ; 0x0a5: 0x00
 
kfdhdb.ub1spare[14]:                  0 ; 0x0a6: 0x00
 
kfdhdb.ub1spare[15]:                  0 ; 0x0a7: 0x00
 
kfdhdb.crestmp.hi:             33183368 ; 0x0a8: HOUR=0x8 DAYS=0x14 MNTH=0x5 YEAR=0x7e9
 
kfdhdb.crestmp.lo:           2133368832 ; 0x0ac: USEC=0x0 MSEC=0x228 SECS=0x32 MINS=0x1f
 
kfdhdb.mntstmp.hi:             33189422 ; 0x0b0: HOUR=0xe DAYS=0x11 MNTH=0xb YEAR=0x7e9
 
kfdhdb.mntstmp.lo:            658845696 ; 0x0b4: USEC=0x0 MSEC=0x14c SECS=0x34 MINS=0x9
 
kfdhdb.secsize:                     512 ; 0x0b8: 0x0200
 
kfdhdb.blksize:                    4096 ; 0x0ba: 0x1000
 
kfdhdb.ausize:                  4194304 ; 0x0bc: 0x00400000
 
kfdhdb.mfact:                    454272 ; 0x0c0: 0x0006ee80
 
kfdhdb.dsksize:                   25344 ; 0x0c4: 0x00006300
 
kfdhdb.pmcnt:                         3 ; 0x0c8: 0x00000003
 
kfdhdb.fstlocn:                       1 ; 0x0cc: 0x00000001
 
kfdhdb.altlocn:                       2 ; 0x0d0: 0x00000002
 
kfdhdb.f1b1locn:                     10 ; 0x0d4: 0x0000000a
 
kfdhdb.redomirrors[0]:                0 ; 0x0d8: 0x0000
 
kfdhdb.redomirrors[1]:                0 ; 0x0da: 0x0000
 
kfdhdb.redomirrors[2]:                0 ; 0x0dc: 0x0000
 
kfdhdb.redomirrors[3]:                0 ; 0x0de: 0x0000
 
kfdhdb.dbcompat:              168820736 ; 0x0e0: 0x0a100000
 
kfdhdb.grpstmp.hi:             33183368 ; 0x0e4: HOUR=0x8 DAYS=0x14 MNTH=0x5 YEAR=0x7e9
 
kfdhdb.grpstmp.lo:           2133273600 ; 0x0e8: USEC=0x0 MSEC=0x1cb SECS=0x32 MINS=0x1f
 
kfdhdb.vfstart:                       0 ; 0x0ec: 0x00000000
 
kfdhdb.vfend:                         0 ; 0x0f0: 0x00000000
 
kfdhdb.spfile:                        0 ; 0x0f4: 0x00000000
 
kfdhdb.spfflg:                        0 ; 0x0f8: 0x00000000
 
kfdhdb.flags:                         1 ; 0x0fc: 0x00000001
 
kfdhdb.f1b1fcn.base:                  0 ; 0x100: 0x00000000
 
kfdhdb.f1b1fcn.wrap:                  0 ; 0x104: 0x00000000
 
kfdhdb.ip[0]:                       192 ; 0x108: 0xc0
 
kfdhdb.ip[1]:                       168 ; 0x109: 0xa8
 
kfdhdb.ip[2]:                       137 ; 0x10a: 0x89
 
kfdhdb.ip[3]:                       162 ; 0x10b: 0xa2
 
kfdhdb.modstmp:              1763356192 ; 0x10c: 0x691aae20
 
kfdhdb.checklbl:                      0 ; 0x110: 0x00
 
kfdhdb.verlbl:                        0 ; 0x111: 0x00
 
kfdhdb.ub2spare:                      0 ; 0x112: 0x0000
 
kfdhdb.sitelbl:                         ; 0x114: length=0
 
kfdhdb.fglbl:                           ; 0x124: length=0
 
kfdhdb.vsnnum:                318767104 ; 0x144: 0x13000000
 
kfdhdb.patchvsn:                      0 ; 0x148: 0x0000
 
kfdhdb.operation:                     0 ; 0x14a: 0x0000
 
kfdhdb.xtnd[0]:                       0 ; 0x14c: 0x0000
 
kfdhdb.xtnd[1]:                       0 ; 0x14e: 0x0000
 
kfdhdb.xtnd[2]:                       0 ; 0x150: 0x0000
 
kfdhdb.xtnd[3]:                       0 ; 0x152: 0x0000
 
kfdhdb.xtnd[4]:                       0 ; 0x154: 0x0000
 
kfdhdb.xtnd[5]:                       0 ; 0x156: 0x0000
 
kfdhdb.ub4spare[0]:                   0 ; 0x158: 0x00000000
 
kfdhdb.ub4spare[1]:                   0 ; 0x15c: 0x00000000
 
kfdhdb.ub4spare[2]:                   0 ; 0x160: 0x00000000
 
kfdhdb.ub4spare[3]:                   0 ; 0x164: 0x00000000
 
kfdhdb.ub4spare[4]:                   0 ; 0x168: 0x00000000
 
kfdhdb.ub4spare[5]:                   0 ; 0x16c: 0x00000000
 
kfdhdb.ub4spare[6]:                   0 ; 0x170: 0x00000000
 
kfdhdb.ub4spare[7]:                   0 ; 0x174: 0x00000000
 
kfdhdb.ub4spare[8]:                   0 ; 0x178: 0x00000000
 
kfdhdb.ub4spare[9]:                   0 ; 0x17c: 0x00000000
 
kfdhdb.ub4spare[10]:                  0 ; 0x180: 0x00000000
 
kfdhdb.ub4spare[11]:                  0 ; 0x184: 0x00000000
 
kfdhdb.ub4spare[12]:                  0 ; 0x188: 0x00000000
 
kfdhdb.ub4spare[13]:                  0 ; 0x18c: 0x00000000
 
kfdhdb.ub4spare[14]:                  0 ; 0x190: 0x00000000
 
kfdhdb.ub4spare[15]:                  0 ; 0x194: 0x00000000
 
kfdhdb.ub4spare[16]:                  0 ; 0x198: 0x00000000
 
kfdhdb.ub4spare[17]:                  0 ; 0x19c: 0x00000000
 
kfdhdb.ub4spare[18]:                  0 ; 0x1a0: 0x00000000
 
kfdhdb.ub4spare[19]:                  0 ; 0x1a4: 0x00000000
 
kfdhdb.ub4spare[20]:                  0 ; 0x1a8: 0x00000000
 
kfdhdb.ub4spare[21]:                  0 ; 0x1ac: 0x00000000
 
kfdhdb.ub4spare[22]:                  0 ; 0x1b0: 0x00000000
 
kfdhdb.ub4spare[23]:                  0 ; 0x1b4: 0x00000000
 
kfdhdb.ub4spare[24]:                  0 ; 0x1b8: 0x00000000
 
kfdhdb.ub4spare[25]:                  0 ; 0x1bc: 0x00000000
 
kfdhdb.ub4spare[26]:                  0 ; 0x1c0: 0x00000000
 
kfdhdb.ub4spare[27]:                  0 ; 0x1c4: 0x00000000
 
kfdhdb.ub4spare[28]:                  0 ; 0x1c8: 0x00000000
 
kfdhdb.ub4spare[29]:                  0 ; 0x1cc: 0x00000000
 
kfdhdb.ub4spare[30]:                  0 ; 0x1d0: 0x00000000
 
kfdhdb.acdb.aba.seq:                  0 ; 0x1d4: 0x00000000
 
kfdhdb.acdb.aba.blk:                  0 ; 0x1d8: 0x00000000
 
kfdhdb.acdb.ents:                     0 ; 0x1dc: 0x0000
 
kfdhdb.acdb.ub2spare:                 0 ; 0x1de: 0x0000
 
Modifying the header
Completed phase 2

Completed.

Check v$asm_diskgroup:

SQL> select inst_id,name, state from gv$asm_diskgroup;
 
   INST_ID NAME                           STATE
---------- ------------------------------ -----------
         1 RECONEW                        DISMOUNTED
         1 DATA                           CONNECTED
         1 OCRVOTE                        MOUNTED
         2 RECONEW                        DISMOUNTED
         2 DATA                           CONNECTED
         2 OCRVOTE                        MOUNTED
 
6 rows selected.

The name was changed normally.

Mount Diskgroup

# Node 1
$ asmcmd
ASMCMD> lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304     29696    11028                0           11028              0             N  DATA/
MOUNTED  NORMAL  N         512             512   4096  4194304      6144     5108             2048            1530              0             Y  OCRVOTE/
ASMCMD> mount RECONEW
ASMCMD> lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304     29696    11028                0           11028              0             N  DATA/
MOUNTED  NORMAL  N         512             512   4096  4194304      6144     5108             2048            1530              0             Y  OCRVOTE/
MOUNTED  EXTERN  N         512             512   4096  4194304    101376    86848                0           86848              0             N  RECONEW/
 
# Node 2
$ asmcmd
ASMCMD> lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304     29696    11028                0           11028              0             N  DATA/
MOUNTED  NORMAL  N         512             512   4096  4194304      6144     5108             2048            1530              0             Y  OCRVOTE/
ASMCMD> mount RECONEW
ASMCMD> lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304     29696    11028                0           11028              0             N  DATA/
MOUNTED  NORMAL  N         512             512   4096  4194304      6144     5108             2048            1530              0             Y  OCRVOTE/
MOUNTED  EXTERN  N         512             512   4096  4194304    101376    86848                0           86848              0             N  RECONEW/

The Diskgroup was mounted normally.


2. Renaming a disk group with DB data

(The remainder of the disk group renaming process with DB data, such as finding file paths, generating dynamic rename scripts, and re-mounting after the rename follows the exact same pattern and commands.)

Check DBF file paths:

SQL> 
set lines 200 pages 1000
col name for a50
select file#, name from v$datafile;
 
     FILE# NAME
---------- --------------------------------------------------
         1 +DATA/ORA19DB/DATAFILE/system.274.1201188459
         2 +DATA/ORA19DB/DATAFILE/sysaux.275.1201188461
         3 +DATA/ORA19DB/DATAFILE/undotbs1.276.1201188463
         4 +DATA/ORA19DB/DATAFILE/undotbs2.278.1201188471
         5 +DATA/ORA19DB/DATAFILE/users.279.1201188471

Change paths:

SQL> 
select 'alter database rename file '''||name||''' to '''||REGEXP_REPLACE(name, '^\+DATA/', '+DATANEW/')||''';' cmd
from v$datafile;
 
CMD
------------------------------------------------------------------------------------------------------------------------------------
alter database rename file '+DATA/ORA19DB/DATAFILE/system.274.1201188459' to '+DATANEW/ORA19DB/DATAFILE/system.274.1201188459';
alter database rename file '+DATA/ORA19DB/DATAFILE/sysaux.275.1201188461' to '+DATANEW/ORA19DB/DATAFILE/sysaux.275.1201188461';
alter database rename file '+DATA/ORA19DB/DATAFILE/undotbs1.276.1201188463' to '+DATANEW/ORA19DB/DATAFILE/undotbs1.276.1201188463';
alter database rename file '+DATA/ORA19DB/DATAFILE/undotbs2.278.1201188471' to '+DATANEW/ORA19DB/DATAFILE/undotbs2.278.1201188471';
alter database rename file '+DATA/ORA19DB/DATAFILE/users.279.1201188471' to '+DATANEW/ORA19DB/DATAFILE/users.279.1201188471';
 
SQL> 
select 'alter database rename file '''||name||''' to '''||REGEXP_REPLACE(name, '^\+DATA/', '+DATANEW/')||''';' cmd
from v$tempfile;
 
CMD
-------------------------------------------------------------------------------------------------------------------------------
alter database rename file '+DATA/ORA19DB/TEMPFILE/temp.277.1201188465' to '+DATANEW/ORA19DB/TEMPFILE/temp.277.1201188465';

Execute all the generated SQL commands:

SQL>
alter database rename file '+DATA/ORA19DB/DATAFILE/system.274.1201188459' to '+DATANEW/ORA19DB/DATAFILE/system.274.1201188459';
alter database rename file '+DATA/ORA19DB/DATAFILE/sysaux.275.1201188461' to '+DATANEW/ORA19DB/DATAFILE/sysaux.275.1201188461';
alter database rename file '+DATA/ORA19DB/DATAFILE/undotbs1.276.1201188463' to '+DATANEW/ORA19DB/DATAFILE/undotbs1.276.1201188463';
alter database rename file '+DATA/ORA19DB/DATAFILE/undotbs2.278.1201188471' to '+DATANEW/ORA19DB/DATAFILE/undotbs2.278.1201188471';
alter database rename file '+DATA/ORA19DB/DATAFILE/users.279.1201188471' to '+DATANEW/ORA19DB/DATAFILE/users.279.1201188471';
alter database rename file '+DATA/ORA19DB/TEMPFILE/temp.277.1201188465' to '+DATANEW/ORA19DB/TEMPFILE/temp.277.1201188465';

Check DBF file paths:

SQL> 
set lines 200 pages 1000
col name for a50
select file#, name from v$datafile;
 
     FILE# NAME
---------- --------------------------------------------------
         1 +DATANEW/ORA19DB/DATAFILE/system.274.1201188459
         2 +DATANEW/ORA19DB/DATAFILE/sysaux.275.1201188461
         3 +DATANEW/ORA19DB/DATAFILE/undotbs1.276.1201188463
         4 +DATANEW/ORA19DB/DATAFILE/undotbs2.278.1201188471
         5 +DATANEW/ORA19DB/DATAFILE/users.279.1201188471

Paths changed normally.

Check temp file paths:

SQL> 
set lines 200 pages 1000
col name for a50
select file#, name from v$tempfile;
 
     FILE# NAME
---------- --------------------------------------------------
         1 +DATANEW/ORA19DB/TEMPFILE/temp.277.1201188465

Paths changed normally.

Check Redo log paths:

SQL>
set lines 200
set pages 1000
col member for a60
select l.group#, member, archived, l.status, (bytes/1024/1024) MB
from v$log l, v$logfile f
where f.group# = l.group#
order by 1;
 
    GROUP# MEMBER                                                       ARC STATUS                   MB
---------- ------------------------------------------------------------ --- ---------------- ----------
         1 +DATA/ORA19DB/ONLINELOG/group_1.272.1201188457               YES INACTIVE                200
         2 +DATA/ORA19DB/ONLINELOG/group_2.273.1201188459               YES INACTIVE                200
         3 +DATA/ORA19DB/ONLINELOG/group_3.280.1201189697               NO  CURRENT                 200
         4 +DATA/ORA19DB/ONLINELOG/group_4.281.1201189697               YES INACTIVE                200

Generate commands to rename Redo paths:

SQL>
select 'alter database rename file '''||member||''' to '''||REGEXP_REPLACE(member, '^\+DATA/', '+DATANEW/')||''';' cmd
from v$logfile;
 
CMD
-------------------------------------------------------------------------------------------------------------------------------------
alter database rename file '+DATA/ORA19DB/ONLINELOG/group_1.272.1201188457' to '+DATANEW/ORA19DB/ONLINELOG/group_1.272.1201188457';
alter database rename file '+DATA/ORA19DB/ONLINELOG/group_2.273.1201188459' to '+DATANEW/ORA19DB/ONLINELOG/group_2.273.1201188459';
alter database rename file '+DATA/ORA19DB/ONLINELOG/group_3.280.1201189697' to '+DATANEW/ORA19DB/ONLINELOG/group_3.280.1201189697';
alter database rename file '+DATA/ORA19DB/ONLINELOG/group_4.281.1201189697' to '+DATANEW/ORA19DB/ONLINELOG/group_4.281.1201189697';

Execute Redo path rename commands:

SQL>
alter database rename file '+DATA/ORA19DB/ONLINELOG/group_1.272.1201188457' to '+DATANEW/ORA19DB/ONLINELOG/group_1.272.1201188457';
alter database rename file '+DATA/ORA19DB/ONLINELOG/group_2.273.1201188459' to '+DATANEW/ORA19DB/ONLINELOG/group_2.273.1201188459';
alter database rename file '+DATA/ORA19DB/ONLINELOG/group_3.280.1201189697' to '+DATANEW/ORA19DB/ONLINELOG/group_3.280.1201189697';
alter database rename file '+DATA/ORA19DB/ONLINELOG/group_4.281.1201189697' to '+DATANEW/ORA19DB/ONLINELOG/group_4.281.1201189697';

Recheck Redo paths:

SQL>
set lines 200
set pages 1000
col member for a60
select l.group#, member, archived, l.status, (bytes/1024/1024) MB
from v$log l, v$logfile f
where f.group# = l.group#
order by 1;
 
    GROUP# MEMBER                                                       ARC STATUS                   MB
---------- ------------------------------------------------------------ --- ---------------- ----------
         1 +DATANEW/ORA19DB/ONLINELOG/group_1.272.1201188457            YES INACTIVE                200
         2 +DATANEW/ORA19DB/ONLINELOG/group_2.273.1201188459            YES INACTIVE                200
         3 +DATANEW/ORA19DB/ONLINELOG/group_3.280.1201189697            NO  CURRENT                 200
         4 +DATANEW/ORA19DB/ONLINELOG/group_4.281.1201189697            YES INACTIVE                200

Paths changed normally.

Switch DB to open state:

SQL> alter database open;
 
Database altered.
 
SQL> select * from v$recover_file;
 
no rows selected

Started normally.

Change password file path:

$ srvctl modify database -d ora19db -pwfile '+DATANEW/ora19db/PASSWORD/pwdora19db.270.1201188441'

$ srvctl config database -d ora19db
Database unique name: ORA19DB
Database name:
Oracle home: /oracle/app/oracle/product/19c
Oracle user: oracle
Spfile: +datanew/ora19db/parameterfile/spfile.294.1203586513
Password file: +DATANEW/ora19db/PASSWORD/pwdora19db.270.1201188441
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: DATA,DATANEW
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group: dba
Database instances: ORA19DB1,ORA19DB2
Configured nodes: ora19rac1,ora19rac2
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed

Changed normally.


This post is based on my personal experiences and opinions.
It does not represent the official position or views of my current or former employers.
If you have any questions, feel free to leave a comment or send me an email.
Thank you.

Comments

Leave a Reply

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