Friday, September 23, 2011

XtraBackup Manager - What have I been up to!?!

Howdy all,

Just a quick update in the world of XtraBackup Manager development. In the last couple of weeks I have not been doing a great deal of work on XtraBackup Manager itself, but rather doing a lot of testing of XtraBackup Manager and implicitly XtraBackup along with it.

I hit upon some bugs that were basically roadblocks in the way that we intend to use XtraBackup and I'm sure issues that other folks will run into eventually once adoption of XtraBackup increases even more...

I have been working with Percona and SkySQL Support, as well as dabbling in some of the code myself to get fixes for these issues.

The main issues we hit were:

* tar4ibd crashes on certain InnoDB data files (unable to use streaming backups at all) - This was a regression in pre-release build of xtrabackup-1.6.3, For now "fixed" by using an older tar4ibd binary from stable 1.6.2 release.

* innobackupex would not capture MySQL slave position unless using FLUSH TABLES WITH READ LOCK and performing a full backup. Now slave position can be captured in incrementals or full backups without locks, provided that --safe-slave-backup is specified.

* Tables getting both DROP/CREATE or TRUNCATE during backup can cause assertion failure - SkySQL contributed a fix via Monty Program which I am ready to test now.

* Xtrabackup apply-log can crash when attempting to create temporary tables if the temp dir does not exist - Should be fixed very soon in xtrabackup-1.6.3 release.

When I decided to embark on the project for XtraBackup Manager, I was happy to think that finally I'll be able to give something back to the community in the tool that I make. It seems what I didn't consider was that in being such a heavy integrator with XtraBackup that I'd also be contributing some good QA and perhaps improvements to XtraBackup itself.

As an aside, I also found a couple of little issues in Shlomi's online alter table in the OpenArk toolkit and submitted patches for that -- so I've felt very contributive lately.

So what lies ahead?

More testing of XtraBackup and XtraBackup Manager as well as finishing off the command-line configurator.

Then we will be preparing to start eating my dog food and run XBM in production!

That's it for now...

Have a great weekend all!


Thursday, September 1, 2011

XtraBackup Manager - Command-line Configurator Preview!

Over the past two weeks I have been working on XtraBackup Manager as much as I can and I'm pleased to say that the command-line configurator is coming along very nicely!

There is now a generic "xbm" command that will be the way to manage hosts, storage volumes and backup schedules as well as doing restores, etc.

So far I have built the volume and host management in and will begin work on the backup schedules next!

Once this command-line interface is complete, I'll work to document it on the project wiki on Google Code and it should be ready for public consumption.

Here is a little preview of how it looks in action - forgive the ugly wrapping…

xbm@mslvlxbp01:~/xtrabackup-manager$ ./xbm

XtraBackup Manager v0.5 - Copyright 2011 Marin Software

Error: Context missing.

Usage: xbm <context> <action> <args> ...

Contexts and actions may be one of the following:

volume [add|list|edit|delete] <args>             -- Manage Backup Volumes
host [add|list|edit|delete] <args>               -- Manage Hosts to Backup
backup [add|list|edit|delete] <args>             -- Manage Scheduled Backup Tasks
snapshot [list|delete]                           -- Manage Backup Snapshots
restore [local|remote] <args>                    -- Restore Backups

You may specify only a context, or a context and action to get help on its relevant arguments.

xbm@mslvlxbp01:~/xtrabackup-manager$ ./xbm volumes    

XtraBackup Manager v0.5 - Copyright 2011 Marin Software

Error: Action missing.

Usage: xbm volumes <action> <args> ...

Actions may be one of the following:

  add <name> <path>                      -- Add a New Backup Volume
  list                                   -- List available Backup Volumes
  edit <name> <parameter> <value>        -- Edit a Backup Volume to set <parameter> to <value>
  delete <name>                          -- Delete a Backup Volume

You may specify an action without parameters to get help on its relevant arguments.

xbm@mslvlxbp01:~/xtrabackup-manager$ ./xbm volumes list

XtraBackup Manager v0.5 - Copyright 2011 Marin Software

-- Listing all Backup Volumes --

Name: Storage Array 1   Path: /backup/xbm
Name: Test /backup      Path: /backup

xbm@mslvlxbp01:~/xtrabackup-manager$ ./xbm volumes add MyVolume /tmp

XtraBackup Manager v0.5 - Copyright 2011 Marin Software

Action: New volume created with name/path: MyVolume -- /tmp