Oracle Automatic Storage Management (ASM) plays a critical role in managing database storage efficiently. It simplifies storage administration, improves performance, and provides high availability for Oracle databases. However, to get the best out of ASM, understanding its initialization parameters is essential.
Among the many parameters available, ASM_POWER_LIMIT and ASM_DISKSTRING are two of the most important ones. These parameters directly influence how ASM manages disks and how quickly disk operations such as rebalance occur.
In this article, we’ll explore these parameters in detail, understand how they work, and see practical examples that database administrators can apply in real environments.
Understanding Oracle ASM
Before diving into the parameters, let’s quickly revisit what Oracle ASM is.
Oracle ASM is a volume manager and file system designed specifically for Oracle databases. Instead of manually managing storage at the operating system level, ASM manages disks using disk groups.
These disk groups distribute database files across multiple disks automatically, providing:
- Load balancing
- Striping
- Mirroring
- High availability
ASM removes much of the complexity traditionally associated with storage management.
However, when disks are added or removed from a disk group, ASM must rebalance the data across disks, and that’s where ASM_POWER_LIMIT becomes important.
Similarly, ASM must first discover disks before managing them, and that discovery process is controlled by ASM_DISKSTRING.
ASM_POWER_LIMIT Explained
What is ASM_POWER_LIMIT?
ASM_POWER_LIMIT controls the speed of ASM rebalance operations.
Whenever you perform operations like:
- Adding a disk to a disk group
- Dropping a disk
- Replacing a disk
- Resizing storage
ASM redistributes data across disks to maintain balanced storage usage. This process is called rebalance.
The ASM_POWER_LIMIT parameter defines how aggressively ASM performs this rebalance operation.
Default Value
ASM_POWER_LIMIT = 1
This is the default value, which means ASM performs rebalance slowly to minimize impact on database workloads.
The parameter can typically range from:
0 – 1024
Where:
- 0 → No rebalance occurs
- Low values → Slow rebalance
- High values → Faster rebalance but higher resource usage
How ASM_POWER_LIMIT Works
The rebalance process consumes system resources such as:
- CPU
- Disk I/O
- Memory
If the power limit is too high, the rebalance may affect database performance.
If it is too low, the rebalance will take a very long time.
DBAs must balance performance impact vs rebalance completion time.
Example Scenario
Imagine a disk group with 4 disks:
DATA_DG
Disk1
Disk2
Disk3
Disk4
If you add a new disk:
Disk5
ASM must redistribute existing data across all 5 disks.
If the power limit is:
ASM_POWER_LIMIT = 1
Rebalance may take several hours.
If increased to:
ASM_POWER_LIMIT = 50
The rebalance can complete much faster.
Checking ASM_POWER_LIMIT
You can check the current value using:
SHOW PARAMETER asm_power_limit;
Or
SELECT name, value
FROM v$parameter
WHERE name='asm_power_limit';
Dynamically Changing ASM_POWER_LIMIT
One of the advantages of this parameter is that it can be modified dynamically.
ALTER SYSTEM SET asm_power_limit=20;
This allows DBAs to temporarily increase the rebalance speed during maintenance windows.
Best Practice for ASM_POWER_LIMIT
A common practice followed by DBAs:
| Scenario | Recommended Power |
|---|---|
| Normal workload | 1 – 5 |
| Maintenance window | 10 – 50 |
| Emergency disk replacement | 50 – 100 |
The exact value depends on hardware performance and system load.
ASM_DISKSTRING Explained
What is ASM_DISKSTRING?
ASM_DISKSTRING defines the location where ASM searches for disks.
When ASM starts, it scans the paths specified in this parameter to identify disks that belong to ASM disk groups.
Without this parameter, ASM may scan all possible storage paths, which can slow down startup and create unnecessary disk scans.
Default Behavior
If ASM_DISKSTRING is not defined, ASM searches the entire system for candidate disks.
This can cause:
- Slower ASM startup
- Unnecessary disk discovery
- Potential security risks
Therefore, DBAs usually define this parameter explicitly.
Example of ASM_DISKSTRING
Example parameter:
ASM_DISKSTRING='/dev/oracleasm/disks/*'
This tells ASM to search for disks only inside:
/dev/oracleasm/disks/
Multiple Disk Locations
ASM_DISKSTRING can include multiple paths.
Example:
ASM_DISKSTRING='/dev/oracleasm/disks/*','/dev/mapper/*'
This allows ASM to discover disks from multiple storage sources.
Checking ASM_DISKSTRING
You can check the current value using:
SHOW PARAMETER asm_diskstring;
Or
SELECT name,value
FROM v$parameter
WHERE name='asm_diskstring';
Setting ASM_DISKSTRING
To configure ASM disk discovery path:
ALTER SYSTEM SET asm_diskstring='/dev/oracleasm/disks/*' SCOPE=SPFILE;
After setting the parameter, ASM instance restart may be required depending on configuration.
Real-World Example
Let’s consider a real production environment.
A company runs an Oracle RAC cluster with ASM disk groups:
DATA
FRA
OCR
Storage disks are located in:
/dev/oracleasm/disks/
The configuration is:
ASM_DISKSTRING='/dev/oracleasm/disks/*'
ASM_POWER_LIMIT=1
One day the DBA adds 3 new disks to expand the DATA disk group.
During the rebalance operation, users notice slower performance.
To speed up rebalance during the maintenance window, the DBA executes:
ALTER SYSTEM SET asm_power_limit=30;
The rebalance finishes quickly, and afterward the DBA restores the value:
ALTER SYSTEM SET asm_power_limit=1;
This approach minimizes impact on production workloads.
Key Differences Between ASM_POWER_LIMIT and ASM_DISKSTRING
| Parameter | Purpose |
|---|---|
| ASM_POWER_LIMIT | Controls rebalance speed |
| ASM_DISKSTRING | Defines disk discovery path |
| Impact | Performance during rebalance |
| Dynamic | Yes |
Both parameters serve completely different purposes but are equally important for ASM management.
Common Mistakes DBAs Make
1. Setting ASM_POWER_LIMIT Too High
High values can overload storage and impact database performance.
Always test before increasing.
2. Not Setting ASM_DISKSTRING
Leaving the parameter empty can cause ASM to scan unnecessary disks.
This can slow startup and create operational issues.
3. Forgetting to Reset ASM_POWER_LIMIT
After maintenance, DBAs sometimes forget to reduce the value.
This may cause unexpected performance impact later.
Final Thoughts
Oracle ASM simplifies storage management significantly, but understanding key initialization parameters is essential for efficient administration.
Two of the most important parameters are:
ASM_POWER_LIMIT
– Controls the speed of disk rebalance operations.
ASM_DISKSTRING
– Defines where ASM searches for storage disks.
By configuring these parameters correctly, DBAs can:
- Improve storage management efficiency
- Reduce rebalance time
- Avoid unnecessary disk scans
- Maintain database performance during storage operations
For production environments, it’s always recommended to test parameter changes in staging environments and monitor system performance carefully.
Mastering these ASM parameters will help DBAs maintain stable, high-performance Oracle database infrastructures.




