windows下mysql自動備份及備份同步至遠端的NAS解決方案


一、問題描述

某項目客戶要求把阿里雲上一台ECS非核心的mysql庫做備份,具體要求如下:

1、每天1:00對mysql數據庫進行完全備份。

2、備份文件存放到阿里雲的NAS平台上。

3、保留5天的備份副本。

TPS:

  • 運行mysql的ECS的操作系統為windows 2012 64位

  • mysql的版本為MariaDB 10.2

  • 本地備份路徑在C:\mysql_backup(因為只有一個系統盤,沒得選擇)

看似很簡單的問題,中間在實施過程中,還是遇到一些坑,特地作一下記錄,以備后續參考。

 

二、實施過程

拓撲圖-20210825

2.1 編寫mysql的備份腳本

1、mysql的自動備份腳本

@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
cd C:\Program Files\MariaDB 10.2\bin&&mysqldump -hlocalhost  -uroot -p***** --single-transaction --opt --events  --triggers  --routines -B itsm > C:\itop_mysql_backup\itsm_%Ymd%.sql
​
forfiles /p "C:\itop_mysql_backup" /s /m *.sql /d -5 /c "cmd /c del @path"

  

mysqldump參數說明:

  • --single-transaction:該選項在導出數據之前提交一個BEGIN SQL語句,BEGIN 不會阻塞任何應用程序且能保證導出時數據庫的一致性狀態。它只適用於多版本存儲引擎,僅InnoDB。本選項和--lock-tables 選項是互斥的,因為LOCK TABLES 會使任何掛起的事務隱含提交。要想導出大表的話,應結合使用--quick 選項。

  • --opt: 等同於--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 該選項默認開啟, 可以用--skip-opt禁用.

  • --event: 導出事件

  • --triggers: 導出觸發器

  • --routines:導出存儲過程以及自定義函數

forfiles參數說明:

  • /p Path

    指定 Path,表明要從哪里開始搜索。默認的文件夾是當前工作目錄,該目錄通過鍵入句號 (.) 指定。

    注:絕對路徑應該包含在雙引號中,且路徑應該由反斜杠分割:example:"D:\HOME\Desktop\62backup"

  • /m SearchMask

按照 SearchMask 搜索文件。默認的 SearchMask*.*

  • /s

指示 forfiles 在子目錄中搜索。

  • /c Command

在每個文件上運行指定的 Command。帶有空格的命令字符串必須用引號括起來。默認的 Command"cmd /c echo @file"

  • /d[{+ | -}] [{MM/*DD/YYYY* | DD}]

選擇日期大於或等於 (+)(或者小於或等於 (-))指定日期的文件,其中 MM/*DD/YYYY* 是指定的日期,DD 是當前日期減去 DD 天。如果未指定 +-,則使用 +DD 的有效范圍是 0 - 32768。

  • /?

在命令提示符下顯示幫助。

2、設置腳本的靜默執行

mysql_bak.vbs,內容如下:

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c mysql_bak.bat",vbhide

  

參數說明:

  • mysql_bak.bat:mysql備份腳本文件名。

2.2 設置定時計划

1、任務計划--》創建基本任務

image-20210825165159231

 

 

image-20210825165318543

 

2、設置觸發器

image-20210825165421505

 

3、設置操作

image-20210825165646689

 

 

2.3 同步備份文件至NAS

1、安裝SyncBackPro軟件

2、創建任務

1)點擊添加按鈕,創建任務

image-20210825170127110

2)選擇任務的類型

image-20210825170305072

TPS:

  • 備份:不會刪除目標端的文件,如果此文件在源端不存在的話。

  • 同步:是雙向同步,最終兩邊的文件會達到一致。

  • 鏡像:以源為標准,同步到目標源,如果目標端的文件在源中不存在,則目標端的文件會被刪除掉。

3)選擇同步文件的位置

image-20210825171009296

4)選擇要同步的源文件夾和目標文件夾

image-20210825171326414

3、創建定時計划

1)創建計划任務

image-20210825171654561

2)設置計划任務

image-20210825171907711

三、注意事項

1、設置windows計划時,操作階段,必須在“起始於”設置腳本的路徑,否則bat不能成功執行。具體如下圖所示:

image-20210825165646689

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM