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]>
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Boston-pm mailing list [EMAIL PROTECTED] http://mail.pm.org/mailman/listinfo/boston-pm

