管理目录
ASM 磁盘组中文件和目录的管理自动化水平相当高,应该说基本上完全不需要DBA参与,当然,也是可以手动修改的。
创建新目录:
SQL> alter diskgroup asmdisk2 add directory '+ASMDISK2/JSS1';
Diskgroup altered.
修改目录名:
SQL> alter diskgroup asmdisk2 rename directory '+ASMDISK2/JSS1' to '+ASMDISK2/JSS2';
Diskgroup altered.
删除目录名:
SQL> alter diskgroup asmdisk2 drop directory '+ASMDISK2/JSS2';
Diskgroup altered.
实际上,ASM中目录和文件的管理,也可以通过ASMCMD命令行方式进行,该命令行进入之后,是一个类似文件系统的管理界面,ORACLE提供了一些最基础的,如cd、ls、mkdir、rm等等几个有限的操作命令。
管理别名
当系统自动产生的名称太过复杂不怎么好记,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.
不管是添加/删除或是修改别名,对原有文件路径均不会有影响。
使用Oracle Enterprise Manager 管理ASM
Oracle Enterprise Manager (EM) 是Oracle 的管理工具系列,管理对象涵盖数据库、中间件、应用程序、网络、IT 基础结构及其它。Oracle Enterprise Manager 是一个基于浏览器的环境,为常见ASM 管理任务提供了一个点击式替代方案。
ASM 磁盘组兼容性
• 每个磁盘组的兼容性都可以分别控制:
– ASM 兼容性控制磁盘上ASM 元数据结构。
– RDBMS 兼容性控制最低使用者客户机级别。
– ADVM 兼容性确定磁盘组是否可以包含Oracle ASM 卷。
• 设置磁盘组兼容性的操作是不可逆的。
适用于ASM 磁盘组的兼容性有三种:涉及描述磁盘组的持久性数据结构,客户机(磁盘组的使用者)的功能,以及能否在磁盘组中包含卷。这些属性分别称为“ASM 兼容性”、“RDBMS 兼容性”和“ADVM 兼容性”。每个磁盘组的兼容性都可以独立控制。这是支持包含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命令来设置磁盘组兼容性。
注:除了磁盘组兼容性,兼容参数(数据库兼容版本)确定了启用的功能;该参数适用于数据库或ASM 实例,具体取决于instance_type参数。例如,将该参数设置为10.1 将禁止使用Oracle Database 11g中引入的任何新功能(磁盘联机/脱机、可变区等)。
ASM 磁盘组属性
CREATE DISKGROUP DATA2 NORMAL REDUNDANCY
DISK '/dev/sda1','/dev/sdb1'
ATTRIBUTE 'compatible.asm'='11.2';
每当创建或更改ASM 磁盘组时,都可以使用CREATE DISKGROUP和ALTER DISKGROUP命令新增的ATTRIBUTE子句更改其属性。图中的表简要概述了这些属性:
•ASM 允许使用在创建磁盘组时指定的不同分配单元(AU) 大小。AU 大小可以是1、2、4、8、16、32 或64 MB。
•RDBMS 兼容性:有关详细信息,请参阅“ASM 磁盘组兼容性”一节。
•ASM 兼容性:有关详细信息,请参阅“ASM 磁盘组兼容性”一节。
• 可以用分钟(M)、小时(H) 或天(D) 为单位指定DISK_REPAIR_TIME。如果省略单位,则使用默认值H。如果省略此属性,则使用默认值3.6H。可以使用ALTER DISKGROUP ... DISK OFFLINE语句覆盖此属性。
• 还可以为指定的模板指定冗余属性。
• 还可以为指定的模板指定条带化属性。
注:对于每个已定义的磁盘组,可以通过V$ASM_ATTRIBUTE固定视图查看所有已定义的属性。
使用Oracle Enterprise Manager 编辑磁盘组属性
Oracle Enterprise Manager 提供了一种简便方式用于存储和检索与磁盘组相关的环境设置。
在“Create Disk Group(创建磁盘组)”页和“Edit Advanced Attributes for Disk Group(编辑磁盘组的高级属性)”页中都可以设置兼容属性。仅“Edit Advanced Attributes for Disk Group(编辑磁盘组的高级属性)”页中添加了disk_repair_time属性。
注:对于低于11g的ASM 实例,默认ASM 兼容性和客户机兼容性都为10.1。对于11gASM 实例,默认ASM 兼容性为11.2,数据库兼容性为10.1。
检索ASM 元数据
• 使用SQL*Plus:
SQL> SELECT f.type, f.redundancy, f.striped, f.modification_date,
a.system_created, a.name FROM v$asm_alias a, v$asm_file f WHERE
a.file_number = f.file_number and a.group_number = f.group_number
and type='DATAFILE';
TYPE REDUND STRIPE MODIFICAT S NAME
-------- ------ ------ --------- - ---------------------DATAFILE MIRROR COARSE 08-JUL-09 Y SYSTEM.256.689832921
DATAFILE MIRROR COARSE 08-JUL-09 Y SYSAUX.257.689832923
..
• 使用asmcmd:
ASMCMD> ls -l +DATA/orcl/datafile
Type Redund Striped Time Sys Name
DATAFILE MIRROR COARSE JUL 08 21:00:00 Y SYSTEM.256.689832921
DATAFILE MIRROR COARSE JUL 08 21:00:00 Y SYSAUX.257.689832923
..
检索ASM 元数据
ASM 实例托管基于内存的元数据表,这些表通过动态性能视图呈现。可以使用SQL*Plus、asmcmd或Oracle Enterprise Manager 查询该数据。
使用SQL*Plus 需要具有SQL 语言知识,可能要联接多个动态性能视图来检索相关信息。
第一个示例显示v$asm_file和v$asm_alias之间建立了一个联接,以便显示关于数据库的数据文件的元数据。如果针对ASM 实例执行此查询,根据语法的定义方式,将检索多个数据库的数据文件。需要使用附加过滤条件才能将输出限定为单个数据库。
asmcmd实用程序的优点在于,不需要SQL 语言知识就能连接到ASM 实例并检索元数据。
它使用与UNIX 表示法类似的样式。此幻灯片上的第二个示例使用asmcmd命令来检索SQL 示例中的元数据。此示例的另一个优点是输出限制为单个数据库的数据文件,因为列出的路径包含数据库名称orcl和文件类型datafile。因此,对于asmcmd中显示的目录,需要使用WHERE子句设置SQL 过滤条件才能给出相同结果。
注:在Oracle Enterprise Manager Database Control 中,只需在各个ASM Web 页中浏览就能查看大多数ASM 元数据。
ASM 快速镜像重新同步概览
ASM 快速镜像重新同步可以显著减少重新同步临时故障磁盘所需的时间。如果某个磁盘因临时故障而脱机,ASM 将跟踪在中断期间发生修改的区。临时故障被修复后,ASM 可以快速地仅重新同步在中断期间受影响的ASM 磁盘区。
此功能假设受影响的ASM 磁盘的内容未被破坏或修改。
某个ASM 磁盘路径出现故障时,如果您已设置了相应磁盘组的DISK_REPAIR_TIME属性,则ASM 磁盘会脱机,但不会被删除。此属性的设置确定了ASM 可容忍的磁盘中断持续时间;如果中断在此时间范围内,则修复完成后仍可重新同步。注:跟踪机制对每个修改的分配单元使用1 位。这样可确保跟踪机制非常高效。