ORACLE ASM 管理

自动存储管理(ASM) 是Oracle 数据库10g 的新功能,它为数据库管理员提供了一个简单的存储管理界面,并且该界面在所有服务器和存储平台上都是一致的。作为专门为 Oracle 数据库文件创建的整合的文件系统和卷管理器,ASM 提供了异步 I/O 的性能以及文件系统的易管理性。它简化了数据库的管理,使管理员可以将可用的存储划分为磁盘组(disk groups),只需管理少量的磁盘组而不再需要直接管理大量的oracle数据库文件,ASM可自动管理磁盘组内数据库文件的放置,优化了性能和资源利用率。

  2. ORACLE 10g中的高效存储技术ASM

  自动存储管理直接在Oracle 内核提供了文件系统和卷管理器的垂直整合,从而带来了存储区域网系统提供的“虚拟化”类型的优点(易于管理、更高的可用性),并专门用于Oracle 数据库文件。ASM 提供了配置数据库的快捷方法,以达到最佳性能和资源利用率。它通过Oracle 内核自动管理数据库文件和这些文件的放置,不再需要第三方文件系统和卷管理器来管理Oracle 文件。ASM 免去了耗时的手动I/O 性能与调整任务,大大节省了DBA 的时间。

  ASM的镜像(mirroring)与条带化(striping):ASM 将文件分成1MB 大小的区(extent),并将所有文件的区平均分布到磁盘组的所有磁盘中。ASM 不使用数学函数跟踪每个区的放置,而使用指针记录区的位置。这样,ASM 就可以在磁盘组配置变化时移动某个文件的某些区,而不必按照公式并根据磁盘数来移动所有的区。对于需要低延迟的文件(例如日志文件),ASM 提供了细粒度(128k) 分段,以便由多个磁盘并行分隔并处理较大的I/O。ASM 在所有可用的资源中分布I/O 负载,在免除手动I/O 调节需要(通过分散数据库文件来避免热点)的同时优化性能。ASM的镜像比操作系统的磁盘镜像更为灵活,因为ASM可基于文件设置冗余级别,也就是说在同一磁盘组中的两个文件可以一个是镜像的而另一个不做镜像。ASM镜像发生在区级。

  ASM的动态存储配置:ASM使得在线调整存储配置成为可能,即它帮助DBA 管理动态数据库环境,让DBA 能够在扩大或缩小数据库规模的情况下,无需关闭数据库以调整存储配置。而在往磁盘组中增加磁盘或从磁盘组中删除磁盘后,ASM将自动重新平衡――均衡地在磁盘组中的所有磁盘上重新分布文件数据。

  ASM 是一种能力,它通过实现手动存储器的自动化来节省DBA 的时间,使其能够以更高的效率管理更大、更多的数据库。

  3. 通过ASMCMD工具管理ASM

  在oracle数据库10g的第一个版本中,管理ASM只能通过SQL语句,10g的第二个版本提供了一个管理ASM文件的新选择――命令行工具ASMCMD,它使我们可以更为方便地浏览和管理ASM磁盘组中的文件和目录。它可以列出磁盘组的内容,执行搜索,创建或删除目录及别名,显示空间利用率等等。下面将通过一个在AIX 5.3操作系统上的oracle 10g的应用实例来介绍ASMCMD命令行工具的使用方法以及ASM文件的FTP及HTTP访问方式。相关环境信息如下:

  操作系统平台:AIX 5.3

  数据库版本:ORACLE 10.2.0.3(2节点RAC)

  磁盘组:ORAHIS_22G,ORAHIS_44G(将22G和44G的LUN划分为2个磁盘组)

  磁盘组类型:外部冗余方式(EXTERNAL REDUNDANCY)

  3.1. 创建磁盘组

  首选需要创建磁盘组,由于不能通过ASMCMD命令创建或删除磁盘组,以及添加或删除磁盘组中的磁盘,所以我们通过oracle 10g中新的SQL命令来完成磁盘组的创建:

  在本实例中有22G和44G两种大小的LUN,先通过操作系统命令或通过ASM实例中v$asm_disk视图中的信息确认这两种大小的LUN的设备名,建立2个磁盘组ORAHIS_22G及ORAHIS_44G:

  

  CREATE DISKGROUP ORAHIS_22G EXTERNAL REDUNDANCY disk

  '/dev/rhdisk6',

  '/dev/rhdisk8',

  ……

  /

  CREATE DISKGROUP ORAHIS_44G EXTERNAL REDUNDANCY disk

  '/dev/rhdisk7',

  '/dev/rhdisk9',

  ……

  /

创建了磁盘组后就可以使用磁盘组,在上面创建数据库,分布数据库文件等。

  3.2. 运行ASMCMD

  以一个拥有SYSDBA权限的操作系统用户登录到运行了ASM实例的主机上,同时设置正确的ORACLE_HOME及ORACLE_SID环境变量以选择ASM实例,再设置正确的PATH环境变量,就可以运行ASMCMD工具了。ASMCMD可以以交互或非交互模式两种模式运行。

  1) 交互模式运行:在操作系统命令提示符下输入asmcmd,会得到ASMCMD>提示符,可以输入相关的命令,如果使用-p选项,将在ASMCMD提示符中包含当前路径,如下:

 

  gdhish1:/oracle/orahis>export ORACLE_SID=+hisasm1

 

  gdhish1:/oracle/orahis>asmcmd -p

  ASMCMD [+] > ls

  ORAHIS_22G/

  ORAHIS_44G/

  ASMCMD [+] > cd ORAHIS_22G

  ASMCMD [+ORAHIS_22G] >

 

  2) 非交互模式运行:命令格式为:asmcmd command arguments,如下:

 

  gdhish1:/oracle/orahis>asmcmd ls -l

 

  State Type Rebal Unbal Name

  MOUNTED EXTERN N N ORAHIS_22G/

  MOUNTED EXTERN N N ORAHIS_44G/

 

  3.3. ASMCMD命令参考

  1) 部分常用的ASMCMD命令列表

 

 

命令

 

 

说明

 

 

du

 

 

显示指定的ASM目录下ASM文件占用的所有磁盘空间

 

 

ls

 

 

列出ASM目录下的内容及其属性

 

 

lsct

 

 

列出当前ASM客户端的信息

 

 

lsdg

 

 

列出所有磁盘组及其属性

 

 

mkalias

 

 

为系统生成的文件名创建别名

 

 

  2) ASMCMD命令示例

  ASMCMD> lsdg

  State Type Rebal Unbal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name

  MOUNTED EXTERN N N 512 4096 1048576 622160 318776 0 318776 0 ORAHIS_22G/

  MOUNTED EXTERN N N 512 4096 1048576 2088727 771455 0 771455 0 ORAHIS_44G/

  上述lsdg命令的结果显示共有两个磁盘组ORAHIS_22G和ORAHIS_44G,状态是“MOUNTED”,类型是外部冗余(EXTERNAL REDUNDANCY),当前没有重现平衡(rebalance)操作,也没有磁盘组需要重现平衡。Sector大小是512字节,Block大小是4096字节,分配单元是1048576字节,即1M,ORAHIS_22G磁盘组大小为622160M,空闲大小为318776M,offline disks的数量为0,由于是外部冗余类型,故Req_mir_free_MB 为0。

  ASMCMD [+ORAHIS_44G/hisrac/datafile] > ls -ls

  Type Redund Striped Time Sys Block_Size Blocks Bytes Space Name

  DATAFILE UNPROT COARSE MAY 28 14:00:00 Y 32768 524289 17179901952 17181966336 BILL_TS_DT1.265.622310595

  DATAFILE UNPROT COARSE MAY 28 14:00:00 Y 32768 524289 17179901952 17181966336 UNDOTBS2.264.621185703

  上述ls –ls命令的结果显示ASM目录+ORAHIS_44G/hisrac/datafile下的文件及其属性,如文件BILL_TS_DT1.265.622310595和UNDOTBS2.264.621185703,类型为DATAFILE,由于是外部冗余方式,Redund为UNPROT,即对于ASM而言是uprotected,条带化方式为COARSE,文件是系统创建的,块大小为32768字节,块数为524289,文件大小为17179901952字节

1.ASM实例的启动和关闭

ASM实例上运行与其它数据库相似,不过用默认的STARTUP MOUNT命令代替了STARTUP命令。此外,我们还可以用STARTUP RESTRICT来暂时阻止数据库实例连接到ASM实例上并安装磁盘组。如果人们在ASM实例上使用SHUTDOWN命令,在ASM完成关机操作之前,他会等待所有的相关的数据库都关闭。唯一的例外是,如果使用SHUTDOWN ABORT,则ASM实例并不将ABORT命令传送到相关的数据库,而是所有的相关数据库都会立即执行一条SHUTDOWN ABORT命令。

2.ASM动态性能视图

有一些新的动态性能视图与ASM实例有关。这些视图的内容在ASM实例和数据库实例中内容各不相同,见下表:

 

 

视图

 

ASM实例中的内容

 

RDBMS实例中内容

 

V$ASM_DISK

 

没一行记录ASM实例发现的一个磁盘,不论是否用于磁盘组

 

每一行记录实例使用的每一个磁盘

 

V$ASM_DISKGROUP

 

每一行记录一个磁盘组信息,包含该磁盘组的一般特征

 

每一行记录使用的每一个磁盘组,不管它是否已经安装了

 

V$ASM_FILE

 

每一行记录在每个安装过的磁盘组中的每一个文件

 

未用

 

V$ASM_OPERATION

 

每一行记录ASM实例中正在运行的一个长时间运行的操作

 

未用

 

V$ASM_TEMPLATE

 

每一行记录ASM实例中每个安装过的磁盘组中的一个模板

 

每一行记录每个安装过的磁盘中的一个模板

 

V$ASM_CLIENT

 

每一行记录每一个使用ASM实例管理的磁盘组的每一个数据库

 

如果由任何ASM文件打开了,那么为ASM实例添加一行

 

V$ASM_ALIAS

 

没一行记录每个安装过的磁盘组的每一个别名

 

未用

 

 

3.ASM文件名

所有的ASM文件都是OMF,因此在大多数管理工作中不用关心使用的实际文件名是什么。当人们从一个ASM磁盘删除对象时,对应的文件也会删除。ASM文件可以采用6种不同的格式

1)全名称

例如:+DSG1/ora10g/datafile/system.264.584793233

在上面这个例子中,磁盘组名称是+DSG1,数据库名称是ora10g,它是system表空间的一个数据文件,文件号/实现(incarnation)对应的是264.584793233。

2)数字名称

数字名称仅用于引用现有的ASM文件,它允许只使用磁盘组名称以及文件号/实现来对应ASM文件。例如对于上面的例子,数字名称就是:

+DSG1.264.584793233

3)别名

我们可以在ASM实例中通过ALTER DISKGROUP ADD ALIAS来为现有的或者新的ASM文件创建一个更友好的名称。首先要创建一个目录

alter diskgroup data2 add directory '+data2/redempt';

然后创建别名:

alter diskgroup data2 add alias '+data2/redempt/users.dbf'

for '+data2/rac0/datafile/users3.256.1';

4)带模板的别名

只有在创建新的ASM文件时可以使用带模版的别名。模版为我们在创建新的ASM文件时,提供了一种简化文件类型的办法和标记。

5)不完全名称

不完全文件名格式即可以用于创建单个文件,也可以用于创建多个文件。我们可以只指定磁盘组名称,然后根据文件的类型使用一个默认模版。例如:

CREATE TABLESPACE users4 DATAFILE '+DATA1';

6)带模版的不完全名称。创建文件时可以指定磁盘组和模版名。例如:

CREATE TABLESPACE users4 DATAFILE '+DATA1(tempfile)';

4.磁盘组结构

磁盘组就是作为一个单位而管理的一组物理磁盘。每个ASM磁盘作为整个磁盘组的一部分,都有一个ASM磁盘名,要么是DBA指定的,要么是在将它分配到此磁盘组时自动指派的。磁盘组中的文件经过条带化(strip)处理后存储在各个磁盘上,可能使用粗条带(coarse stripping)处理,也可能使用细条带化(fine stripping)处理。粗条带化以1M为单位,细条带化处理适合用于数据仓库环境或者带有低并行处理和各I/O请求拥有最大响应时间的OLTP系统(?)系统模板中只有CONTROLFILE、ONLINELOG、FLASHBACK是细条带化,其它的都是粗条带化。

34.失效组合磁盘组镜像

在定义磁盘组的镜像处理类型之前,必须将磁盘组成失效组(failure group)。失效组是指属于一个磁盘组的一块活多块磁盘组成的一部分资源,例如磁盘控制器。它如果失效将引起磁盘组的一部分磁盘不可用。大多数情况下,ASM实例不知道某个磁盘的硬件和软件的依赖关系。因此,除非人们明确将一个磁盘指定到一个失效组,否则磁盘组的每一个磁盘都属于只包含自身的一个失效组。

定义了失效组之后,我们就可以定义磁盘组的镜像处理了。磁盘组中可用失效组数量会限制该磁盘组可用的镜像类型,下面是三中可用的类型:

1)外部冗余:

External redundancy要求只有一个失效组,并且认为该磁盘组对于数据库运行并不重要,或者改磁盘由外部的一个高可用性硬件,如RAID控制器管理

2)普通冗余

普通冗余要求有两个失效组,提供双路镜像。

3)高冗余

高冗余要求至少三个失效组,提供三路镜像,即使有两路失效,仍然可以使用。

5. 小结

  Oracle 数据库10g 向DBA 提供简化的存储资源管理界面。自动存储管理免除了手动I/O 性能调节的需要。它将数据库存储的管理虚拟化为一组磁盘组,并提供更多选项以加强保护。ASM 实现动态存储分配,并提供自动重新平衡。它在所有可用的存储设备中分布数据库文件,以便优化性能和资源利用率。同时ASMCMD命令行工具使得对ASM的管理更为便捷,而通过Oracle XML DB,还可以实现对ASM存储的FTP和HTTP访问。

 

转载请标明出处:http://junfengwang060905.blog.163.com/blog/static/942233302009102752128618/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值