windows下mysql全備份及還原(親測可用)

環境:mysql

要備份的數據庫ip爲 192.168.28.1 帳戶 test1 ,密碼 123456sql

本地數據庫ip 爲 192.168.28.2 帳戶 test1 ,密碼 123456數據庫

全備份分爲設置數據庫主從同步和沒設置主從同步ide

備份設置主從同步的數據庫:(back_full.bat)spa

@echo  off.net

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"日誌

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump" -utest1 --password=123456 -h192.168.28.1--flush_logs --single-transaction --master_data=2 --all-databases --delete_master_logs > E:\mysqlbk\full_sql\backup__%Ymd%.sqlorm

rem 參數介紹:ip

rem flush_logs: 刷新二進制日誌,會新創建並啓用一個二進制日誌文件rem

rem single-transaction:InnoDB 表在備份時,一般啓用選項 --single-transaction 來保證備份的一致性,實際上它的工做原理是設定本次會話的隔離級別爲:REPEATABLE READ,以確保本次會話(dump)時,不會看到其餘會話已經提交了的數據。

rem master_data=2: master-data參數在創建slave數據庫的時候會常常用到,由於這是一個比較好用的參數,默認值爲1,默認狀況下,會包含change master to,這個語句包含file和position的記錄始位置。master-data=2的時候,在mysqldump出來的文件包含CHANGE MASTER TO這個語句,處於被註釋狀態

rem all-databases :全部的數據庫

rem delete_master_logs:清理掉以前的二進制日誌文件

rem %date:~,4%%date:~5,2%%date:~8,2%取當天的日期

@echo  on

備份沒設置主從同步的數據庫:(back_full.bat)

@echo  off

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump" -utest1 --password=123456 -h192.168.28.1 --single-transaction --all-databases > E:\mysqlbk\full_sql\backup_%Ymd%.sql

rem 參數介紹:

rem single-transaction:InnoDB 表在備份時,一般啓用選項 --single-transaction 來保證備份的一致性,實際上它的工做原理是設定本次會話的隔離級別爲:REPEATABLE READ,以確保本次會話(dump)時,不會看到其餘會話已經提交了的數據。

rem all-databases :全部的數據庫

rem %date:~,4%%date:~5,2%%date:~8,2%取當天的日期

@echo  on


數據還原:(recover.bat)

@echo off

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql" -utest1 -p123456 -h192.168.28.1 --default-character-set=utf8 -f < E:\mysqlbk\full_sql\backup_%Ymd%.sql

rem 參數介紹:

rem default-character-set=utf8:設置字符集爲utf8,防止亂碼

rem -fforce,遇到錯誤直接跳過並繼續執行下面的

rem %date:~,4%%date:~5,2%%date:~8,2%取當天的日期

@echo on

相關文章
相關標籤/搜索