命令行工具
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
使用 -p 选项可以在提示中显示当前路径。
现在,尝试一些非常简单的命令。调用命令行提示 (ASMCMD >) 后,键入 ls 查看已挂载的所有磁盘组。
ASMCMD [ ] > ls
DGROUP1/
DGROUP10/
DGROUP2/
DGROUP3/
DGROUP4/
DGROUP5/
DGROUP6/
DGROUP7/
DGROUP8/
DGROUP9/
可以在此处看到在 ASM 实例中创建和挂载的所有磁盘组(DGROUP1 至 DGROUP10)。
现在,考察磁盘组 DGROUP1。可以使用 cd 命令像更改目录那样更改此磁盘组。
ASMCMD [ ] > cd dgroup1
甚至可以像在类 UNIX 或 Windows 这样的操作系统中那样,通过键入 cd .. 转到父目录。现在,确认在该磁盘组中创建了哪些文件。
ASMCMD [ dgroup1] > ls
ORCL/
好了,该磁盘组的下面增加了一个目录 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(用于查找文件和目录)。
以下是一些其他命令:
lsdg(list diskgroup 的缩写)- 要查看该 ASM 实例挂载的磁盘,使用 lsdg 命令。
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 还显示了其他相关信息,如已分配的空间大小、可用空间大小和脱机磁盘。该信息简化了问题的诊断。
du(disk utilization 的缩写)— 由于您已经在 ASM 磁盘上填充了数据,因此可能要查明磁盘组内部占用的空间大小。为此,可以像在 UNIX、Linux 或 Windows 中那样使用 du 命令。要了解目录内部已使用的空间大小,只需使用
ASMCMD [ ] > du /dgroup1
Used_MB Mirror_used_MB
9 9
以上命令显示已经使用了 9MB。由于您已经使用了外部镜像,因此所使用的磁盘空间总大小仍为 9MB (Mirror_used_MB)。如果使用了 ASM 磁盘的标准冗余参数,则该数字将有所不同。
help — 没有帮助那还叫什么工具!您不必记住每一个命令。只需键入 help 即可显示一个命令列表。然后,可以键入 help <command> 查看特定命令的信息。例如,在此您要查看 mkalias 命令。
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>".
您可以看到,这个丰富的命令集使 ASM 成为一个可管理性很高的文件系统,您甚至不需要研究 SQL 接口或 Oracle Enterprise Manager。还可以将这些命令轻松置于 shell 脚本中,从而为更多用户所接受。
删除空数据文件
假设您刚刚向错误目录或表空间中添加了一个数据文件 - 一个很常见的错误。并不会丢失一切;由于该数据文件不包含任何数据,因此您可以轻松地删除它,是这样吗?
遗憾的是,您无法删除它。在 Oracle 数据库 10g 第 2 版之前,删除数据文件的唯一有效方法就是删除整个表空间,然后在没有该特定文件的情况下重新构建它。如果表空间包含数据,则必须通过既费时又费力的过程将数据存储到单独的位置并恢复它。除了不方便以外,该过程还使表空间不可用。
幸运地是,在 Oracle 数据库 10g 第 2 版中,该过程已得到简化:您可以只删除数据文件。例如,以下命令将从表空间和服务器中删除指定的数据文件。
alter tablespace users 0drop datafile ’/tmp/users01.dbf’
/
但存在一些限制:1数据文件必须为空才能删除。无法删除表空间中的最后一个数据文件;必须删除表空间本身。同时,表空间必须处于联机和读写状态。
针对挂起/低速系统的直连 SGA 访问
当用户经常抱怨数据库运行速度慢并经常超时时,大多数 DBA 最先想到的就是以 SYSDBA 连接到数据库并检查等待事件。但如果实例挂起,甚至您无法登录时又会怎样?这种情况下,即使最强大、最优秀的故障诊断查询也无济于事。
在 Oracle 数据库 10g 第 2 版中,Oracle Enterprise Manager Grid Control 可以在苛刻环境下根据您的请求直接连接到 SGA,从而从进程状态中直接收集数据。这个所谓的内存访问模式增强了您有效使用 Oracle Enterprise Manager 的能力,即使在实例经历严重问题的情况下也是如此。而最重要的是,这是在 SQL 访问基本无法实现的情况下自动执行的。
以下是它的工作方式:在 Oracle Enterprise Manager 用户界面中,选择 Performance 选项卡,并向下滚动到该页面底部标记为“Related Links”的部分,这将显示一个如下所示的屏幕。
注意名为“Monitor in Memory Access Mode”的链接。单击该链接将显示一个如下所示的屏幕。注意“View Mode”下拉菜单,其中的“Memory ACCESS”选项处于选中状态。
相关文章
实例讲解Oracle里抽取随机数的多种方法
Oracle10g新特性之虚拟专用数据库
在Oracle数据库上构建.NET应用程序
Oracle10g第2版新特性之SQL和PL_SQL
Oracle10g第2版新特性之可管理性特性
警告!Ajax技术的安全问题不容忽视
财务管理分章练习题及解析第六章 项目投资
财务管理分章练习题及解析第五章 投资概述
财务管理分章练习题及解析第四章资金成本和资金结构
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛