[ 来源: | 作者: | 时间:2007-07-20 | 收藏 | 推荐 ] 【大 中 小】
ASM 命令行工具
Oracle 自动存储管理(ASM;请参阅本系列的第 1 部分)是 Oracle 数据库 10g 第 1 版中引入的专用文件系统,为数据文件的管理提供了急需的支持。
ASM 通过 SQL 命令管理,必要时也可以通过 Oracle Enterprise Manager 界面管理。同样,您也可以通过 SQL 接口或 GUI 看到它。大多数 DBA 都能接受该方法,但对那些不熟悉 SQL 的系统管理员来说学习 SQL 是件不大情愿的事。而作为一名 DBA,您可能不大愿意授予非 DBA Oracle Enterprise Manager 的访问权限。
在 Oracle 数据库 10g 第 2 版中,一个新的 ASM 命令行工具消除了这个隔阂。此接口称为 asmcmd,通过它您可以对 ASM 磁盘组中存储的数据文件(类似于文件系统和相应的文件)执行大量操作。该工具基于 Perl,因此后者应位于相应的路径中。如果未正确设置 Perl 的路径,则可能需要创建一个指向 Perl 所在目录的软链接,或只需修改文件 asmcmd 以反映 Perl 可执行文件的正确路径。
切记将 ORACLE_SID 设置为 ASM 实例(通常为 +ASM),而不是在服务器上运行的实际数据库实例。通过键入以下指令调用该命令
asmcmd -p www.it55.com 使用 -p 选项可以在提示中显示当前路径。 ASMCMD [+] > ls DGROUP1/ DGROUP10/ DGROUP2/ DGROUP3/ DGROUP4/ DGROUP5/ DGROUP6/ DGROUP7/ DGROUP8/ DGROUP9/ it55.com 可以在此处看到在 ASM 实例中创建和挂载的所有磁盘组(DGROUP1 至 DGROUP10)。 ASMCMD [+] > cd dgroup1甚至可以像在类 UNIX 或 Windows 这样的中那样,通过键入 cd .. 转到父目录。现在,确认在该磁盘组中创建了哪些文件。http://www.it55.com/
ASMCMD [+dgroup1] > ls ORCL/ 45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn好了,该磁盘组的下面增加了一个目录 ORCL。从它后面的正斜线 (/) 即可看出它是一个目录。使用 cd 命令进入该目录,然后执行命令 ls 显示内容。
ASMCMD [+dgroup1] > cd orcl ASMCMD [+dgroup1/orcl] > ls CONTROLFILE/ PARAMETERFILE/ control01.ctl => +DGROUP1/ORCL/CONTROLFILE/Current.256.551928759 spfileorcl.ora => +DGROUP1/ORCL/PARAMETERFILE/spfile.257.551932189 ASMCMD [+dgroup1/orcl] >除了 cd 和 ls 命令外,还可以使用其他类 UNIX 的命令,如 rm(用于删除目录或文件)、mkdir(用于创建目录)和 find(用于查找文件和目录)。免费资源www.it55.com
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 100 40 0 40 0 DGROUP1/ MOUNTED EXTERN N N 512 4096 1048576 100 33 0 33 0 DGROUP10/ MOUNTED EXTERN N N 512 4096 1048576 100 41 0 41 0 DGROUP2/ MOUNTED EXTERN N N 512 4096 1048576 1000 787 0 787 0 DGROUP3/ MOUNTED EXTERN N N 512 4096 1048576 1000 537 0 537 0 DGROUP4/ MOUNTED EXTERN N N 512 4096 1048576 1000 928 0 928 0 DGROUP5/ MOUNTED EXTERN N N 512 4096 1048576 1000 742 0 742 0 DGROUP6/ MOUNTED EXTERN N N 512 4096 1048576 1000 943 0 943 0 DGROUP7/ MOUNTED EXTERN N N 512 4096 1048576 1000 950 0 950 0 DGROUP8/ MOUNTED EXTERN N N 512 4096 1048576 100 33 0 33 0 DGROUP9/除了显示磁盘名称以外,lsdg 还显示了其他相关信息,如已分配的空间大小、可用空间大小和脱机磁盘。该信息简化了问题的诊断。it55.com
ASMCMD [+] > du /dgroup1 Used_MB Mirror_used_MB 9 9 IT资讯之家 www.it55.com 以上命令显示已经使用了 9MB。由于您已经使用了外部镜像,因此所使用的磁盘空间总大小仍为 9MB (Mirror_used_MB)。如果使用了 ASM 磁盘的标准冗余参数,则该数字将有所不同。 ASMCMD [+] > help mkalias mkalias <system_alias> <user_alias> Create the specified user_alias for the system_alias.The user_alias must reside in the same diskgroup as the system_alias, and only one user_alias is permitted per file.The SQLPLUS equivalent is "alter diskgroup <dg_name> add alias <user_alias> for <system_alias>". IT资讯之家 www.it55.com 您可以看到,这个丰富的命令集使 ASM 成为一个可管理性很高的文件系统,您甚至不需要研究 SQL 接口或 Oracle Enterprise Manager。还可以将这些命令轻松置于 shell 脚本中,从而为更多用户所接受。 alter tablespace users drop datafile '/tmp/users01.dbf' /sflj www.it55.com kg^&fgd
但存在一些限制:1数据文件必须为空才能删除。无法删除表空间中的最后一个数据文件;必须删除表空间本身。同时,表空间必须处于联机和读写状态。
IT资讯之家 www.it55.com
ASM 命令行工具
Oracle 自动存储管理(ASM;请参阅本系列的第 1 部分)是 Oracle 数据库 10g 第 1 版中引入的专用文件系统,为数据文件的管理提供了急需的支持。
ASM 通过 SQL 命令管理,必要时也可以通过 Oracle Enterprise Manager 界面管理。同样,您也可以通过 SQL 接口或 GUI 看到它。大多数 DBA 都能接受该方法,但对那些不熟悉 SQL 的系统管理员来说学习 SQL 是件不大情愿的事。而作为一名 DBA,您可能不大愿意授予非 DBA Oracle Enterprise Manager 的访问权限。
在 Oracle 数据库 10g 第 2 版中,一个新的 ASM 命令行工具消除了这个隔阂。此接口称为 asmcmd,通过它您可以对 ASM 磁盘组中存储的数据文件(类似于文件系统和相应的文件)执行大量操作。该工具基于 Perl,因此后者应位于相应的路径中。如果未正确设置 Perl 的路径,则可能需要创建一个指向 Perl 所在目录的软链接,或只需修改文件 asmcmd 以反映 Perl 可执行文件的正确路径。
切记将 ORACLE_SID 设置为 ASM 实例(通常为 +ASM),而不是在服务器上运行的实际数据库实例。通过键入以下指令调用该命令
www.it55.com
asmcmd -psflj www.it55.com kg^&fgd
使用 -p 选项可以在提示中显示当前路径。
(编辑:IT资讯之家 www.it55.com)