Oracle HA 之ADVM和ACFS

--ADVM

ADVM主要是为了使除了数据库之外的第三方应用程序也可以使用asm存储,这样不限于使asm局限于自家的数据库领域。要想使用ADVM首先必须安装grid,已经创建好了asm磁盘,asm磁盘组。一个advm卷可以占用一个磁盘组的所有空间,也可以占用部分空间,一个advm卷的空间只能来自于一个asm磁盘组,但是一个asm磁盘组可以创建多个advm卷。每次创建的advm卷都会在/dev/asm/目录下产生一个文件,用于创建文件系统。

创建ADVM的方法:
    1)asmca创建advm卷--略
    2)使用asmcmd下的volcreate命令创建advm卷

[grid@node1 ~]$ asmcmd -p
ASMCMD [+] > volcreate -G ADVMDG -s 2g advm02
ASMCMD [+] > volinfo -G ADVMDG advm02
Diskgroup Name: ADVMDG

     Volume Name: ADVM02
     Volume Device: /dev/asm/advm02-92
     State: ENABLED
     Size (MB): 2048
     Resize Unit (MB): 32
     Redundancy: UNPROT
     Stripe Columns: 4
     Stripe Width (K): 128
     Usage:
     Mountpath:

ASMCMD [+] >

    3)使用SQL创建advm卷

[grid@node1 ~]$ sqlplus / as sysdba                                                           --sqlplus下穿件advm不能使用sysdba权限登录,否则会报权限不足,需要使用sysasm权限

SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 2 17:17:38 2016

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options

SQL> alter diskgroup advmdg add volume advm03 size 2g;
alter diskgroup advmdg add volume advm03 size 2g
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15260: permission denied on ASM disk group


SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
[grid@node1 ~]$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 2 17:18:51 2016

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options

SQL> alter diskgroup advmdg add volume advm03 size 2g;

Diskgroup altered.

SQL>

>调整卷大小:如果advm卷已经创建了文件系统,那么不可以直接通过grid工具的方法修改卷大小,而只能使用文件系统扩展工具调整卷大小,比如acfsutil size命令。
   
    1)asmca调整卷大小--略
    2)asmcmd对应命令调整卷大小:

ASMCMD [+] > volresize -G ADVMDG -s 2g advm03
The requested size is smaller than the current size.
Data corruption may occur.
Are you sure? [y/n]: y
ASMCMD [+] > volinfo -G ADVMDG advm03
Diskgroup Name: ADVMDG

     Volume Name: ADVM03
     Volume Device: /dev/asm/advm03-92
     State: ENABLED
     Size (MB): 2048
     Resize Unit (MB): 32
     Redundancy: UNPROT
     Stripe Columns: 4
     Stripe Width (K): 128
     Usage:
     Mountpath:

ASMCMD [+] >

    3)SQL命令:

[grid@node1 ~]$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 2 17:32:06 2016

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options

SQL> alter diskgroup advmdg resize volume advm03 size 4g;

Diskgroup altered.

SQL>

>监控ADVM视图

     v$asm_file视图只能看到类型(type)为asmvol,看不到卷名,v$asm_alias也看不到卷名:

SQL> select group_number,bytes,type from v$asm_file;

GROUP_NUMBER      BYTES TYPE
------------ ---------- ------------------------------
       1       1536 ASMPARAMETERFILE
       1  272756736 OCRFILE
       2  775954432 DATAFILE
       2  566239232 DATAFILE
       2   99622912 DATAFILE
       2    5251072 DATAFILE
       2   18497536 CONTROLFILE
       2   52429312 ONLINELOG
       2   52429312 ONLINELOG
       2   33562624 TEMPFILE
       2   26222592 DATAFILE
       2   52429312 ONLINELOG
       2   52429312 ONLINELOG
       2       3584 PARAMETERFILE
       3   18497536 CONTROLFILE
       3   52429312 ONLINELOG
       3   52429312 ONLINELOG
       3   52429312 ONLINELOG
       3   52429312 ONLINELOG
       4 2147483648 ASMVOL
       4 2147483648 ASMVOL
       4 4294967296 ASMVOL

22 rows selected.

*****************专用视图****************v$asm_volume可以看到卷名,卷的状态来自于v$asm_volume_stat视图:******************

SQL> select volume_name,size_mb,state,volume_device,mountpath from v$asm_volume;

VOLUME_NAME       SIZE_MB STATE            VOLUME_DEVICE                       MOUNTPATH
--------------- ---------- ------------------------ -------------------------------------------------- --------------------------------------------------
ADVM01              2048 ENABLED            /dev/asm/advm01-92
ADVM02              2048 ENABLED            /dev/asm/advm02-92
ADVM03              4096 ENABLED            /dev/asm/advm03-92

SQL> select volume_name,reads,writes,read_errs,bytes_read,bytes_written from v$asm_volume_stat;

VOLUME_NAME         READS     WRITES  READ_ERRS BYTES_READ BYTES_WRITTEN
--------------- ---------- ---------- ---------- ---------- -------------
ADVM01            35    24803           0     140288    101593088
ADVM02             0        0           0      0        0
ADVM03             0        0           0      0        0

>创建标准文件系统:[root@node1 ~]# mkfs.ext3 /dev/asm/advm01-92

--ACFS

>ACFS不能用于linux根分区,不能用于grid的安装目录,不支持数据库文件(即asm存储的文件),使用acfs要依赖于advm卷。

>格式化ADVM卷的为AFCS文件系统方式:

1)普通方式:
[root@node2 advmdg_advm02]# mkfs.acfs /dev/asm/advm03-92
mkfs.acfs: version                   = 11.2.0.4.0
mkfs.acfs: on-disk version           = 39.0
mkfs.acfs: volume                    = /dev/asm/advm03-92
mkfs.acfs: volume size               = 2147483648
mkfs.acfs: Format complete.
[root@node2 advmdg_advm02]#

挂载命令:可以通过asmca获得

[root@node2 ~]# /bin/mount -t acfs /dev/asm/advm03-92 /u01/app/grid/acfsmounts/advmdg_advm03

2)asmca方式:可以直接将acfs磁盘交给grid自动管理--略。

>acfs管理工具:acfsutil

posted @ 2017-04-03 11:53  ChavinKing  阅读(2300)  评论(0编辑  收藏  举报