ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [zt] ORACLE 10g中ASMCMD使用及ASM文件

[zt] ORACLE 10g中ASMCMD使用及ASM文件

原创 Linux操作系统 作者:tolywang 时间:2011-01-19 16:08:45 0 删除 编辑


1. 引言

  自动存储管理(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字节。


4. 通过XML DB虚拟目录访问ASM文件

  由于ASM 是专为处理Oracle 数据库文件而建立的整合的文件系统与卷管理器,
它不是一般意义上的文件系统或集群文件系、统,因此不能使用标准的FTP和HTTP
服务来访问ASM文件,我们可以通过XML DB repository中的虚拟目录/sys/asm来访
问ASM文件和目录。内容并非真正存储在repository中,所以称为虚拟目录,/sys/asm
提供了通过XML DB协议如FTP和HTTP/WebDAV来访问和操作ASM文件的一种方法。


1) 配置

  下面以选择FTP端口7787,HTTP/WebDAV端口8080为例进行配置(前提是已经安装好XDB):

  gdhish1:/oracle/orahis>export ORACLE_SID=hisrac1

  gdhish1:/oracle/orahis>sqlplus '/as sysdba'

  SQL>@?/rdbms/admin/catxdbdbca.sql 7787 8080

  访问时注意必须以拥有dba权限的数据库用户(非sys)登录。

 

2) FTP访问示例(通过FTP传输XDB.dbf文件):

  zhcxxt1:/dsgh1 #ftp 130.51.5.103 7787
  Connected to 130.51.5.103.
  220- gdhish2
  Unauthorised use of this FTP server is prohibited and may be subject to civil and criminal prosecution.
  220 gdhish2 FTP Server (Oracle XML DB/Oracle Database) ready.
  Name (130.51.5.103:root): system
  331 pass required for SYSTEM
  Password:
  230 SYSTEM logged in
  ftp> cd sys/asm
  250 CWD Command successful
  ftp> ls
  200 PORT Command successful
  150 ASCII Data Connection
  ORAHIS_44G
  ORAHIS_22G
  226 ASCII Transfer Complete
  ftp> cd ORAHIS_22G/datafile
  250 CWD Command successful
  ftp> bin
  200 Type set to I.
  ftp> get XDB.dbf
  200 PORT Command successful
  150 BIN Data Connection
  226 BIN Transfer Complete
  536903680 bytes received in 37.49 seconds (1.399e+04 Kbytes/s)
  local: XDB.dbf remote: XDB.dbf
  ftp>


3) HTTP访问示例:

  通过类似的URL来访问:http://130.51.5.103:8080/


5. 小结

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

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

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13475397