Oracle ASM磁盘创建
1、检查新加的磁盘
lsblk -l
partprobe
cd /sys/class/scsi_host
for i in `ls `; do echo "- - -" >$i/scan ;done
2、配置ASM磁盘
for i in ab ac;
do
echo "KERNEL==\"sd*\",SUBSYSTEM==\"block\",PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\",SYMLINK+=\"asm-disk$i\",OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\""
done
3、添加
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
4、生效并检查AMS磁盘
/sbin/udevadm trigger --type=devices --action=change
ls -lsa /dev/asm*
ls -lsa /dev/sd*
5、通过ASMCA图形界面添加硬盘到磁盘组
6、通过命令行添加到磁盘组
sqlplus "/as sysasm"
create diskgroup dgdata03
EXTERNAL REDUNDANCY -- 普通冗余
disk '/dev/asm-data03'
ATTRIBUTE -- 属性
'au_size'='8M',
'compatible.asm' = '19.0.0.0',
'compatible.rdbms' = '19.0.0.0';
- 大于1T,要加compatible.asm' = '19.0.0.0'
7、查看空盘
set lin 200
set pagesize 200
col DGNAME format a15
col DISKNAME format a15
col PATH format a20
col NAME format a20
select NAME,MOUNT_STATUS,STATE,DISK_NUMBER "DNO",PATH,TOTAL_MB,FREE_MB,GROUP_NUMBER "GNO" from /* 如果name为空,那么是没有加入磁盘组 */v$ASM_DISK
order by NAME;
select GROUP_NUMBER ,NAME,STATE,TYPE,TOTAL_MB,FREE_MB,USABLE_FILE_MB,OFFLINE_DISKS from v$asm_diskgroup;
8、检查ASM 磁盘组里面有哪些盘是可用的?
select a.GROUP_NUMBER GNO,a.MOUNT_STATUS,a.STATE,a.TOTAL_MB "DT_MB",b.TOTAL_MB
"GT_MB",a.DISK_NUMBER DNO,a.PATH,a.name as diskname,b.name as dgname
from v$ASM_DISK a,v$asm_diskgroup b where b.name='DGDATA02'
and a.GROUP_NUMBER=b.GROUP_NUMBER
order by a.group_number;
SELECT dg.name AS diskgroup,SUBSTR(c.instance_name,1,12) AS instance,
SUBSTR(c.db_name,1,12) AS dbname,
SUBSTR(c.SOFTWARE_VERSION,1,12) AS software,
SUBSTR(c.COMPATIBLE_VERSION,1,12) AS compatible
FROM V$ASM_DISKGROUP_STAT dg, V$ASM_CLIENT c
WHERE dg.group_number = c.group_number;
select a.GROUP_NUMBER GNO,
a.MOUNT_STATUS,
a.STATE,
a.TOTAL_MB "DT_MB",
b.TOTAL_MB "GT_MB",
a.DISK_NUMBER DNO,
a.PATH,
a.name as diskname,
b.name as dgname
from v$ASM_DISK a, v$asm_diskgroup b
where b.name = 'DGDATA02'
and a.GROUP_NUMBER = b.GROUP_NUMBER
order by a.group_number;
9、磁盘组中添加磁盘
alter diskgroup dgdata02 add disk '/dev/asm-data12';
alter diskgroup dgdata02 add disk '/dev/asm-data13' rebalance power 8 /* rebalance power 8 平衡 */;
- 添加磁盘的时候,建议一组(两个盘组)加,单个加对性能有影响。
- 因为磁盘要做rebalance,最好在rebalance完后再使用磁盘组,查看后台平衡的情况 :
select * from v$asm_operation;
- 其中重点
- SOFAR 已经平衡的数量
- EST_WORK 剩余需要平衡的数据量
- EST_MINUTES:操作剩余部分预计需要的估计时间量(分钟)
- RAC环境下,在a机创建的diskgroup会自动mount,而b机需要手工mount后才可以使用.
10、删除磁盘
alter diskgroup dgdata02 drop disk 'DGDATA02_0000';
11、mount/umount 磁盘组
alter diskgroup dgdata02 dismount;
alter diskgroup dgdata02 mount;
-- alter diskgroup dgdata02 mount force; -- 逻辑错误,强制挂载
select GROUP_NUMBER ,NAME,STATE,TYPE,TOTAL_MB,FREE_MB,USABLE_FILE_MB,OFFLINE_DISKS
from v$asm_diskgroup;
12、删除磁盘组
drop diskgroup dgdata02;
drop diskgroup dgdata02 including contents ;
- including contents:表示有内容也一起删除。