- 1、mysql如何查看定時器有沒有執行
- 2、mysql定時操作有關時間差的問題
- 3、如何在程序中實現對mysql的定時訪問
- 4、如何實現Mysql資料庫每天自動備份定時備份?
mysql如何查看定時器有沒有執行
1.查看是否開啟evevt與開啟evevt。
1.1、MySQL evevt功能默認是關閉的,可以使用下面的語句來看evevt的狀態,如果是OFF或者0,表示是關閉的。
show VARIABLES LIKE ‘%sche%’;
1.2、開啟evevt功能
SET GLOBAL event_scheduler = 1;
2.創建定時器的過程
2.1、創建測試表test
drop table if exists test;
create table test
(
id int(11) not null auto_increment primary key,
time datetime not null
) engine=innodb default charset=utf8;
2.2、創建evevt要調用的存儲過程test_proce
delimiter //
drop procedure if exists test_proce//
create procedure test_proce()
begin
insert into test(time) values(now());
end//
delimiter ;
2.3、開啟evevt(要使定時起作用,MySQL的常量GLOBAL event_scheduler必須為on或者是1)
執行show variables like ‘event_scheduler’;查看evevt是否開啟;
若沒開啟執行set global event_scheduler=’on’;
2.4、創建事件test_event(其作用:每隔一秒自動調用test_proce()存儲過程)
drop event if exists test_event;
create event test_event
on schedule every 1 second
on completion preserve disable
do call test_proce();
2.5、開啟事件test_event
MySQL從5.1開始支持event功能,類似oracle的job功能。
創建定時器 調用的存儲過程
DELIMITER $$
DROP PROCEDURE IF EXISTS e_test $$
CREATE PROCEDURE e_test()
BEGIN
update pcdemo set v_isbag=0 where v_isbag=1 and to_days(now())-to_days(d_lasttime)=10;
END $$
DELIMITER ;
要使定時起作用 MySQL的常量GLOBAL event_scheduler必須為on或者是1
查看是否開啟定時器
SHOW VARIABLES LIKE ‘%sche%’;
開啟定時器 0:off 1:on
SET GLOBAL event_scheduler = 1;
創建事件
–每隔一秒自動調用e_test()存儲過程
CREATE EVENT IF NOT EXISTS event_test
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION PRESERVE
DO CALL e_test();
開啟事件
ALTER EVENT event_test ON
COMPLETION PRESERVE ENABLE;
關閉事件
ALTER EVENT event_test ON
COMPLETION PRESERVE DISABLE;
修改 mysql 的 連接時間
============
第一種方法就是修改mysql,當時查資料《mysql5 管理員手冊》裡面說 mysql的timeout時間預設是28800秒,也就是8小時,增加一個0就沒問題了。 及在mysql界面裡面輸入mysqld-nt –default-table-type=innodb –interactive_timeout=288000。
如果是MySQL5以前的版本,需要修改連接池配置中的URL,添加autoReconnect=true
如果是MySQL5 以後的版本,需要修改my.cnf(或者my.ini)文件,在[mysqld]後面添加
wait_timeout = 172800
interactive-timeout = 172800
單位都是秒,記得必須都添加,否則不起作用,通過show variables查看wait_timeout的值。
第二種方法是在系統中做相應的配置,這種配置又分為兩種,一種是傳統的在系統中寫定時檢查連接的文件,另外一種就是交給伺服器,讓伺服器來完成。先說第一種吧,我當時用的是c3p0鏈接池(因為當時還很崇尚hibernate),就是把3p0.testConnectionOnCheckout設置為true,然後將c3p0.preferredTestQuery設置為”select id from users where id=1″(users是我在項目中用戶表,你也可以根據自己的實際換其他的表,但是查詢的數據必須存在,*在附件中附上c3p0的常用屬性)。第二種,jndi,其他的都差不多,及Resource name=”jdbc/TestDB” auth=”Container” type=”javax.sql.DataSource”
maxActive=”100″ maxIdle=”30″ maxWait=”10000″
username=”feiji” password=”111111″ driverClassName=”com.mysql.jdbc.Driver”
url=”jdbc:mysql://localhost:3306/javatest?autoReconnect=true”/其他的就不多做解釋了,因為都很簡單的東西,很多都是官方文檔上面有的
利用UCache災備雲平台,可作為一個工具,在window伺服器現有架構不變的情況下,針對Mysql資料庫每天自動備份定時備份。
(1)新建備份任務
UCACHE災備雲控制台登錄賬號後:點擊【伺服器定時數據保護】–【數據備份】點擊【新建】按鈕,然後選要保護的對象(您的生產伺服器節點),選中對應的客戶端,選擇【文件系統】然後點擊【 下一步 】
(2)設置備份策略
選擇要進行備份的文件
(3)永久增量備份與數據保留設置
選擇完要過濾的數據之後點擊下一步,可進行下一步備份的高級功能選擇,各個選項說明如下:
【永久增量備份】開啟了永久增量備份每一次增量備份都會進行一次時間點合成形成新的一個永久增量時間點等效於完備時間點。
【數據保留策略】開啟數據保留策略一共有三種保留策略分別為數據保留期限、保留副本數、按備份策略的備份周期設置副本保留策略默認選中數據保留期限一年。可以設置保留完全副本的個數最大可設置1024個副本按備份策略的備份周期設置副本保留策略最大可設置99999個副本。
【傳輸和存儲加密】開啟傳輸加密與存儲加密選項開啟此功能的任務的數據在傳輸和存儲上都經過加密處理。一共有兩種加密方式AES256加密演算法、SM4加密演算法。
【數據壓縮】默認不開啟開啟該選項後默認啟用快速壓縮可選擇啟用強力壓縮
【重複數據刪除】勾選該選項可以啟動源端重複數據刪除的功能該選項在建立任務後不能通過修改任務的方式更改此屬性。指紋庫需要提前創建才能成功開啟重刪功能
最後新建完成
目錄和文件內容,可以全選和分選,還可以利用UCACHE災備雲控制台的「文件過濾」「目錄過濾」「時間過濾」功能進行不必要的數據不進行備份策略添加。為了備份效率不建議兩個任務包含同一文件。
(4)設置郵件告警
備份執行完畢,會得到系統的執行反饋,也可以設定告警監控策略,進行郵件監控
原創文章,作者:GX4DF,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126604.html