免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6072 | 回复: 4
打印 上一主题 下一主题

管理ASM磁盘组(6) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 03:32 |只看该作者 |倒序浏览

7. 使用asmcmd命令

asmcmd实用程序是Oracle 10g版本2的新增特性,它是一个命令行实用工具,提供了一种简单的方法,可以使用类似于Linux外壳命令(例如ls和mkdir)的命令集,浏览和维护ASM磁盘组中的对象。ASM实例所维护对象的分层性质适合于采用类似Linux文件系统中浏览和维护文件所使用的命令集。

在使用asmcmd之前,必须确保将环境变量ORACLE_BASE、ORACLE_HOME和ORACLE_SID设置为指向ASM实例。对于本章所使用的ASM实例,这些环境变量的设置如下所示:

ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
ORACLE_SID=+ASM

此外,必须以dba组中的用户登录到操作系统,因为asmcmd实用程序使用SYSDBA权限连接到数据库。操作系统用户通常是oracle,但也可以是dba组中的任何其他用户。

可以采用asmcmd command格式,一次使用一条asmcmd命令,或者也可以在Linux外壳提示符下输入asmcmd来交互式地启动asmcmd。为获得可用命令列表,可以在ASMCMD>提示符下输入help,这会得到更多的详细信息。表4-7列出了asmcmd命令及其简单说明,注意有些asmcmd命令只在Oracle Database 11g中可用。

表4-7 asmcmd命令汇总

asmcmd命令

是否只在11g中可用

cd

改变目录到指定目录

cp

ASM磁盘组之间复制文件,既可以在相同实例中复制,也可以在远程实例中复制

du

循环显示当前目录和所有子目录的总体磁盘利用率

exit

终止asmcmd,并返回到操作系统外壳提示符

find

从指定目录开始查找名称的所有匹配(也可以使用通配符)

help

列出asmcmd命令

ls

列出当前目录的内容

lsct

列出当前ASM客户数据库的有关信息

lsdg

列出所有磁盘组及其属性

lsdsk

列出此ASM实例可见的所有磁盘

md_backup

为指定磁盘组创建元数据备份脚本

md_restore

从备份恢复磁盘组

mkalias

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

mkdir

创建一个ASM目录

pwd

显示当前的ASM目录

remap

修理磁盘上遭到破坏或损坏的一系列物理块

rm

删除ASM文件或目录

rmalias

删除一个ASM别名,但不删除此别名的目标

当启动asmcmd命令时,从ASM实例的文件系统的根节点开始。与Linux文件系统不同,根节点不是由前导正斜杠(/)来指明,而是由加号(+)来指明,但以下各级目录则使用正斜杠。在此示例中,启动asmcmd命令,并查询现有的磁盘组以及所有磁盘组中使用的总磁盘空间:

[oracle@dw ~]$ asmcmd
ASMCMD> ls -l
State Type Rebal Unbal Name
MOUNTED NORMAL N N DATA/
MOUNTED HIGH N N DATA2/
MOUNTED NORMAL N N RECOV/
ASMCMD> du
Used_MB Mirror_used_MB
2143 4399
ASMCMD> pwd
+
ASMCMD>

与Linux外壳的ls命令一样,如果想要得到此命令所检索出来的对象的详细信息,可以在ls命令后追加-l参数。ls命令显示了本章所用的ASM实例中的3个磁盘组+DATA、+DATA2和+RECOV。

另外需要注意的是,du命令只显示已用的磁盘空间以及跨镜像磁盘组所用的总磁盘空间。想要获得每个磁盘组中的空闲空间量,则需要使用lsdg命令。

此示例查找文件名中包含字符串user的所有文件:

ASMCMD> pwd
+
ASMCMD> find . user*
+DATA/DW/DATAFILE/USERS.259.627432977
+DATA/DW/DATAFILE/USERS2.267.627782171
+DATA/purch/users.dbf
+DATA2/DW/DATAFILE/USERS3.256.627786775
ASMCMD> ls -l +DATA/purch/users.dbf
Type Redund Striped Time Sys Name
N users.dbf =>
+DATA/DW/DATAFILE/USERS.259.627432977
ASMCMD>

注意包含+DATA/purch/users.dbf的这一行:find命令查找所有ASM对象。在此例中,它查找一个别名以及与此模式相匹配的数据文件。

最后可以对外部文件系统甚至其他ASM实例进行文件备份。在此示例中,使用cp命令将数据库的SPFILE备份到主机文件系统的/tmp目录中:

ASMCMD> pwd
+data/DW
ASMCMD> ls
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
TEMPFILE/
spfiledw.ora
ASMCMD> cp spfiledw.ora /tmp/BACKUPspfiledw.ora
source +data/DW/spfiledw.ora
target /tmp/BACKUPspfiledw.ora
copying file(s)...
file, /tmp/BACKUPspfiledw.ora, copy committed.
ASMCMD> exit
[oracle@dw ~]$ ls -l /tmp/BACKUP*
-rw-r----- 1 oracle oinstall 2560 Jul 13 09:47 /tmp/BACKUPspfiledw.ora
[oracle@dw ~]$

此示例也展示了数据库dw的所有数据库文件是如何存储在ASM文件系统中的。看起来这些数据库文件好像存储在传统的主机文件系统中,但实际上是由ASM进行管理的,其所提供的内置性能和冗余特性(为用于Oracle Database 11g已进行了优化)使DBA可以更轻松地管理数据文件。

论坛徽章:
0
2 [报告]
发表于 2012-02-27 09:58 |只看该作者
谢谢分享,我是学习和获得积分的。呵呵

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
3 [报告]
发表于 2012-02-27 23:30 |只看该作者
不错的资料,可以学习。

论坛徽章:
2
C
日期:2016-10-25 16:11:40极客徽章
日期:2016-12-07 14:07:30
4 [报告]
发表于 2012-08-13 08:10 |只看该作者
不错的资料,可以学习。

论坛徽章:
0
5 [报告]
发表于 2014-03-17 10:59 |只看该作者
不错 谢谢分享  我来补充点命令:lsof  检查磁盘组的磁盘文件是否被数据库访问
ASMCMD> cd +
ASMCMD> ls -l
State    Type    Rebal  Name
MOUNTED  EXTERN  N      DG_TEST01/
ASMCMD> umount dg_test01 #卸载dg_test01
关闭数据库后,执行如下重命名DG名
ASMCMD>renamedg phase=both dgname=test01 newdgname=data01 verbose=true  #重命名dg名称
ASMCMD>mount data01 #挂载DG
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP