千家信息网

oracle 11g ASM 磁盘组在线扩容实验:

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,oracle 11g ASM磁盘组扩容实验:该主机为我经常用的测试机,因为为了顺便学习ASM,底层存储使用的是ASM的方式,但是以前规划的时候磁盘组只有4G,由于数据文件增加,导致没有可用的空间。所以
千家信息网最后更新 2026年11月03日oracle 11g ASM 磁盘组在线扩容实验:oracle 11g ASM磁盘组扩容实验:

该主机为我经常用的测试机,因为为了顺便学习ASM,底层存储使用的是ASM的方式,但是以前规划的时候磁盘组只有4G,由于数据文件增加,导致没有可用的空间。所以,模拟生产环境做了ASM在线扩容的实验。

建议在做之前,对数据库进行备份。

---------------------------------------1.主机和数据库环境---------------------------------------

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production


[root@ray ~]# lsb_release -a
LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: EnterpriseEnterpriseServer
Description: Enterprise Linux Enterprise Linux Server release 5.6 (Carthage)
Release: 5.6
Codename: Carthage
[root@ray ~]#


--------------------------------------2. 存储环境-------------------------------------------------
由于我用的是虚拟机,所以在虚拟机添加硬盘是很容易的,我们添加一块5G大小的磁盘,重启主机,通过下面查询可以看到我们在/dev/sde就是我们所添加的硬盘。

1. [root@ray ~]# ls -l /dev/sd*
brw-r----- 1 root disk 8, 0 Dec 18 21:17 /dev/sda
brw-r----- 1 root disk 8, 1 Dec 18 21:18 /dev/sda1
brw-r----- 1 root disk 8, 2 Dec 18 21:18 /dev/sda2
brw-r----- 1 root disk 8, 3 Dec 18 21:17 /dev/sda3
brw-r----- 1 root disk 8, 4 Dec 18 21:17 /dev/sda4
brw-r----- 1 root disk 8, 5 Dec 18 21:18 /dev/sda5
brw-r----- 1 root disk 8, 16 Dec 18 21:17 /dev/sdb
brw-r----- 1 root disk 8, 32 Dec 18 21:17 /dev/sdc
brw-r----- 1 root disk 8, 48 Dec 18 21:17 /dev/sdd
brw-r----- 1 root disk 8, 49 Dec 18 21:17 /dev/sdd1
brw-r----- 1 root disk 8, 64 Dec 18 21:17 /dev/sde
[root@ray ~]# fdisk /dev/sde
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): q

[root@ray ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 286 2096482+ 83 Linux
/dev/sda3 287 547 2096482+ 82 Linux swap / Solaris
/dev/sda4 548 2610 16571047+ 5 Extended
/dev/sda5 548 2610 16571016 83 Linux

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdd1 1 623 5004216 83 Linux

Disk /dev/sde: 5368 MB, 5368709120 bytes ------------------可以看到是5G大小
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sde doesn't contain a valid partition table


--------------------------------------------3. 绑定物理设备----------------------------------
[root@ray ~]# /bin/raw /dev/raw/raw3 /dev/sde
/dev/raw/raw3: bound to major 8, minor 64



--------------------------------------------4. 配置UDEV规则---------------------------------
[root@ray ~]# vi /etc/udev/rules.d/60-raw.rules
# Enter raw device bindings here.
#
# An example would be:
# ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
# to bind /dev/raw/raw1 to /dev/sda, or
# ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"
# to bind /dev/raw/raw2 to the device with major 8, minor 1.
#

ACTION=="add",KERNEL=="/dev/sdb", RUN+="/bin/raw /dev/raw/raw1 %N",OWNER="grid", GROUP="asmadmin", MODE="0660"
ACTION=="add",KERNEL=="/dev/sdc", RUN+="/bin/raw /dev/raw/raw2 %N",OWNER="grid", GROUP="asmadmin", MODE="0660
#add:
ACTION=="add",KERNEL=="/dev/sde", RUN+="/bin/raw /dev/raw/raw3 %N",OWNER="grid", GROUP="asmadmin", MODE="0660
KERNEL=="raw*", WNER="grid", GROUP="asmadmin", MODE="0660"
chown grid:oinstall /dev/raw/raw*"
~
~
------------------------------------------5. 配置RAW的控制文件---------------------------------

[root@ray ~]# vi /etc/sysconfig/rawdevices
# raw device bindings
# format:
#
# example: /dev/raw/raw1 /dev/sda1
# /dev/raw/raw2 8 5

/dev/raw/raw1 /dev/sdb
/dev/raw/raw2 /dev/sdc
/dev/raw/raw3 /dev/sde
~


[root@ray ~]# ls -l /dev/raw/raw*
crw-rw---- 1 grid asmadmin 162, 1 Aug 21 17:28 /dev/raw/raw1
crw-rw---- 1 grid asmadmin 162, 2 Aug 21 17:28 /dev/raw/raw2
crw-rw---- 1 grid asmadmin 162, 3 Aug 21 17:27 /dev/raw/raw3

在上面,我们在屋里层面上的操作已经做完了。下面我们要在数据库层面做。




----------------------------------------DATA扩容----------------------------------


1. 登录到数据库服务器节点1,以grid用户查看ASM磁盘组空间情况:

[root@ray ~]# su - grid
grid@ray:/home/grid>asmcmd
ASMCMD> lsdg
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED NORMAL N 512 4096 1048576 4096 174 0 87 0 N DATA/

注:可以看到,我们的DATA磁盘只有174M的可用容量。


2. 如果在生产环境,磁盘组添加磁盘需要很长的平衡时间,所以,我们先查询asm_power_limit的值,并调整为10;

grid@ray:/home/grid>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Thu Aug 21 17:30:36 2014

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Automatic Storage Management option

SQL> show parameter asm_power_limit;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_power_limit integer 1
SQL> alter system set asm_power_limit=10 scope=both;

System altered.

SQL> show parameter asm_power_limit

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_power_limit integer 10


3. 查看磁盘组使用情况及磁盘名称和路径

SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;

GROUP_NUMBER NAME STATE TOTAL_MB FREE_MB
------------ ------------------------------ ----------- ---------- ----------
1 DATA MOUNTED 4096 174

SQL> col name for a10
SQL> col path for a30
SQL> select name,path from v$asm_disk;

NAME PATH
---------- ------------------------------
DATA_0001 /dev/raw/raw2
DATA_0000 /dev/raw/raw1
DATA_0002 /dev/raw/raw3


4. 将新增加的磁盘添加到DATA磁盘组:
grid@ray:/home/grid>sqlplus / as sysasm

SQL*Plus: Release 11.2.0.3.0 Production on Thu Aug 21 17:31:59 2014

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Automatic Storage Management option

注:此处必须以sysasm身份操作,否则报错ORA-15032和ORA-15260,这是oracle 11G ASM磁盘管理上的一个改进。

SQL> alter diskgroup DATA add disk '/dev/raw/raw3';

Diskgroup altered.

5. 查看是否添加完成
SQL> col name for a10
SQL> col path for a30
SQL> select name,path from v$asm_disk;

NAME PATH
---------- ------------------------------
DATA_0001 /dev/raw/raw2
DATA_0000 /dev/raw/raw1
DATA_0002 /dev/raw/raw3


6. 将数据进行冗余

将当前的diskgroup组的rebalance速度修改为10:

SQL> alter diskgroup DATA rebalance power 10;

Diskgroup altered.
查看重新平衡需要的时间:这里已经完了,因为磁盘只有5G。
SQL> select operation,est_minutes from v$asm_operation;

OPERA EST_MINUTES
----- -----------
REBAL 0

SQL> select name,path from v$asm_disk;

NAME PATH
---------- ------------------------------
DATA_0001 /dev/raw/raw2
DATA_0000 /dev/raw/raw1
DATA_0002 /dev/raw/raw3

7. 将参数改回去

SQL> alter diskgroup DATA rebalance power 1;

Diskgroup altered.

SQL> alter system set asm_power_limit=1 scope=both;

System altered.


查询DATA磁盘组容量,可以看到,我们已经增加了5G的容量。


SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;


GROUP_NUMBER NAME STATE TOTAL_MB FREE_MB
------------ ---------- ----------- ---------- ----------
1 DATA MOUNTED 9216 5233


欢迎大家批评指正:
QQ交流群:300392987
论 坛:www.oraclefreebase.com

磁盘 数据 数据库 环境 主机 只有 容量 查询 实验 大小 完了 层面 情况 文件 时间 硬盘 空间 存储 生产 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 新华互联网科技 云之行互联网科技 互联网与科技金融数据 深圳互联网科技公司 深圳互联网络科技有限公司 互联网与未来科技 互联网 视角下的科技创新 镁科技互联网资讯平台 新华互联网科技校企合作 上海电发互联网科技有限公司 北京大学互联网科技怎么样 互联网系的金融科技公司 宁夏科技产业互联网案例 恒生互联网科技指数跳水 哈尔滨屹滨互联网科技有限公司 陕西云淼互联网科技公司 山东大美朱楼互联网科技有限公司 互联网高科技行业有哪些企业 亚光科技低轨卫星互联网 前海云享互联网科技 互联网科技公司经营范围 互联网金融与金融科技 远信互联网科技 科技互联网的估值 深圳市优智互联网科技有限公司 如何创新互联网科技 互联网时代的科技公司 互联网科技实习生岗位 城市宝互联网科技有限公司 互联网科技创业有什么好项目
0