Quale meccanismo utilizza MySQL per pianificare i backup su Windows Server 2008?


8

Quando si pianificano backup di database su MySQL Server (v5.1.45-community) in esecuzione su Windows Server 2008, quale meccanismo viene utilizzato per attivare l'esecuzione dei backup? Penso che stia utilizzando l'Utilità di pianificazione di Windows, ma non vedo alcuna attività ovvia per questi backup. SQL Server utilizza un servizio agente separato. C'è qualcosa di simile in MySQL?

INFORMAZIONI AGGIUNTIVE: I backup sono stati configurati con MySQL Administrator. Sono a conoscenza di come pianificare i backup, ma non sono in esecuzione e sto cercando informazioni su dove iniziare la risoluzione dei problemi.

Risposte:



3

All'interno di MySQL 5.1+ esiste la possibilità di creare la pianificazione degli eventi .

Ecco un esempio di come pianificare la cancellazione di righe da una tabella che hanno più di 2 ore:

drop database rolando;
create database rolando;
use rolando
create table mydata (id int not null auto_increment primary key,ti_time timestamp DEFAULT current_timestamp) ENGINE=MyISAM;
DELIMITER $$
DROP PROCEDURE IF EXISTS `rolando`.`LoadMyData` $$
CREATE PROCEDURE `rolando`.`LoadMyData` ()
BEGIN
    DECLARE NDX INT;
    SET NDX = 0;
    WHILE NDX < 100 DO
        INSERT INTO mydata (ti_time) VALUES (NOW() - INTERVAL CEILING(14400*RAND()) SECOND);
    SET NDX = NDX + 1;
    END WHILE;
END $$
DELIMITER ;
show create table mydata\G
SHOW CREATE PROCEDURE LoadMyData\G
CALL rolando.LoadMyData();
CREATE TABLE ta_table LIKE mydata;
ALTER TABLE ta_table DISABLE KEYS;
INSERT INTO ta_table SELECT SQL_NO_CACHE * FROM mydata;
ALTER TABLE ta_table ENABLE KEYS;
CREATE EVENT ev
    ON SCHEDULE
      EVERY 1 MINUTE
      STARTS (NOW() + INTERVAL 1 MINUTE)
    DO
      DELETE FROM ta_table WHERE ti_time > NOW() - INTERVAL 2 HOUR;
SELECT COUNT(1) FROM ta_table;
SELECT SLEEP(62);
SELECT COUNT(1) FROM ta_table;

Per attivare la pianificazione degli eventi è necessario fare due cose:

Innanzitutto, attivare manualmente:

SET GLOBAL event_scheduler = 1;

Quindi, aggiungilo a my.ini per mantenere lo scheduler degli eventi nel caso in cui riavvii mysql

[mysqld]
event_scheduler = 1;

Da qui, è possibile progettare la propria procedura di backup del cliente utilizzando le procedure memorizzate e quindi pianificare tale procedura memorizzata. Tuttavia, l'unico svantaggio di cui ho sentito parlare è stato l'aggiornamento delle tabelle InnoDB all'interno della procedura memorizzata chiamata da un evento che una volta ho cercato di aiutare a risolvere questo problema .

Un approccio più stabile senza utilizzare MySQL Events è anche l'approccio più semplice.

Scrivi un file batch DOS che esegua un mysqldump e salvi l'output nel file di destinazione che preferisci. Quindi, utilizzare semplicemente lo scheduler di Windows per chiamare quel file batch DOS.

Provaci !!!


1

usiamo todo backup server da molto tempo. offre backup completi, incrementali e differenziali. di solito impostiamo un programma di backup giornaliero e salviamo tre versioni delle immagini, il che significa che il software elimina automaticamente le vecchie immagini. un file specifico può anche essere ripristinato in Windows Explorer da una cartella o un'immagine di backup della partizione. siamo utenti di piccole imprese e non possiamo permetterci alcuni software di backup che costano 1k di dollari. quindi abbiamo scoperto che il backup si adatta molto bene a noi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.