The goal is to move ASM spfile from one disk group to another.
During initial ASM setup the spfile might have been created in a default disk group (e.g. DATA). The requirement is now to move the ASM spfile to another disk group.
According to Oracle ASM documentation it should be possible to use 'asmcmd spmove' command to move ASM spfile:
Oracle Database Storage Administrator's Guide 11g Release 2 (11.2)
Section ASMCMD Instance Management Commands
spmove
Purpose: Moves an Oracle ASM SPFILE from source to destination and automatically updates the GPnP profile.
But an attempt to move the ASM spfile fails as follows:
$ asmcmd spmove +DATA/asm/asmparameterfile/REGISTRY.253.715881237 +PLAY/spfileASM.oraORA-15032: not all alterations performedORA-15028: ASM file '+DATA/asm/asmparameterfile/REGISTRY.253.715881237' not dropped; currently being accessed (DBD ERROR: OCIStmtExecute)
解决方法:
方法一:To move ASM spfile to another disk group, either make use of intermediate pfile:
1. Create intermediate pfile from the current spfile
2. Create spfile in a new disk group from the intermediate pfile
3. Restart the HA stack to verify that ASM starts up fine with moved spfile
4. Remove the original spfile
方法二:or use 'asmcmd spcopy' command
1. Copy spfile with -u option - to update GPnP profile in RAC environment
2. Restart the HA stack to verify that ASM starts up fine with copiedspfile
3. Remove the original spfile
方法一示例:
This is an example of moving ASM spfile in a single instance environment, by making use intermediate pfile
1. Create intermediate pfile from the current spfile
$ sqlplus / as sysasmSQL*Plus: Release 11.2.0.1.0 Production on <date>Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Automatic Storage Management option
SQL> show parameter spfile
NAME TYPE VALUE------- ------- --------------------------------------------------spfile string +DATA/asm/asmparameterfile/registry.253.715881237
SQL> create pfile='/tmp/pfile+ASM.ora' from spfile;
File created.
2. Create spfile in a new disk group from the intermediate pfile
SQL> create spfile='+PLAY' from pfile='/tmp/pfile+ASM.ora';
File created.
SQL> exitDisconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Automatic Storage Management option
3. Restart the HA stack to verify that ASM starts up fine with moved spfile
$ crsctl stop hasCRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on '<server>'...CRS-4133: Oracle High Availability Services has been stopped.
$ crsctl start hasCRS-4123: Oracle High Availability Services has been started.
Verify that the new spfile is being used
$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.1.0 Production on <date>Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Automatic Storage Management option
SQL> show parameter spfile
NAME TYPE VALUE------- ------- --------------------------------------------------spfile string +PLAY/asm/asmparameterfile/registry.253.715963539
SQL> select name, state from v$asm_diskgroup;
NAME STATE----- -----------DATA MOUNTEDPLAY MOUNTED
SQL> exitDisconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Automatic Storage Management option
The use of new spfile can also be verified with asmcmd as follows:
$ asmcmd spget+PLAY/asm/asmparameterfile/registry.253.715963539
4. Remove the original spfile
$ asmcmd rm +DATA/asm/asmparameterfile/registry.253.715881237
方法二示例:
And this is an example of moving ASM spfile with 'asmcmd spcopy'
1. Copy spfile with -u option - to update GPnP profile in RAC environment
$ asmcmd spget+DATA/asm/asmparameterfile/registry.253.722601213
$ asmcmd lsdgState Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Votin g_files NameMOUNTED EXTERN N 512 4096 1048576 14658 9814 0 9814 0 N DATA/MOUNTED EXTERN N 512 4096 1048576 9772 8507 0 8507 0 N PLAY/MOUNTED EXTERN N 512 4096 1048576 9772 9212 0 9212 0 N RECO/
$ asmcmd spcopy -u +DATA/asm/asmparameterfile/registry.253.722601213 +PLAY/spfileASM.ora
2. Restart the HA stack to verify that ASM starts up fine with copiedspfile
$ crsctl stop hasCRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on '<server>'...CRS-4133: Oracle High Availability Services has been stopped.
$ crsctl start hasCRS-4123: Oracle High Availability Services has been started.
$ asmcmd spget+PLAY/spfileASM.ora
3. Remove the original spfile
$ asmcmd ls -l +DATA/asm/asmparameterfileType Redund Striped Time Sys NameASMPARAMETERFILE UNPROT COARSE JUN 25 10:00:00 Y REGISTRY.253.722601213
$ asmcmd rm +DATA/asm/asmparameterfile/registry.253.722601213
NOTE: The disk group that holds ASM spfile has to have COMPATIBLE.ASM value of 11.2 or higher.
聊天2群:69087192










