MySQL备份还原——AutoMySQLBackup介绍

AutoMySQLBackup是一个开源的MySQL备份脚本。可以说它是一个轻量级的备份方案,AutoMySQLBackup的安装、配置非常简单、方便。AutoMySQLBackup的sourceforge上介绍有如它本身,也非常的简单:

Description

AutoMySQLBackup with a basic configuration will create Daily, Weekly and Monthly backups of one or more of your MySQL databases from one or more of your MySQL servers.

Other Features include:

- Email notification of backups (备份邮件通知)

- Backup Compression and Encryption(备份压缩与加密)

- Configurable backup rotation (配置备份保留周期)

- Incremental database backups (数据库增量备份)

 

下载地址

AutoMySQLBackup的下在地址为http://sourceforge.net/projects/automysqlbackup/ 。 目前最新版本为automysqlbackup-v3.0_rc6.tar.gz

 

安装配置

 

1:将下载的安装文件automysqlbackup-v3.0_rc6.tar.gz拷贝到/tmp目录下

 

2:将automysqlbackup-v3.0_rc6.tar.gz解压到新建的目录automysqlbackup下。如下所示,解压后总共有6个文件。

[root@DB-Server tmp]# tar -zxvf /tmp/automysqlbackup-v3.0_rc6.tar.gz  -C /tmp/automysqlbackup
automysqlbackup
automysqlbackup.conf
CHANGELOG
install.sh
README
LICENSE

automysqlbackup: AutoMySQLBackup的应用程序脚本

automysqlbackup.conf : AutoMySQLBackup的配置文件范本

CHANGELOG: AutoMySQLBackup功能添加、Bug修复历史记录

install.sh: AutoMySQLBackup的安装脚本

README: AutoMySQLBackup的声明、安装、使用说明文档

建议在安装前看一下README文件,里面有介绍如何安装、配置automysqlbackup。AutoMySQLBackup提供了自动和手动安装配置两种功能(如下所示)

 

自动安装配置

 

1:运行脚本install.sh安装配置AutoMySQLBackup

[root@DB-Server tmp]# cd automysqlbackup
[root@DB-Server automysqlbackup]# ./install.sh 
### Checking archive files for existence, readability and integrity.
 
automysqlbackup ... exists and is readable ... md5sum okay :)
automysqlbackup.conf ... exists and is readable ... md5sum okay :)
README ... exists and is readable ... md5sum okay :)
LICENSE ... exists and is readable ... md5sum okay :)
 
Select the global configuration directory [/etc/automysqlbackup]: 
Select directory for the executable [/usr/local/bin]: /usr/bin
### Creating global configuration directory /etc/automysqlbackup:
 
success
 
### Copying files.
 
 
if you are running automysqlbackup under the same user as you run this install script,
you should be able to access it by running 'automysqlbackup' from the command line.
if not, you have to check if 'echo $PATH' has /usr/bin in it
 
Setup Complete!
[root@DB-Server automysqlbackup]# 

如下所示,你会发现install.sh脚本将automysqlbackup.conf、 LICENSE、 README三个文件拷贝到/etc/automysqlbackup/目录下,并复制了

automysqlbackup.conf文件生成了myserver.conf

[root@DB-Server ~]# cd /etc/automysqlbackup/

[root@DB-Server automysqlbackup]# ls

automysqlbackup.conf LICENSE myserver.conf README

[root@DB-Server automysqlbackup]#

 

2:配置自己的AutoMySQLBackup的配置文件myserver.conf

 

默认情况下,这些AutoMySQLBackup的参数都是注释的,你需要取消注释,给予相关参数配置信息,例如使用那个账号做备份、账号密码、

# 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='123456'
 
# Host name (or IP address) of MySQL server e.g localhost
CONFIG_mysql_dump_host='localhost'
 
# "Friendly" host name of MySQL server to be used in email log
# if unset or empty (default) will use CONFIG_mysql_dump_host instead
#CONFIG_mysql_dump_host_friendly=''
 
# Backup directory location e.g /backups
CONFIG_backup_dir='/u03/mysqlbackup/'
 
....................................................

下面列出了部分主要的参数设置,具体可以参考automysqlbackup.conf 或 myserver.conf里面的参数的描述


参数设置


参数功能


样例


CONFIG_mysql_dump_username


备份时连接数据库的账号


CONFIG_mysql_dump_username='root'


CONFIG_mysql_dump_password


备份账号的密码


CONFIG_mysql_dump_password='******'


CONFIG_mysql_dump_host


备份服务器名称或IP,一般用'localhost'


CONFIG_mysql_dump_host='localhost'


CONFIG_mysql_dump_host_friendly


设置服务器别名,如果不设置或为空,则使用CONFIG_mysql_dump_host替换


CONFIG_backup_dir


数据库备份路径


CONFIG_backup_dir='/mysqldata/db_backup/mysqlbackup'


CONFIG_multicore


压缩数据时是否启用多核,具体参考文档解释


CONFIG_multicore_threads


多线程数量


CONFIG_db_names


要备份的数据库


CONFIG_db_month_names


要做月备份的数据库


CONFIG_table_exclude


备份时要排除那些表


CONFIG_db_exclude


备份时要排除那些db


CONFIG_do_monthly


在每个月的第几天做月备份


CONFIG_do_weekly


星期几做周备份


CONFIG_rotation_daily


日备的保留周期


CONFIG_rotation_weekly


周备的保留周期


CONFIG_rotation_monthly


月被的保留周期


CONFIG_mysql_dump_port


MySQL的端口号


CONFIG_mysql_dump_compression


备份文件采用的压缩格式


CONFIG_mysql_dump_compression='gzip'


CONFIG_mysql_dump_differential


是否做差异备份


CONFIG_mysql_dump_differential='yes'


CONFIG_encrypt


备份是否加密


CONFIG_encrypt_password


备份加密的密码

README里面关于配置参数的一个参考样本,一般参数设置应该根据具体情况也业务需求来合理设定。

Default configuration
CONFIG_configfile="/etc/automysqlbackup/automysqlbackup.conf"
CONFIG_backup_dir='/var/backup/db'
CONFIG_do_monthly="01"
CONFIG_do_weekly="5"
CONFIG_rotation_daily=6
CONFIG_rotation_weekly=35
CONFIG_rotation_monthly=150
CONFIG_mysql_dump_usessl='yes'
CONFIG_mysql_dump_username='root'
CONFIG_mysql_dump_password=''
CONFIG_mysql_dump_host='localhost'
CONFIG_mysql_dump_socket=''
CONFIG_mysql_dump_create_database='no'
CONFIG_mysql_dump_use_separate_dirs='yes'
CONFIG_mysql_dump_compression='gzip'
CONFIG_mysql_dump_commcomp='no'
CONFIG_mysql_dump_latest='no'
CONFIG_mysql_dump_max_allowed_packet=''
CONFIG_db_names=()
CONFIG_db_month_names=()
CONFIG_db_exclude=( 'information_schema' )
CONFIG_mailcontent='log'
CONFIG_mail_maxattsize=4000
CONFIG_mail_address='root'
CONFIG_encrypt='no'
CONFIG_encrypt_password='password0123'

3:运行备份脚本并检查备份

[root@DB-Server ~]# /usr/bin/automysqlbackup /etc/automysqlbackup/myserver.conf
Parsed config file "/etc/automysqlbackup/automysqlbackup.conf"
 
# Checking for permissions to write to folders:
base folder /u03 ... exists ... ok.
backup folder /u03/mysqlbackup/ ... exists ... writable? yes. Proceeding.
checking directory "/u03/mysqlbackup//daily" ... exists.
checking directory "/u03/mysqlbackup//weekly" ... exists.
checking directory "/u03/mysqlbackup//monthly" ... exists.
checking directory "/u03/mysqlbackup//latest" ... exists.
checking directory "/u03/mysqlbackup//tmp" ... exists.
checking directory "/u03/mysqlbackup//fullschema" ... exists.
checking directory "/u03/mysqlbackup//status" ... exists.
 
# Testing for installed programs
mysql ... found.
mysqldump ... found.
gzip ... found.
 
# Parsing databases ... done.
======================================================================
AutoMySQLBackup version 3.0
http://sourceforge.net/projects/automysqlbackup/
 
Backup of Database Server - localhost
Databases - mysql,performance_schema,test
Databases (monthly) - mysql,performance_schema,test
======================================================================
======================================================================
Dump full schema.
 
Rotating 4 month backups for 
 
======================================================================
 
======================================================================
Dump status.
 
Rotating 4 month backups for 
 
======================================================================
 
Backup Start Time Sat Jul 11 22:16:32 CST 2015
======================================================================
Daily Backup ...
 
Daily Backup of Database ( mysql )
Rotating 6 day backups for mysql
----------------------------------------------------------------------
Daily Backup of Database ( performance_schema )
Rotating 6 day backups for performance_schema
----------------------------------------------------------------------
Daily Backup of Database ( test )
Rotating 6 day backups for test
----------------------------------------------------------------------
 
Backup End Time Sat Jul 11 22:16:33 CST 2015
======================================================================
Total disk space used for backup storage...
Size - Location
750k /u03/mysqlbackup/
 
======================================================================
 
###### WARNING ######
Errors reported during AutoMySQLBackup execution.. Backup failed
Error log below..
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.

检查备份目录,你会发现生成了daily、fullschema、 latest、 monthly、 status、 tmp、 weekly等目录,刚刚备份的文件位于daily目录下,如下所示

 

手动安装配置

AutoMySQLBackup也可以手动配置,在文档README里面有介绍如何手工配置,也非常的简单

1. Create the /etc/automysqlbackup directory.

2. Copy in the automysqlbackup.conf file.

3. Copy the automysqlbackup file to /usr/local/bin and make executable.

4. cp /etc/automysqlbackup/automysqlbackup.conf /etc/automysqlbackup/myserver.conf

5. Edit the /etc/automysqlbackup/myserver.conf file to customise your settings.

6. See usage section.

 

AutoMySQLBackup的使用

AutoMySQLBackup使用mutt发送邮件,它是linux下的一个email程序,由于我们一般都使用sendmail发送邮件,所以一般在配置文件里面不启用改参数。所以使用AutoMySQLBackup时,一般自己写shell脚本,调用AutoMySQLBackup来备份数据,如下所示automysqlbackup.sh

#REM backup script
#REM ----------------------------------------
#REM  Backup script for EEL Mysql
#REM  Tommy Wang -  08-14-2012
#REM  Kerry Kong -  07-12-2015 Modify this Script
#REM ----------------------------------------
#REM - USER DEFINED VARIABLES -
export DATESTAMP=`date '+%F'`
 
#REM - Logfiles -
export BACKUP_FULL_LOG=/mysqldata/db_backup/logs/auto_backup_$DATESTAMP.log
 
/usr/local/bin/automysqlbackup /etc/automysqlbackup/myserver.conf >>$BACKUP_FULL_LOG
chown mysql.mysql /mysqldata/db_backup -R >>$BACKUP_FULL_LOG
find  /mysqldata/db_backup -type f -exec chmod 400 {} \; >>$BACKUP_FULL_LOG
find  /mysqldata/db_backup -type d -exec chmod 700 {} \; >>$BACKUP_FULL_LOG
 
EMAILTMP=/mysqldata/db_backup/logs/auto_backup_db_$DATESTAMP.TMP
 
##################################### config email parameters ####################################
echo 'Content-Type: text/html' > $EMAILTMP
echo 'To: dba@xxxx.com' >> $EMAILTMP 
echo 'Subject: Backup Status - The server xxxx  MYSQL (dump backup)' >> $EMAILTMP
echo '<pre style="font-family: courier; font-size: 9pt">' >> $EMAILTMP
#################################################################################################
 
echo "==============================================================================" >> $EMAILTMP
echo "======================== Daily Backup for Mysql Database =====================" >> $EMAILTMP
echo "==============================================================================" >> $EMAILTMP
echo " " >> $EMAILTMP 
 
cat $BACKUP_FULL_LOG >> $EMAILTMP 2>&1
echo " " >> $EMAILTMP 
echo "================================== End of Backup =============================" >> $EMAILTMP
echo "==============================================================================" >> $EMAILTMP
 
/usr/sbin/sendmail -t -f "BackupAdmin" < $EMAILTMP
rm $EMAILTMP
 
chown mysql.mysql $BACKUP_FULL_LOG

使用AutoMySQLBackup发送邮件时,会有下面告警提示,这个是因为我们将连接数据库的账号密码配置在配置文件中,这样非常不安全。如何去掉这个告警提示呢? AutoMysqlBackup: Warning: Using a password on the command line interface can be insecure. 这篇博客里面介绍了一种方法

找到automysqlbackup文件,找到removeIO,然后在其下面加上下面这段脚本后,你就不会收到告警信息。

[root@getlnx20 ~]# cd /usr/local/bin

[root@getlnx20 bin]# vi automysqlbackup

removeIO
 
Add this after removeIO:
 
# Remove annoying warning message since MySQL 5.6
 
if [[ -s "$log_errfile" ]]; then
 
sedtmpfile="/tmp/$(basename $0).$$.tmp"
 
grep -v "Warning: Using a password on the command line interface can be insecure." "$log_errfile" > $sedtmpfile
 
mv $sedtmpfile $log_errfile
 
fi

关于AutoMySQLBackup的介绍到这里,其实AutoMySQLBackup还有很多细节地方值得我们去学习、研究。限于篇幅,不在此一一赘述。

时间: 2024-11-03 10:17:29

MySQL备份还原&mdash;&mdash;AutoMySQLBackup介绍的相关文章

Win8系统自带备份还原工具完整图文介绍

  在Win8系统中微软为大家内置了非常好用的系统备份还原工具,即使没有系统恢复光盘我们也可以轻松恢复系统.下面系小编就为大家带来Win8系统自带备份还原工具完整图文介绍. 1.首先,我们打开Win8系统控制面板,找到"Windows 7 文件恢复"(不要惊讶..就是这个功能) 2.双击进入后,出现如下界面: 3.选择"创建系统映像"; 4.此时可以选择将Win8的系统镜像备份在移动硬盘.在一张或多张DVD上或在网络上.根据系统的大小,若备份在光盘上需要多张光盘.

mysql 备份还原-navicat for mysql 导入导出sql文件 备份还原 数据库的原理 相关指令大概是怎样的?

问题描述 navicat for mysql 导入导出sql文件 备份还原 数据库的原理 相关指令大概是怎样的? 本地不用安装mysql也可以使用?不用配置环境变量?自己用mysqldump备份要安装mysql还有配环境,求高人指点

MySQL备份还原&amp;mdash;&amp;mdash;mysqldump工具介绍

mysqldump是一款MySQL逻辑备份的工具,他将数据库里面的对象(表)导出成SQL脚本文件.有点类似于SQL SEVER的"任务-生成脚本"的逻辑备份功能.mysqldump是比较常用的备份方法,适合于在不同MySQL版本之间的迁移.升级.不足之处就是数据库比较大时,mysqldump的效率不高.   mysqldump的主要参数收集整理注释如下,如果你要查看mysqldump的具体参数信息,可以使用命令mysqldump –help   --add-drop-table    

MySQL备份还原——mysqldump工具介绍

mysqldump是一款MySQL逻辑备份的工具,他将数据库里面的对象 (表)导出成SQL脚本文件.有点类似于SQL SEVER的"任务-生成脚本"的逻辑备份功能.mysqldump是比较常用的备份方法,适合于在不同MySQL版本之间的迁移.升级.不足之处就是数 据库比较大时,mysqldump的效率不高. mysqldump的主要参数收集整理注释如下,如果你要查看mysqldump的具体参数信息,可以使用命令mysqldump –help --add-drop-table      

MySQL 备份还原数据库批处理_Mysql

1.备份数据库(单个表备份) bk_table.bat 复制代码 代码如下: mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk -t database1 table1>table1.sql mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk -t database2 table2>table2.sql mysqld

linux下如何备份还原mysql数据库

本文介绍了linux下如何备份与恢复mysql数据库. 数据库备份是非常重要的.如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少. 一. 用命令实现备份 MySQLl提供了一个mysqldump命令,我们可以用它进行数据备份. 按提示输入密码,这就把tm数据库所有的表结构和# mysqldump -u root -p tm > tm_050519.sql数据备份到tm_050519.sql了,因为要总进行备份工作,如果数据量大会占用很大空间,这时可以利用

简单的MySQL备份与还原方法分享_Mysql

为了安全起见,需要经常对数据库作备份,或者还原.对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出.导入功能了,但如果你的数据库体积比较大,作为 Web 应用的 phpMyAdmin 可能会遭遇"超时"而操作失败.所以,学会在命令行模式下备份.还原数据库,还是很有必要的. Linux系统下 备份数据库 在 Linux 命令行模式下备份 MySQL 数据库,用的是 mysqldump 命令: mysqldump -u mysqluser -p test_db 对

备份校验两不误,MySQL自动备份还原校验设计详解

作者介绍 庞阔,优朋普乐传媒运维基础部经理.负责数据库运营管理及平台设计开发,监控设计改进,问题跟踪处理,机房网络维护管理,目前四个专利已在专利局申请中.擅长数据库运维管理及Shell.Perl.PHP编写.   背景   最近关于数据库故障出现的问题较多,不论大小公司对数据的备份要求都很高,但对校验数据备份的有效性要求更为迫切,很多公司对于自动备份和还原都已经形成体系,但对于还原后的备份有效性校验可能都不太完善,而且目前网上也没有较为完善的检验机制(可能我没找到).   对数据库备份的有效性校

mysql备份利器 Innobackup 大数据备份还原

大数据的备份和恢复,始终是个难点,当MySQL超过10个G,那么备份整个过程变得非常难熬,而且也不利于数据备份和恢复.这时候,刚好出现一款备份MySQL的工具 innobackup,速度比mysqldump要快好多 一.Xtrabackup介绍 1.Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具:xtrabacku