I have the following question regarding the allocation of disks or LUNs to ASM in Oracle, specifically, I have an Oracle 18c DB in Cluster and I have created several diskgroups, now, I need to increase the size of the data diskgroup to which I only present a LUN of say 300 GB, it turns out that I have realized that it is not enough because the data volume will increase considerably, and I need at least 2 tb at the moment, I would like to know that it is recommended in these cases, to present a LUN of 2 TB, several of 300 GB ...??? My storage is completely integrated by NVMe SSD disks. Thank you very much
First, have your storage administrator increase the size of your LUN dynamically to the desired size up to 2TB, which is as much as ASM will recognize in a single disk.
When this is completed, you will need to get your OS to recognize the change. If you are using udev rules to present your LUNs, then use the udevadm command to update the device metadata:
udevadm trigger --action=change --verbose [device path]
If desired you can tailor the udevadm command to focus specifically on your LUN device using the device path or the --subsystem-match options. Use the --dry-run option along with --verbose to confirm which devices will be checked for changes before running it for real on a production system.
Once the changes are recognized by the operating system, you must propagate them them in ASM. Login to your ASM instance with SYSASM privileges and execute the following command:
ALTER DISKGROUP [DG NAME] RESIZE;
This will resize your diskgroup to consume the entire LUN in its new capacity.
I have performed these commands on live, running production systems without issue many, many times. It is much more efficient when using an external SAN for storage to resize LUNs this way than to worry about adding separate disks. Avoid that until you hit the 2TB limit, and then make every LUN in the group the same size (2TB).