oracle asm 状态,ASM 规划ASM DISK GROUP、查看asm 磁盘当前状态等

规划ASM DISK GROUP、查看asm 磁盘当前状态、mount or dismount 磁盘组、检查磁盘组 metadata 的内部一致性

规划ASM DISK GROUP:

1. 每个磁盘组里的磁盘应该大小、性能、新旧等一致,不能有太大差距

2. 对database

files 和 fast recovery area 分别创建不同的diskgroup。 一般来说我们也可以把备份文件存放到FRA里。

所以Oracle 建议我们不要创建太多的diskgroup,2组就够了,一组DATA,一组FRA.

ORACLE ASM  在磁盘组,磁盘和文件的个数限制如下:

(1)最多63个disk groups

(2)最多10000个ASM disks

(3)每个disk group里最多1百万个文件。

非Exadata 存储的情况下,ASM 存储大小限制:   (若是exadata,则容量*2倍)

(1)支持的每个ASM disk 最大容量是2 TB。

(2)整个ASM存储系统最大支持的空间是20 PB。

查看当前asm磁盘状态信息  (grid用户执行)

1. --查看有多少asm磁盘

node1-> kfod disk=all

2. --查看asm磁盘组

node1-> kfod op=groups

3. 查看磁盘与磁盘组的对应关系

node1-> kfod ds=true di=all

mount or dismount 磁盘组

注意:

当我们dismount 一个disk

group的时候,该group上有文件正在打开,我们的的diskgroup

操作就会失败,除非我们指定FORCE选项,强制dismount。

手工的进行这些操作,语法如下:

ALTER DISKGROUP...MOUNT

ALTER DISKGROUP...DISMOUNT

若部分磁盘不可用,怎么办?

当disk 出现故障时,会被标记为offline,对于offline 的disk,是不能被ASM 访问的。当disk 变成offline 的时候,ASM会计算这个时间,当disk 在diskgroup的DISK_REPAIR_TIME参数指定的时间内没有被修复,那么该disk 就会永久的从diskgroup中drop掉。

若disk group的冗余级别是Normal 或者是high 的时候,如果diskgroup 在我们挂载这个diskgroup的时候,如果有部分disk 不可用,那么就必须使用MOUNT FORCE 来挂载。因此,当我们的disk 出现问题,我们还没有修复,这时候我们想以reduced redundancy 的方式临时的挂载diskgroup,那么就可以使用mount force。

SQL> alter diskgroup XXXX dismount force;

注意:

要想MOUNT FORCE 能挂载成功,也必须保证disk group中所有的文件至少有一份extents。

检查磁盘组 metadata 的内部一致性

背景:

每个diskgroup、disk都有自己的metadata。

在diskgroup处于mount状态下,可以检查diskgroup 中某个特定的文件,特定的disk 或者所有disk,或者指定的failure。

Check 子句会执行如下操作:

(1)验证disk的一致性。

(2)交叉效验所有文件的extent

maps 和allocation tables 是否一致。

(3)检查alias metadata

directory和file directory 关联是否正确。

(4) 验证alias directory tree 是否正确link。

(5)检查Oracle ASM

metadata directories是否有不能读取的allocated blocks

命令:

SQL> ALTER DISKGROUP FRA CHECK ALL (  REPAIR -- 可以指定是否修复,默认不修复 );