Archive for December, 2007
A Sprinkle of Shots
Monday, December 31st, 2007First Birthday in Four
Sunday, December 30th, 2007Dancer
Friday, December 28th, 2007EC2, MySQL, Backup Recovery, and You! (redux)
Thursday, December 27th, 2007Here we go again…
On the heels of the replication monitor, I’ve gone back and fine-tuned the fetch script to let you look back two days in the archives. Now, it is a bit janky because I am setting the days for the first array rather than parsing the actual buckets in S3 but my sed/awk skills are less than none. However, I suppose that the next version could be set up to ask how many days you want to look back easily enough.
#!/bin/bash
# set the environment
export AWS_ACCESS_KEY_ID=xxxyyyzzz
export AWS_SECRET_ACCESS_KEY=xxxyyyzzz
export SSL_CERT_DIR=/opt/s3sync/certs
DAYLST[0]=$(date +%j --date='2 days ago')
DAYLST[1]=$(date +%j --date='1 days ago')
DAYLST[2]=$(date +%j)
DAYNUM=${#DAYLST[@]}
echo
echo "Here are the available days for backup recovery."
echo
# echo each element in array
# for loop
for (( i=0;i<$DAYNUM;i++)); do
echo $i - ${DAYLST[${i}]}
done
echo
echo -e "What day did you want to parse? \c"
read selectday
listday=${DAYLST[$selectday]}
echo "Ok, I'm going to get the backups from $listday."
echo
echo -e "How many did you want? \c"
read count
echo
# Get the list of backups on the server using s3cmd
dbsets=$(ruby s3cmd.rb list your_db_backups:$listday | tail -n $count)
ARRAY=($dbsets)
# get number of elements in the array
ELEMENTS=${#ARRAY[@]}
# echo each element in array
# for loop
for (( i=0;i<$ELEMENTS;i++)); do
echo $i - ${ARRAY[${i}]:4}
done
# Prompt user for which backup they want to recover
echo
echo -e "Which backup set would you like to recover? \c"
read numbackup
backup=${ARRAY[$numbackup]:4}
echo "I am fetching your backup $backup now..."
echo
ruby s3cmd.rb get your_db_backups/$listday:$backup /tmp/$backup
cd /tmp
tar -xf $backup
sqlset=${backup:0:14}
mv $sqlset /root
echo "Your backup can be found here /root/$sqlset"
Still on the agenda is getting a slave to recover unassisted after a failure is detected but as my shell scripting abilities improve the possibility of it being realized grows.















Comments
James, Dale
james, Mike
james, Mike, james [...]
james, Mike
james, Mike
james, Kyle Daigle