rdbms 11.2.0.3 (手头的测试环境)
-- 本次模拟添加磁盘操作中,数据库是关闭状态的 。
-- 检查节点中的裸设备,检查已有的磁盘
/etc/init.d/oracleasm listdisks
-- 初始化裸设备
dd if=/dev/zero of=/dev/sdb1 bs=1024000K count=10
-- 在host01上创建asm磁盘
/etc/init.d/oracleasm createdisk ASMDISK1 /dev/sdb1
-- 在host01上scan disk
/etc/init.d/oracleasm scandisks
/etc/init.d/oracleasm listdisks
--在host02上scan disk
/etc/init.d/oracleasm scandisks
/etc/init.d/oracleasm listdisks
-- 查看磁盘组信息
SYS@+ASM1>select group_number,name from v$asm_diskgroup;
GROUP_NUMBER NAME
------------ ------------------------------
0 FRA
1 DATA
2 OCR
SYS@+ASM1>
SYS@+ASM1>select name from v$asm_disk where group_number=1;
NAME
------------------------------
DATA_0003
DATA_0002
DATA_0001
DATA_0000
SYS@+ASM1>
-- 查看原来磁盘的大小
SYS@+ASM1>col name for a10
SYS@+ASM1>col state for a10
SYS@+ASM1>col path for a30
SYS@+ASM1>select os_mb ,name,state,path from v$asm_disk where group_number=1;
OS_MB NAME STATE PATH
---------- ---------- ---------- ------------------------------
2447 DATA_0003 NORMAL /dev/oracleasm/disks/ASMDISK9
2447 DATA_0002 NORMAL /dev/oracleasm/disks/ASMDISK8
2447 DATA_0001 NORMAL /dev/oracleasm/disks/ASMDISK7
2447 DATA_0000 NORMAL /dev/oracleasm/disks/ASMDISK5
SYS@+ASM1>
-- 查看asm磁盘在OS上的物理路径
[root@host01 disks]# ls -al
total 0
drwxr-xr-x 1 root root 0 Jan 6 12:08 .
drwxr-xr-x 4 root root 0 Jan 6 11:25 ..
brw-rw---- 1 grid asmadmin 8, 17 Jan 6 12:09 ASMADD01
brw-rw---- 1 grid asmadmin 8, 33 Jan 6 12:09 ASMADD02
brw-rw---- 1 grid asmadmin 8, 49 Jan 6 12:58 ASMDISK1
brw-rw---- 1 grid asmadmin 8, 59 Jan 6 11:25 ASMDISK10
brw-rw---- 1 grid asmadmin 8, 60 Jan 6 11:25 ASMDISK11
brw-rw---- 1 grid asmadmin 8, 61 Jan 6 11:25 ASMDISK12
brw-rw---- 1 grid asmadmin 8, 62 Jan 6 11:25 ASMDISK13
brw-rw---- 1 grid asmadmin 8, 63 Jan 6 11:25 ASMDISK14
brw-rw---- 1 grid asmadmin 8, 50 Jan 6 12:58 ASMDISK2
brw-rw---- 1 grid asmadmin 8, 51 Jan 6 12:58 ASMDISK3
brw-rw---- 1 grid asmadmin 8, 53 Jan 6 11:30 ASMDISK4
brw-rw---- 1 grid asmadmin 8, 54 Jan 6 11:30 ASMDISK5
brw-rw---- 1 grid asmadmin 8, 55 Jan 6 11:25 ASMDISK6
brw-rw---- 1 grid asmadmin 8, 56 Jan 6 11:25 ASMDISK7
brw-rw---- 1 grid asmadmin 8, 57 Jan 6 11:30 ASMDISK8
brw-rw---- 1 grid asmadmin 8, 58 Jan 6 11:30 ASMDISK9
[root@host01 disks]# pwd
/dev/oracleasm/disks
[root@host01 disks]#
-- DATA是normal的,每个磁盘大小是2447MB ,在虚拟机中中添加2块磁盘,模拟添加磁盘
-- 新加的盘,OS上看到的是sdb,sdc ,2898MB
-- 格式化磁盘sdb、sdc后,创建磁盘ASMADD01,ASMADD02
/etc/init.d/oracleasm createdisk ASMADD01 /dev/sdb1
/etc/init.d/oracleasm createdisk ASMADD02 /dev/sdc1
[root@host01 ~]# /etc/init.d/oracleasm createdisk ASMADD01 /dev/sdb1
Marking disk "ASMADD01" as an ASM disk: [ OK ]
[root@host01 ~]# /etc/init.d/oracleasm createdisk ASMADD02 /dev/sdc1
Marking disk "ASMADD02" as an ASM disk: [ OK ]
[root@host01 ~]#
-- 添加后扫描 (两个节点上都可以到新添加的磁盘),也可以在ASMCA上看到新磁盘
[root@host01 ~]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks: [ OK ]
[root@host01 ~]# /etc/init.d/oracleasm listdisks
ASMADD01
ASMADD02
ASMDISK1
ASMDISK10
ASMDISK11
ASMDISK12
ASMDISK13
ASMDISK14
ASMDISK2
ASMDISK3
ASMDISK4
ASMDISK5
ASMDISK6
ASMDISK7
ASMDISK8
ASMDISK9
[root@host01 ~]#
[root@host02 ~]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks: [ OK ]
[root@host02 ~]# /etc/init.d/oracleasm listdisks
ASMADD01
ASMADD02
ASMDISK1
ASMDISK10
ASMDISK11
ASMDISK12
ASMDISK13
ASMDISK14
ASMDISK2
ASMDISK3
ASMDISK4
ASMDISK5
ASMDISK6
ASMDISK7
ASMDISK8
ASMDISK9
[root@host02 ~]#
-- 命令行添加磁盘 ,报ORA错误,主要是因为使用dba登录进去的,要使用sysasm登陆进去
Alter diskgroup data add disk '/dev/oracleasm/disks/ASMADD01','/dev/oracleasm/disks/ASMADD02' size 2447M rebalance power 10;
SYS@+ASM1>Alter diskgroup data add disk '/dev/oracleasm/disks/ASMADD01','/dev/oracleasm/disks/ASMADD02' size 2447M rebalance power 10;
Alter diskgroup data add disk '/dev/oracleasm/disks/ASMADD01','/dev/oracleasm/disks/ASMADD02' size 2447M rebalance power 10
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15260: permission denied on ASM disk group
SYS@+ASM1>
SYS@+ASM1>Alter diskgroup data add disk '/dev/oracleasm/disks/ASMADD01','/dev/oracleasm/disks/ASMADD02' size 2447M rebalance power 10; -- 这里指定了大小,发现只有ASMADD02磁盘大小是2447,后面可以查询到
Diskgroup altered.
SYS@+ASM1>
-- 查看平衡
[grid@host02 ~]$ asmcmd
ASMCMD> lsop
Group_Name Dsk_Num State Power
DATA REBAL WAIT 10
ASMCMD> lsop
Group_Name Dsk_Num State Power
DATA REBAL WAIT 10
ASMCMD> lsop DATA
Group_Name Dsk_Num State Power
DATA REBAL WAIT 10
ASMCMD>
SYS@+ASM1>set linesize 200
SYS@+ASM1>select * from v$asm_operation;
GROUP_NUMBER OPERA STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES ERROR_CODE
------------ ----- ---------- ---------- ---------- ---------- ---------- ---------- ----------- --------------------------------------------
1 REBAL RUN 10 10 1685 2193 1071 0
SYS@+ASM1>
SYS@+ASM1>/
GROUP_NUMBER OPERA STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES ERROR_CODE
------------ ----- ---------- ---------- ---------- ---------- ---------- ---------- ----------- --------------------------------------------
1 REBAL RUN 10 10 2194 2207 985 0
SYS@+ASM1>/
no rows selected
SYS@+ASM1>/
no rows selected
SYS@+ASM1>
-- 查看添加后的磁盘
SYS@+ASM1>select os_mb ,name,state,path from v$asm_disk where group_number=1; -- 注意这里的OS_MB 显示的是OS层面的大小
OS_MB NAME STATE PATH
---------- ---------- ---------- ------------------------------
2761 DATA_0005 NORMAL /dev/oracleasm/disks/ASMADD02
2761 DATA_0004 NORMAL /dev/oracleasm/disks/ASMADD01
2447 DATA_0003 NORMAL /dev/oracleasm/disks/ASMDISK9
2447 DATA_0002 NORMAL /dev/oracleasm/disks/ASMDISK8
2447 DATA_0001 NORMAL /dev/oracleasm/disks/ASMDISK7
2447 DATA_0000 NORMAL /dev/oracleasm/disks/ASMDISK5
6 rows selected.
SYS@+ASM1>
SYS@+ASM1>select total_mb,name,state,path from v$asm_disk where group_number=1; -- 注意这里的total_mb ,显示的是ASM层面的大小
TOTAL_MB NAME STATE PATH
---------- ---------- ---------- ------------------------------
2447 DATA_0005 NORMAL /dev/oracleasm/disks/ASMADD02
2761 DATA_0004 NORMAL /dev/oracleasm/disks/ASMADD01
2447 DATA_0003 NORMAL /dev/oracleasm/disks/ASMDISK9
2447 DATA_0002 NORMAL /dev/oracleasm/disks/ASMDISK8
2447 DATA_0001 NORMAL /dev/oracleasm/disks/ASMDISK7
2447 DATA_0000 NORMAL /dev/oracleasm/disks/ASMDISK5
6 rows selected.
-- 不指定大小,添加磁盘 ,可以添加磁盘
Alter diskgroup data add disk '/dev/oracleasm/disks/ASMADD01','/dev/oracleasm/disks/ASMADD02' rebalance power 10;
SYS@+ASM1>select total_mb,name,state,path from v$asm_disk where group_number=1;
TOTAL_MB NAME STATE PATH
---------- ---------- ---------- ------------------------------
2761 DATA_0005 NORMAL /dev/oracleasm/disks/ASMADD02
2761 DATA_0004 NORMAL /dev/oracleasm/disks/ASMADD01
2447 DATA_0003 NORMAL /dev/oracleasm/disks/ASMDISK9
2447 DATA_0002 NORMAL /dev/oracleasm/disks/ASMDISK8
2447 DATA_0001 NORMAL /dev/oracleasm/disks/ASMDISK7
2447 DATA_0000 NORMAL /dev/oracleasm/disks/ASMDISK5
6 rows selected.
SYS@+ASM1>
-- 补充 oracleasm的命令
[root@host02 ~]# oracleasm
Usage: oracleasm [--exec-path=<exec_path>] <command> [ <args> ]
oracleasm --exec-path
oracleasm -h
oracleasm -V
The basic oracleasm commands are:
configure Configure the Oracle Linux ASMLib driver
init Load and initialize the ASMLib driver
exit Stop the ASMLib driver
scandisks Scan the system for Oracle ASMLib disks
status Display the status of the Oracle ASMLib driver
listdisks List known Oracle ASMLib disks
querydisk Determine if a disk belongs to Oracle ASMlib
createdisk Allocate a device for Oracle ASMLib use
deletedisk Return a device to the operating system
renamedisk Change the label of an Oracle ASMlib disk
update-driver Download the latest ASMLib driver
[root@host02 ~]#
END