Migration from ASMLIB to ASMFD - denis-kol4ev/OraDBA GitHub Wiki

ASM diskgroups migration from ASMLIB to ASMFD

Purpose:

Migrate the existing ASM diskgroup disks which are stamped with ASMLib to ASMFD

Based on:

ASMFD : How to Migrate ASM Diskgroups from ASMLIB to ASMFD (ASM Filter Driver) on Oracle Grid Infrastructure (RAC) (Doc ID 2172754.1)

Tested on:

GI 19.21 on OEL 7.9

1. As a root user run below command to generate the which ASM Disk is associated with the OS disk

oracleasm listdisks | xargs oracleasm querydisk -p
[root@devil19 ~]# oracleasm listdisks | xargs oracleasm querydisk -p
Disk "DATA01" is a valid ASM disk
/dev/sdd1: LABEL="DATA01" TYPE="oracleasm"
Disk "DATA02" is a valid ASM disk
/dev/sde1: LABEL="DATA02" TYPE="oracleasm"
Disk "FRA01" is a valid ASM disk
/dev/sdc1: LABEL="FRA01" TYPE="oracleasm"

2. As a Grid Infrastructure (GI) software owner, get the present ASM diskstring value

asmcmd dsget
oracle@devil19 ~ $ . oraenv <<<+ASM
oracle@devil19 ~ $ asmcmd dsget
parameter:/dev/oracleasm/disks/*
profile:/dev/oracleasm/disks/*

3. As a GI owner update the Oracle ASM disk discovery string to enable Oracle ASMFD to discover devices in the future

asmcmd dsset '/dev/oracleasm/disks/*','AFD:*'
asmcmd dsget
oracle@devil19 ~ $ asmcmd dsset '/dev/oracleasm/disks/*','AFD:*'
oracle@devil19 ~ $ asmcmd dsget
parameter:/dev/oracleasm/disks/*, AFD:*
profile:/dev/oracleasm/disks/*,AFD:*

4. Stop database

srvctl stop database -d <db_name>
oracle@devil19 ~ $ srvctl stop database -d orcl_devil19

5. Stop the entire HAS (Oracle Restart)

crsctl stop has
oracle@devil19 ~ $ crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'devil19'
CRS-2673: Attempting to stop 'ora.orcl_devil19.db' on 'devil19'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'devil19'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'devil19' succeeded
CRS-2677: Stop of 'ora.orcl_devil19.db' on 'devil19' succeeded
CRS-2673: Attempting to stop 'ora.FRA.dg' on 'devil19'
CRS-2677: Stop of 'ora.FRA.dg' on 'devil19' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'devil19'
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'devil19'
CRS-2677: Stop of 'ora.DATA.dg' on 'devil19' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'devil19'
CRS-2677: Stop of 'ora.evmd' on 'devil19' succeeded
CRS-2677: Stop of 'ora.asm' on 'devil19' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'devil19'
CRS-2677: Stop of 'ora.cssd' on 'devil19' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'devil19' has completed
CRS-4133: Oracle High Availability Services has been stopped.
oracle@devil19 ~ $

6. Check, stop and deinstall the oracleasm driver

oracleasm status
oracleasm exit
yum remove oracleasm-support.x86_64
[root@devil19 ~]# oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
[root@devil19 ~]#
[root@devil19 ~]# oracleasm exit
Unmounting ASMlib driver filesystem: /dev/oracleasm
Unloading module "oracleasm": oracleasm
[root@devil19 ~]#
[root@devil19 ~]# ls -la /dev/oracleasm/
total 0
drwxr-xr-x.  2 root root   40 Feb 14 12:52 .
drwxr-xr-x. 22 root root 3600 Feb 14 12:52 ..
[root@devil19 ~]#
[root@devil19 ~]# yum remove oracleasm-support.x86_64
...
Removed:
  oracleasm-support.x86_64 0:2.1.11-2.el7

7. As root, configure Oracle ASMFD

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/grid/19.3
$ORACLE_HOME/bin/asmcmd afd_configure
[root@devil19 ~]# export ORACLE_BASE=/opt/oracle
[root@devil19 ~]# export ORACLE_HOME=/opt/oracle/grid/19.3
[root@devil19 ~]# $ORACLE_HOME/bin/asmcmd afd_configure
AFD-627: AFD distribution files found.
AFD-634: Removing previous AFD installation.
AFD-635: Previous AFD components successfully removed.
AFD-9294: updating file /etc/sysconfig/oracledrivers.conf
AFD-636: Installing requested AFD software.
AFD-637: Loading installed AFD drivers.
AFD-9321: Creating udev for AFD.
AFD-9323: Creating module dependencies - this may take some time.
AFD-9154: Loading 'oracleafd.ko' driver.
AFD-649: Verifying AFD devices.
AFD-9156: Detecting control device '/dev/oracleafd/admin'.
AFD-638: AFD installation correctness verified.
Use of uninitialized value $retrycnt in numeric gt (>) at /opt/oracle/grid/19.3/lib/asmcmdafd.pm line 3612.
Use of uninitialized value $retrycnt in numeric gt (>) at /opt/oracle/grid/19.3/lib/asmcmdafd.pm line 3621.
Modifying resource dependencies - this may take some time.
[root@devil19 ~]#

8. As the Oracle Grid Infrastructure / root owner verify the status of Oracle ASMFD

$ORACLE_HOME/bin/asmcmd afd_state
[root@devil19 ~]# $ORACLE_HOME/bin/asmcmd afd_state
ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'devil19'
[root@devil19 ~]#

9. Validate that all the disks have been migrated to the ASMFD

$ORACLE_HOME/bin/asmcmd afd_lsdsk
ls -la /dev/oracleafd/disks/
[root@devil19 ~]# $ORACLE_HOME/bin/asmcmd afd_lsdsk
--------------------------------------------------------------------------------
Label                     Filtering   Path
================================================================================
DATA01                      ENABLED   /dev/sdd1
DATA02                      ENABLED   /dev/sde1
FRA01                       ENABLED   /dev/sdc1
[root@devil19 ~]# ls -la /dev/oracleafd/disks/
total 12
drwxrwxr-x. 2 oracle dba      100 Feb 14 13:50 .
drwxrwx---. 3 oracle dba       80 Feb 14 13:49 ..
-rw-rw-r--. 1 oracle oinstall  10 Feb 14 13:50 DATA01
-rw-rw-r--. 1 oracle oinstall  10 Feb 14 13:50 DATA02
-rw-rw-r--. 1 oracle oinstall  10 Feb 14 13:50 FRA01
[root@devil19 ~]#

10. Start HAS (Oracle Restart)

crsctl start has
[root@devil19 ~]# su - oracle
oracle@devil19 ~ $ . oraenv <<<+ASM
oracle@devil19 ~ $ crsctl start has
CRS-4123: Oracle High Availability Services has been started.
oracle@devil19 ~ $

11. Start database

srvctl start database -d <db_name>
oracle@devil19 ~ $ srvctl start database -d orcl_devil19

12. Check HAS resources

crsctl stat res -t
oracle@devil19 ~ $ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       devil19                  STABLE
ora.FRA.dg
               ONLINE  ONLINE       devil19                  STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       devil19                  STABLE
ora.asm
               ONLINE  ONLINE       devil19                  Started,STABLE
ora.ons
               OFFLINE OFFLINE      devil19                  STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       devil19                  STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.driver.afd
      1        ONLINE  ONLINE       devil19                  STABLE
ora.evmd
      1        ONLINE  ONLINE       devil19                  STABLE
ora.orcl_devil19.db
      1        ONLINE  ONLINE       devil19                  Open,Readonly,HOME=/
                                                             opt/oracle/rdbms/19c
                                                             ,STABLE
ora.orcl_devil19.orcl_primary.svc
      1        OFFLINE OFFLINE                               STABLE
--------------------------------------------------------------------------------

Database open in readonly mode because test performed on standby database.

13. As the disks are migrated to ASMFD, remove ASMLIB disk path from disk discovery string

asmcmd dsget
asmcmd dsset 'AFD:*'
asmcmd dsget
oracle@devil19 ~ $ asmcmd dsget
parameter:/dev/oracleasm/disks/*, AFD:*
profile:/dev/oracleasm/disks/*,AFD:*
oracle@devil19 ~ $ asmcmd dsset 'AFD:*'
oracle@devil19 ~ $ asmcmd dsget
parameter:AFD:*
profile:AFD:*
oracle@devil19 ~ $
⚠️ **GitHub.com Fallback** ⚠️