oracle asm 磁盘管理基础篇(一)

今天是2014-02-27,从今天开始准备记录一系列的asm笔记。在此记录一下。
(一)asm常见参数:

和database实例一样,asm同样具有启动实例的相关参数,具体如下:

asm_diskgroups:指定asm实例启动的时候需要mount的disk group名字:

asm_disktsring :指定一个asm实例寻找磁盘的路径名可以有通配符。

asm_power_limit:指定在磁盘组中平衡数据的时候默认的power大小。

asm_preferred_read_failure_groups:指定优先读取的故障组

diagnostic_dest:asm实例diagnostics的目录

instance_type:实例类型,对于asm实例必须为asm

remote_login_passwordfile:验证是否需要去读密码文件

(二)asm实例和数据库实例参数文件搜索过程:

对于asm实例在启动的时候需要参数文件,那么一般搜索过程为:

1、先根据GPNP profile文件指定的参数文件位置进行寻找

2、如果没有在GPNP profile中指定的目录找到,那么将寻找$ORACLE_HME/dbs/spfile+ASM.ora

3、如果没有spfile+ASM.ora,那么将寻找pfile文件。

如果上述没有找到则无法启动asm

对于数据库实例启动的时候需要参数文件,那么搜素过程为:

1、寻找 $ORACLE_HOME/dbs/spfile<ORACLE_SID>.ora,

2、寻找 $ORACLE_HOME/dbs/spfile.ora

3、寻找 $ORACLE_HOME/dbs/init<ORACLE_SID>.ora

如果上述没有找到参数文件,那么数据库实例无法启动。

 (三)使用sql命令create diskgroup创建磁盘组

当创建磁盘组之前需要注意一下几点:

1、指定磁盘组的唯一名字(注:不要使用对象名字)

2、指定磁盘组的平衡等级,一旦自定将无法修改

3、指定的磁盘将被格式化为oracle asm磁盘组的磁盘

4、选择指定磁盘组属于指定的故障组

5、选择指定故障组的类型(有QUORUM和REGULAR故障组)

6、指定磁盘组的属性(如软件兼容版本或是au大小等)

注意:一个磁盘只能属于一个磁盘组,且所有刚刚创建的磁盘都是有唯一的地址路径不属于现有的所有磁盘组,如果一个磁盘原先属于一个磁盘组,但是坏掉 了当修复后,这个磁盘将不在是磁盘组的一部分,但是asm实例依然在磁盘组 中保留该磁盘的成员信息,可以使用force参数将该磁盘加入磁盘组。当drop的使用force,那么加入的时候使用force参数,如果在删除的时候没有使用force,那么就不使用force(或是noforce)。

The CREATE DISKGROUP statement mounts the disk group for the first time, and adds the disk group name to the ASM_DISKGROUPS initialization parameter if a server parameter file is being used. If a text initialization parameter file is being used and you want the disk group to be automatically mounted at instance startup, then you must remember to add the disk group name to the ASM_DISKGROUPS initialization parameter before you shut down and restart the Oracle ASM instance.

 

由于我是采用asmlib的方式管理asm磁盘,因此需要创建asm磁盘,如果采用/dev/udev绑定磁盘的方式,那么需要在/etc/udev/rules.d/xxx写相关策略保证在系统重启后设备名和磁盘组名对应关系,防止变化。

创建asm磁盘:

[root@oracle-one ~]# /etc/init.d/oracleasm createdisk ASMDISK7 /dev/sdj1
Marking disk "ASMDISK7" as an ASM disk: [  OK  ]
[root@oracle-one ~]# /etc/init.d/oracleasm createdisk ASMDISK8 /dev/sdk1
Marking disk "ASMDISK8" as an ASM disk: [  OK  ]
[root@oracle-one ~]# /etc/init.d/oracleasm createdisk ASMDISK9 /dev/sdl1
Marking disk "ASMDISK9" as an ASM disk: [  OK  ]
[root@oracle-one ~]# /etc/init.d/oracleasm createdisk ASMDISK10 /dev/sdm1
Marking disk "ASMDISK10" as an ASM disk: [  OK  ]
[root@oracle-one ~]# 


 

查看创建磁盘信息:

 

SQL> select name,state,path from v$asm_disk;

NAME                      STATE    PATH
------------------------- -------- ----------------------------------------
                          NORMAL   /dev/oracleasm/disks/ASMDISK10
                          NORMAL   /dev/oracleasm/disks/ASMDISK9
                          NORMAL   /dev/oracleasm/disks/ASMDISK8
                          NORMAL   /dev/oracleasm/disks/ASMDISK7
                          NORMAL   /dev/oracleasm/disks/ASMDISK4
                          NORMAL   /dev/oracleasm/disks/ASMDISK2
                          NORMAL   /dev/oracleasm/disks/ASMDISK3
DATAGROUP2_0002           NORMAL   /dev/oracleasm/disks/ASMDISK6
DATAGROUP2_0001           NORMAL   /dev/oracleasm/disks/ASMDISK5
DATAGROUP2_0000           NORMAL   /dev/oracleasm/disks/ASMDISK1

10 rows selected.

SQL> 


创建不指定故障组的磁盘组:

如果在创建磁盘组的时候不指定故障组,那么会默认将每个磁盘作为一个故障组:

There are always failure groups even if they are not explicitly created. If you do not specify a failure group for a disk, then Oracle automatically creates a new failure group containing just that disk, except for disk groups containing disks on Oracle Exadata cells.

eg:

SQL> create diskgroup datagroup3 normal redundancy
  2  disk
'/dev/oracleasm/disks/ASMDISK7' NAME DATAGROUP3_DISK7,
  3    4  '/dev/oracleasm/disks/ASMDISK8' NAME DATAGROUP3_DISK8,
  5  '/dev/oracleasm/disks/ASMDISK9' NAME DATAGROUP3_DISK9,
  6  '/dev/oracleasm/disks/ASMDISK10' NAME DATAGROUP3_DISK10
  7  ATTRIBUTE 'au_size'='1M',
  8  'compatible.rdbms'='11.2',
  9  'compatible.asm'='11.2',
 10  'sector_size'='512';

Diskgroup created.
SQL> SELECT A.NAME G_NAME, B.NAME D_NAME,B.OS_MB,B.TOTAL_MB,B.FREE_MB,B.STATE, FAILGROUP, B.FAILGROUP_TYPE, PATH
  2    FROM V$ASM_DISKGROUP A, V$ASM_DISK B
  3   WHERE A.GROUP_NUMBER = B.GROUP_NUMBER
  4     AND B.NAME LIKE 'DATAGROUP3%';

G_NAME          D_NAME                         OS_MB   TOTAL_MB    FREE_MB STATE    FAILGROUP                      FAILGRO PATH
--------------- ------------------------- ---------- ---------- ---------- -------- ------------------------------ ------- ----------------------------------------
DATAGROUP3      DATAGROUP3_DISK10               1019       1019        980 NORMAL   DATAGROUP3_DISK10              REGULAR /dev/oracleasm/disks/ASMDISK10
DATAGROUP3      DATAGROUP3_DISK7                1019       1019        977 NORMAL   DATAGROUP3_DISK7               REGULAR /dev/oracleasm/disks/ASMDISK7
DATAGROUP3      DATAGROUP3_DISK8                1019       1019        980 NORMAL   DATAGROUP3_DISK8               REGULAR /dev/oracleasm/disks/ASMDISK8
DATAGROUP3      DATAGROUP3_DISK9                1019       1019        978 NORMAL   DATAGROUP3_DISK9               REGULAR /dev/oracleasm/disks/ASMDISK9

SQL> 


指定故障组创建磁盘组:

eg:

SQL> create diskgroup datagroup3 normal redundancy
  2  failgroup failgroup_1 disk
  3  '/dev/oracleasm/disks/ASMDISK7' NAME DATAGROUP3_DISK7
  4  failgroup failgroup_2 disk
  5  '/dev/oracleasm/disks/ASMDISK8' NAME DATAGROUP3_DISK8,
  6  '/dev/oracleasm/disks/ASMDISK9' NAME DATAGROUP3_DISK9
  7  failgroup failgroup_3 disk
'/dev/oracleasm/disks/ASMDISK10' NAME DATAGROUP3_DISK10
  8    9  ATTRIBUTE 'au_size'='1M',
'compatible.rdbms'='11.2',
 10   11  'compatible.asm'='11.2',
 12  'sector_size'='512';

Diskgroup created.

SQL> SELECT A.NAME G_NAME, B.NAME D_NAME,B.OS_MB,B.TOTAL_MB,B.FREE_MB,B.STATE, FAILGROUP, B.FAILGROUP_TYPE, PATH
  2    FROM V$ASM_DISKGROUP A, V$ASM_DISK B
  3   WHERE A.GROUP_NUMBER = B.GROUP_NUMBER
  4     AND B.NAME LIKE 'DATAGROUP3%';

G_NAME          D_NAME                         OS_MB   TOTAL_MB    FREE_MB STATE    FAILGROUP                      FAILGRO PATH
--------------- ------------------------- ---------- ---------- ---------- -------- ------------------------------ ------- ----------------------------------------
DATAGROUP3      DATAGROUP3_DISK10               1019       1019        966 NORMAL   FAILGROUP_3                    REGULAR /dev/oracleasm/disks/ASMDISK10
DATAGROUP3      DATAGROUP3_DISK7                1019       1019        966 NORMAL   FAILGROUP_1                    REGULAR /dev/oracleasm/disks/ASMDISK7
DATAGROUP3      DATAGROUP3_DISK8                1019       1019        993 NORMAL   FAILGROUP_2                    REGULAR /dev/oracleasm/disks/ASMDISK8
DATAGROUP3      DATAGROUP3_DISK9                1019       1019        990 NORMAL   FAILGROUP_2                    REGULAR /dev/oracleasm/disks/ASMDISK9

SQL> 

A quorum failure group is not considered when determining redundancy requirements in respect to storing user data. However, a quorum failure group counts when mounting a disk group.

注意故障磁盘组有两种一种是quorum一种是regular,不同之处是quorum不包含用户数据。

如创建quorum故障组的磁盘组:

eg:

SQL> drop diskgroup datagroup3 including contents;

Diskgroup dropped.

SQL> create diskgroup datagroup3 normal redundancy
  2  failgroup failgroup_1 disk
  3  '/dev/oracleasm/disks/ASMDISK7' NAME DATAGROUP3_DISK7
  4  failgroup failgroup_2 disk
  5  '/dev/oracleasm/disks/ASMDISK8' NAME DATAGROUP3_DISK8,
  6  '/dev/oracleasm/disks/ASMDISK9' NAM
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值