天天看点

手动安装AutoMySQLbackup

1 前言

公司的前辈使用AutoMySQLbackup脚本备份数据库,去官方学习一番,发现确实是个不错的东西,可以简化MySQL备份,然后自己整理出来分享。

由于是个人整理,以下不保证完全正确,所以英文好的还是建议看官方文档,本文仅当参考。当然,有指正的非常欢迎。

2 实践部分

2.1 下载并解压备份程序

1

2

<code>wget https:</code><code>//svwh</code><code>.dl.sourceforge.net</code><code>/project/automysqlbackup/AutoMySQLBackup/AutoMySQLBackup</code><code>%20VER%203.0</code><code>/automysqlbackup-v3</code><code>.0_rc6.</code><code>tar</code><code>.gz</code>

<code>tar</code> <code>-xf automysqlbackup-v3.0_rc6.</code><code>tar</code><code>.gz</code>

2.2 创建程序目录

<code>mkdir</code> <code>/etc/automysqlbackup</code>

2.3 部署自动备份软件的配置文件

<code>cp</code> <code>automysqlbackup.conf </code><code>/etc/automysqlbackup/</code>

<code>cp</code> <code>/etc/automysqlbackup/automysqlbackup</code><code>.conf </code><code>/etc/automysqlbackup/myserver</code><code>.conf</code>

2.4 部署自动备份可执行文件

<code>cp</code> <code>automysqlbackup </code><code>/usr/local/bin/</code>

2.5 定义配置任务

2.5.1 配置文件位置

<code>vim </code><code>/etc/automysqlbackup/myserver</code><code>.conf</code>

2.5.2 MySQL与MySQLDump可执行程序位置(可选)

查询MySQL与MySQLDump程序路径

<code>whereis</code> <code>mysql; </code><code>whereis</code> <code>mysqldump</code>

显示如下:

<code>mysql: </code><code>/usr/bin/mysql</code> <code>/usr/lib64/mysql</code> <code>/usr/include/mysql</code> <code>/usr/share/mysql</code> <code>/usr/share/man/man1/mysql</code><code>.1.gz</code>

<code>mysqldump: </code><code>/usr/bin/mysqldump</code> <code>/usr/share/man/man1/mysqldump</code><code>.1.gz</code>

故参数配置如下:

<code>PATH=${PATH}:</code><code>/usr/bin</code>

注:如果使用whereis查询不到,说明没有环境变量,则需要指定程序的真实位置。

2.5.3 基本配置

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<code># 数据库备份用户</code>

<code>CONFIG_mysql_dump_username=</code><code>'root'</code>

<code># 数据库备份用户密码</code>

<code>CONFIG_mysql_dump_password=</code><code>''</code>

<code># 数据库服务器名称或IP地址</code>

<code>CONFIG_mysql_dump_host=</code><code>'localhost'</code>

<code># 数据库服务器更适合人类辨识的名称(不配置则默认为CONFIG_mysql_dump_host指定值)</code>

<code>CONFIG_mysql_dump_host_friendly=</code><code>''</code>

<code># 数据库备份存放的位置 </code>

<code>CONFIG_backup_dir=</code><code>'/var/backup/db'</code>

<code># 多种压缩方式</code>

<code># pigz -&gt; gzip</code>

<code># pbzip2 -&gt; bzip2</code>

<code>CONFIG_multicore=</code><code>'yes'</code>

<code># 多线程(内核数量应小于内核数量,不能等于)</code>

<code>CONFIG_multicore_threads=2</code>

2.5.4 配置要备份的数据库

<code># 配置备份的数据库,默认是所有,特定数据库请写成 ( 'DB1' 'DB2' 'DB3' ... )</code>

<code>CONFIG_db_names=()</code>

<code># 月备份的数据库列表,为空则自动从information_schema数据库读取</code>

<code>CONFIG_db_month_names=()</code>

<code># 排除的数据库,可使用通配符方式,如'mydb.a*'</code>

<code>#CONFIG_table_exclude=()</code>

2.5.5 高级配置

<code># 定义每月的那一天备份,使用01到31表示,0表示关闭月备份</code>

<code>#CONFIG_do_monthly="01"</code>

<code># 定义每周的那一天备份,使用1到7 表示,0 表示关闭周备份</code>

<code>CONFIG_do_weekly=</code><code>"5"</code>

<code># 配置日备份文件保留的天数,最小单位1天(24小时)</code>

<code>CONFIG_rotation_daily=6</code>

<code># 配置周备份文件保留的天数,最小单位1天(24小时)</code>

<code>CONFIG_rotation_weekly=35</code>

<code># 配置月备份文件保留的天数,最小单位1天(24小时)</code>

<code>CONFIG_rotation_monthly=150</code>

2.5.6 服务器连接设置

2.5.7 服务器连接配置

23

24

25

26

<code># 数据库连接的端口</code>

<code>CONFIG_mysql_dump_port=3306</code>

<code># 压缩服务器与MySQL数据库之间的通讯</code>

<code>CONFIG_mysql_dump_commcomp=</code><code>'no'</code>

<code># 使用SSL加密MySQLDump</code>

<code>CONFIG_mysql_dump_usessl=</code><code>'yes'</code>

<code># 使用Unix socket file方式连接数据库</code>

<code>#CONFIG_mysql_dump_socket=''</code>

<code># 客户端与服务器通讯的缓冲区大小 (最大1GB)</code>

<code>CONFIG_mysql_dump_max_allowed_packet=</code><code>''</code>

<code># 使用事务保证备份一致性</code>

<code>#CONFIG_mysql_dump_single_transaction='no'</code>

<code># http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html#option_mysqldump_master-data</code>

<code>#CONFIG_mysql_dump_master_data=</code>

<code># 直接加载mysql.proc表的内容</code>

<code>CONFIG_mysql_dump_full_schema=</code><code>'yes'</code>

<code># 文本文件中的表备份状态</code>

<code>CONFIG_mysql_dump_dbstatus=</code><code>'yes'</code>

2.5.8 备份转储设置

<code># 备份中包括Create Database</code>

<code>CONFIG_mysql_dump_create_database=</code><code>'no'</code>

<code># 为每个数据库分割备份目录和文件</code>

<code>CONFIG_mysql_dump_use_separate_dirs=</code><code>'yes'</code>

<code># 选择压缩的类型(gzip或bzip2)</code>

<code>CONFIG_mysql_dump_compression=</code><code>'gzip'</code>

<code># 将最新的附加副本存储的标准位置</code>

<code>#CONFIG_mysql_dump_latest='no'</code>

<code># 从最新文件夹中的文件名中删除所有日期和时间信息</code>

<code>#CONFIG_mysql_dump_latest_clean_filenames='no'</code>

<code># 使用差异备份</code>

<code>#CONFIG_mysql_dump_differential='no'</code>

2.5.9 通知设置

<code># 配置邮件的内容</code>

<code># - log   : 发送日志文件</code>

<code># - files :发送日志文件和sql作为附件</code>

<code># - stdout : 如果手动运行,将简单地把日志输出到屏幕</code>

<code># - quiet : 只有邮件地址发生错误时才发送日志</code>

<code>CONFIG_mailcontent=</code><code>'stdout'</code>

<code># 设置最大邮件大小(单位k)</code>

<code>#CONFIG_mail_maxattsize=4000</code>

<code># 允许使用tar拆分打包</code>

<code>CONFIG_mail_splitandtar=</code><code>'yes'</code>

<code># 使用uuencoded发送邮件</code>

<code>CONFIG_mail_use_uuencoded_attachments=</code><code>'no'</code>

<code># 接收邮件的邮箱 ([email protected])</code>

<code>#CONFIG_mail_address='root'</code>

2.5.10 加密设置

<code># 使用OpenSSL加密备份</code>

<code>CONFIG_encrypt=</code><code>'no'</code>

<code># 使用密码加密备份</code>

<code>#CONFIG_encrypt_password='password0123'</code>

2.5.11 其他设置

<code># 指定备份的本地文件,如my.cnf</code>

<code>CONFIG_backup_local_files=()</code>

<code># 备份开始前运行的命令</code>

<code>CONFIG_prebackup=</code><code>"/etc/mysql-backup-pre"</code>

<code># 备份结束后运行的命令</code>

<code>CONFIG_postbackup=</code><code>"/etc/mysql-backup-post"</code>

<code># 配置备份的文件夹和文件的权限</code>

<code>umask</code> <code>0077</code>

<code># 显示执行状态</code>

<code>CONFIG_dryrun=1</code>

2.6 调用程序以及配置

2.6.1 创建调用的计划任务

<code>vim </code><code>/etc/cron</code><code>.daily</code><code>/runmysqlbackup</code>

输入如下内容:

<code>#!/bin/sh</code>

<code>/usr/local/bin/automysqlbackup</code> <code>/etc/automysqlbackup/myserver</code><code>.conf</code>

<code>chown</code> <code>root.root </code><code>/var/backup/db</code><code>* -R</code>

<code>find</code> <code>/var/backup/db</code><code>* -</code><code>type</code> <code>f -</code><code>exec</code> <code>chmod</code> <code>400 {} \;</code>

<code>find</code> <code>/var/backup/db</code><code>* -</code><code>type</code> <code>d -</code><code>exec</code> <code>chmod</code> <code>700 {} \;</code>

2.6.2 授权计划任务脚本

<code>chmod</code> <code>+x </code><code>/etc/cron</code><code>.daily</code><code>/runmysqlbackup</code>

2.6.3 创建备份目录

<code>mkdir</code> <code>-p </code><code>/var/backup/db</code>

2.6.4 手动执行测试

<code>automysqlbackup </code><code>/etc/automysqlbackup/myserver</code><code>.conf</code>

2.6.5 确认备份

<code>gunzip </code><code>/var/backup/db/daily/mysql/daily_mysql_2017-02-28_19h27m_Tuesday</code><code>.sql.gz</code>

本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1902311,如需转载请自行联系原作者