原文: ASM Active Change Directory
作者: Bane Radulovic
译者:郭旭瑞,沃趣科技产品交付部经理,负责QData Cloud高性能数据库云平台、QBackup数据库秒级备份恢复云平台等产品的整体交付管理与技术支持、维保服务工作。
审校:魏兴华
责编:仲培艺
当ASM实例要对多个元信息block进行原子修改时,ASM的active change directory 简称ACD会记录相应的日志,ACD是ASM元信息的3号文件。对应的日志记录会以单次IO的方式写入,来确保操作原子性。
ACD被分成多个chunk或者thread,每个运行中的ASM实例都有它自己的42MB大小的chunk。当一个磁盘组被创建时,会分配一个独立的chunk给ACD。随着更多的实例挂载了该磁盘组,ACD的chunk数也会同比例增长,每个实例会使用属于自己的ACD chunk区。
ACD包含如下组件:
- ACDC - ACD checkpoint ACD检查点
- ABA - ACD block address ACD块地址
- LGE - ACD redo log record ACD 重做日志记录
- BCD - ACD block change descriptor ACD块变更描述
Locating ASM active change directory
我们可以通过查询X$KFFXP视图来获取ACD目录包含的AU。ACD是元信息3号文件,因此在我们的查询中我们使number_kffxp=3。
SQL> SELECT x.xnum_kffxp "Extent",
x.au_kffxp "AU",
x.disk_kffxp "Disk #",
d.name "Disk name"
FROM x$kffxp x, v$asm_disk_stat d
WHERE x.group_kffxp=d.group_number
and x.disk_kffxp=d.disk_number
and x.group_kffxp=1
and x.number_kffxp=3
ORDER BY 1, 2;
Extent AU Disk # Disk name
---------- ---------- ---------- ---------
0 4 0 ASMDISK5
1 2 1 ASMDISK6
2 5 0 ASMDISK5
...
39 21 1 ASMDISK6
40 24 0 ASMDISK5
41 22 1 ASMDISK6
42 rows selected.
查询返回了42行,即42个AU。当前磁盘组的AU大小为1MB,意味着ACD总大小是42MB。
如果我用更大的AU(4MB)来重建该磁盘组,我们仍然会发现ACD大小是42MB。接下来我们创建一个AU为4M的磁盘组验证一下:
SQL> create diskgroup RECO external redundancy
disk 'ORCL:ASMDISK5', 'ORCL:ASMDISK6'
attribu