使用AutoMySQLBackup 自动备份MySQL数据库

时间:2022-12-27 10:26:35

1.下载AutoMySQLBackup

http://sourceforge.net/projects/automysqlbackup/

2.解压缩

把下载的automysqlbackup-v3.0_rc6.tar.gz文件拷贝到/usr/tmp下面

在/usr/local下面新建一个automysqlbackup文件夹,并进入这个文件夹

cd /usr/local

mkdir automysqlbackup

cd automysqlbackup

然后tar解压缩一下。

tar -xzvf /usr/tmp/automysqlbackup-v3.0_rc6.tar.gz

3. 安装

安装一下,命令为

./install.sh

中途会有两个询问配置文件安装目录的地方,之间回车就好

我们先到/etc/automysqlbackup下面看看有什么东西好了

cd /etc/automysqlbackup

ls

4.修改配置文件

我们要用到的是automysqlbackup.conf文件:

文件里有一些基本的配置信息,比如连接mysql server的用户名、密码、IP地址神马的。

# Username to access the MySQL server e.g. dbuser

CONFIG_mysql_dump_username='root'

# Password to access the MySQL server e.g. password

CONFIG_mysql_dump_password='1234'

# Host name (or IP address) of MySQL server e.glocalhost

CONFIG_mysql_dump_host='localhost'

继续,有个重要的配置,就是backup存放的地方咯!

# Backup directory location e.g /backups

CONFIG_backup_dir='/var/backup/db'


往下看,还有你要配置的database的名称,当然可以精确到表名,也可以只指定到database的名称。或者干脆直接留空,不过留空的话会默认备份所有的数据库……这样磁盘可能会爆炸吧……

# Databases to backup


# List of databases for Daily/Weekly Backup e.g. ( 'DB1' 'DB2' 'DB3' ... )

# set to (), i.e. empty, if you want to backup all databases

CONFIG_db_names=()

# You can use

#declare -a MDBNAMES=( "${DBNAMES[@]}" 'added entry1' 'added entry2' ... )

# INSTEAD to copy the contents of $DBNAMES and add further entries (optional).


# List of databases for Monthly Backups.

# set to (), i.e. empty, if you want to backup all databases

CONFIG_db_month_names=()


# List of DBNAMES to EXLUCDE if DBNAMES is empty, i.e. ().

CONFIG_db_exclude=( 'information_schema' 'wiqun' )


另外,还有配置weekly、monthly、daily之类的时间间隔的设置

# Rotation Settings


# Which day do you want monthly backups? (01 to 31)

# If the chosen day is greater than the last day of the month, it will be done

# on the last day of the month.

# Set to 0 to disable monthly backups.

CONFIG_do_monthly="22"


# Which day do you want weekly backups? (1 to 7 where 1 is Monday)

# Set to 0 to disable weekly backups.

CONFIG_do_weekly="7"


# Set rotation of daily backups. VALUE*24hours

# If you want to keep only today's backups, you could choose 1, i.e. everything older than 24hours will be removed.

CONFIG_rotation_daily=7


# Set rotation for weekly backups. VALUE*24hours

CONFIG_rotation_weekly=35


# Set rotation for monthly backups. VALUE*24hours

CONFIG_rotation_monthly=150


前两个都比较好理解,就是每个月或者每一周的什么时候进行自动备份,如果不想使用每周备份或者每月备份的话,相应的地方设置0即可。那么后面的rotation又是什么意思呢?其实就是日志保存的期限啦。

比如说CONFIG_rotation_weekly=35的意思就是说按周存储的备份最多保留35天。


再继续,可以配置发送邮件的一些配置,比如邮件地址啦、还有附件的内容啦

# What would you like to be mailed to you?

# - log   : send only log file

# - files : send log file and sql files as attachments (see docs)

# - stdout : will simply output the log to the screen if run manually.

# - quiet : Only send logs if an error occurs to the MAILADDR.

CONFIG_mailcontent='files'


# Set the maximum allowed email size in k. (4000 = approx 5MB email [see docs])

CONFIG_mail_maxattsize=4000


# Allow packing of files with tar and splitting it in pieces of CONFIG_mail_maxattsize.

CONFIG_mail_splitandtar='yes'


# Use uuencode instead of mutt. WARNING: Not all email clients work well with uuencoded attachments.

#CONFIG_mail_use_uuencoded_attachments='no'


# Email Address to send mail to? (user@domain.com)

CONFIG_mail_address='elarwei@gmail.com'


关闭ssl支持

# Use ssl encryption with mysqldump?

CONFIG_mysql_dump_usessl='no'


添加定时任务

crontab -e

0 */1 * * * automysqlbackup /etc/automysqlbackup/myserver.conf
每小时执行一次