windows下使用mysqldump備份資料庫並上傳到阿里雲OSS

kuriyama發表於2024-04-07

使用 mysqldump 備份表

powershell 下使用 | Out-file -Encoding utf8 設定字元格式

.\mysqldump.exe --single-transaction --user=root --password=123456 --host 127.0.0.1 --port 3306 --default-character-set=utf8 --hex-blob --routines --events "database_name" | Out-file -Encoding utf8 test1.sql

cmd

mysqldump.exe --single-transaction --user=root --password=123456 --host 127.0.0.1 --port 3306 --default-character-set=utf8 --hex-blob --routines --events "database_name" > test1.sql

引數說明

--single-transaction 不阻塞程式的情況下保證匯出資料一致性,InnoDB 支援

--default-character-set 設定字符集

--hex-blob 轉換 bit 型別

--routines 匯出儲存過程以及自定義函式

--events 匯出事件

使用 OSSUtil 工具上傳備份資料

  1. 下載 ossutil 工具:下載並安裝命令列工具ossutil_物件儲存(OSS)-阿里雲幫助中心 (aliyun.com)

image

  1. 配置 ossutil 工具:下載並安裝命令列工具ossutil_物件儲存(OSS)-阿里雲幫助中心 (aliyun.com)

  2. 測試上傳檔案

    ossutil64 cp .\images\download_ossutil.png oss://bucket-name/download_ossutil.png
    

使用 windows 任務計劃程式執行定時備份

  1. 編寫備份指令碼

    @echo off
    echo ****** MySQL backup start ******
    
    ::設定時間變數
    set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"
    
    ::設定檔案儲存位置
    set "BucketName=bucket-name"
    set "SavePath=%temp%\backup_%Ymd%.sql"
    
    ::進入mysql安裝目錄bin目錄
    cd D:\dev\sql\mysql-8.3.0-winx64\bin
    
    ::執行備份操作
    mysqldump.exe --single-transaction --user=root --password=123456 --host 127.0.0.1 --port 3306 --default-character-set=utf8 --hex-blob --routines --events "database_name" > %SavePath%
    
    echo ****** Upload to OSS ******
    ::上傳到 阿里雲OSS
    D:\dev\oss\ossutil-v1.7.19-windows-amd64\ossutil64.exe cp %SavePath% oss://%BucketName%/backup_%Ymd%.sql
    
    ::移除檔案
    del /f /s /q %SavePath%
    
    echo ****** MySQL backup end ******
    @echo on
    
    1. 建立任務

      • 開啟 任務計劃程式

      • 建立基本任務

        image

      • 設定任務啟動指令碼

        image

      • 完成設定

        image

引用連結

mysqldump 引數說明:MySql資料庫備份與恢復——使用mysqldump 匯入與匯出方法總結

ossutil 使用文件:ossutil概述_物件儲存(OSS)-阿里雲幫助中心 (aliyun.com)

相關文章