Oracle ASM Diskgroup 扩容操作

文档概述

本文档描述如何通过 grid 用户 + sqlplus + sysasm 的方式对 ASM diskgroup 进行扩容操作。

两种扩容方式

  1. 向现有 Diskgroup 添加磁盘 - 适用于现有diskgroup空间不足的场景
  2. 创建新的 Diskgroup - 适用于需要隔离存储、不同性能要求或新业务场景

一、环境准备与检查

1.1 切换到 grid 用户并连接 ASM 实例

su - grid
sqlplus / as sysasm

1.2 检查当前 ASM 实例状态

-- 查看ASM实例状态
SELECT instance_name, status, version FROM v$instance;

-- 查看所有diskgroup状态
SELECT name, state, type, total_mb, free_mb,
       ROUND((total_mb-free_mb)/total_mb*100, 2) as used_pct
FROM v$asm_diskgroup;

-- 查看diskgroup详细信息(包括冗余级别)
SELECT group_number, name, allocation_unit_size, state, type,
       total_mb, free_mb, required_mirror_free_mb, usable_file_mb
FROM v$asm_diskgroup;

-- 查看现有磁盘分布
SELECT group_number, disk_number, name, path, total_mb, free_mb,
       header_status, mode_status, state
FROM v$asm_disk
ORDER BY group_number, disk_number;

1.3 检查磁盘发现路径

-- 查看当前磁盘发现字符串
SELECT value FROM v$parameter WHERE name = 'asm_diskstring';

-- 查看可被ASM发现的磁盘(包括未使用的)
SELECT path, header_status, mode_status, state
FROM v$asm_disk
WHERE header_status IN ('CANDIDATE', 'FORMER', 'MEMBER');

header_status 说明:

  • CANDIDATE - 可以被添加到diskgroup的磁盘
  • MEMBER - 已经是某个diskgroup成员的磁盘
  • FORMER - 曾经是diskgroup成员但已被删除的磁盘

二、方案一:向现有 Diskgroup 添加磁盘

2.1 前置准备

2.1.1 在操作系统层准备新磁盘

方式1:使用 ASMLib(如果已配置)

# 以root用户执行
oracleasm createdisk DISK5 /dev/sdc1
oracleasm createdisk DISK6 /dev/sdd1

# 扫描新磁盘
oracleasm scandisks
oracleasm listdisks

方式2:使用 UDEV(推荐用于Oracle 12c及以上)

# 以root用户执行
# 编辑 /etc/udev/rules.d/99-oracle-asmdevices.rules
# 添加规则,例如:
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="<SCSI_ID>", OWNER="grid", GROUP="asmadmin", MODE="0660"

# 重新加载udev规则
udevadm control --reload-rules
udevadm trigger
2.1.2 验证磁盘可被 ASM 发现
# 以grid用户执行
sqlplus / as sysasm
-- 查看新磁盘是否可被发现
SELECT path, header_status
FROM v$asm_disk
WHERE header_status = 'CANDIDATE';

2.2 添加磁盘到现有 Diskgroup

2.2.1 添加单个磁盘
-- 基本语法
ALTER DISKGROUP <diskgroup_name> ADD DISK '<disk_path>';

-- 示例:向DATA diskgroup添加一个磁盘
ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/DISK5';

-- 指定磁盘名称(可选)
ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/DISK5' NAME DISK5;

-- 指定磁盘大小(可选,单位:MB、GB、TB)
ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/DISK5' SIZE 100G;
2.2.2 添加多个磁盘
-- 同时添加多个磁盘
ALTER DISKGROUP DATA ADD DISK
  '/dev/oracleasm/disks/DISK5' NAME DISK5,
  '/dev/oracleasm/disks/DISK6' NAME DISK6,
  '/dev/oracleasm/disks/DISK7' NAME DISK7;

-- 使用通配符批量添加(需要确保只匹配预期磁盘)
ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/DISK*';
2.2.3 控制 Rebalance 行为
-- 添加磁盘但不立即rebalance
ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/DISK5' NOCHECK;

-- 稍后手动触发rebalance
ALTER DISKGROUP DATA REBALANCE;

-- 指定rebalance power(1-11,默认值由asm_power_limit参数控制)
ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/DISK5' REBALANCE POWER 5;

-- 修改默认rebalance power
ALTER SYSTEM SET asm_power_limit = 8;

2.3 监控 Rebalance 进度

-- 查看正在进行的rebalance操作
SELECT group_number, operation, state, power,
       actual, sofar, est_work, est_rate, est_minutes
FROM v$asm_operation;

-- 详细的rebalance进度
SELECT group_number, operation, state, power, actual, sofar, est_work,
       ROUND(sofar/est_work*100, 2) as pct_done,
       est_minutes as est_min_remaining
FROM v$asm_operation
WHERE operation = 'REBAL';

-- 持续监控(每10秒刷新一次)
SELECT TO_CHAR(SYSDATE, 'HH24:MI:SS') as time,
       group_number, operation, state, power,
       ROUND(sofar/est_work*100, 2) as pct_done,
       est_minutes
FROM v$asm_operation
WHERE operation = 'REBAL';
-- 执行后等待10秒,重复执行查看进度

2.4 验证磁盘添加成功

-- 检查新磁盘状态
SELECT group_number, name, path, total_mb, free_mb, state, mode_status
FROM v$asm_disk
WHERE name IN ('DISK5', 'DISK6', 'DISK7');

-- 检查diskgroup总容量变化
SELECT name, state, total_mb, free_mb,
       ROUND(free_mb/total_mb*100, 2) as free_pct
FROM v$asm_diskgroup
WHERE name = 'DATA';

-- 检查磁盘均衡性(各磁盘使用率应该接近)
SELECT d.name as diskgroup, dk.name as disk,
       dk.total_mb, dk.free_mb,
       ROUND((dk.total_mb-dk.free_mb)/dk.total_mb*100, 2) as used_pct
FROM v$asm_diskgroup d, v$asm_disk dk
WHERE d.group_number = dk.group_number
  AND d.name = 'DATA'
ORDER BY d.name, dk.name;

三、方案二:创建新的 Diskgroup

3.1 前置准备

参考 2.1 节准备新磁盘,确保磁盘状态为 CANDIDATE

3.2 创建 Diskgroup

3.2.1 基本语法
CREATE DISKGROUP <diskgroup_name>
  [EXTERNAL | NORMAL | HIGH] REDUNDANCY
  DISK '<disk_path1>' [NAME <disk_name1>] [SIZE <size>],
       '<disk_path2>' [NAME <disk_name2>] [SIZE <size>],
       ...
  [ATTRIBUTE '<attribute_name>' = '<value>'];

冗余级别说明:

  • EXTERNAL - 外部冗余(不做镜像,依赖存储设备自身冗余),至少需要1个磁盘
  • NORMAL - 正常冗余(双向镜像),至少需要2个failure group
  • HIGH - 高冗余(三向镜像),至少需要3个failure group
3.2.2 创建 EXTERNAL 冗余 Diskgroup
-- 示例:创建名为FRA的外部冗余diskgroup
CREATE DISKGROUP FRA EXTERNAL REDUNDANCY
  DISK '/dev/oracleasm/disks/FRA1' NAME FRA1,
       '/dev/oracleasm/disks/FRA2' NAME FRA2,
       '/dev/oracleasm/disks/FRA3' NAME FRA3;

-- 使用通配符
CREATE DISKGROUP FRA EXTERNAL REDUNDANCY
  DISK '/dev/oracleasm/disks/FRA*';
3.2.3 创建 NORMAL 冗余 Diskgroup(推荐)
-- 不指定failure group(ASM自动分配)
CREATE DISKGROUP DATA NORMAL REDUNDANCY
  DISK '/dev/oracleasm/disks/DATA1' NAME DATA1,
       '/dev/oracleasm/disks/DATA2' NAME DATA2,
       '/dev/oracleasm/disks/DATA3' NAME DATA3,
       '/dev/oracleasm/disks/DATA4' NAME DATA4;

-- 手动指定failure group(推荐,用于跨存储控制器或机柜)
CREATE DISKGROUP DATA NORMAL REDUNDANCY
  FAILGROUP FG1 DISK
    '/dev/oracleasm/disks/DATA1' NAME DATA1,
    '/dev/oracleasm/disks/DATA2' NAME DATA2
  FAILGROUP FG2 DISK
    '/dev/oracleasm/disks/DATA3' NAME DATA3,
    '/dev/oracleasm/disks/DATA4' NAME DATA4;
3.2.4 创建 HIGH 冗余 Diskgroup
-- 至少需要3个failure group
CREATE DISKGROUP CRITICAL HIGH REDUNDANCY
  FAILGROUP FG1 DISK
    '/dev/oracleasm/disks/CRIT1' NAME CRIT1,
    '/dev/oracleasm/disks/CRIT2' NAME CRIT2
  FAILGROUP FG2 DISK
    '/dev/oracleasm/disks/CRIT3' NAME CRIT3,
    '/dev/oracleasm/disks/CRIT4' NAME CRIT4
  FAILGROUP FG3 DISK
    '/dev/oracleasm/disks/CRIT5' NAME CRIT5,
    '/dev/oracleasm/disks/CRIT6' NAME CRIT6;
3.2.5 设置 Diskgroup 属性
-- 创建时指定属性
CREATE DISKGROUP DATA NORMAL REDUNDANCY
  DISK '/dev/oracleasm/disks/DATA*'
  ATTRIBUTE 'compatible.asm' = '12.1.0.0',
            'compatible.rdbms' = '12.1.0.0',
            'au_size' = '4M';

-- 创建后修改属性
ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.asm' = '12.2.0.0';
ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.rdbms' = '12.2.0.0';

常用属性:

  • au_size - Allocation Unit大小(1M、2M、4M、8M、16M、32M、64M),创建后不可修改
  • compatible.asm - ASM兼容性版本
  • compatible.rdbms - 数据库兼容性版本
  • disk_repair_time - 磁盘离线后自动drop前的等待时间(默认3.6小时)

3.3 挂载和卸载 Diskgroup

-- 挂载diskgroup
ALTER DISKGROUP FRA MOUNT;

-- 卸载diskgroup
ALTER DISKGROUP FRA DISMOUNT;

-- 强制卸载(有文件打开时使用,慎用)
ALTER DISKGROUP FRA DISMOUNT FORCE;

-- 查看diskgroup挂载状态
SELECT name, state, type FROM v$asm_diskgroup;

3.4 验证 Diskgroup 创建成功

-- 查看新diskgroup信息
SELECT name, state, type, total_mb, free_mb, usable_file_mb,
       offline_disks, required_mirror_free_mb
FROM v$asm_diskgroup
WHERE name = 'FRA';

-- 查看diskgroup中的磁盘
SELECT group_number, disk_number, name, path,
       failgroup, total_mb, free_mb, state
FROM v$asm_disk
WHERE group_number = (SELECT group_number FROM v$asm_diskgroup WHERE name = 'FRA')
ORDER BY failgroup, disk_number;

-- 查看diskgroup属性
SELECT group_number, name, value
FROM v$asm_attribute
WHERE group_number = (SELECT group_number FROM v$asm_diskgroup WHERE name = 'FRA')
ORDER BY name;

四、完整操作示例

示例1:向现有 DATA diskgroup 添加2个磁盘

# 1. 以root用户准备磁盘(使用ASMLib)
su - root
oracleasm createdisk NEWDISK1 /dev/sde1
oracleasm createdisk NEWDISK2 /dev/sdf1
oracleasm scandisks

# 2. 切换到grid用户
su - grid

# 3. 连接ASM实例
sqlplus / as sysasm
-- 4. 检查磁盘可被发现
SELECT path, header_status FROM v$asm_disk WHERE header_status = 'CANDIDATE';

-- 5. 查看当前diskgroup状态
SELECT name, total_mb, free_mb FROM v$asm_diskgroup WHERE name = 'DATA';

-- 6. 添加磁盘(使用较低的rebalance power避免影响性能)
ALTER DISKGROUP DATA ADD DISK
  '/dev/oracleasm/disks/NEWDISK1' NAME NEWDISK1,
  '/dev/oracleasm/disks/NEWDISK2' NAME NEWDISK2
REBALANCE POWER 3;

-- 7. 监控rebalance进度
SELECT operation, state, power, ROUND(sofar/est_work*100, 2) as pct_done, est_minutes
FROM v$asm_operation;

-- 8. 等待rebalance完成(state变为空,表示已完成)
-- 重复执行上面的查询,直到没有返回行

-- 9. 验证磁盘添加成功
SELECT name, total_mb, free_mb FROM v$asm_diskgroup WHERE name = 'DATA';
SELECT name, path, total_mb, state FROM v$asm_disk
WHERE name IN ('NEWDISK1', 'NEWDISK2');

示例2:创建新的 FRA diskgroup(EXTERNAL冗余)

# 1. 以root用户准备磁盘
su - root
oracleasm createdisk FRA1 /dev/sdg1
oracleasm createdisk FRA2 /dev/sdh1
oracleasm createdisk FRA3 /dev/sdi1
oracleasm scandisks

# 2. 切换到grid用户
su - grid
sqlplus / as sysasm
-- 3. 检查磁盘可被发现
SELECT path, header_status FROM v$asm_disk WHERE header_status = 'CANDIDATE';

-- 4. 创建diskgroup
CREATE DISKGROUP FRA EXTERNAL REDUNDANCY
  DISK '/dev/oracleasm/disks/FRA1' NAME FRA1,
       '/dev/oracleasm/disks/FRA2' NAME FRA2,
       '/dev/oracleasm/disks/FRA3' NAME FRA3
  ATTRIBUTE 'compatible.asm' = '12.1.0.0',
            'compatible.rdbms' = '12.1.0.0';

-- 5. 验证创建成功
SELECT name, state, type, total_mb, free_mb FROM v$asm_diskgroup WHERE name = 'FRA';

-- 6. 查看磁盘分布
SELECT name, path, total_mb, free_mb, state FROM v$asm_disk
WHERE group_number = (SELECT group_number FROM v$asm_diskgroup WHERE name = 'FRA');

示例3:创建 NORMAL 冗余的 DATADG diskgroup(指定failure group)

# 1. 准备磁盘(假设已完成)
su - grid
sqlplus / as sysasm
-- 2. 创建带failure group的diskgroup
CREATE DISKGROUP DATADG NORMAL REDUNDANCY
  FAILGROUP CONTROLLER1 DISK
    '/dev/oracleasm/disks/DATADG1' NAME DATADG1 SIZE 200G,
    '/dev/oracleasm/disks/DATADG2' NAME DATADG2 SIZE 200G
  FAILGROUP CONTROLLER2 DISK
    '/dev/oracleasm/disks/DATADG3' NAME DATADG3 SIZE 200G,
    '/dev/oracleasm/disks/DATADG4' NAME DATADG4 SIZE 200G
  ATTRIBUTE 'compatible.asm' = '12.2.0.0',
            'compatible.rdbms' = '12.2.0.0',
            'au_size' = '4M';

-- 3. 验证failure group配置
SELECT d.name as diskgroup, dk.failgroup, dk.name as disk, dk.total_mb
FROM v$asm_diskgroup d, v$asm_disk dk
WHERE d.group_number = dk.group_number
  AND d.name = 'DATADG'
ORDER BY dk.failgroup, dk.name;

五、常见管理操作

5.1 删除磁盘

-- 从diskgroup中删除磁盘(会触发rebalance)
ALTER DISKGROUP DATA DROP DISK DISK5;

-- 删除多个磁盘
ALTER DISKGROUP DATA DROP DISK DISK5, DISK6;

-- 强制删除(慎用)
ALTER DISKGROUP DATA DROP DISK DISK5 FORCE;

5.2 调整 Rebalance Power

-- 查看当前rebalance power
SHOW PARAMETER asm_power_limit;

-- 动态调整正在进行的rebalance的power
ALTER DISKGROUP DATA REBALANCE POWER 8;

-- 修改系统默认值
ALTER SYSTEM SET asm_power_limit = 6;

5.3 删除 Diskgroup

-- 删除diskgroup(必须先卸载)
ALTER DISKGROUP FRA DISMOUNT;
DROP DISKGROUP FRA;

-- 删除diskgroup及其所有文件(慎用!)
DROP DISKGROUP FRA INCLUDING CONTENTS;

-- 强制删除(即使有文件也删除,极度危险!)
DROP DISKGROUP FRA FORCE INCLUDING CONTENTS;

5.4 检查和修复

-- 检查diskgroup一致性
ALTER DISKGROUP DATA CHECK ALL;

-- 检查特定磁盘
ALTER DISKGROUP DATA CHECK DISK DISK5;

-- 修复diskgroup(通常在检查发现问题后执行)
ALTER DISKGROUP DATA MOUNT FORCE;

六、监控和诊断SQL

6.1 容量监控

-- 各diskgroup容量概览
SELECT name, state, type,
       ROUND(total_mb/1024, 2) as total_gb,
       ROUND(free_mb/1024, 2) as free_gb,
       ROUND((total_mb-free_mb)/total_mb*100, 2) as used_pct,
       ROUND(usable_file_mb/1024, 2) as usable_gb
FROM v$asm_diskgroup
ORDER BY name;

-- 磁盘级别容量分布
SELECT dg.name as diskgroup, d.name as disk, d.path,
       ROUND(d.total_mb/1024, 2) as total_gb,
       ROUND(d.free_mb/1024, 2) as free_gb,
       ROUND((d.total_mb-d.free_mb)/d.total_mb*100, 2) as used_pct
FROM v$asm_diskgroup dg, v$asm_disk d
WHERE dg.group_number = d.group_number
ORDER BY dg.name, d.name;

6.2 性能监控

-- 磁盘I/O统计
SELECT dg.name as diskgroup, d.name as disk,
       d.reads, d.writes,
       ROUND(d.read_time/d.reads, 2) as avg_read_ms,
       ROUND(d.write_time/d.writes, 2) as avg_write_ms
FROM v$asm_diskgroup dg, v$asm_disk_stat d
WHERE dg.group_number = d.group_number
  AND d.reads > 0
ORDER BY dg.name, d.name;

-- 当前操作统计
SELECT group_number, operation, state, power, sofar, est_work,
       ROUND(sofar/est_work*100, 2) as pct_done
FROM v$asm_operation;

6.3 健康检查

-- 检查磁盘状态(应该全部为NORMAL)
SELECT dg.name as diskgroup, d.name as disk, d.path,
       d.mode_status, d.state, d.header_status
FROM v$asm_diskgroup dg, v$asm_disk d
WHERE dg.group_number = d.group_number
  AND d.state != 'NORMAL';

-- 检查diskgroup状态(应该全部为MOUNTED)
SELECT name, state, type, offline_disks
FROM v$asm_diskgroup
WHERE state != 'MOUNTED' OR offline_disks > 0;

七、注意事项和最佳实践

7.1 容量规划

  • NORMAL冗余:可用空间约为总空间的 50%(双向镜像)
  • HIGH冗余:可用空间约为总空间的 33%(三向镜像)
  • EXTERNAL冗余:可用空间约为总空间的 100%(无镜像)
  • 建议diskgroup使用率不超过 80%,预留空间用于rebalance和故障恢复

7.2 Rebalance 性能

  • asm_power_limit 参数范围:0-11(0表示禁用自动rebalance)
  • 生产环境建议值:2-5(避免影响业务性能)
  • 维护窗口建议值:8-11(快速完成rebalance)
  • Rebalance期间可能会增加I/O负载和CPU使用率

7.3 磁盘准备

  • 确保磁盘权限正确:chown grid:asmadmin,权限 0660
  • 推荐使用 UDEV 而非 ASMLib(Oracle 12c及以上)
  • 磁盘路径应该是原始设备(raw device)或块设备,不要使用文件系统

7.4 Failure Group 规划

  • NORMAL冗余:至少2个failure group,建议将不同failure group的磁盘放在不同存储控制器上
  • HIGH冗余:至少3个failure group
  • Failure group应该基于物理故障域(存储控制器、机柜、电源)

7.5 兼容性设置

  • compatible.asmcompatible.rdbms 一旦提升,不可降级
  • 提升兼容性前务必确认所有节点版本一致
  • 建议保持与当前ASM版本一致,除非需要使用新特性

7.6 备份建议

  • 扩容前备份当前配置:

    SELECT * FROM v$asm_diskgroup;
    SELECT * FROM v$asm_disk;
    SELECT * FROM v$asm_attribute;
    
  • 对于生产环境,建议在维护窗口执行扩容操作

  • 确保有数据库备份(RMAN备份)


八、回滚方案

8.1 添加磁盘失败回滚

-- 如果添加磁盘命令失败,ASM会自动回滚
-- 可以查看alert log确认:
-- 路径:$ORACLE_BASE/diag/asm/+asm/<instance_name>/trace/alert_<instance_name>.log

-- 如果磁盘已添加但需要移除
ALTER DISKGROUP DATA DROP DISK <disk_name>;

8.2 创建Diskgroup失败回滚

-- 创建失败通常会自动清理,如果diskgroup处于异常状态
ALTER DISKGROUP <diskgroup_name> DISMOUNT FORCE;
DROP DISKGROUP <diskgroup_name> FORCE INCLUDING CONTENTS;

-- 清理磁盘头信息(使用dd命令,慎用!)
-- 在Linux上以root用户执行:
-- dd if=/dev/zero of=/dev/sdx bs=1M count=100

8.3 Rebalance 中断处理

-- 检查rebalance状态
SELECT * FROM v$asm_operation;

-- 如果需要停止rebalance(会在下次操作时自动继续)
-- ASM不支持直接取消rebalance,但可以降低power减少影响
ALTER DISKGROUP DATA REBALANCE POWER 1;

-- 如果ASM实例重启,rebalance会自动恢复

九、故障处理

9.1 磁盘添加失败

可能原因:

  • 磁盘未被ASM发现(检查asm_diskstring参数)
  • 磁盘权限不正确
  • 磁盘已被其他diskgroup使用
  • 磁盘有文件系统或分区表

诊断步骤:

-- 检查磁盘是否可被发现
SELECT path, header_status FROM v$asm_disk WHERE path LIKE '%磁盘路径%';

-- 检查ASM alert log
-- $ORACLE_BASE/diag/asm/+asm/<instance_name>/trace/alert_<instance_name>.log

9.2 Rebalance 长时间未完成

可能原因:

  • Power设置过低
  • 系统I/O负载高
  • 磁盘性能问题

解决方法:

-- 提高rebalance power
ALTER DISKGROUP DATA REBALANCE POWER 8;

-- 检查I/O瓶颈
SELECT * FROM v$asm_disk_stat WHERE reads > 0;

9.3 Diskgroup 空间不足

-- 检查空间使用情况
SELECT name, total_mb, free_mb, usable_file_mb,
       ROUND(free_mb/total_mb*100, 2) as free_pct
FROM v$asm_diskgroup;

-- 临时解决:删除旧备份或归档日志
-- 长期解决:添加更多磁盘

十、参考信息

10.1 相关视图

  • v$asm_diskgroup - Diskgroup信息
  • v$asm_disk - 磁盘信息
  • v$asm_disk_stat - 磁盘性能统计
  • v$asm_operation - 当前操作(rebalance等)
  • v$asm_attribute - Diskgroup属性
  • v$asm_client - 使用ASM的数据库实例
  • v$asm_file - ASM文件信息
  • v$asm_template - ASM模板

10.2 重要参数

  • asm_diskstring - 磁盘发现路径
  • asm_power_limit - Rebalance默认power(1-11)
  • asm_diskgroups - 实例启动时自动挂载的diskgroup列表

10.3 常用命令速查

-- 查看所有diskgroup
SELECT name, state, total_mb, free_mb FROM v$asm_diskgroup;

-- 查看所有磁盘
SELECT name, path, total_mb, state FROM v$asm_disk WHERE header_status = 'MEMBER';

-- 添加磁盘
ALTER DISKGROUP <dg> ADD DISK '<path>' NAME <name>;

-- 删除磁盘
ALTER DISKGROUP <dg> DROP DISK <disk_name>;

-- 挂载/卸载
ALTER DISKGROUP <dg> MOUNT;
ALTER DISKGROUP <dg> DISMOUNT;

-- 监控rebalance
SELECT operation, state, ROUND(sofar/est_work*100,2) as pct FROM v$asm_operation;

文档版本

  • 版本:1.0
  • 创建日期:2026-03-11
  • 适用版本:Oracle Database 11g及以上
  • 最后更新:2026-03-11
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐