我的编程空间,编程开发者的网络收藏夹
学习永远不晚

udev下oracle 11g RAC asm在线扩盘和删盘操作是怎样的

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

udev下oracle 11g RAC asm在线扩盘和删盘操作是怎样的

本篇文章为大家展示了udev下oracle 11g RAC asm在线扩盘和删盘操作是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

我们都知道ORACLE在RAC的部署和安装的时候非常推荐我们使用ASM来管理存储,而非之前的裸设备和本地文件系统。原因有很多,我觉得最主要的还是ASM的易用性、性能、容错机制相对其他方式都要更优秀。

但是生产系统使用一段时间之后,经常回出现ASM没有可扩展的存储的情况,这个时候就需要在线给数据库扩存储的情况,这样的情况相信也是经常困扰dba的一项工作。

本文重点介绍使用UDEV方式在线扩ASM存储的方法和注意事项,供大家参考

1、需要存储工程师划共享磁盘到两台RAC主机

/home/oracle/Skillset/questions/Skillset3/Skillset3.html

[root@rac1 by-path]# fdisk -l

Disk /dev/sdh: 107.4 GB, 107374182400 bytes

255 heads, 63 sectors/track, 13054 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 32768 bytes / 32768 bytes

Disk identifier: 0x00000000

我这里只显示了我新加的磁盘

两个节点查看uuid

[root@rac1 by-path]# ll /dev/disk/by-id

lrwxrwxrwx 1 root root  9 Apr 11 09:51 scsi-3600507680c808021b800000000000424 -> ../../sdc

lrwxrwxrwx 1 root root  9 Apr 11 09:51 scsi-3600507680c808021b800000000000425 -> ../../sdd

lrwxrwxrwx 1 root root  9 Apr 11 09:51 scsi-3600507680c808021b800000000000426 -> ../../sde

lrwxrwxrwx 1 root root  9 Apr 11 09:51 scsi-3600507680c808021b800000000000427 -> ../../sdf

lrwxrwxrwx 1 root root  9 Apr 11 09:51 scsi-3600507680c808021b800000000000428 -> ../../sdg

lrwxrwxrwx 1 root root  9 Apr 11 09:51 scsi-3600507680c808021b800000000000429 -> ../../sdh

查看rac2节点uuid

[root@rac2 ~]# ll /dev/disk/by-id

lrwxrwxrwx 1 root root  9 Apr 11 10:46 scsi-3600507680c808021b800000000000424 -> ../../sdc

lrwxrwxrwx 1 root root  9 Apr 11 10:46 scsi-3600507680c808021b800000000000425 -> ../../sdd

lrwxrwxrwx 1 root root  9 Apr 11 10:46 scsi-3600507680c808021b800000000000426 -> ../../sde

lrwxrwxrwx 1 root root  9 Apr 11 10:46 scsi-3600507680c808021b800000000000427 -> ../../sdf

lrwxrwxrwx 1 root root  9 Apr 11 10:46 scsi-3600507680c808021b800000000000428 -> ../../sdg

lrwxrwxrwx 1 root root  9 Apr 11 10:46 scsi-3600507680c808021b800000000000429 -> ../../sdh

对比是否一致,如果一致的话,说明这个盘是共享的,没有问题。

2、配置udev

下面是添加磁盘的udev文件

vi /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600507680c808021b800000000000429", NAME="asm-diskh", OWNER="oracle", GROUP="dba", MODE="0660"

在两个节点分别增加这么一行

然后在两个节点分别重启udev

start_udev

检查两个节点共享磁盘是否添加到ASM里面

[root@rac1 ~]# ll /dev/asm*

brw-rw---- 1 oracle dba 8, 112 Apr 23 15:55 /dev/asm-diskh

3、在线为ASM扩磁盘

rac2:/home/oracle@grid> sqlplus / as sysasm

SQL> set lines 200 pages 1000

SQL> col PATH for a30

SQL> select group_number,path,state,total_mb,free_mb from v$asm_disk;

GROUP_NUMBER PATH                           STATE              TOTAL_MB    FREE_MB

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

1 /dev/asm-diskg                 NORMAL               102400      97445

2 /dev/asm-diskh                 NORMAL               0           0

2 /dev/asm-diskf                 NORMAL               102400      38788

3 /dev/asm-diske                 NORMAL                10240       9932

3 /dev/asm-diskd                 NORMAL                10240       9930

3 /dev/asm-diskc                 NORMAL                10240       9932

SQL> select name,state,type,total_mb,free_mb,round(((total_mb-free_mb)/total_mb)*100,2)  tbs_used from v$asm_diskgroup;

NAME                                                         STATE                  TYPE           TOTAL_MB    FREE_MB   TBS_USED

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

ARCH                                                         MOUNTED                EXTERN           102400      97445       4.84

DATA                                                         MOUNTED                EXTERN           102400      29535      71.16

OCR                                                          MOUNTED                NORMAL            30720      29794       3.01

SQL> alter system set asm_power_limit=10;

System altered.

SQL> alter diskgroup data add disk '/dev/asm-diskh';

Diskgroup altered.

SQL> alter system set asm_power_limit=1;

System altered.

扩完之后,查看asm是否在动态平衡

SQL> select * from v$asm_operation;

GROUP_NUMBER OPERATION  STATE         POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE

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

2 REBAL      RUN              10         10      36430      36430          0           0

SQL> select group_number,path,state,total_mb,free_mb from v$asm_disk;

GROUP_NUMBER PATH                           STATE              TOTAL_MB    FREE_MB

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

1 /dev/asm-diskg                 NORMAL               102400      97445

2 /dev/asm-diskh                 NORMAL               102400      65968

2 /dev/asm-diskf                 NORMAL               102400      65965

3 /dev/asm-diske                 NORMAL                10240       9932

3 /dev/asm-diskd                 NORMAL                10240       9930

3 /dev/asm-diskc                 NORMAL                10240       9932

这里有几个概念需要解释一下

ASM 实例的SGA 需要的内存很小。

当在磁盘组中添加删除磁盘时,磁盘组会自动对数据在新旧磁盘间重新分配,从而实现分散IO, 这个过程就叫再平衡(Rebalance)。在磁盘组中添加删除磁盘会在磁盘间移动数据,因此虽然是联机操作,仍然会影响部分性能,所以要在系统空闲的时候进行。

asm_power_limit参数控制Rebalance速度, 取值范围0-11. 最小值0,代表不做Rebalance, 最大值11 代表最快的速度,也意味着严重影响性能, 1 代表最慢的速度和最小的性能影响。 其中1是默认值。

4、在线为ASM删磁盘

生产中虽然轻易对生产的磁盘做调整,但是也存在在线删ASM磁盘的需求。那么我们来测试一下,删盘是否会影响数据库的使用呢?

创建测试表 crm.obj表

rac2:/home/oracle@db> . gdenv

rac2:/home/oracle@grid> sqlplus / as sysasm

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

GROUP_NUMBER NAME                                                         PATH                           STATE              TOTAL_MB    FREE_MB

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

1 ARCH_0000                                                    /dev/asm-diskg                 NORMAL               102400      97445

2 DATA_0001                                                    /dev/asm-diskh                 NORMAL               102400      65968

2 DATA_0000                                                    /dev/asm-diskf                 NORMAL               102400      65965

3 OCR_0002                                                     /dev/asm-diske                 NORMAL                10240       9932

3 OCR_0001                                                     /dev/asm-diskd                 NORMAL                10240       9930

3 OCR_0000                                                     /dev/asm-diskc                 NORMAL                10240       9932

SQL> alter diskgroup data drop disk DATA_0001;

Diskgroup altered.

这里需要注意的是要填name,不能填具体哪个磁盘。

SQL> select GROUP_NUMBER,name,state,type,total_mb,free_mb,round(((total_mb-free_mb)/total_mb)*100,2)  tbs_used from v$asm_diskgroup;

GROUP_NUMBER NAME                                                         STATE                  TYPE           TOTAL_MB    FREE_MB   TBS_USED

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

1 ARCH                                                         MOUNTED                EXTERN           102400      97445       4.84

2 DATA                                                         MOUNTED                EXTERN           102400      29533      71.16

3 OCR                                                          MOUNTED                NORMAL            30720      29794       3.01

SQL> select disk_number, state, name, total_mb, free_mb from v$asm_disk where group_number = 2;

DISK_NUMBER STATE            NAME                                                           TOTAL_MB    FREE_MB

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

1 DROPPING         DATA_0001                                                        102400      72948

0 NORMAL           DATA_0000                                                        102400      58985

我们可以看到这个磁盘正在被删除,因为要做动态平衡嘛,所以可以看到底下的动态平衡的过程。

SQL> select * from v$asm_operation;

GROUP_NUMBER OPERATION  STATE         POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE

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

2 REBAL      RUN               1          1       8172      36430       3897           7

而这个过程是完全不影响用户使用数据库的,这个我在我的测试库上做了测试。

上述内容就是udev下oracle 11g RAC asm在线扩盘和删盘操作是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

udev下oracle 11g RAC asm在线扩盘和删盘操作是怎样的

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

目录