ASM之创建ASM磁盘
(三种方法)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
a.配置裸设备映射,修改/etc/udev/rules.d/60-raw.rules文件
使用root帐户修改/etc/udev/rules.d/60-raw.rules
按如下方式添加磁盘
[root@oradb ~]# cat /etc/udev/rules.d/60-raw.rules --查看添加的内容
ACTION=="add",
KERNEL=="sdd1",
RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add",
ENV{MAJOR}=="8",
ENV{MINOR}=="1",
RUN+="/bin/raw /dev/raw/raw1 %M %m" ACTION=="add",
KERNEL=="sde1",
RUN+="/bin/raw /dev/raw/raw2 %N" ACTION=="add",
ENV{MAJOR}=="8", ENV{MINOR}=="17",
RUN+="/bin/raw /dev/raw/raw2 %M %m"
[root@oradb ~]# start_udev #重启udev服务
Starting udev: [ OK ]
[root@oradb ~]# ll /dev/raw
total 0 crw------- 1 root root 162,
1 Nov 10 18:50 raw1 crw------- 1 root root 162,
2 Nov 10 18:50 raw2
[root@oradb ~]# chown oracle:dba /dev/raw/raw[1-2] --修改属主,否则创建磁盘组时提示权限不够
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
b.也可以采用下面的方式来增加磁盘,即直接修改/etc/sysconfig/rawdevices (root帐户)
[root@oradb ~]# vim /etc/sysconfig/rawdevices
[root@oradb ~]# cat /etc/sysconfig/rawdevices --查看增加的内容为raw3,raw4 /dev/raw/raw3 /dev/sdf1 /dev/raw/raw4 /dev/sdg1
[root@oradb ~]# chown oracle:dba /dev/raw/raw[3-4] --修改属主,否则创建磁盘组时提示权限不够
[root@oradb ~]# ll /dev/raw/
total 0 crw------- 1 oracle dba 162,
1 Nov 10 20:12 raw1 crw------- 1 oracle dba 162,
2 Nov 10 20:12 raw2 crw------- 1 oracle dba 162,
3 Nov 10 20:12 raw3 crw------- 1 oracle dba 162,
4 Nov 10 20:12 raw4
重启裸设备服务
[root@oradb ~]# /sbin/service rawdevices restart
Assigning devices: /dev/raw/raw3 --> /dev/sdf1 /dev/raw/raw3: bound to major 8,
minor 81 /dev/raw/raw4 --> /dev/sdg1 /dev/raw/raw4: bound to major 8,
minor 97 done
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS ---------------- ------------ +ASM STARTED
SQL> create diskgroup DG1 normal redundancy disk '/dev/raw/raw1','/dev/raw/raw2'; --创建磁盘组DG1
SQL> select * from v$fixed_table where name like '%ASM%'; --查看和asm相关的视图
SQL> select name,allocation_unit_size,state,type, free_mb,required_mirror_free_mb req_mi_fr_mb,usable_file_mb 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 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磁盘
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
c.使用root帐户配置ASMLib驱动及创建ASM磁盘,Oracle建议使用ASMLIB驱动来配置ASM磁盘
[root@oradb ~]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library driver.
The following questions will determine whether the driver is loaded on boot and what permissions it will have.
The current values will be shown in brackets ('[]').
Hitting without typing an answer will keep that current value.
Ctrl-C will abort. Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
--注意下面创建磁盘前本人重新对磁盘分过区
[root@oradb ~]# ls /dev/oracleasm/disks
[root@oradb ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdd1
Marking disk "VOL1" as an ASM disk: [ OK ]
[root@oradb ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdd2
Marking disk "VOL2" as an ASM disk: [ OK ]
[root@oradb ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sde1
Marking disk "VOL3" as an ASM disk: [ OK ]
[root@oradb ~]# /etc/init.d/oracleasm createdisk VOL4 /dev/sde2
Marking disk "VOL4" as an ASM disk: [ OK ]
[root@oradb ~]# /etc/init.d/oracleasm listdisks VOL1 VOL2 VOL3 VOL4
[root@oradb ~]# su - oracle
[oracle@oradb ~]$ export ORACLE_SID=+ASM
[oracle@oradb ~]$ sqlplus /nolog
SQL> conn / as sysdba
SQL> startup ASM instance started
ORA-15110: no diskgroups mounted
SQL>
create diskgroup DG1 normal redundancy failgroup
FG1 disk '/dev/oracleasm/disks/VOL1' name VOL1 failgroup
FG2 disk '/dev/oracleasm/disks/VOL2' name VOL2;
create diskgroup DG1 normal redundancy * ERROR at line 1: ORA-15018:
diskgroup cannot be created --下面提示磁盘路径未在discovery set中设置
ORA-15031: disk specification '/dev/oracleasm/disks/VOL2' matches no disks
ORA-15014: location '/dev/oracleasm/disks/VOL2' is not in the discovery set
ORA-15031: disk specification '/dev/oracleasm/disks/VOL1' matches no disks
ORA-15014: location '/dev/oracleasm/disks/VOL1' is not in the discovery set
SQL> show parameter asm_diskstring NAME TYPE VALUE;
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
asm_diskstring string
SQL> alter system set asm_diskstring='/dev/oracleasm/disks/VOL*';
SQL>
create diskgroup DG1 normal redundancy
failgroup FG1 disk '/dev/oracleasm/disks/VOL1' name VOL1
failgroup FG2 disk '/dev/oracleasm/disks/VOL2' name VOL2;
--设置asm_diskstring后重新创建磁盘DG1成功
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
---------------------- ---------- ----------------------- --------------
BACK
MOUNTED 26 0 26
DATA
MOUNTED 0 0 0
OCR
MOUNTED 5215 2047 1584
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29500582/viewspace-1356554/
,如需转载,请注明出处,否则将追究法律责任。