使用asm来部署 超大数据库(10TB到PB 范围)
参考原文:
Deployment of very large databases (10TB to PB range) with Automatic Storage Management (ASM) (Doc ID 368055.1)
范围:
本文适用于在所有平台上的asm配置,包括使用rac 和单实例 环境。
本文适用于超大数据库的创建,并且该数据库会增长到超过10TB级别。
挑战:
asm 元数据存储
解决方案:
au(分配单元) 是asm磁盘组中的基本的分配单位。默认情况下,asm au的大小被设置为1MB
asm data extents 裸设备,该裸设备来存放asm file的内容。
在oracle database 10g里边,每一个data extent 是一个单独的au(分配单元)
由于这个extent 和au 的 1对1的映射(map)关系,在一个超大的数据库中,一个asm file extent map 可以增长到GB。在这个情况下,内存使用和打开文件的性能上,效率是及其低下的。
asm 提供了2个隐含参数,这两个参数允许你创建au大小为16MB 和 fine grain striping 大小为1MB(之前为128KB) 的 asm 磁盘组
这减少extent map size 到原来的1/16. au 参数只能用在磁盘组 建立的时候。当一个磁盘组被建立后,你不能改变这个磁盘组的au的大小
为了改变au size(也就是data extent size),你必须reset 下面的asm 隐含参数:从1MB改为16MB,fine grain stripe size 改为1MB
asm实例必须被关闭,_asm_ausize and _asm_stripesize 必须在asm实例的init.ora参数文件中被重置(reset),然后asm实例被重启,以继承该参数的新值。
o _asm_ausize=16777216
o _asm_stripesize=1048576
--->注意:以上值的单位为Byte
你必须修改asm file template ,为所有的file types 设置 stripe type 为‘FINE’,以使用1MB的striping。
这必须在asm diskgoup 被创建完之后做。
为了让这两个参数值生效,asm实例必须被重启。
当设置了这个两个隐含参数并重启了asm 实例之后,任何被创建的asm 磁盘组将会使用新的au size 和FINE stripe size
为了在创建asm 磁盘组时,使用正常的1MB au size 和 128K FINE stripe size,这两个隐含参数应该被移除并且asm 需要被重启。
例子:
下面的例子建立 了一个au size(即:data extents size ) 为16MB的asm 磁盘组,并且对所有的datafile 来说,FINE striping size 为1MB
1. 关闭 asm 实例
2. 在asm 的init.ora文件中添加如下参数:
_asm_ausize=16777216
_asm_stripesize=1048576
3.重启asm 实例。
4.建立一个磁盘组:
CREATE DISKGROUP diskgroup_name disk ‘/devices/diska1‘,‘/devices/diska2‘;
5. 将all asm file 模板 改为 FINE grained:
o ALTER DISKGROUP diskgroup_name ALTER TEMPLATE <tmpl> ATTRIBUTES (FINE);
o Repeat this command for all ASM file types. Attributes types are listed
below:
o CONTROLFILE, DATAFILE, ONLINELOG, ARCHIVELOG, TEMPFILE, BACKUPSET,
PARAMETERFILE, DATAGUARDCONFIG, FLASHBACK, CHANGETRACKING, DUMPSET,
XTRANSPORT, AUTOBACKUP
16MB的 ausize 和 1MB的FINE grain striping 能有效的提供 1MB的 data striping ,同时,降低了asm file extent的过载。
这个配置 能在打开 asm file时更快,并且更有效的支持10TB 到PB 范围内的asm database
注意:
Apply the fix for Bug 5100163 in 10.2.0.4
This patch should be applied if you have created ASM Diskgroups with the AU size greater than 1MB and have fewer than 3585 user files.
The following command must be ran on each Diskgroup after applying the patch:
ALTER DISKGROUP <DG_NAME> CHECK ALL REPAIR
【翻译自mos文章】使用asm来部署 超大数据库(10TB到PB 范围)--针对oracle 10G,布布扣,bubuko.com