1. 程式人生 > >mysql定時執行某一儲存過程,並實現mysql資料庫的定時備份

mysql定時執行某一儲存過程,並實現mysql資料庫的定時備份

mysql儲存過程
1、儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數(如果該儲存過程帶有引數)來呼叫執行它。
語法:

CREATE PROCEDURE  過程名([[IN|OUT|INOUT] 引數名 資料型別[,[IN|OUT|INOUT] 引數名 資料型別…]]) [特性 ...] 過程體

DROP PROCEDURE IF EXISTS Proc;
CREATE PROCEDURE Proc()
BEGIN
INSERT INTO t_test (tname) VALUES ('張三');
END;
檢視已建立的儲存過程:
SHOW PROCEDURE STATUS;
SHOW CREATE PROCEDURE Proc;

2、定時器來呼叫儲存過程
檢視定時器是否開啟
show VARIABLES LIKE '%event_sche%';
開啟定時器
SET GLOBAL event_scheduler =1;

但是每次重啟電腦。或重啟mysql服務後,會發現,事件自動關閉(event_scheduler=OFF),所以想讓事件一直保持開啟,最好修改配置檔案,讓mysql服務啟動的時候開啟時間,只需要在my.ini配置檔案的[mysqld]部分加上event_scheduler=ON 即可

#預設開啟事件

event_scheduler=ON

3、建立事件

DROP EVENT IF EXISTS timeInsert;
CREATE EVENT timeInsert
ON SCHEDULE AT '2017-08-27 17:14:00'
ON COMPLETION PRESERVE
ENABLE
DO CALL Proc();
3.1. AT 時間戳,用來完成單次的計劃任務。
3.2. EVERY 時間(單位)的數量時間單位[STARTS 時間戳] [ENDS時間戳],用來完成重複的計劃任務
在兩種計劃任務中,時間戳可以是任意的TIMESTAMP 和DATETIME 資料型別,時間戳需要大於當前時間。
在重複的計劃任務中,時間(單位)的數量可以是任意非空(Not Null)的整數式,時間單位是關鍵詞:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND。
ON COMPLETION引數表示"當這個事件不會再發生的時候",即當單次計劃任務執行完畢後或當重複性的計劃任務執行到了ENDS階段。而PRESERVE的作用是使事件在執行完畢後不會被Drop掉,建議使用該引數,以便於檢視EVENT具體資訊。
引數Enable和Disable表示設定事件的狀態。Enable表示系統將執行這個事件。Disable表示系統不執行該事件。
可以用如下命令關閉或開啟事件:
ALTER EVENT event_name  ENABLE/DISABLE
[COMMENT 'comment']
註釋會出現在元資料中,它儲存在information_schema表的COMMENT列,最大長度為64個位元組。'comment'表示將註釋內容放在單引號之間,建議使用註釋以表達更全面的資訊
DO sql_statement欄位表示該event需要執行的SQL語句或儲存過程。這裡的SQL語句可以是複合語句,

檢視事件
SHOW EVENTS;

4.建立批處理指令碼copyMysql.bat備份mysql資料庫

echo 取日期、時間變數值

set filename=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

#如果mysql未加入到環境變數中則需要完整路徑C:Program_Files_MySQL_MySQL_Server_5.7_bin_mysqldump.exe
#_表示路徑分隔符
#-u表示使用者-p後面是密碼
#bill資料庫名稱
#-E匯出事件
mysqldump -uroot -proot --opt --default-character-set=utf8 -e --triggers  -R -E --hex-blob --flush-logs -x bill > D:/db_backup/bill%filename%.sql
 
echo 匯出已經完成  
#pause  
注意:批處理命令中路徑裡有空格的話,必須在路徑上加上雙引號!

以上使用mysqldump的進行mysql資料庫的備份,詳細瞭解請百度檢視相關資料

5.windows建立定時任務(百度一下)

參考:



http://www.cnblogs.com/zoro-zero/p/6511203.html
http://www.cnblogs.com/chevin/p/5683281.html
http://blog.csdn.net/lixingshi/article/details/54375460
http://www.cnblogs.com/andyshu/p/restTime.html