I brought up these modules at last nights meeting and promised to follow
up. If anyone here have database servers they would be interested in
having a way to automate backups on or would be interested in helping
please let me know. I would love assistance. Even if you don't have time
to donate code/tests/debugging, extra eyes and ideas on interface,
general design etc. is always welcome.

The original goal (this started back when I was at MGH) was to have a
tool for robustly backing up databases on a MySQL server in an automated
manner. We had been just letting the backup system copy the MySQL
directories, but that was not at all satisfactory. I wanted to implement
backups for a consulting project I just wrapped up, so while I was on
vacation last month I requested the latest development version (Hi
Stefan!) and finally got it working.

When I got home I did a bit more testing and a little clean up and
shared it with some associates. Backups were run by a small script and
controlled via a configuration file and was designed to work via a
scheduler such as cron. I wouldn't call the work complete, but I was
very happy to have functioning automated backups and thought others
might like it. So I brought it up on the module-authors list to see
where the most appropriate place to put it on CPAN might be. I got a
surprising amount of feedback. In the midst of all the naming
discussions a few people wondered or suggested, on list and to me
directly, if it could be generalized to manage backups for other
database servers as well. Sounded like a good challenge to me! :)

So here I am. It has turned out to be more challenging than I thought.
=/ lol Most of my effort so far has been just in trying to figure out
how to design the conf file (I'm using YAML) to allow multiple database
servers to be specified and what the interface should be. Doesn't seem
to make sense to have the tool be able to manage many server types but
require a separate conf file for each individual server. I finally have
a working rough draft of that (with some limitations).

So now I'm finally working on the code. The idea is that the cron script
should need no or little alteration. You install the DBA::Backup package
and whichever DBA::Backup::<server> extensions you want to use. Each
extension provides a configuration template that should be pasted into
the main conf file and edited as needed. When you create a new Backup
object, it reads the conf file and does require && import; push(@ISA)
for the extension for each server type it finds in the conf file.

My concept is that each extension should provide a number of required
methods, each named by a certain convention, such as
mysql_backup_database, mysql_rotate_logs, etc. So when you run the
backup object, it loops over every server defined in the conf file and
calls the appropriate actions using the extensions methods. How each
extension goes about managing the details is completely up to the
extensions author.

The code attached is currently completely broken. I basically just tore
apart the original working single module into two portions and have
started trying to get the guts working again while making as few changes
to the internal methods as possible. This code has been through a few
hands and a few evolutions.

Thanks!
-- 
Sean Quinlan <[EMAIL PROTECTED]>

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Boston-pm mailing list
[EMAIL PROTECTED]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to