mysql定时备份及删除历史数据
應用:發送到mysql數據庫的備份及刪除歷史數據
一、定時備份
點擊自動運行,新建批處理作業,在下方點擊備份,選擇需要備份的數據庫,選擇可用的工作,雙擊
2.列表中顯示了已經選擇的工作:
3.點擊保存,提示輸入文件名
4.?輸入數據備份,這樣自動運行列表中就有了:
5.點擊設置任務計劃,彈出框進行常規和觸發器設置:
?
新建觸發器
?
6.定時任務設置成功后,點擊自動運行
雙擊數據備份任務,點擊開始
二、定時刪除歷史數據
/*刪除一天前的所有數據,86400000是24h*/
DELETE FROM xz_sensor_data WHERE sensor_suffix_time <= (unix_timestamp() * 1000 - 86400000)
mysql數據庫,指定到某一時間,它就自動執行相應的操作?sql語句該怎么寫?
mysql要實現定時執行sql語句就要用到Event
具體操作如下:
先看看看event 事件是否開啟
show variables like '%sche%';
如沒開啟,則開啟。需要數據庫超級權限
set global event_scheduler =1;
創建存儲過程 update_a (注:就是你要執行的sql語句)
mysql> create procedure update_a() update a set a.y_avg=(select avg(b.youhao) from b where a.a_id=b.a_id);
創建一個定時任務:event e_updateA
mysql> create event if not exists e_updateA
-> on schedule every 60 second ---設置60秒執行一次
-> on schedule at date_add(now(),interval 1 minute) ---在一分鐘后執行
-> on completion preserve
-> do call update_a(); ---執行update_a()存儲過程
創建Event之后,sql語句就定時執行一次。
關閉事件任務
mysql> alter event e_updateA ON
-> COMPLETION PRESERVE DISABLE;
開啟事件任務
mysql> alter event e_updateA ON
-> COMPLETION PRESERVE ENABLE;
–查看時間調度器是否開啟
SHOW VARIABLES LIKE 'event_scheduler';
SELECT @@event_scheduler;
–開啟時間調度器
SET GLOBAL event_scheduler = 1;?
或
SET GLOBAL event_scheduler = ON;
–創建定時任務
create event if not exists e_test
on schedule every 30 second
on completion preserve
do call day_update();
CREATE EVENT if not exists event_day_update
ON SCHEDULE EVERY 1 DAY STARTS '2016-01-04 00:20:00'
ON COMPLETION PRESERVE
ENABLE
DO call day_update(); ?--day_update是存儲過程
–開啟定時任務
alter event event_day_update ON COMPLETION PRESERVE ENABLE;
–關閉定時任務
alter event event_day_update ON COMPLETION PRESERVE DISABLE;
設置事件在mysql啟動時自動開啟方法
1. 開啟事件,通過動態參數修改:SET GLOBAL event_scheduler = ON;
2. 在my.cnf中添加event_scheduler=ON。(如果沒有添加的話,mysql重啟事件又會回到原來的狀態)
總結
以上是生活随笔為你收集整理的mysql定时备份及删除历史数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态规划求解多段图最短路径
- 下一篇: C语言——狐狸和兔子的故事