ITPub博客

首页 > 数据库 > Oracle > OCP课程27:管理Ⅰ之管理ASM实例

OCP课程27:管理Ⅰ之管理ASM实例

Oracle 作者:iamkuboy 时间:2016-05-26 09:41:11 0 删除 编辑

课程目标:

  • 管理ASM实例
  • 创建和删除ASM磁盘组
  • 扩展ASM磁盘组
  • 获取ASM元数据

1、使用ASM带来的好处

  • 不需要进行I/O性能调优,ASM的条带化和镜像策略以及自动重平衡操作就不需要在平衡磁盘使用以及消重磁盘热点上进行I/O性能调优了
  • 不需要调整数据文件的位置来满足性能要求以及空间限制了
  • 不需要定义文件命名策略了
  • 不需要进行逻辑卷,文件系统,集群文件系统,裸设备的管理了
  • 减少LUN管理
  • 减少对系统管理员的依赖
  • 减少人工维护带来的的错误

2、ASM实例

ASM实例同样也是由进程和内存组成。

clipboard

ASM的SGA包括:

  • Shared Pool:用于元数据信息
  • Large Pool:用于并行操作
  • ASM Cache:在重平衡操作中用于读写块
  • Free Memory:未分配可用内存

ASM实例默认使用自动内存管理,动态调整SGA各个内存组件的大小,内存总大小取决于ASM管理的磁盘空间,最小推荐值为256MB。

ASM实例有很多进程,有的和数据库实例的进程名称一样,但是可能功能不一样。主要的进程如下:

clipboard[1]

  • RBAL:协调磁盘组的重平衡活动
  • ARBn:执行实际的重平衡数据区移动,可以有多个进程
  • GMON:磁盘组监控,维护磁盘组成员信息,
  • MARK:标记分配单元不可用,在向脱机磁盘写入失败后,MARK进程将ASM 分配单元标记为过期
  • Onnn:这组进程表示客户机/服务器连接的服务器端。启动实例时将出现这些进程,之后它们将消失,它们形成与ASM 实例的一组连接,用于交换消息,仅在需要时才出现
  • PZ9n:表示一个或多个并行从属进程,当ASM 同时在多台计算机上以集群配置运行时,可以使用该进程提取数据

3、ASM实例初始化参数

主要有以下参数:

INSTANCE_TYPE = ASM

ASM_POWER_LIMIT = 1

ASM_DISKSTRING = '/dev/sda1','/dev/sdb*'

ASM_DISKGROUPS = DATA2, FRA

ASM_PREFERRED_READ_FAILURE_GROUPS = DATA.FailGroup2

DIAGNOSTIC_DEST = /u01/app/oracle

LARGE_POOL_SIZE = 12M

REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE

ASM 实例由参数文件控制,其方式与常规数据库实例相同。通常设置的参数包括:

  • INSTANCE_TYPE:应该设置且必须为ASM,表示ASM 实例,标识要启动的实例是ASM,而不是数据库实例。这是唯一一个必须定义的参数。对于数据库实例,该参数值设置为RDBMS
  • ASM_POWER_LIMIT:控制重平衡操作的速度。值的范围从1 到11,11 表示最快。如果省略,该值默认为1。指定的级别越高,则rebalance的操作就会越快被完成,当然这也意味着这个时间段内将占用更多的资源,指定级别较低的话,随人rebalance操作会耗时更久,但对当前系统的IO及负载影响会更少,这需要根据实际情况衡量。另外,这个参数指定的只是一个默认值,在操作过程中,即可以随时动态更改,也可以在语句级命令行时指定power,覆盖该默认值
  • ASM_DISKSTRING:是一个与操作系统相关的值,ASM 使用它来指定搜索的磁盘,该选项可以同时指定多个值,并且支持通配符。比如只检查/DEV/SD*。默认值为空字符串,为空的话,表示ASM将查找系统中所有ASM拥有读写权限的设备。这在大多数情况下就足够了。如上所示的约束性更强的值可以减少ASM 执行搜索所需的时间
  • ASM_DISKGROUPS:是ASM 实例启动时或使用ALTER DISKGROUP ALL MOUNT命令时,ASM 实例要装载的磁盘组的名称列表。Oracle Restart 会装载没有与ASM_DISKGROUPS参数列在一起的从属磁盘组。该参数没有默认值
  • ASM_PREFERRED_READ_FAILURE_GROUPS:指定包含优先读取磁盘的故障组。可以将性能好的磁盘放入某个故障组,并指定优先读取
  • DIAGNOSTIC_DEST:指定自动诊断知识库(ADR) 主目录的位置。此目录下有跟踪文件、告警日志、核心文件和意外事件文件。此参数的默认值来源于ORACLE_BASE
  • LARGE_POOL_SIZE:指定大池的大小(以字节表示)。大池用于共享服务器系统中的会话内存,供消息缓冲区的并行执行和磁盘I/O 缓冲区的备份进程使用
  • REMOTE_LOGIN_PASSWORDFILE:指定否检查口令文件。默认值为EXCLUSIVE

上面列出的八个参数是需要为ASM 实例创建的唯一几个非默认参数。ASM 实例与数据库实例不同,因为并不是所有的数据库参数都对ASM 实例有效。在全部344 个数据库实例参数中,大约有74 个参数可以用于ASM 实例。对于上面未列出的其它参数,虽然其默认值对于大多数安装来说应该已经足够了,但也可以根据需要进行设置。

ASM 实例默认启用自动内存管理,即使未明确设置MEMORY_TARGET参数也是如此。Oracle强烈建议对ASM 实例使用自动内存管理。

例子:查看ASM参数文件的位置

SQL> show parameter spfile

NAME                                 TYPE                 VALUE

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

spfile                               string               +DATA/asm/asmparameterfile/reg

                                                          istry.253.893366739

例子:查看参数文件的内容

SQL> create pfile='/home/grid/pfile.ora' from spfile;

File created.

SQL> get /home/grid/pfile.ora

  1  +ASM.__oracle_base='/u01/app/grid'#ORACLE_BASE set from in memory value

  2  +ASM.asm_diskgroups='FRA'#Manual Mount

  3  *.asm_power_limit=1

  4  *.diagnostic_dest='/u01/app/grid'

  5  *.instance_type='asm'

  6  *.large_pool_size=12M

  7* *.remote_login_passwordfile='EXCLUSIVE'


4、数据库实例和ASM之间的交互

clipboard[2]

文件创建过程可以很好地说明数据库实例与ASM 之间发生的交互。文件创建过程如下所示:

1. 数据库请求创建文件。

2. ASM 前台进程创建一个持续操作目录(COD) 条目并在磁盘组中为新的文件分配空间。

3. ASMB 数据库进程接收新文件的区映射。

4. 现在文件处于打开状态,数据库进程直接初始化该文件。

5. 初始化后,数据库进程请求提交文件创建。这会导致ASM 前台进程清除COD 条目并将文件标记为已创建。

6. 文件提交确认会隐式关闭该文件。将来发生I/O 时,数据库实例需要重新打开该文件。

此示例强调了关于ASM 体系结构的重要两点:

  • 数据库实例和ASM 实例协同工作。数据库实例必须与ASM 交互,以便将数据库文件映射到ASM 区。数据库实例还接收与ASM 操作(例如磁盘组重平衡)相关的连续消息流,这类操作可能锁定或移动ASM 区
  • 数据库I/O 不通过ASM 实例来传输。实际上,数据库直接对ASM 文件执行I/O 操作,如步骤4 所示

5、ASM实例的动态性能视图

ASM实例有许多专用的ASM相关视图,通过SQL语句进行查询。

常用动态性能视图如下:

clipboard[3]

例子:查看与ASM相关的动态性能视图有哪些

SQL> col comments for a50;

SQL> conn / as sysdba

Connected.

SQL>  select * from dict where table_name like 'V$ASM_%';

TABLE_NAME                     COMMENTS

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

V$ASM_ACFSSNAPSHOTS            Synonym for V_$ASM_ACFSSNAPSHOTS

V$ASM_ACFSVOLUMES              Synonym for V_$ASM_ACFSVOLUMES

V$ASM_ACFS_ENCRYPTION_INFO     Synonym for V_$ASM_ACFS_ENCRYPTION_INFO

V$ASM_ACFS_SECURITY_INFO       Synonym for V_$ASM_ACFS_SECURITY_INFO

V$ASM_ALIAS                    Synonym for V_$ASM_ALIAS

V$ASM_ATTRIBUTE                Synonym for V_$ASM_ATTRIBUTE

V$ASM_CLIENT                   Synonym for V_$ASM_CLIENT

V$ASM_DISK                     Synonym for V_$ASM_DISK

V$ASM_DISKGROUP                Synonym for V_$ASM_DISKGROUP

V$ASM_DISKGROUP_STAT           Synonym for V_$ASM_DISKGROUP_STAT

V$ASM_DISK_IOSTAT              Synonym for V_$ASM_DISK_IOSTAT

TABLE_NAME                     COMMENTS

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

V$ASM_DISK_STAT                Synonym for V_$ASM_DISK_STAT

V$ASM_FILE                     Synonym for V_$ASM_FILE

V$ASM_FILESYSTEM               Synonym for V_$ASM_FILESYSTEM

V$ASM_OPERATION                Synonym for V_$ASM_OPERATION

V$ASM_TEMPLATE                 Synonym for V_$ASM_TEMPLATE

V$ASM_USER                     Synonym for V_$ASM_USER

V$ASM_USERGROUP                Synonym for V_$ASM_USERGROUP

V$ASM_USERGROUP_MEMBER         Synonym for V_$ASM_USERGROUP_MEMBER

V$ASM_VOLUME                   Synonym for V_$ASM_VOLUME

V$ASM_VOLUME_STAT              Synonym for V_$ASM_VOLUME_STAT

21 rows selected.

例子:查看ASM文件别名信息

SQL> select name,group_number,file_number,alias_directory,system_created from v$asm_alias;

NAME                                               GROUP_NUMBER FILE_NUMBER A S

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

ASM                                                           1  4294967295 Y Y

ASMPARAMETERFILE                                              1  4294967295 Y Y

REGISTRY.253.893366739                                        1         253 N Y

STONE                                                         1  4294967295 Y Y

DATAFILE                                                      1  4294967295 Y Y

例子:查看ASM磁盘组属性

SQL> select name,value,group_number,system_created from v$asm_attribute;

NAME                                     VALUE                GROUP_NUMBER SYSTEM_

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

disk_repair_time                         3.6h                            1 Y

au_size                                  1048576                         1 Y

sector_size                              512                             1 Y

compatible.asm                           11.2.0.0.0                      1 Y

compatible.rdbms                         10.1.0.0.0                      1 Y

例子:查看连接到ASM实例的客户机信息

SQL> select group_number,instance_name,db_name,status from v$asm_client;

GROUP_NUMBER INSTANCE_N DB_NAME  STATUS

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

           1 stone      stone    CONNECTED

           2 stone      stone    CONNECTED

           1 +ASM       +ASM     CONNECTED

例子:查看ASM磁盘信息

SQL> select group_number,disk_number,name,TOTAL_MB,FREE_MB from v$asm_disk;

GROUP_NUMBER DISK_NUMBER NAME                                       TOTAL_MB    FREE_MB

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

           0           0                                                   0          0

           0           3                                                   0          0

           1           0 DATA_0000                                      2047        950

           1           1 DATA_0001                                      2047        948

           2           0 FRA_0000                                       2047       1147

           2           1 FRA_0001                                       2047       1152

6 rows selected.

例子:查看ASM磁盘I/O情况

SQL> select instname,dbname,group_number,disk_number,reads,writes,hot_reads,hot_writes from v$asm_disk_iostat;

INSTNAME   DBNAME   GROUP_NUMBER DISK_NUMBER      READS     WRITES  HOT_READS HOT_WRITES

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

stone      stone               2           1         44        402          0          0

stone      stone               1           1       6233        731          0          0

stone      stone               1           0       5518        453          0          0

stone      stone               2           0         20        343          0          0

+ASM       +ASM                1           1          0          0          0          0

+ASM       +ASM                1           0          0          0          0          0

6 rows selected.

例子:查看ASM磁盘状态

SQL>  select group_number,disk_number,name,mount_status,create_date,mount_date from v$asm_disk_stat;

GROUP_NUMBER DISK_NUMBER NAME                                     MOUNT_S CREATE_DA MOUNT_DAT

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

           1           0 DATA_0000                                CACHED  17-OCT-15 15-DEC-15

           1           1 DATA_0001                                CACHED  17-OCT-15 15-DEC-15

           2           0 FRA_0000                                 CACHED  17-OCT-15 15-DEC-15

           2           1 FRA_0001                                 CACHED  17-OCT-15 15-DEC-15

例子:查看ASM磁盘组信息

SQL> select group_number,name,sector_size,block_size,allocation_unit_size,total_mb,free_mb from v$asm_diskgroup;

GROUP_NUMBER NAME       SECTOR_SIZE BLOCK_SIZE ALLOCATION_UNIT_SIZE   TOTAL_MB    FREE_MB

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

           1 DATA               512       4096              1048576       4094       1898

           2 FRA                512       4096              1048576       4094       2299

例子:查看ASM磁盘组状态

SQL>  select group_number,name,sector_size,block_size,allocation_unit_size,total_mb,free_mb from v$asm_diskgroup_stat;

GROUP_NUMBER NAME       SECTOR_SIZE BLOCK_SIZE ALLOCATION_UNIT_SIZE   TOTAL_MB    FREE_MB

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

           1 DATA               512       4096              1048576       4094       1898

           2 FRA                512       4096              1048576       4094       2299

例子:查看ASM文件信息

SQL> select group_number,file_number,block_size,blocks,bytes,space,type from v$asm_file;

GROUP_NUMBER FILE_NUMBER BLOCK_SIZE     BLOCKS      BYTES      SPACE TYPE

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

           1         253        512          3       1536    1048576 ASMPARAMETERFILE

           1         256       8192      97281  796925952  799014912 DATAFILE


6、ASM系统权限

ASM 实例没有数据字典,所以连接ASM 只能使用下列系统权限:

clipboard[4]

  • SYSASM:该权限提供对ASM实例的全部管理权限
  • SYSDBA:该权限授予对ASM中存储的数据的访问权限,在当前版本中还授予SYSASM管理权限
  • SYSOPER:该权限授予使用一组非破坏性ALTER DISKGROUP命令以及启动和停止ASM 实例的权限。不允许使用CREATE DISKGROUP等其它命令

安装ASM 时,使用操作系统组对SYSASM、SYSDBA和SYSOPER权限进行验证。Oracle Universal Installer (OUI)将这些组分别称为OSASM、OSDBA和 OSOPER组,即OSASM组是授予了 SYSASM权限的操作系统组。Oracle建议OSASM、OSDBA和OSOPER组名称分别为asmadmin、asmdba和 asmoper。因此,SYSASM是数据库使用的名称,OSASM是OUI使用的名称,而asmadmin是操作系统使用的名称。它们都是指同一组用户。当创建ASM实例时,只定义sys和asmsnmp这两个ASM用户。创建SYS用户时,会自动为其分配SYSASM权限。



7、使用EM管理ASM用户

Enterprise Manager允许你管理通过远程连接(使用口令文件验证)访问ASM 实例的用户。这些用户是专门为ASM 实例保留的。

仅当你作为SYSASM用户连接时才具有此功能。如果你作为SYSDBA或SYSOPER用户连接,该功能将隐藏。

  • 单击“Creat(创建)”按钮时将显示“Create User(创建用户)”页
  • 单击“Edit(编辑)”按钮时将显示“Edit User(编辑用户)”页
  • 通过单击“Delete(删除)”按钮可以删除创建的用户

要以SYSASM角色登录ASM,请单击该页顶部的“Preferences(首选项)”链接,然后单击“Preferred Credentials(首选身份证明)”链接。此时你将在目标类型列表中看到ASM。单击ASM目标类型旁边的“Set Credentials(设置身份证明)”图标,定义具有SYSASM权限的帐户和口令。你需要从Database Control 中注销并再次登录,更改才会生效。

例子:使用EM管理ASM用户

clipboard[5]

clipboard[6]

clipboard[7]

clipboard[8]

clipboard[9]

clipboard[10]

例子:使用SQL*Plus管理ASM用户

SQL> create user stone identified by stone;

User created.

SQL> grant sysasm,sysdba,sysoper to stone;

Grant succeeded.


8、使用SQL*Plus启动和停止ASM实例

使用SQL*Plus 启动和停止ASM 实例与启动和停止数据库实例的方式相似。

当启动ASM 实例时,需注意以下几点:

  • 要使用SQL*Plus 连接ASM 实例,请将ORACLE_SID环境变量设置为ASM SID。单实例数据库的默认ASM SID为+ASM,Oracle RAC节点的默认ASM SID是+ASMnode_number,其中node_number是节点的编号。可以使用oraenv脚本设置ORACLE_BASE、ORACLE_SID、ORACLE_HOME和 PATH变量。
  • 初始化参数文件必须包含:INSTANCE_TYPE = ASM ,该参数指示正在启动ASM 实例,而不是数据库实例。
  • 运行STARTUP命令时,该命令尝试装载初始化参数ASM_DISKGROUPS指定的磁盘组,而不是尝试装载和打开某个数据库。如果尚未为 ASM_DISKGROUPS指定值,后面可以通过ALTER DISKGROUP...MOUNT命令装载磁盘组。

与ASM相关的STARTUP命令参数:

  • FORCE:在重新启动ASM 实例之前发出SHUTDOWN ABORT。
  • MOUNT或OPEN:装载ASM_DISKGROUPS初始化参数中指定的磁盘组。这是未指定命令参数时的默认值。
  • NOMOUNT:启动ASM实例而不装载任何磁盘组。
  • RESTRICT:在受限模式下启动实例。RESTRICT可以与MOUNT、NOMOUNT和OPEN组合使用。在受限模式下,数据库实例不能使用磁盘组。即,数据库无法打开磁盘组中的文件。另外,如果磁盘组是由某个实例在受限模式下装载的,则该磁盘组无法由集群中的任何其它实例装载。通过受限模式,可以在磁盘组上执行维护任务,而不会受到客户机的干扰。在磁盘组处于受限模式下时执行重平衡操作,就不再需要在集群环境中的ASM 实例之间传递锁定和取消锁定区映射消息。这样可以提高重新平衡操作的整体吞吐量。在维护期间结束时,你必须显式卸载该磁盘组并在正常模式下重新装载该磁盘组。

在SQL*Plus 中运行SHUTDOWN命令将关闭ASM 进程。在运行此命令之前,确保已设置ORACLE_SID和 ORACLE_HOME环境变量,以便可以连接到ASM 实例。

Oracle 强烈建议在尝试关闭ASM 实例之前关闭使用该ASM 实例的所有数据库实例。

与ASM相关的SHUTDOWN命令参数:

  • NORMAL:ASM在卸载所有磁盘组并关闭ASM 实例之前,将等待任何正在进行的SQL完成执行。在关闭实例之前,ASM将等待所有当前连接的用户从该实例断开。如果任何数据库实例与ASM实例连接,则SHUTDOWN命令将返回错误并保持ASM实例继续运行。NORMAL是默认关闭模式。
  • IMMEDIATE或 TRANSACTIONAL:ASM在卸载所有磁盘组并关闭ASM 实例之前,将等待任何正在进行的SQL 完成执行。ASM不等待当前与实例连接的用户断开连接。如果任何数据库实例与ASM实例连接,则SHUTDOWN命令将返回错误并保持ASM实例继续运行。
  • ABORT:ASM 实例立即关闭,而不按顺序卸载磁盘组。这将导致下次启动ASM时进行恢复操作。如果有任何数据库实例与ASM实例连接,则该数据库实例也将中止。

ASM是依赖于CSS守护进程的,因此在启动ASM实例前要确保CSS守护进程已经启动。CSS(Cluster Synchronization Services) 守护进程用来维持ASM及客户端数据库实例间的一致性同步,如果是通过dbca建库的话,那么CSS守护进程默认即会启动。

例子:连接到ASM实例,关闭并启动ASM实例

[ ~]$ . oraenv

ORACLE_SID = [+ASM] ?

The Oracle base remains unchanged with value /u01/app/grid

[ ~]$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 15 16:30:39 2015

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 Automatic Storage Management option

SQL> shutdown

ORA-15097: cannot SHUTDOWN ASM instance with connected client (process 61836)

SQL> shutdown abort

ASM instance shutdown

SQL> startup

ASM instance started

Total System Global Area 1135747072 bytes

Fixed Size                  2260728 bytes

Variable Size            1108320520 bytes

ASM Cache                  25165824 bytes

ASM diskgroups mounted

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS

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

+ASM             STARTED

SQL> select name,state from v$asm_diskgroup;

NAME                           STATE

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

DATA                           MOUNTED

FRA                            MOUNTED


9、使用srvctl启动和停止ASM实例

可以使用Server Control实用程序(srvctl) 启动和停止ASM实例以及由Grid Infrastructure管理的其它资源。srvctl实用程序位于Grid Infrastructure的ORACLE_HOME/bin位置下和数据库安装的 ORACLE_HOME/bin位置下。管理ASM、监听程序或Oracle Restart 时,应该使用位于Grid Infrastructure ORACLE_HOME中的srvctl实用程序。

使用 srvctl实用程序来控制ASM:

  • 启动ASM 实例。
    • srvctl start asm [-o ] ,是有效的实例启动选项(FORCE、MOUNT、OPEN、NOMOUNT或RESTRICT)之一(可选)
  • 停止ASM 实例。
    • srvctl stop asm [-o ] -f ,是有效的实例关闭选项(NORMAL、IMMEDIATE、TRANSACTIONAL或 ABORT)之一(可选),–f表示强制。
  • 查看ASM 实例的状态。
    • srvctl status asm

例子:使用srvctl关闭和启动asm实例并查看状态

[ ~]$ . oraenv

ORACLE_SID = [+ASM] ?

The Oracle base remains unchanged with value /u01/app/grid

[ ~]$ srvctl stop asm -f

[ ~]$ srvctl status asm

ASM is not running.

[ ~]$ srvctl start asm -o mount

[ ~]$ srvctl status asm

ASM is running on oracletest1

[ ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 15 16:57:31 2015

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 Partitioning, Automatic Storage Management, OLAP, Data Mining

and Real Application Testing options

SQL> select status from v$instance;

STATUS

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

MOUNTED

SQL> alter database open;

Database altered.


10、使用asmcmd启动和关闭ASM实例

asmcmd实用程序提供了一个访问ASM的命令行界面,无需使用SQL语言。asmcmd实用程序提供了一个类似伪Shell的环境,可以接受UNIX格式的语法执行常用的ASM管理任务。

它可以用于管理Oracle ASM实例、磁盘组、磁盘组的文件访问控制、磁盘组内的文件和目录、磁盘组的模板以及卷。

可以使用 asmcmd实用程序启动和关闭ASM实例。支持的启动选项包括:

--nomount(在不装载磁盘组的情况下启动ASM实例)

--restrict(启动ASM实例并限制数据库使用)

--pfile (使用定制pfile启动ASM实例)

支持的关闭选项包括:

--immediate(立即执行关闭)

--abort(中止所有现有操作)

例子:使用asmcmd关闭和启动ASM实例

[ ~]$ . oraenv

ORACLE_SID = [+ASM] ?

The Oracle base remains unchanged with value /u01/app/grid

[ ~]$ asmcmd

ASMCMD> shutdown --abort

ASM instance shutdown

Connected to an idle instance.

ASMCMD> startup

ASM instance started

Total System Global Area 1135747072 bytes

Fixed Size                  2260728 bytes

Variable Size            1108320520 bytes

ASM Cache                  25165824 bytes

ASM diskgroups mounted


11、磁盘组

磁盘组是一个或多个磁盘的逻辑分组,ASM将其作为一个集合来管理。每个磁盘组都包含与自身相关联的元数据。在概念上,ASM磁盘组类似于存储区域网络中的逻辑卷。

从磁盘组内分配文件空间。磁盘组中存储的文件的内容将在该磁盘组的磁盘中平均分布或条带化,以便消除热点并在各磁盘上提供一致的性能。每个ASM 文件都完全包含在一个磁盘组中。但是,一个磁盘组可以包含属于多个数据库的文件,而一个数据库可以使用来自多个磁盘组的不同文件。

磁盘组的关键属性是它的冗余设置。有三种可能的磁盘组冗余设置:

  • 外部冗余,ASM不提供任何镜像,磁盘都假设为高度可靠。
  • 正常冗余,其中ASM默认支持镜像,从而保证在较不可靠的存储上实现数据完整性。
  • 高冗余,其中ASM默认支持三重镜像,从而更好地保证数据完整性。

ASM最多支持创建63 个磁盘组;但是,对于大多数安装,你很少会需要很多磁盘组。

clipboard[11]


12、ASM磁盘

  • 是为ASM磁盘组预配的存储设备
  • 通过正常O/S接口来访问
  • 必须可由ASM所有者读取和写入
  • 必须可由集群中的所有节点访问
  • 在不同的节点上可以有不同的O/S名称或路径
  • 可以是:

– 整个物理磁盘或物理磁盘的分区

– 存储阵列中的磁盘或分区

– 逻辑卷(LV)或逻辑单元(LUN)

– 网络文件(NFS)

ASM磁盘组包含一个或多个ASM磁盘。

ASM磁盘必须可由集群中所有节点的ASM所有者读取和写入。

ASM磁盘可以是磁盘上的分区,但是Oracle强烈建议不要与其它应用程序程序共享ASM使用的物理磁盘。这是因为在应用ASM条带化和镜像策略时,磁盘组内的各个ASM磁盘的I/O性能必须相似且一致,才能获得最佳性能。在ASM和其它应用程序之间共享设备会难以确保磁盘性能相似且一致。

集群中不同节点上的ASM磁盘的O/S设备名称不必相同。ASM通过读取ASM磁盘的标头来识别磁盘组的成员。

通常,ASM 磁盘是以存储阵列中的裸LUN提供给ASM的。另外,ASM磁盘还可以是远程NFS文件。


13、分配单元

在ASM 磁盘内,空间划分为分配单元(AU)。AU默认大小是1 MB,该大小足够小,不会变为热点,但又足够大,能够提供高效的连续访问。创建磁盘组时可以设置AU大小。你无法更改磁盘组的AU大小。在超大型数据库(VLDB) 中或使用专门的存储硬件时,较大的AU大小可能会很有用。如果经常访问某个AU,则数据库内核会将其缓存以便实现更高的访问效率。

允许的AU 大小: 1、2、4、8、16、32 或64 MB 。


14、ASM文件

  • ASM文件是由AU组成的ASM区的集合,可变大小的区支持大型文件
  • 对数据库内核显示为普通文件
  • 每个ASM 文件都具有唯一的系统生成的名称,以“+”开头,格式为:+diskgroup/dbname/file_type/file_type_tag.file.incarnation ,其中+diskgroup为磁盘组名称;dbname为数据库的DB_UNIQUE_NAME参数值;file_type为创建的文件类型,比如CONTROLFILE/DATAFILE/ONLINELOG/ARCHIVELOG/TEMPFILE/BACKUPSET/FLASHBACK等等;file_type_tag为文件类型的标签,比如表空间对应的通常为该表空间名称;file.incarnation 为文件序号+incarnation,用来确保文件的唯一;例如:+DATA/orcl/datafile/system.256.689832921
  • 可以与可选的文件名别名相关联,例如,+DATA/dbfiles/mydb/system01.dbf
  • 在磁盘组中的磁盘中平均分布
  • 根据磁盘组中定义的策略进行镜像

以上显示了一个完全限定的ASM文件名的示例。完全限定的ASM文件名表示一个层次结构,其开头是加号与磁盘组名称的组合。磁盘组名称后是数据库名称和文件类型。最后的元素由标记名称、文件编号和原型编号组成。可以创建别名(可选),为管理员提供一种更友好的方式来使用ASM 文件。

ASM 本身支持大多数与数据库相关的文件类型,例如数据文件、日志文件、控制文件、RMAN 备份及其它文件。在11gR2之前,ASM 仅支持与Oracle数据库相关的文件,无法用于存储和管理跟踪文件和告警日志、Oracle二进制文件、Oracle集群注册表(OCR) 和集群表决磁盘。Oracle 11gR2提供在ASM上运行通用文件系统的方式,从而消除了上述限制。

例子:查看数据库的表空间及对应的数据文件

SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE FILE_NAME

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

USERS      +DATA/stone/datafile/users.259.893370691

UNDOTBS1   +DATA/stone/datafile/undotbs1.258.893370691

SYSAUX     +DATA/stone/datafile/sysaux.257.893370691

SYSTEM     +DATA/stone/datafile/system.256.893370691

EXAMPLE    +DATA/stone/datafile/example.265.893370807

TS01       +DATA/stone/datafile/ts01.dbf

6 rows selected.

例子:增加一个表空间及数据文件

SQL> create tablespace ts02 datafile '+DATA';

Tablespace created.

SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE FILE_NAME

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

USERS      +DATA/stone/datafile/users.259.893370691

UNDOTBS1   +DATA/stone/datafile/undotbs1.258.893370691

SYSAUX     +DATA/stone/datafile/sysaux.257.893370691

SYSTEM     +DATA/stone/datafile/system.256.893370691

EXAMPLE    +DATA/stone/datafile/example.265.893370807

TS01       +DATA/stone/datafile/ts01.dbf

TS02       +DATA/stone/datafile/ts02.268.898602153

7 rows selected.


15、区映射

clipboard[12]

ASM通过称为区映射的元数据跟踪文件的分布。区映射是一个表,将文件中的数据区映射到磁盘上的分配单元。

文件区与分配单元之间的关系如下所示。区包含:

  • 1个AU用于前20,000 个区(0-19999)
  • 4个AU用于接下来的20,000 个区(20000-39999)
  • 16个AU用于40,000 以上的区

将可变大小的区与大型分配单元结合使用,可满足非常大的ASM 文件的需要。


16、条带粒度

在ASM 中,条带化主要具有两个目的:

  • 在磁盘组的所有磁盘中执行I/O负载平衡。
  • 改善I/O等待时间。

粗粒度条带化

clipboard[13]

粗粒度条带化在磁盘组的各磁盘中分布分配单元。这用于为磁盘组提供负载平衡。分配文件时,ASM 会在所有磁盘中平均分布分配单元。有时分布无法非常平均,但是随着时间的流逝,会变得几乎相等。上图显示了一个具有五个分配单元的文件,这些分配单元在条带化之后,分布在一个外部冗余磁盘组的五个磁盘中,该磁盘组共包含八个磁盘。

对于前20,000个区,区大小等于AU大小。从第20,001个区到第40,000个区,该区组总是一次分配8个区,区大小等于4 倍AU大小。如果AU大小为1MB,这意味着ASM文件将一次增大32MB (8 * 4 * 1 MB)。如果文件采用粗粒度条带化,则它将在8个区中进行条带化,条带大小为1AU。条带化始终在AU 级别进行,而不是在区级别。因此,无论文件多大,粗粒度文件的每个AU都与该文件的前一个AU所在的磁盘不同。在第40,000个区之后,仍旧是每次分配8个区,但区大小等于16 倍AU大小。

细粒度条带化

细粒度条带化在分配单元组中放置128KB条带单元来改善等待时间。

  • 磁盘组具有8个磁盘和外部冗余
  • 使用默认的AU大小:1 MB
  • 第一个1 MB区在8个AU中以128 KB条带形式写入

clipboard[14]

细粒度条带化将数据区拆分为128 KB的块,然后在许多磁盘中分布每个区的负载,从而改善特定类型文件的等待时间。默认情况下,细粒度条带化用于控制文件和联机重做日志文件。

上图显示了细粒度条带化的工作原理。文件的第一个1 MB区最终占用8个不同分配单元中的第一个128 KB块,这8个分配单元分布在磁盘组的八个磁盘中。因此,1 MB的读取或写入分布在八个磁盘(而不是一个磁盘)中。

clipboard[15]

继续前面的示例,空间中的下一个1 MB区将分布在相同分配单元组的每个单元的第二个128 KB块中。这种模式将继续,直到第一组分配单元写满,然后分配另一组。


17、ASM故障组

clipboard[16]

在磁盘组内,可以将一些磁盘归到故障组中。故障组是存储或数据库管理员指定ASM镜像操作的硬件边界的一种方式。

可以将连接到一个磁盘控制器的所有磁盘指定在一个故障组内。这样就可以将文件区镜像到其他控制器的磁盘上。另外,管理员可以配置ASM来选择默认故障组策略。默认策略是每个磁盘位于自己的故障组中。

故障组可以用于避免单个磁盘、磁盘控制器、I/O网络组件以及甚至整个存储系统的故障。通常,管理员将分析其存储环境并对故障组进行组织来消除特定故障情况。


18、条带化和镜像示例

一个共含八个磁盘的正常冗余磁盘组,其中的磁盘分布在两个故障组中。

clipboard[17]

红块表示一个包含五个区的文件,这些区在条带化后,分布在磁盘组(共八个磁盘)的五个磁盘中。蓝块表示文件区的镜像副本。请注意,无论区在各个磁盘和故障组中如何分布,每个区在一个故障组中仅有一个副本。

分配文件时,主区的分配用于保证性能,辅助区的分配用于保证完整性。因此,默认情况下,所有数据库读取都针对主区进行。


19、故障示例

如果磁盘H发生故障,则将根据他的镜像在正常磁盘上重新创建该磁盘包含的区。

clipboard[18]

假设磁盘H发生故障,无法再访问其包含的数据。该故障要求恢复故障磁盘上的所有区并将这些区复制到另一磁盘。

区3和5的正常副本将复制到同一故障组中另一磁盘的空闲区域。在此示例中,区5将从磁盘B复制到磁盘F,区3将从磁盘C复制到磁盘G。

磁盘发生故障后的最后一步是ASM从磁盘组中删除故障磁盘。

删除磁盘基本上会触发相同的过程;不过,在删除磁盘时,要被删除的磁盘上的区首先会复制到可用磁盘上。


20、管理磁盘组

clipboard[19]

ASM实例的主要目的是管理磁盘组和保护其数据。ASM实例还将文件分布传送到数据库实例。这样,数据库实例就可以直接访问磁盘组中存储的文件。

有多个磁盘组管理命令。执行这些命令都需要SYSASM或SYSDBA权限,且必须从ASM实例发出。

可以添加新磁盘组。还可以修改现有磁盘组来添加新磁盘、删除现有磁盘以及执行许多其它操作。可以删除现有磁盘组。

(1)使用SQL*Plus创建和删除磁盘组

clipboard[20]

假设ASM磁盘搜索在/dev目录中找到了下列磁盘:A1、A2、B1和B2。另外,假设磁盘A1和A2的磁盘控制器不同于B1和B2的磁盘控制器。第一个示例说明如何配置名为DGROUPA的磁盘组,其包含两个故障组:CONTROLLER1和ONTROLLER2。

该示例还对该磁盘组使用默认冗余属性NORMAL REDUNDANCY。你还可以提供磁盘名称和磁盘的大小(可选)。如果你不提供此信息,ASM会创建默认名称并尝试确定磁盘的大小。如果无法确定大小,将返回错误。FORCE指示指定的磁盘应该添加到指定的磁盘组,即使该磁盘已经格式化为某个ASM磁盘组的成员。对未格式化为某个ASM磁盘组的成员的磁盘使用FORCE选项将返回错误。

如第二个语句所示,你可以删除磁盘组及其所有文件。为了避免意外删除,如果磁盘组除内部ASM元数据外还包含任何其它文件,则必须指定INCLUDING CONTENTS选项。必须先装载磁盘组才能将其删除。在确保未打开任何磁盘组文件后,将从磁盘组中删除该组及其所有驱动器。然后,将覆盖每个磁盘的标头来清除ASM 格式信息。

例子:创建磁盘组和删除磁盘组

[ ~]$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 16 17:17:25 2015

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 Automatic Storage Management option

SQL> create diskgroup dgroupA normal redundancy

  2  failgroup controller1 disk

  3    '/dev/raw/raw5' name diskA1 size 1G,

  4    '/dev/raw/raw6'

  5  failgroup controller2 disk

  6    '/dev/raw/raw7',

  7    '/dev/raw/raw8';

Diskgroup created.

SQL> drop diskgroup dgroupA including contents;

Diskgroup dropped.

(2)向磁盘组添加磁盘

clipboard[21]

此示例显示如何向磁盘组添加磁盘。可以执行ALTER DISKGROUP ADD DISK命令来添加磁盘。上面第一个语句向DGROUPA磁盘组添加四个新磁盘。

第二个语句说明搜索字符串的相互影响。考虑下列配置:

/devices/A1是磁盘组DGROUPA的成员。

/devices/A2是磁盘组DGROUPA的成员。

/devices/A3是磁盘组DGROUPA的成员。

/devices/A4是候选磁盘。

第二个命令将A4添加到DGROUPA磁盘组。该命令将忽略其它磁盘,即使它们与搜索字符串相匹配,因为它们已经是DGROUPA磁盘组的一部分。上图显示当你向磁盘组添加磁盘时,ASM实例会确保该磁盘是可寻址且可用的。然后会对该磁盘进行格式化和重新平衡。重新平衡过程比较耗费时间,因为该过程会将所有文件的区移至新磁盘。

重新平衡不会阻止任何数据库操作。重新平衡过程主要影响系统的I/O负载。重新平衡的能力越高,对系统施加的I/O负载越多,可用于数据库I/O的I/O带宽也就越少。

例子:创建一个磁盘组,然后向磁盘组中添加磁盘

SQL> create diskgroup dgroupA normal redundancy

  2  failgroup controller1 disk

  3    '/dev/raw/raw5' name diskA1 size 1G

  4  failgroup controller2 disk

  5    '/dev/raw/raw7';

Diskgroup created.

SQL> alter diskgroup dgroupA add disk '/dev/raw/raw8' name A8;

Diskgroup altered.

(3)其它ALTER命令

从dgroupA删除磁盘:

ALTER DISKGROUP dgroupA DROP DISK A5;

在单个命令中添加和删除磁盘:

ALTER DISKGROUP dgroupA

DROP DISKA6

ADD FAILGROUP controller3 DISK '/dev/sdi1' NAME A9;

取消磁盘删除操作:

ALTER DISKGROUP dgroupA UNDROP DISKS;

第一个语句显示如何从DGROUPA磁盘组中删除一个磁盘。

第二个语句显示如何在单个命令中添加和删除磁盘。这种方式的一大优点就是在该命令完成后才开始重新平衡操作。

第三个语句显示如何取消磁盘删除操作。UNDROP命令仅对在删除中的磁盘起作用;如果已经完成删除,则不能UNDROP。

如果需要,可以使用下面的语句对DGROUPB磁盘组进行重新平衡:

ALTER DISKGROUP dgroupB REBALANCE POWER 5;

通常不需要执行这个命令,因为在添加、删除磁盘或调整磁盘大小时会自动执行重平衡。但是如果你希望使用POWER子句覆盖由初始化参数ASM_POWER_LIMIT定义的默认速度,此命令非常有用。通过重新输入具有新级别的命令,可以更改正在进行的重平衡操作的能力级别。能力级别为零会导致重平衡操作中断,直到隐式或显式重新调用该命令。

下面的语句可以卸载DGROUPA:

ALTER DISKGROUP dgroupA DISMOUNT;

通过MOUNT和DISMOUNT选项,你可以使一个或多个磁盘组对数据库实例可用或不可用。

在支持单实例的集群ASM环境中,当该实例故障转移到另一节点时,手动卸载和装载功能非常有用。

例子:从磁盘组中删除磁盘

SQL> alter diskgroup dgroupA drop disk A8;

Diskgroup altered.

例子:从磁盘组中删除磁盘,并增加一个故障组,包含一个磁盘

SQL> alter diskgroup dgroupA

  2  drop disk diskA1

  3  add failgroup controler3 disk '/dev/raw/raw6' name A6;

Diskgroup altered.

例子:取消删除磁盘组中的磁盘

SQL> alter diskgroup dgroupA undrop disks;

Diskgroup altered.

(4)管理目录

ASM 磁盘组中文件和目录的管理自动化水平相当高,应该说基本上完全不需要DBA参与,当然,也是可以手动修改的。

  创建新目录:

SQL> alter diskgroup asmdisk2 add directory '+ASMDISK2/JSS1';

Diskgroup altered.

  修改目录名:

SQL> alter diskgroup asmdisk2 rename directory '+ASMDISK2/JSS1'

  2  to '+ASMDISK2/JSS2';

Diskgroup altered.

  删除目录名:

SQL> alter diskgroup asmdisk2 drop directory '+ASMDISK2/JSS2';

Diskgroup altered.

实际上,ASM中目录和文件的管理,也可以通过ASMCMD命令行方式进行,该命令行进入之后,是一个类似文件系统的管理界面,ORACLE提供了一些最基础的,如cd、ls、mkdir、rm等等几个有限的操作命令。

(5)管理别名

当系统自动产生的名称太过复杂不怎么好记,DBA可以通过别名,为它创建一个简单化的名称,而又不会对其现有名称造成任何影响。ASM中创建别名是通过alter diskgroup的alias子句实现,支持增加/修改/删除等多项操作。V$ASM_ALIAS视图中可以查询到当前实例中创建的别名。

增加别名:

SQL> alter diskgroup asmdisk2 add alias '+ASMDISK2/repdb/datafile/temp01.dbf' for '+ASMDISK2/repdb/TEMPFILE/TEMP.267.714576831';

Diskgroup altered.

修改别名:

SQL> alter diskgroup asmdisk2 rename alias '+ASMDISK2/repdb/datafile/temp01.dbf' to '+ASMDISK2/repdb/TEMPFILE/temp01.dbf';

Diskgroup altered.

删除别名:

SQL> alter diskgroup asmdisk2 drop alias '+ASMDISK2/repdb/TEMPFILE/temp01.dbf';

Diskgroup altered.

不管是添加/删除或是修改别名,对原有文件路径均不会有影响。

(6)使用EM管理ASM

可以通过EM管理磁盘组,设置相关参数,管理用户以及创建ASM集群文件系统。

clipboard[22]


21、ASM磁盘组兼容性

每个磁盘组的兼容性都可以分别控制:

– ASM兼容性控制磁盘上ASM元数据结构。

– RDBMS兼容性控制最低使用者客户机级别。

– ADVM兼容性确定磁盘组是否可以包含Oracle ASM卷。

设置磁盘组兼容性的操作是不可逆的。

clipboard[23]

适用于ASM磁盘组的兼容性有三种:涉及描述磁盘组的持久性数据结构,客户机(磁盘组的使用者)的功能,以及能否在磁盘组中包含卷。这些属性分别称为“ASM compatibility”、“RDBMS compatibility”和“ADVM compatibility”。每个磁盘组的兼容性都可以独立控制。这是支持包含Oracle Database 10g和Oracle Database 11g磁盘组的异构环境所必需的。

这三种兼容性设置是每个ASM 磁盘组的属性:

  • RDBMS兼容性是指RDBMS实例的最低兼容版本,此设置将允许该实例装载磁盘组。该兼容性确定了ASM实例与数据库(RDBMS)实例间交换消息的格式。ASM实例可以支持以不同兼容性设置运行的不同RDBMS客户机。每个实例的数据库兼容版本设置必须高于或等于该数据库使用的所有磁盘组的RDBMS兼容性。数据库实例与ASM 实例通常在不同的Oracle主目录中运行。这意味着数据库实例可以运行与ASM实例不同的软件版本。当数据库实例第一次连接到ASM 实例时,系统会协定这两个实例都支持的最高版本。数据库的兼容性参数设置、数据库的软件版本以及磁盘组的RDBMS兼容性设置确定了数据库实例能否装载给定的磁盘组。
  • ASM兼容性是指控制磁盘上ASM元数据的数据结构格式的持久性兼容性设置。磁盘组的ASM兼容性级别必须始终高于或等于同一磁盘组的RDBMS兼容性级别。ASM兼容性只与ASM元数据的格式相关。文件内容的格式取决于数据库实例。例如,可以将某个磁盘组的ASM兼容性设置为11.0,而将该磁盘组的RDBMS兼容性设置为10.1。这意味着该磁盘组只能由软件版本为11.0或更高的ASM软件管理,而软件版本高于或等于10.1的任何数据库客户机都可以使用该磁盘组。
  • ADVM兼容性属性确定磁盘组能否包含Oracle ASM卷。该值必须设置为11.2或更高。设置该属性前,必须确保COMPATIBLE.ASM的值为11.2或更高。此外,还必须加载ADVM卷驱动程序。

仅当持久性磁盘结构或消息传送协议发生更改时,才需要提高磁盘组的兼容性。但是,提高磁盘组兼容性是一个不可逆的操作。可以使用CREATE DISKGROUP命令或ALTER DISKGROUP命令来设置磁盘组兼容性。

除了磁盘组兼容性,兼容参数compatibility(数据库兼容版本)确定了启用的功能;该参数是适用于数据库还是ASM实例取决于instance_type参数。例如,将该参数设置为10.1将禁止使用Oracle Database 11g中引入的任何新功能(磁盘联机/脱机、可变区等)。

clipboard[24]


22、ASM磁盘组属性

clipboard[25]

当创建或更改ASM磁盘组时,都可以使用CREATE DISKGROUP和ALTER DISKGROUP命令新增的ATTRIBUTE子句更改其属性。上图中的表简要概述了这些属性:

  • ASM允许使用在创建磁盘组时指定的不同分配单元(AU)大小。AU 大小可以是1、2、4、8、16、32 或64 MB。
  • 可以用分钟(M)、小时(H) 或天(D)为单位指定DISK_REPAIR_TIME。如果省略单位,则使用默认值H。如果省略此属性,则使用默认值3.6H。可以使用ALTER DISKGROUP ... DISK OFFLINE语句覆盖此属性。
  • 还可以为指定的模板指定冗余属性。
  • 还可以为指定的模板指定条带化属性。

对于每个已定义的磁盘组,可以通过V$ASM_ATTRIBUTE视图查看所有已定义的属性。

例子:通过v$asm_attribute查看ASM磁盘组属性

SQL> select name,value from v$asm_attribute;

NAME                                               VALUE

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

disk_repair_time                                   3.6h

au_size                                            1048576

sector_size                                        512

compatible.asm                                     11.2.0.0.0

compatible.rdbms                                   10.1.0.0.0


23、使用EM编辑磁盘组属性

EM提供了一种简便方式用于存储和检索与磁盘组相关的环境设置。

在“Create Disk Group(创建磁盘组)”页和“Edit Advanced Attributes for Disk Group(编辑磁盘组的高级属性)”页中都可以设置兼容属性。

对于低于11g的ASM实例,默认ASM兼容性和客户机兼容性都为10.1。对于11g的ASM 实例,默认ASM兼容性为11.2,数据库兼容性为10.1。

clipboard[26]

clipboard[27]

clipboard[28]


24、检索ASM元数据

clipboard[29]

ASM实例有基于内存的元数据表,这些表通过动态性能视图呈现。可以使用SQL*Plus、asmcmd或Enterprise Manager查询该数据。

第一个示例在v$asm_file和v$asm_alias之间建立了一个联接,以便显示关于数据库数据文件的元数据。如果针对ASM实例执行此查询,根据语法的定义方式,将检索多个数据库的数据文件。需要使用附加过滤条件才能将输出限定为单个数据库。

asmcmd实用程序的优点在于不需要SQL语言知识就能连接到ASM实例并检索元数据。它使用与UNIX 表示法类似的样式。第二个示例使用asmcmd命令来检索SQL示例中的元数据。另一个优点是输出限制为单个数据库的数据文件,因为列出的路径包含数据库名称orcl和文件类型datafile。

在Oracle Enterprise Manager Database Control中,只需在各个ASM Web页中浏览就能查看大多数ASM 元数据。

例子:使用SQL*Plus查看ASM元数据

SQL> select f.type,f.redundancy,f.striped,f.modification_date,a.system_created,a.name

  2  from v$asm_alias a,v$asm_file f

  3  where a.file_number=f.file_number and a.group_number=f.group_number and type='DATAFILE';

TYPE                 REDUND STRIPE MODIFICAT S NAME

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

DATAFILE             UNPROT COARSE 16-DEC-15 Y SYSTEM.256.893370691

DATAFILE             UNPROT COARSE 16-DEC-15 Y SYSAUX.257.893370691

DATAFILE             UNPROT COARSE 16-DEC-15 Y UNDOTBS1.258.893370691

DATAFILE             UNPROT COARSE 16-DEC-15 Y USERS.259.893370691

DATAFILE             UNPROT COARSE 16-DEC-15 Y EXAMPLE.265.893370807

DATAFILE             UNPROT COARSE 16-DEC-15 N ts01.dbf

DATAFILE             UNPROT COARSE 16-DEC-15 Y TS01.267.895795017

7 rows selected.

例子:使用asmcmd查看ASM元数据

[ ~]$ asmcmd

ASMCMD> ls -l +DATA/STONE/DATAFILE

Type      Redund  Striped  Time             Sys  Name

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    EXAMPLE.265.893370807

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    SYSAUX.257.893370691

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    SYSTEM.256.893370691

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    TS01.267.895795017

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    UNDOTBS1.258.893370691

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    USERS.259.893370691

                                            N    ts01.dbf => +DATA/STONE/DATAFILE/TS01.267.895795017

例子:使用EM查看ASM元数据

clipboard[30]


25、ASM 快速镜像重新同步概览

clipboard[31]

ASM快速镜像重新同步可以显著减少重新同步临时故障磁盘所需的时间。如果某个磁盘因临时故障而脱机,ASM将跟踪在中断期间发生修改的区。临时故障被修复后,ASM可以快速地仅重新同步在中断期间受影响的ASM 磁盘区。

此功能假设受影响的ASM磁盘的内容未被破坏或修改。

某个ASM磁盘路径出现故障时,如果您已设置了相应磁盘组的DISK_REPAIR_TIME属性,则ASM 磁盘会脱机,但不会被删除。此属性的设置确定了ASM可容忍的磁盘中断持续时间;如果中断在此时间范围内,则修复完成后仍可重新同步。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26303199/viewspace-2107131/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-05-26

  • 博文量
    54
  • 访问量
    41723