PerconaXtraBackup-2.2.3 注释及带书签版

    一直想写点东西,总觉得自己写得不好,可是不写又觉得有些东西要和大家交流下,还是写点吧,有点忐忑,毕竟是第一篇博文,大家见谅。

    下面是我之前用到的一个脚本,好久之前的了,拿出来,大家可以测试下。可能要调整某些参数,大家可以参考《PerconaXtraBackup-2.2.3 注释及带书签版》(见附件)。

#!/bin/sh

TMPFILE="/tmp/innobackupex-runner.$$.tmp"
INNOBACKUPEX=innobackupex
INNOBACKUPEXFULL=/usr/bin/$INNOBACKUPEX
MYSQL=/usr/local/mysql/bin/mysql
MYSQLADMIN=/usr/local/mysql/bin/mysqladmin

BACKUPDIR=/backup/mysql-bak/full
MYCNF=/etc/my.cnf
MYUSER=root
MYPASSWD=''
MYHOST='localhost'
MYPORT=3306
MYSOCKET=/data/mysql/mysql.sock
USEROPTIONS="--user=$MYUSER --password=$MYPASSWD --host=$MYHOST --port=$MYPORT --socket=$MYSOCKET"

SCRIPTNAME=$(basename "$0")
START=`date +%s`

#############################################################################
# Display error message and exit
#############################################################################
error() {
  echo "$1" 1>&2
  exit 1
}

# Check required parameters
if [ ! -d "$BACKUPDIR" ]; then
  echo "Backup directory is required, now mkdir..."
  mkdir -pv $BACKUPDIR
fi

# Check base dir exists and is writable
if [ ! -d $BACKUPDIR ] || [ ! -w $BACKUPDIR ]
then
  error "Backup destination folder: $BACKUPDIR does not exist or is not writable."
fi

# Check required parameters
if [ -z "`$MYSQLADMIN $USEROPTIONS status | grep 'Uptime'`" ]
then
  error "HALTED: MySQL does not appear to be running."
fi

if ! `echo 'exit' | $MYSQL -s $USEROPTIONS`
then
  error "HALTED: Supplied mysql username or password appears to be incorrect (not copied here for security, see script)."
fi

echo "Check completed OK"

# Some info output
echo "----------------------------"
echo
echo "$SCRIPTNAME: MySQL backup script"
echo "started: `date`"
echo

# Create a new full backup
echo "Running new full backup."
$INNOBACKUPEXFULL --defaults-file=$MYCNF $USEROPTIONS --throttle=40 --use-memory=4M --no-timestamp $BACKUPDIR/$(date +%F) > $TMPFILE 2>&1

if [ -z "`tail -1 $TMPFILE | grep 'completed OK!'`" ]
then
  echo "$INNOBACKUPEX failed:"; echo
  echo "---------- ERROR OUTPUT from $INNOBACKUPEX ----------"
  cat $TMPFILE
  #rm -f $TMPFILE
  exit 1
fi

THISBACKUP=`awk -- "/Backup created in directory/ { split( \\\$0, p, \"'\" ) ; print p[2] }" $TMPFILE`

echo "Databases backed up successfully to: $THISBACKUP"
echo

# Delete tmp file
#rm -f $TMPFILE

SPENT=$(((`date +%s` - $START) / 60))
echo
echo "took $SPENT minutes"
echo "completed: `date`"
exit 0

对于要做主从同步的,MySQL Master可以参考下面步骤:

1、备份msyql的配置文件my.cnf[*****必须要做]

2、打开binlog

3、重启msyql

4、安装xtrabackup

5、修改备份脚本参数(mysql/mysqladmin/my.cnf/innodbbackex/sock等路径)

6、执行备份,压缩

7、rsync推送到MySQL Slave

Master Slave可以参考下面步骤:

1、校验文件

2、解压

3、查看mysql(socket等)

4、--apply-log

5、停止mysql并做好data目录授权等

6、--copy-back

7、再次授权data

8、启动mysql

到这,还没有实现主从喔,后面内容从略。

注:《PerconaXtraBackup-2.2.3 注释及带书签版》是在《PerconaXtraBackup-2.2.3》做的注释和书签,下载网址:http://www.percona.com/

你可能感兴趣的:(mysql,xtrabackup,innobackupex)