Check if autostart for Oracle Restart is enabled:
$ cat /etc/oracle/scls_scr/$HOSTNAME/oracle/ohasdstr
enable
If it is not enabled, then enable it:
crsctl enable has
Check if ASM autostart is enabled:
crsctl stat res ora.asm
If ASM is not registered in GI, add it with:
srvctl add asm ...
Check if used diskgroups are registered:
srvctl status diskgroup -g DATA
crsctl stat res ora.DATA.dg
If they are not registered, add them with:
srvctl add diskgroup ...
Check if the database is registered and autostart is enabled:
srvctl config database -d ORCL
If it is not, register and enable:
srvctl add database ...
srvctl enable database ...
Finally make sure you define the used ASM diskgroups as dependencies:
srvctl modify database -d ORCL -diskgroup "DATA,FRA"
You can also check the listener:
srvctl config listener
If it does not exist, you can add with:
srvctl add listener ...
You do not need to start or stop anything manually with sqlplus, lsnrctl. Oracle Restart takes care of that based on the defined start/stop options and dependencies.
I'm sure that such approach is feasible. Technically Grid 11.2.0.4 is fully compatible with RDBMS 11.2.0.3. You just need to be accurate in some parameters.
I believe that in a new 11.2.0.4 grid you won't use very specific "compatible.rdbms" or "compatible.asm" attributes' value ('11.2.0.4.0', e.g.) which might conflict with 11.2.0.3 database. Ideally you should use the same default '11.2.0.0.0' value in target GI.
You can clone databases from old to new GI, copy specific tablespaces if your schemas are compatible with transport_tablespaces approach. You can use logical dump created with datapump.
It might be very useful to use dbms_file_transfer package to copy datafiles (and dumpfiles created by datapump as well) directly from source ASM to target ASM diskgroups.
Good luck.
Best Answer
This is how I understand how asmlib works. Lets way you have a disk
/dev/sdc
but the name is not persistent and it changes between reboots.So user-space asmlib tool writes a small header onto beginning of the disk. This header contains volume name like VOL1. Then the kernel part of the asmlib will create a block device named
/dev/oracleasm/disks/VOL1
. All reads and writes to block device VOL1 will be forwarded to/dev/sdc
(with offset adjusted by header size).There is not much more functionality in asmlib then this.
Update: if you want deterministic names for disk block devices you can choose:
Note: asm lib is inteded only for Oracle ASM storage. You can not use to for filesystems, unless you have license for ACFS.