当asm file的REDUNDANCY值高于diskgroup的REDUNDANCY时,oracle如何实现asm au的真真REDUNDANCY...
[@more@]SQL> select group_number ,type from v$asm_diskgroup;
GROUP_NUMBER TYPE
------------ ------------
1 NORMAL
2 EXTERN
SQL> select group_number,file_number,redundancy,striped from V$ASM_FILE where type='CONTROLFILE';
GROUP_NUMBER FILE_NUMBER REDUNDANCY STRIPED
------------ ----------- ------------ ------------
1 256 HIGH FINE
1 257 HIGH FINE
1 258 HIGH FINE
SQL>
SQL> select group_kffxp,number_kffxp,xnum_kffxp,lxn_kffxp,disk_kffxp,au_kffxp from x$kffxp where number_kffxp in (256,257,258);
GROUP_KFFXP NUMBER_KFFXP XNUM_KFFXP LXN_KFFXP DISK_KFFXP AU_KFFXP
----------- ------------ ---------- ---------- ---------- ----------
1 256 0 0 1 52
1 256 0 1 0 52
1 256 0 2 65534 4294967294
1 256 1 0 0 53
1 256 1 1 1 53
1 256 1 2 65534 4294967294
1 256 2 0 1 54
1 256 2 1 0 54
1 256 2 2 65534 4294967294
1 256 3 0 0 55
1 256 3 1 1 55
GROUP_KFFXP NUMBER_KFFXP XNUM_KFFXP LXN_KFFXP DISK_KFFXP AU_KFFXP
----------- ------------ ---------- ---------- ---------- ----------
1 256 3 2 65534 4294967294
1 256 4 0 1 56
1 256 4 1 0 56
1 256 4 2 65534 4294967294
1 256 5 0 0 57
1 256 5 1 1 57
1 256 5 2 65534 4294967294
1 256 6 0 1 58
1 256 6 1 0 58
1 256 6 2 65534 4294967294
1 256 7 0 0 59
GROUP_KFFXP NUMBER_KFFXP XNUM_KFFXP LXN_KFFXP DISK_KFFXP AU_KFFXP
----------- ------------ ---------- ---------- ---------- ----------
1 256 7 1 1 59
1 256 7 2 65534 4294967294
1 257 0 0 0 60
1 257 0 1 1 60
1 257 0 2 65534 4294967294
1 257 1 0 1 61
1 257 1 1 0 61
1 257 1 2 65534 4294967294
1 257 2 0 0 62
1 257 2 1 1 62
1 257 2 2 65534 4294967294
GROUP_KFFXP NUMBER_KFFXP XNUM_KFFXP LXN_KFFXP DISK_KFFXP AU_KFFXP
----------- ------------ ---------- ---------- ---------- ----------
1 257 3 0 1 63
1 257 3 1 0 63
1 257 3 2 65534 4294967294
1 257 4 0 0 64
1 257 4 1 1 64
1 257 4 2 65534 4294967294
1 257 5 0 1 65
1 257 5 1 0 65
1 257 5 2 65534 4294967294
1 257 6 0 0 66
1 257 6 1 1 66
GROUP_KFFXP NUMBER_KFFXP XNUM_KFFXP LXN_KFFXP DISK_KFFXP AU_KFFXP
----------- ------------ ---------- ---------- ---------- ----------
1 257 6 2 65534 4294967294
1 257 7 0 1 67
1 257 7 1 0 67
1 257 7 2 65534 4294967294
1 258 0 0 0 68
1 258 0 1 1 68
1 258 0 2 65534 4294967294
1 258 1 0 1 69
1 258 1 1 0 69
1 258 1 2 65534 4294967294
1 258 2 0 0 70
GROUP_KFFXP NUMBER_KFFXP XNUM_KFFXP LXN_KFFXP DISK_KFFXP AU_KFFXP
----------- ------------ ---------- ---------- ---------- ----------
1 258 2 1 1 70
1 258 2 2 65534 4294967294
1 258 3 0 1 71
1 258 3 1 0 71
1 258 3 2 65534 4294967294
1 258 4 0 0 72
1 258 4 1 1 72
1 258 4 2 65534 4294967294
1 258 5 0 1 73
1 258 5 1 0 73
1 258 5 2 65534 4294967294
GROUP_KFFXP NUMBER_KFFXP XNUM_KFFXP LXN_KFFXP DISK_KFFXP AU_KFFXP
----------- ------------ ---------- ---------- ---------- ----------
1 258 6 0 0 74
1 258 6 1 1 74
1 258 6 2 65534 4294967294
1 258 7 0 1 75
1 258 7 1 0 75
1 258 7 2 65534 4294967294
72 rows selected.
SQL>
--===================================
--diskgroup number 1的type是normal方式,也就是正常的冗余,而且里面只有2个failgroup,
这样像controlfile这种的REDUNDANCY值是:HIGH,这样oracle肯定是无法真真做到high的,看一下
从x$kffxp显示出来的3个controlfile的信息就知道了,字段DISK_KFFXP中的值65534肯定只是一个临时值,
不是真真意义上的disk编号,我们可以再增加一个failgroup到diskgroup number=1的diskgroup里,此时
我们会发现字段DISK_KFFXP=65534的值会变成2,2就是我们新增加进来的disk的编号,此时controlfile
的REDUNDANCY特性才实现了真真意义上的high。
在没有查doc之前,我以为一个diskgroup中允许的最大disk数量是
65534,查了以下doc,有关asm的limit如下:
Scalability
ASM imposes the following limits:
63 disk groups in a storage system
10,000 ASM disks in a storage system
4 petabyte maximum storage for each ASM disk
40 exabyte maximum storage for each storage system
1 million files for each disk group
Maximum files sizes as shown in the following table:
Disk Group Type Maximum File Size
External redundancy 35 TB
Normal redundancy 5.8 TB
High redundancy 3.9 TB
--================================
doc原文连接:http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/storeman.htm#sthref1706
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19602/viewspace-1052838/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/19602/viewspace-1052838/