Probably the time I became a database administrator in the
company I worked for. We had about 20 database servers (the
amount varied), with 400 to 500 databases running on them (the
amount of databases varied daily).
in reply to What's the biggest piece of work you've done alone with Perl?
The previous administrator had made a mess of things - he would
just sit in his cubicle, and only move his ass when people
started to complain they could no longer do their job. Nothing
was being monitored. Backups were automated, but since everything
was hardcoded, and not touched for a long time, most databases,
including the more important ones were not updated - and noone
was inspecting the output for errors. When I took over, I was
working 10+ hours/day just to keep things running. At my first
day as a dba, I hacked my first monitoring program together,
and at least I would get paged if a database became unavailable,
instead having to wait till user started to complain. Within
months, everything was database and every server was being monitored
for their vital statistics, all databases would be backed up
daily (no recoding needed if databases were added or deleted),
databases would be dbcc-ed regulary, and many problems would
be solved automatically within a minute of them occurring,
and I was down of spending less than 4 hours a day on my dba
tasks, while getting an uptime of over 99.95% outside of the
maintainance windows. With the vital statistics of the most
important statistics being graphed - to please manglement.
This turned out to be my biggest mistake as well. When the
company had to lay off people, they decided a dba was no longer
As for strategies/techniques/modules, the code itself wasn't
too much. All monitoring less than 1000 lines of code. The
Sybase reference and sysadmin modules of the documentation
where vital though. I used Sybase::DBlib to make the database
connections, gnuplot for the graphing, and /bin/mailx
for the paging.