TOP1 : 录像机OS Watcher
如果说,作为一个Oracle维护工程师,你至少应该装一个工具在你维护的系统里,那么我首推这个。它就像银行自助取款机顶上的摄像头,默默的记录下你操作系统中的一切,在你需要回顾的时候,随时拿来看看。MOS下载地址:文档 ID 1614397.1
通过startOSW.sh命令来启动,stopOSW.sh命令来结束。它启动之后默认只会保留3天的数据,如果你需要更多,需要手动设置下。需要特别提醒的是,如果使用了Oracle RAC,那你一定要记得去配置一下prvnet,他会记录你私有网络心跳的状态。
为了节约空间,它会每小时的信息单独打包成一个gzip压缩文件,需要看哪个时间段的,解压开来即可。很多时候某个系统半夜就出现了异常端倪,直到上班才正式爆发,如果随手安装了OSW,那么问题处理起来会非常快。跟OSW功能类似的另外一个工具是nmon,不过只有AIX和Linux平台,如果掌握了OSW和oratop,那么nmon也可以退休了。
TOP2:监视器oratop
顾名思义,oratop是向top致敬,用类似于Unix/Linux里top命令的展现方式实时展现数据库的相关信息。
下载链接:
oratop - Utility for Near Real-time Monitoring of Databases, RAC and Single Instance(1500864.1) |
用法也很简单oratop
system/manager@dbhost:4800/db1.domain.com
值得一提的是,不仅仅支持单实例数据库,还支持RAC、Active DG,以及12c多租户数据库。
oratop实在太容易上手了,功能不做进一步的说明,你用用就会。
TOP3:快刀手:ora
与oratop不一样的是,ora完全是响应式的,集成了诸多需要通过一长串SQL语句才能实现功能查询。这个工具最开始也是Oracle开发的,DBA在使用过程中可以根据自己的需要,增加新的功能点,在问题分析过程中最快速的得知数据库对象的情况,做出相应的处理抉择:
比如某个系统CPU突然飙高了,可以使用ora active|wc –l看看有多少个活动的语句,可以通过ora active|grep sequen 看看同时等待顺序读的SQL都是哪些,ora sqltext SQL_ID可以看到具体的SQL语句,通过ora plan SQL_ID 可以查看具体的执行计划,是否同一个语句有多个执行计划;通过ora size可以看到相应表多大,有哪些索引,什么时候做过统计信息搜集。看到这些内容,基本的SQL情况相信你也了然于胸了。
Top4:可视化:SQL Devloper
前述三个都是命令行的工具,不方便用图形界面的技术咖常用的利器。如果你之前一直很喜欢用图形界面,盗版的Toad,PL/SQL Developer用了十几年的,那建议你用用免费的SQL Developer,最新版本是4.1.3:
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
Top5:3A认证:AWR/ASH/ADDM
这三个脚本,都在$ORACLE_HOME/rdbms/admin目录下。
绝大部分的工程师在系统性能检查的时候,至少都会看看AWR。如果需要看具体某几分钟内的数据库情况,通常要借助ASH,如果想让Oracle帮你自动诊断,那就得借助于ADDM了。
对于性能比较在意的系统,建议把AWR从默认的1小时采集一次调整到30分钟。杨建荣为这3个脚本做了定制,可以参考DBA+之前的文章进行学习。
Top6:小保健:ORAchk
ORAchk 之前被称为RACcheck,后来它的检查范围进行了扩展,改名为了ORAchk,它是在数据库系统进行健康检查的一个专用工具,这个工具主要用来检查软件的配置是否符合要求以及一些最佳实践是否被应用了。通过这个工具,用户可以很方便地、自动化地对自己的系统进行健康检查和评估。如果你是用了Exadata,那Oracle还提供了exachk工具。
检查的项目包括:
-
OS kernel 参数
-
OS 包/补丁
-
OS上其它和RAC相关的配置
-
CRS/Grid Infrastructure
-
RDBMS
-
ASM
-
数据库参数
-
对于RAC数据库影响较大的设置
-
升级到11.2.0.3/11.2.0.4/12c时的升级检查
-
Maximum Availability Architecture (MAA)检查
检查结果网页式输出,当然了,有些问题你不必在意。
TOP7:大保健:RDA
RDA是Remote Diagnostic Agent 的简称,是oracle用来收集、分析数据库的工具,运行该工具不会改变系统的任何参数,RDA收集的相关数据非常全面,可以简化我们日常监控、分析数据库的工作,Oracle Support也建议我们在反馈相关问题时,提供RDA收集的数据,这样可以为快速解决问题提供一个有力的保证。
RDA比ORAchk更加复杂,也更加全面,支持的模块非常多:
$./rda.sh -L modules
Available data collection modules are:
ACFS Collects ASM Cluster File System Information
ACT Collects Oracle E-Business Suite Application Information
ADBA Collects ACS Oracle Database Assessment
ADX Collects AutoConfig and Rapid Clone Information
AGT Collects Enterprise Manager Agent Information
APEX Collects APEX Information
ASAP Collects Oracle Communications ASAP Information
ASBR Collects Application Server Backup and Recovery Information
ASG Collects Application Server Guard Information
ASIT Collects Oracle Application Server Installation Information
ASM Collects Automatic Storage Management Information
B2B Collects Oracle Business to Business Information
BAM Collects Business Activity Monitoring Information
BEE Collects Beehive Information
BRM Collects Oracle Communications BRM Information
CCR Collects OCM Diagnostic Information
CFG Collects Key Configuration Information
COHR Collects Oracle Coherence Information
CONT Collects Oracle Content Services Information
CRID Collects Oracle Access Manager (COREid) Information
D2PC Collects Distributed Transaction Information
DB Controls RDBMS Data Collection
DBA Collects RDBMS Information
DBC Collects Database Control Information
DBM Collects RDBMS Memory Information
DEV Collects Oracle Developer Information
DG Collects Data Guard Information
EXA Collects Exadata Information
FLTR Controls Report Content Filtering
INST Collects the Oracle Installation Information
IPSA Collects Oracle Communications IP Service Activator Information
J2EE Collects J2EE/OC4J Information
JDBC Collects Oracle Java DB Connectivity (JDBC) Information
(…… 省略部分)
XDB Collects XDB Information
XSMP Samples User Defined Data
XTRA Collects User Defined Data
可以根据需要选择只关注的模块进行配置,./rda.sh -S OS DB DBA INST
Top8: 救命宝:RMAN
其实选RMAN的时候我比较纠结,按理说大家都应该掌握,不需要额外提及了。或者说,这应该算是数据库工程师维护的常识了吧。
之所以放在这里,是因为前天上午7点多,一个Oracle用户电话过来,说他们工程师在好几天之前删了一张表,问我能不能找回来。我首先问有没有备份,不管RMAN还是data pump,答复是没有。再问有没有归档日志,还有几个。
用RMAN,不仅要记得做备份,还应该每年至少一次的恢复验证,免得备了也白备
Top9: 巨无霸:OEM CC
OEM企业管理器从8i的单机版到现在的OEM13c CC(Cloud Control),不仅仅是变得更漂亮了,考过OCM的同学都有印象,如果你的DG不用OEM,光记那繁杂的命令就搞死你了。
OEM里,有一个工具你千万别忘了,就是OSM,周俊和魏兴华同学在我们的公众号上发表过专门论述的文章,值得看看(不用OEM也可以用OSM)。
现在的OEM,除了Oracle数据库,其他你想监控和管理的一切,几乎都可以往上面塞。有点类似IBM的tivoli和HP的openview,逐渐的变得臃肿,而不那么称手了。
如上的9个工具包含维护、优化和备份,如果你都学好了,至少也是一个中级DBA了吧。