将额外的磁盘添加到 ASM 中的 FRA 磁盘组

rfu*_*sca 4 oracle oracle-11g-r2 oracle-asm

我们正在运行带有两节点 RAC 的 Oracle 11.2.0.3,而我们的 FRA 磁盘组空间不足。我需要通过 ASM 为其分配更多磁盘。我不知道该怎么做。我可以登录到一个节点并访问 asmcmd 或其他 asm 命令行实用程序。我需要做什么?

编辑:直到菲尔的回答才知道它是相关的:我们正在使用原始磁盘设备。

Phi*_*lᵀᴹ 6

这假设您已经对提供的磁盘进行了分区(并将使用/dev/sd[whatever]N),并且您正在使用asmlib. 如果您是以下情况,将会加载一个内核模块:

[root@oel61 disks]# lsmod | grep oracle
oracleasm              53865  1 
[root@oel61 disks]# 
Run Code Online (Sandbox Code Playgroud)

以 root 身份扫描候选磁盘:

[root@oel61 ~]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks:               [  OK  ]
[root@oel61 ~]#
Run Code Online (Sandbox Code Playgroud)

然后,检查磁盘是否已被 ASM“发现”:

oracle@oel61 ~]$ asmcmd -p
ASMCMD [+] > lsdsk
Path
/dev/oracleasm/disks/DISK1
/dev/oracleasm/disks/DISK2
/dev/oracleasm/disks/DISK3
ASMCMD [+] >
Run Code Online (Sandbox Code Playgroud)

如果没有,我们需要在设备上盖章:

[root@oel61 ~]# /etc/init.d/oracleasm createdisk NEWFRA /dev/sdc1
Marking disk "NEWFRA" as an ASM disk:                       [  OK  ]
[root@oel61 ~]#
Run Code Online (Sandbox Code Playgroud)

再次扫描候选磁盘,然后列出 - 新设备应该在那里:

[root@oel61 ~]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks:               [  OK  ]
[root@oel61 ~]#

# /etc/init.d/oracleasm listdisks
DISK1
DISK2
DISK3
NEWFRA
#
Run Code Online (Sandbox Code Playgroud)

或使用asmcmd

oracle@oel61 ~]$ asmcmd -p
ASMCMD [+] > lsdsk
Path
/dev/oracleasm/disks/DISK1
/dev/oracleasm/disks/DISK2
/dev/oracleasm/disks/DISK3
/dev/oracleasm/disks/NEWFRA
ASMCMD [+] >
Run Code Online (Sandbox Code Playgroud)

现在在另一个节点上做一个磁盘扫描并检查一切是否与第一个节点上的一样(如果您使用相同的 /dev 设备名称应该没问题)。

现在磁盘已准备好添加到组中。

列出组:

[oracle@oel61 ~]$ export ORACLE_SID="+ASM"
[oracle@oel61 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on Thu Jan 31 15:35:27 2013

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

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

SQL> select name
  2  from V$ASM_DISKGROUP;

NAME
------------------------------
DATA
FRA

SQL> 
Run Code Online (Sandbox Code Playgroud)

将磁盘添加到组:

SQL> ALTER DISKGROUP FRA ADD DISK '/dev/oracleasm/disks/NEWFRA';
Run Code Online (Sandbox Code Playgroud)