Table of contents
No headers

 

Major changes:

     

  1. Backup filenames will now change. We will add a "/" into the filename to simulate a directory, so browsing backups can be done much easier.  So, for example the filenames will change from:

 myprefix-200801011111.tar.part00000

to:

myprefix-20080101/20080101.tar.part00000

  1. Slave continuous backups have been improved. Now, instead of doing backups every 10 mins and keeping an hour of rotating backups, we will specify how many we want to create in a rotation (i.e., we'll now define them by the size of the rotation, rather than the timeframe). If backup times overlap, the new rotation file will be skipped, and the next rotation number will be saved for the next attempt, 10 mins later. For example, if we specify 6 rotating backups, we'll make sure that we have the latest 6 slave backups, even if one of the backups has failed. That means that there might be a difference of more than 10 mins between backups, but that won't shrink the rotation size.

  1. Improved backup checks. Along with the backup cron, we now perform two checks about the status of the backups. If either check fails, a process called 'alert' will be executed, which will sleep for 1h. The two checks performed are: did the backup finished successfully? and is the slave lagging more than X secs from the master? (where X is currently set to 60 sec). So the 'alert' process will exist if either of these things fail (note that more than 1 of these processes might exist, if the situation is not resolved).

Other Changes:

  • increased the max_allowed_packet size for mysql installation (to deal with very long blobs

  • Better failure and restart handling of backups...it recovers and retried well even if curl dies.

  • Added a "slave init on boot" script in the Additional template, that (via an input) can be configured to automatically initialize a slave upon boot. The input is called: INIT_SLAVE_AT_BOOT, and it's set to true by default.

  • upgraded to use the new gems 1.0.1 and quickinstall

  • introduces a new script that will set the timezone of the instance to the one specified in the OPT_TZINFO input variable. The format of the input variable follows the typical naming of time zone; for example, "UTC", "EST", "GMT", "America/Los_Angeles", "US/Eastern", etc. (See 'man tzset' for more details). The default is "EDT" (Eastern Daylight Savings Time).
  • lvm script allows the user to specify how much of the disk we should format. You can use 'max' to get the full available capacity formatted (handles small/large/xlarge sizes automatically). Now, one can decide the tradeoff between formatting more, or booting faster :-)

     

Also, we're introducing a new tool to cleanup "old" backups. It will be included in the installed DB tools, and can be used by adding a new RightScript that will prepare a daily cron for the cleanup. Using this facility will require setting 2 new input variables:

  1. DB_SAVED_WEEKLIES: number of weekly backups to keep around. Weekly backups correspond to every Sunday.

     

  2. DB_SAVED_MONTHLIES: number of monthly backups to keep around.
    Monthly backups correspond to the first Sunday of the month. There's another "implicit" variable that is the number of daylies (the number of dailies to keep)...but we don't expose that, and set it internally to 7. I.e., It'll keep the last 7 daily backups around

     

In this version of the DB tool we also introduce a binlog cleaner script. It can be run to just keep the last "n" binlog files in the master. Once this is thouroughly tested, we'll introduce a RightScript (operational) to perform that action from the dashboard.

Tag page
You must login to post a comment.