ORACLE g中ASMCMD使用及ASM文件XML DB访问
引言
自动存储管理(ASM) 是Oracle 数据库g 的新功能它为数据库管理员提供了一个简单的存储管理界面并且该界面在所有服务器和存储平台上都是一致的作为专门为 Oracle 数据库文件创建的整合的文件系统和卷管理器ASM 提供了异步 I/O 的性能以及文件系统的易管理性它简化了数据库的管理使管理员可以将可用的存储划分为磁盘组(disk groups)只需管理少量的磁盘组而不再需要直接管理大量的oracle数据库文件ASM可自动管理磁盘组内数据库文件的放置优化了性能和资源利用率
ORACLE g中的高效存储技术ASM
自动存储管理直接在Oracle 内核提供了文件系统和卷管理器的垂直整合从而带来了存储区域网系统提供的虚拟化类型的优点(易于管理更高的可用性)并专门用于Oracle 数据库文件ASM 提供了配置数据库的快捷方法以达到最佳性能和资源利用率它通过Oracle 内核自动管理数据库文件和这些文件的放置不再需要第三方文件系统和卷管理器来管理Oracle 文件ASM 免去了耗时的手动I/O 性能与调整任务大大节省了DBA 的时间
ASM的镜像(mirroring)与条带化(striping)ASM 将文件分成MB 大小的区(extent)并将所有文件的区平均分布到磁盘组的所有磁盘中ASM 不使用数学函数跟蹤每个区的放置而使用指针记录区的位置这样ASM 就可以在磁盘组配置变化时移动某个文件的某些区而不必按照公式并根据磁盘数来移动所有的区对于需要低延迟的文件(例如日志文件)ASM 提供了细粒度(k) 分段以便由多个磁盘并行分隔并处理较大的I/OASM 在所有可用的资源中分布I/O 负载在免除手动I/O 调节需要(通过分散数据库文件来避免热点)的同时优化性能ASM的镜像比操作系统的磁盘镜像更为灵活因为ASM可基于文件设置冗余级别也就是说在同一磁盘组中的两个文件可以一个是镜像的而另一个不做镜像ASM镜像发生在区级
ASM的动态存储配置ASM使得在线调整存储配置成为可能即它帮助DBA 管理动态数据库环境让DBA 能够在扩大或缩小数据库规模的情况下无需关闭数据库以调整存储配置而在往磁盘组中增加磁盘或从磁盘组中删除磁盘后ASM将自动重新平衡――均衡地在磁盘组中的所有磁盘上重新分布文件数据
ASM 是一种能力它通过实现手动存储器的自动化来节省DBA 的时间使其能够以更高的效率管理更大更多的数据库
通过ASMCMD工具管理ASM
在oracle数据库g的第一个版本中管理ASM只能通过SQL语句g的第二个版本提供了一个管理ASM文件的新选择――命令行工具ASMCMD它使我们可以更为方便地浏览和管理ASM磁盘组中的文件和目录它可以列出磁盘组的内容执行搜索创建或删除目录及别名显示空间利用率等等下面将通过一个在AIX 操作系统上的oracle g的应用实例来介绍ASMCMD命令行工具的使用方法以及ASM文件的FTP及HTTP访问方式相关环境信息如下
操作系统平台AIX
数据库版本ORACLE (节点RAC)
磁盘组ORAHIS_GORAHIS_G(将G和G的LUN划分为个磁盘组)
磁盘组类型外部冗余方式(EXTERNAL REDUNDANCY)
创建磁盘组
首选需要创建磁盘组由于不能通过ASMCMD命令创建或删除磁盘组以及添加或删除磁盘组中的磁盘所以我们通过oracle g中新的SQL命令来完成磁盘组的创建
在本实例中有G和G两种大小的LUN先通过操作系统命令或通过ASM实例中v$asm_disk视图中的信息确认这两种大小的LUN的设备名建立个磁盘组ORAHIS_G及ORAHIS_G
CREATEDISKGROUPORAHIS_GEXTERNALREDUNDANCYdisk
/dev/rhdisk
/dev/rhdisk
……
/
CREATEDISKGROUPORAHIS_GEXTERNALREDUNDANCYdisk
/dev/rhdisk
/dev/rhdisk
……
/
创建了磁盘组后就可以使用磁盘组在上面创建数据库分布数据库文件等
运行ASMCMD
以一个拥有SYSDBA权限的操作系统用户登录到运行了ASM实例的主机上同时设置正确的ORACLE_HOME及ORACLE_SID环境变量以选择ASM实例再设置正确的PATH环境变量就可以运行ASMCMD工具了ASMCMD可以以交互或非交互模式两种模式运行
) 交互模式运行在操作系统命令提示符下输入asmcmd会得到ASMCMD>提示符可以输入相关的命令如果使用p选项将在ASMCMD提示符中包含当前路径如下
gdhish:/oracle/orahis>exportORACLE_SID=+hisasm
gdhish:/oracle/orahis>asmcmdp
ASMCMD[+]>ls
ORAHIS_G/
ORAHIS_G/
ASMCMD[+]>cdORAHIS_G
ASMCMD[+ORAHIS_G]>
) 非交互模式运行命令格式为asmcmd command arguments如下
gdhish:/oracle/orahis>asmcmdlsl
StateTypeRebalUnbalName
MOUNTEDEXTERNNNORAHIS_G/
MOUNTEDEXTERNNNORAHIS_G/
ASMCMD命令参考
) 部分常用的ASMCMD命令列表
命令
说明
du
显示指定的ASM目录下ASM文件占用的所有磁盘空间
ls
列出ASM目录下的内容及其属性
lsct
列出当前ASM客户端的信息
lsdg
列出所有磁盘组及其属性
mkalias
为系统生成的文件名创建别名
) 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 ORAHIS_G/
MOUNTED EXTERN N N ORAHIS_G/
上述lsdg命令的结果显示共有两个磁盘组ORAHIS_G和ORAHIS_G状态是MOUNTED类型是外部冗余(EXTERNAL REDUNDANCY)当前没有重现平衡(rebalance)操作也没有磁盘组需要重现平衡Sector大小是字节Block大小是字节分配单元是字节即MORAHIS_G磁盘组大小为M空闲大小为Moffline disks的数量为由于是外部冗余类型故Req_mir_free_MB 为
ASMCMD [+ORAHIS_G/hisrac/datafile] > ls ls
Type Redund Striped Time Sys Block_Size Blocks Bytes Space Name
DATAFILE UNPROT COARSE MAY :: Y BILL_TS_DT
DATAFILE UNPROT COARSE MAY :: Y UNDOTBS
上述ls –ls命令的结果显示ASM目录+ORAHIS_G/hisrac/datafile下的文件及其属性如文件BILL_TS_DT和UNDOTBS类型为DATAFILE由于是外部冗余方式Redund为UNPROT即对于ASM而言是uprotected条带化方式为COARSE文件是系统创建的块大小为字节块数为文件大小为字节
通过XML DB虚拟目录访问ASM文件
由于ASM 是专为处理Oracle 数据库文件而建立的整合的文件系统与卷管理器它不是一般意义上的文件系统或集群文件系统因此不能使用标准的FTP和HTTP服务来访问ASM文件我们可以通过XML DB repository中的虚拟目录/sys/asm来访问ASM文件和目录内容并非真正存储在repository中所以称为虚拟目录/sys/asm提供了通过XML DB协议如FTP和HTTP/WebDAV来访问和操作ASM文件的一种方法
) 配置
下面以选择FTP端口HTTP/WebDAV端口为例进行配置(前提是已经安装好XDB)
gdhish:/oracle/orahis>export ORACLE_SID=hisrac
gdhish:/oracle/orahis>sqlplus /as sysdba
SQL>@?/rdbms/admin/catxdbdbcasql
访问时注意必须以拥有dba权限的数据库用户(非sys)登录
) FTP访问示例(通过FTP传输XDBdbf文件)
zhcxxt:/dsgh#ftp
Connectedto
gdhish
UnauthoriseduseofthisFTPserverisprohibitedandmaybesubjecttocivilandcriminalprosecution
gdhishFTPServer(OracleXMLDB/OracleDatabase)ready
Name(:root):system
passrequiredforSYSTEM
Password:
SYSTEMloggedin
ftp>cdsys/asm
CWDCommandsuccessful
ftp>ls
PORTCommandsuccessful
ASCIIDataConnection
ORAHIS_G
ORAHIS_G
ASCIITransferComplete
ftp>cdORAHIS_G/datafile
CWDCommandsuccessful
ftp>bin
TypesettoI
ftp>getXDBdbf
PORTCommandsuccessful
BINDataConnection
BINTransferComplete
bytesreceivedinseconds(e+Kbytes/s)
local:XDBdbfremote:XDBdbf
ftp>
) HTTP访问示例
通过类似的URL来访问
小结
Oracle 数据库g 向DBA 提供简化的存储资源管理界面自动存储管理免除了手动I/O 性能调节的需要它将数据库存储的管理虚拟化为一组磁盘组并提供更多选项以加强保护ASM 实现动态存储分配并提供自动重新平衡它在所有可用的存储设备中分布数据库文件以便优化性能和资源利用率同时ASMCMD命令行工具使得对ASM的管理更为便捷而通过Oracle XML DB还可以实现对ASM存储的FTP和HTTP访问