oracle Automatic Storage Management简介

oracle Automatic Storage Management简介2009-1-16

ASM概述:
自动存储管理(ASM)是Oracle数据库10g的一个特性,它为数据库管理员提供了一个简单的存储管理界面,并且该界面在所有服务器和存储平台上都是一致的。作为专门为Oracle数据库文件创建的垂直集成文件系
统和卷管理器,ASM提供了异步I/O的性能及文件系统易管理性。

ASM中的基本数据库结构是磁盘组,它由一个或多个磁盘组成。其中“磁盘”可以是一个磁盘分区、一个完整的磁盘、一个级联磁盘、一个存储设备的分区或一个完整的存储设备。一定要认识到,ASM并非通用集群文件系统。相反,ASM是一个具有集群感知的文件系统,专门为处理Oracle数据文件、控制文件、日志文件而设计的。ASM不应与逻辑卷管理器(LVM)共用,这是因为后者会使ASM无法识别磁盘。

ASM自身作为实例来运行,该实例先于数据库实例启动。
它使DBA能够创建、扩展和缩小磁盘,并将这些变化映射到共享访问这些组的其他节点上的磁盘组,数据库实例能够在集群的多个节点间共享存储器的集群池。

ASM实例和Oracle数据库实例的区别:
ASM实例尽管可以使用几个v$视图来获得关于ASM实例的信息,但没有数据字典:
v$asm_diskgroup、v$asm_client、v$asm_disk、
v$asm_file、v$asm_template等。
只能以sysdba或sysoper连接ASM实例。

有5个初始化参数用于ASM实例,其中instance_type是必要的,并应该设置如下:
instance_type=asm。
的ASM 优点:
磁盘增加 — 增加磁盘变得非常容易。无需停机时间,并且文件区域自动重新分配。
I/O 分配 — I/O 自动分布在所有可用的磁盘上,无需人工干预,从而减少了热点o 出现的可能性。
带区宽度 — 在重做日志文件中分段可以细分(128K,以获得更快的传输速率),对于数据文件,带区则略大一些(1MB,以一次性传输大量的数据块)。
缓冲 — ASM 文件系统不进行缓冲,直接进行输入/输出。
核心化的异步 I/O — 实现核心化的异步 I/O 无需特殊的设置,并且无需使用原始或第三方的文件系统(如 Veritas Quick I/O)。镜像 — 如果硬件镜像不可用,则可以容易地建立软件镜像。

配置ASM磁盘:
到网站上下载相应OS内核的ASMLib2.0驱动程序:
http://www.oracle.com/technology/global/cn/tech/linux/asmlib/index.html
因为我的内核是2.6.9-22.EL,所以我下载了下面三个安装包:
oracleasm-2.6.9-22.EL-2.0.3-1.i686.rpm
oracleasmlib-2.0.2-1.i386.rpm
oracleasm-support-2.0.3-1.i386.rpm
安装ASMLib2.0驱动程序包:
# rpm –Uvh oracleasm-2.6.9-22.EL-2.0.3-1.i686.rpm \oracleasmlib-2.0.2-1.i386.rpm \oracleasm-support-2.0.3-1.i386.rpm
Linux上配置ASM:
有两个不同的方法可以在Linux上配置ASM::
使用ASMLib I/O的ASM:此方法使用 ASMLib 调用在由ASM 管理的原始块设备上创建所有 Oracle 数据库文件。由于 ASMLib 使用块设备,因此该方法不需要原始设备。
配置方法如下:
配置ASM随OS自动启动和属主信息:
# /etc/init.d/oracleasm configure

2009116113753_080349.JPG
[注] 以上操作将加载oracleasm.o驱动,并且mount上ASM文件系统。如果当前操作系统得内核和编译的ASMLib的内核不同,那么就会出错,可以查看日志文件/var/log/messages。如果内核是对的,还是出错,请检查SELinux是否为disable状态,可以命令修改system-config-securitylevel。
创建ASM磁盘
# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1
可以通过命令查看建好的ASM disk
# /etc/init.d/oracleasm listdisks
VOL1
VOL2
[注] 如果是在RAC环境中,要在其他节点执行命令来查找
刚生成的disk。/etc/init.d/oracleasm scandisks。
删除disk:/etc/init.d/oracleasm deletedisk VOL1
启动asm:/etc/init.d/oracleasm enable
禁用asm:/etc/init.d/oracleasm disable
查询现有的磁盘:/etc/init.d/oracleasm querydisk VOL1
使用标准 Linux I/O 的 ASM:此方法使用标准 Linux I/O 系统调用
在 ASM
管理的原始字符设备上创建所有 Oracle 数据库文件。您将需
要为 ASM 使用
的所有磁盘分区创建原始设备。
配置方法如下:
配置每次启动时创建原始设备绑定:
# vi /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdc1
# chown oracle:dba /dev/raw/raw[1-2]
# chmod 660 /dev/raw/raw[1-2]
# service rawdevices restart
配置每次启动时修改原始设备的属性:
# vi /etc/udev/permissions.d/50-udev.permissions
# raw/*:root:disk:0660
raw/*:oracle:dba:0660
用oracle身份对原始设备做个ln
$ ln –sf /dev/raw/raw1 /oradata/asmdisk1
$ ln –sf /dev/raw/raw2 /oradata/asmdisk2
创建实例ASM 及维护:
使用dbca就可以创建ASM实例。我们可以看看启动asm实例
的参数文件如下:
asm_diskstring=’OCR:VOL*’ --因为我们使用的是VOL1、VOL2,所以使用通配符。
Instance_type=’asm’ --数据库实例是rdbms。
当ASM实例启动后,我们可以创建diskgroup:
SQL> create diskgroup DG1 normal redundancy
failgroup fgroup1 disk ‘ORCL:VOL1’
failgroup fgroup2 disk ‘ORCL:VOL2’
[注] normal redundancy是基于软件冗余,设置ASM来在磁盘组中创建一组特殊的磁盘(称为failgroup),以提高这种冗余。
如果是基于硬件方面的冗余创建diskgroup,命令如下:
SQL> create diskgroup DG1 external redundancy
disk ‘ORCL:VOL1’,’ORCL:VOL2’
查看diskgroup的状态:
SQL> select name,state from v$asm_diskgroup;
Name state
------------------------------------------
DG1 MOUNTED
如果是DISMOUNTED的状态,可用命令alter diskgroup
DG1 mount修改。
对diskgroup增加/删除 磁盘:
SQL> alter diskgroup DG1 add disk ‘ORCL:VOL3’;
SQL> alter diskgroup DG1 disk ‘ORCL:VOL3’;
查看diskgroup的大小情况:
SQL> select name,allocation_unit_size,total_mb from v$asm_diskgroup;
[注] 启动asm数据库,必须先启动asm实例。
工具asmcmd介绍:
这个工具是10gR2推出的,命令和unix/linux差不多;
进入asmcmd环境
在进入asmcmd环境之前,要确保asm实例已经打开,然后设置变量ORACLE_SID,如下:
$ export ORACLE_SID=+ASM
如果是RAC环境下:
$ export ORACLE_SID=+ASM1
$ asmcmd –p
[注] p参数是进入之后会显示所在的路径
可以查看帮助:
ASMCMD [+]> help
里面的命令和linux很相似,可以很方便的管理asm磁盘的文件。

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

转载于:http://blog.itpub.net/13024285/viewspace-670611/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值