作为DBA,并且有用到Oracle的话,特别推荐用Perl作为拿手脚本语言。在有SHELL,Python,甚至PHP都可作为选择的现在,为什么我要
推荐Perl? 先从我选择它的经历说起。
当时在维护时需要写些系统脚本,顺手的
C语言显然有点太重,所以当时第一选择当然是SHELL,但弄到后面发现没那么简单,Unix系统的设计原则之一是一个东西只做一件事。
这样要弄出一个完整的脚本来,常需要awk,sed的配合,就有点让人烦了。把脚本弄到其它系统上时还发现
SHELL这玩意竞然还分流派,Linux当然是BASH,Unix下可不一样,有C shell,K shell等 。
实际上你看Oralce官方的安装文档,上面会告诉你
Bourne, Bash, or Korn shell应当怎样,怎样,
C shell又是如何设置。对shell实在没兴趣了。
后面看了下
Python,严格的语法让自由惯了的我很不感冒。 而
PHP命令行方式也可以做为脚本,我当时正好有些PHP方面的底子,想即可做脚本,又可做网页开发,一举两得啊。很可惜,
一.习惯用来写网页,写这个整得太别扭了,二.Unix上很多并没有装PHP。
后来无意中到Oracle的安装目录下查一些脚本,发现在Oracle脚本中Perl用的很广。甚至于在
Oracle目录下都自带了一个Perl的完整的环境。 哈哈,
这至少保证不管操作系统自没自带,有没安装,只要有装 Oracle数据库我写得脚本都可以正常运行。而且通常我的脚本不需要用到什么特别功能的扩展包,Oracle自带的足够用了。
而实际上Unix/Linux通常都会自带安装Perl(不信,你随便找台机打打 perl -v 看看),除非你强制手工不装或删除。
至于Windows是不带的,但也无需再去安装,Oracle本身自带了,通常在 $ORACDLE_HOME/perl目录。
Perl 本身的语言也足够简单强大,它被称为黑客使用的语言。
我不是黑客,但至少我感觉它确实无所不能。
正则表达式非常之有名,让你不用去看awk,sed了,操作环境变量,目录和文件处理非常简单。日期处理,XML这些都有现在的库。
至于它的DBI,那真是太强大而简单了,基本上常见的数据库都支持。
Oracle有DBD::Oracle,DB2有DBD:DB2 ,MySQL有DBD:mysql ....
而且函数都一样。
DBA可以很方便的写一些处理程序并与数据库做交互。 至于它的CGI与PHP一比,倒确实不如. 不过我又不用它写网页。
Perl唯一的问题有可能是因其语言太灵活,以至于你的写代码别人看不懂或时间长了自己都搞不懂了。不过老实说,一般不需要用什么很神奇的技术,做好开发规范和注释。这个问题很容易解决。 至于文档,Perl自带一个
perldoc很完整。 比如要查my的描述,
perldoc -f my 即可得到。
Perl的跨平台,DBI,目录文件操作,正则表达式,Oracle自带,方便的文档查询等。这几方面都是我认为它非常适合一个DBA用它来做为自已
手中的脚本利器的原因。
www.chinaunix.net的Perl论坛非常好.大家有兴趣可以去了解下。
再补充一下,除了Perl外,SHELL也还是很有必要学习,太多的人用这个了,不会写也要看得懂才行。 实际上我自己也常会用这个来写脚本。
Blog: http://blog.csdn.net/xcl168