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还有很多细节地方值得我们去学习、研究。限于篇幅,不在此一一赘述。
MySQL备份还原——AutoMySQLBackup介绍的更多相关文章
- (4.8)mysql备份还原——binlog查看工具之show binlog的使用
(4.8)mysql备份还原——binlog查看工具之mysqlbinlog及show binlog的使用 关键词:show binlog,mysql binlog查看,二进制文件查看,binlog查 ...
- (4.5)mysql备份还原——深入解析二进制日志(1)binlog的3种工作模式与配置
(4.5)mysql备份还原——深入解析二进制日志(binlog) 关键词:二进制日志,binlog日志 0.建议 (1)不建议随便去修改binlog格式(数据库级别) (2)binlog日志的清理 ...
- (4.3)mysql备份还原——mysql备份策略
(4.3)mysql备份还原——mysql备份策略 1.指定备份策略时需要考虑的点 [1.1]备份周期:2次备份间隔时长 [1.2]备份方式:在备份周期中,使用什么备份方式.备份模式 [1.3]实现方 ...
- (4.1)mysql备份还原——mysql常见故障
(4.1)mysql备份还原——mysql常见故障 1.常见故障类型 在数据库环境中,常见故障类型: 语句失败,用户进程失败,用户错误 实例失败,介质故障,网络故障 其中最严重的故障主要是用户错误和介 ...
- Percona XtraBackup 关于 MySQL备份还原的详细测试
一. Percona XtraBackup 的优点. (1)无需停止数据库进行InnoDB热备: (2)增量备份MySQL: (3)流压缩传输到其它服务器: (4)在线移动表: (5)能够比较容易地创 ...
- (4.14)mysql备份还原——mysql物理热备工具之ibbackup
关键词:mysql热备工具,ibbackup,mysql物理备份工具 1. 准备 ibbackup 是 InnoDB 提供的收费工具,它支持在线热备 InnoDB 数据,主要有以下特性: * Onli ...
- C#程序调用cmd执行命令-MySql备份还原
1.简单实例 //备份还原mysql public static void TestOne() { Process p = new Process(); p.StartInfo.FileName = ...
- Myschool乱码问题 和mysql 备份还原
show variables like 'character_set%'; alter table users modify username ) character set gbk; alter t ...
- 基于xtrabackup实现mysql备份还原
简介 Xtrabackup2.2版之前包括4个可执行文件: innobackupex: Perl 脚本 xtrabackup: C/C++ 编译的二进制 xbstream: 支持并发写的流文件格式 x ...
随机推荐
- NPM使用前设置和升级
升级版本npm3和切换模块数据源为taobao,大大提高下载速度. 步骤一:升级npm3默认npm为2.x推荐使用npm3. npm i -g npm@3 步骤二:修改npm数据源为taobao(默认 ...
- 【Android】《App研发录》总结
说明 看这本书的时候,总感觉怪怪的. 因为在地铁上看完的,作者书中基本都是他自己工作中遇到的问题和坑,虽说这样会让人感觉找到了解决方案,可以再进行深入的研究,可是某些地方介绍的有点片面,仅仅是引用部分 ...
- Access数据库多表连接查询
第一次在Access中写多表查询,就按照MS数据库中的写法,结果报语法错,原来Access的多表连接查询是不一样的 表A.B.C,A关联B,B关联C,均用ID键关联 一般写法:select * fro ...
- mousewheel事件的兼容方法
在垂直方向上滚动页面时,会触发mousewheel事件,这个事件会在任何元素上触发,最终都会冒泡到document(IE8)或window(IE9+及其他主流现代浏览器)对象. 在给元素指定mouse ...
- 一个简单的inno setup模板
一.模板代码 基本功能包括多路径安装.多语言.自定义图标. [Setup] ShowLanguageDialog=yes AppCopyright=Copyright Reserved(C) , 36 ...
- JS设置CSS样式的几种方式
用JS来动态设置CSS样式,常见的有以下几种 1. 直接设置style的属性 某些情况用这个设置 !important值无效 如果属性有'-'号,就写成驼峰的形式(如textAlign) 如果想保 ...
- Objective-C快速上手
最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...
- Effective java笔记(九),并发
66.同步访问共享的可变数据 JVM对不大于32位的基本类型的操作都是原子操作,所以读取一个非long或double类型的变量,可以保证返回的值是某个线程保存在该变量中的,但它并不能保证一个线程写入的 ...
- C# EPL USB 指令打印
private void btnPrinter_Click(object sender, EventArgs e) { #region ESC 热敏图像点阵像素点读取打印 //Bitmap bitma ...
- QTableWidget详解(样式、右键菜单、表头塌陷、多选等)
在Qt的开发过程中,时常会用到表单(QTableWidget)这个控件,网上的资料不少,但是都是最基本的,有一些比较经常遇到的问题也说得不太清楚.所以,今天就在这里总结一下! 以下为个人模拟Windo ...