天天看點

手動安裝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,如需轉載請自行聯系原作者