在Oracle中,创建ASM磁盘的N种方法(udev、asmlib、faking)

0    472    1

Tags:

👉 本文共约15971个字,系统预计阅读时间或需61分钟。

前言

无论是安装单机版的asm还是rac都离不开ASM磁盘组的创建,创建ASM磁盘组的关键是创建好需要的asm磁盘,发现很多网友安装grid软件和grid实例,都在磁盘的创建这里有很大的问题,本人又是喜欢总结的人,那么今天我就总结了下各种创建asm磁盘的方法,以备大家查阅。

创建asm磁盘的各种方法

方法一:Faking 方式(只能用于Restart环境,测试环境推荐)

该方法不需要添加额外的磁盘,直接在已有的磁盘上来创建,本人推荐的方法之一。

root用户下执行

查看结果:

在Oracle中,创建ASM磁盘的N种方法(udev、asmlib、faking)

其它命令

添加loop设备个数:
第一种办法:修改 /etc/modprobe.conf 文件添加参数:options loop max_loop=20 可以通过 modprobe -v loop 命令立即加载该模块,或重启
第二种办法(通用):mknod -m 0660 /dev/loopX b 7 X

方法二:直接修改/etc/sysconfig/rawdevices配置raw(rhel6之后不支持)

采用下面的方式来增加磁盘,即直接修改/etc/sysconfig/rawdevices (root帐户)

Redhat平台对raw设备的配置在redhat 5之后有了变化。在redhat 5之前,直接配置/etc/sysconfig/rawdevices件,通过/etc/init.d/rawdevices来管理raw设备的启动和关 闭。在Redhat 5之后,原来的raw设备接口已经取消了,redhat 5中通过udev规则进行配置。 要配置,需要编辑/etc/udev/rules.d/60-raw.rules这个文件。

[root@oradb ~]# vi /etc/sysconfig/rawdevices

[root@oradb ~]# cat /etc/sysconfig/rawdevices --查看增加的内容为raw6,raw7

/dev/raw/raw2 /dev/sdb6

/dev/raw/raw3 /dev/sdb7

chown oracle:dba /dev/raw/raw[6-7] --修改属主,否则创建磁盘组时提示权限不够

[root@rhel5 ~]# chown oracle:dba /dev/raw/raw6

[root@rhel5 ~]# chown oracle:dba /dev/raw/raw7

[root@rhel5 ~]# ll /dev/raw/

total 0

crw-rw---- 1 oracle dba 162, 1 Dec 30 14:47 raw1

crw-rw---- 1 oracle dba 162, 2 Dec 30 14:47 raw2

crw-rw---- 1 oracle dba 162, 3 Dec 30 14:36 raw3

crw-rw---- 1 oracle dba 162, 4 Dec 30 14:36 raw4

crw-rw---- 1 oracle dba 162, 5 Dec 30 14:36 raw5

crw------- 1 oracle dba 162, 6 Dec 30 14:36 raw6

crw------- 1 oracle dba 162, 7 Dec 30 14:36 raw7

[root@rhel5 ~]#

重启裸设备服务

[root@rhel5 ~]# /sbin/service rawdevices restart

Assigning devices:

/dev/raw/raw6 --> /dev/sdb6

/dev/raw/raw6: bound to major 8, minor 22

/dev/raw/raw7 --> /dev/sdb7

/dev/raw/raw7: bound to major 8, minor 23

done

[root@rhel5 ~]#

将下面的内容增加到/etc/rc.local文件(root帐户),重新启动主机,使得属主变为oracle

chown oracle:dba /dev/raw/raw6

chown oracle:dba /dev/raw/raw7

chmod 660 /dev/raw/raw6

chmod 660 /dev/raw/raw7

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS

---------------- ------------

+ASM STARTED

SQL> set line 999

SQL> select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;

NAME STATE FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB

----------------- ----------- ---------- ----------------------- --------------

DATA MOUNTED 941 0 941

DG1 MOUNTED 1862 0 931

SQL> create diskgroup DG1 normal redundancy disk '/dev/raw/raw6','/dev/raw/raw7'; --创建磁盘组DG1

SQL> select * from v$fixed_table where name like '%ASM%'; --查看和asm相关的视图

SQL> select name,allocation_unit_size,state,type,

2 free_mb,required_mirror_free_mb req_mi_fr_mb,usable_file_mb

3 from v$asm_diskgroup;

NAME ALLOCATION_UNIT_SIZE STATE TYPE FREE_MB REQ_MI_FR_MB USABLE_FILE_MB

--------------- -------------------- ----------- ------ ---------- ------------ --------------

DG1 1048576 MOUNTED NORMAL 296 0 148

SQL> create diskgroup DG2 normal redundancy disk '/dev/raw/raw3','/dev/raw/raw4'; --创建磁盘组DG2

SQL> select name,state,free_mb,required_mirror_free_mb,usable_file_mb --查看磁盘组的状态及信息

2 from v$asm_diskgroup;

NAME STATE FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB

--------------- ----------- ---------- ----------------------- --------------

DG1 MOUNTED 296 0 148

DG2 MOUNTED 296 0 148

SQL> select disk_number,total_mb,free_mb from v$asm_disk;

DISK_NUMBER TOTAL_MB FREE_MB

----------- ---------- ----------

1 199 148

0 199 148

1 199 148

0 199 148

重新启动Linux 主机后

SQL> startup --重新启动ASM实例,收到了磁盘组insufficient信息

ASM instance started

ORA-15032: not all alterations performed

ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DG2"

ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DG1"

SQL> ho ls -hlt /dev/raw # LINUX主机重新启动之后属主性质已发生变化

total 0

crw------- 1 root root 162, 4 Nov 10 20:28 raw4

crw------- 1 root root 162, 3 Nov 10 20:28 raw3

crw------- 1 root root 162, 2 Nov 10 20:28 raw2

crw------- 1 root root 162, 1 Nov 10 20:28 raw1

原因:原始设备在引导时会重新映射。默认情况下,在引导时原始设备的拥有者将更改为root 用户

将下面的内容增加到/etc/rc.local文件(root帐户),重新启动主机,使得属主变为oracle,则不再出现类似的提示

chown oracle:dba /dev/raw/raw1

chown oracle:dba /dev/raw/raw2

chown oracle:dba /dev/raw/raw3

chown oracle:dba /dev/raw/raw4

chmod 660 /dev/raw/raw1

chmod 660 /dev/raw/raw2

chmod 660 /dev/raw/raw3

chmod 660 /dev/raw/raw4

SQL> drop diskgroup dg1; --将刚才创建的两个磁盘组删除

SQL> drop diskgroup dg2;

使用root帐户清除/etc/udev/rules.d/60-raw.rules /etc/sysconfig/rawdevices 以及/etc/rc.local刚刚增加的记录

便于下面使用asmlib来创建asm磁盘

方法三:Udev方式(生产推荐使用)

又可以分为2种方式,采用uuid来绑定或采用raw来绑定,采用uuid需要添加多块磁盘,而采用raw方式不需要添加多个磁盘。

udev下的方法一:uuid方式

RedHat 5 UDEV SCSI Rules配置

1 获取需要绑定为ASM Disk的磁盘uuid

2 新建/etc/udev/rules.d/99-oracle-asmdevices.rules,增加以下内容

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
在Oracle中,创建ASM磁盘的N种方法(udev、asmlib、faking)后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部