墨天轮云服务平台更新三个Oracle工具,都非常实用,可以算是DBA的神器,且使用方便,现登陆云平台到工具列表即可直接下载。
1、平民软件的SQLULDR2:全世界都在用的超快Oracle文本导出工具
2、LucaCanali的PerfSheet.js:浏览器中可视化展示AWR各项指标的历史趋势
3、TanelPoder的Session Snapper:世界上最牛X的Oracle Troubleshooting脚本
1、SQLULDR2
Oracle提供了高效的文本装载工具(sqlldr)来装载格式化文本文件(如CSV文件)里的数据到Oracle中,却不提供一个文本导出工具来做不同数据库之间的数据交换。特别是在各种大数据技术兴起的年代,文本文件是最好的数据交搞方式,看来是必须得自己写程序或脚本来做这个工具了。SQLULDR2就是为此目的而用OCI接口编写的高效工具,并且已经被全世界的Oracle DBA使用超过10年了。 下面是一个使用SQLULDR2工具从Oracle数据库中导出数据的例子:
$ sqluldr2 test/test query="select * from tab" file=tab.txt
0 rows exported at 2016-01-28 22:10:22, size 0 MB.
6 rows exported at 2016-01-28 22:10:22, size 0 MB.
output file tab.txt closed at 6 rows, size 0 MB.
命令行中的”test/test”表示用户名和口令,选项“query”用来指定查询要导出的数据的SQL语句,而“file”选项则指定保存数据的文件名,这三个是必要的选项。你可以来看一下导出的文件的内容,默认使用逗号来分隔字段,而用换行符来分隔不同的记录。
$ cat tab.txt
ACT_RU_TASK,TABLE,
HPISLEM,TABLE,
TEST1,TABLE,
T_TEST,TABLE,
T_TEST2,TABLE,
VIEWTEST,TABLE,
2、PerfSheet.js
PerfSheet.js是一个针对Oracle的性能分析工具,直接在浏览器中可以生成各种AWR的趋势报告,如活动会话数、物理读等,极大的简化了之前多个ARW对比趋势,或者运行各个SQL对比的繁琐步骤。另外PerfSheet4需要依赖于Excel,而PerfSheet.js用javascript编写并可以在浏览器中运行,这提供了跨平台的额外灵活性和兼容性。
根据自带的SQL脚本将AWR数据spool到csv文件:
StevendeMacBook-Pro:sqlplus_scripts steven$ ls
Perfsheetjs_definitions.sql
Perfsheetjs_query_AWR_sysmetric.sql
Perfsheetjs_query_AWR_sysstat.sql
Perfsheetjs_query_AWR_system_event.sql
Perfsheetjs_query_AWR_top3_waitevent_and_CPU.sql
Run_all_Perfsheetjs_queries.sql
浏览器直接读取CSV文件生成各种性能趋势图:
3、Session Snapper
Oracle Session Snapper是一个SQL脚本,直接在sqlplus中运行,不会创建任何对象,只对V$和X$的性能视图进行采样分析(主要是v$session),是一个快速排查故障的工具,当数据库出现问题时,能够快速定位问题。 如查看156会话5秒钟的运行报告:
SQL> @snapper ash 5 1 156
Sampling...
-- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com )
-----------------------------------------------------------------------
Active% | SQL_ID | EVENT | WAIT_CLASS
-----------------------------------------------------------------------
36% | 3jbwa65aqmkvm | read by other session | User I/O
33% | 3jbwa65aqmkvm | direct path read | User I/O
28% | 3jbwa65aqmkvm | ON CPU | ON CPU
3% | 3jbwa65aqmkvm | db file sequential read | User I/O
-- End of ASH snap 1, end=2010-03-22 19:50:11, seconds=5, samples_taken=36
如查看所有会话5秒钟的报告:
SQL> @snapper ash 5 1 all
Sampling...
-- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com )
-----------------------------------------------------------------------
Active% | SQL_ID | EVENT | WAIT_CLASS
-----------------------------------------------------------------------
69% | 3h1z39qtgwc5h | db file scattered read | User I/O
29% | fy8n9175jyj7s | db file scattered read | User I/O
9% | | log file parallel write | System I/O
2% | fy8n9175jyj7s | ON CPU | ON CPU
2% | | control file parallel wri | System I/O
-- End of ASH snap 1, end=2010-03-22 17:33:17, seconds=5, samples_taken=45
PL/SQL procedure successfully completed.
更多工具下载
https://cs.enmotech.com/tools(阅读原文)