it-swarm-eu.dev

Jak brzy po aktualizaci expire_logs_days param a restartování sql budou staré binlogy smazány?

MySQL 5.1.x | InnoDB | Okna

Můj datový adresář mysql se začíná zaplňovat protokoly bin.

V současné době mám na serveru Windows mysql nakonfigurováno následující nastavení:

[mysqld]
log-bin
server-id=1
binlog-do-db=foodb1
binlog-do-db=foodb2
expire_logs_days=25

Plánuji změnit nastavení expire_logs_days na expire_logs_days=10 a odrazit službu mysql. Jak brzy po provedení této změny mohu očekávat, že se staré protokoly bin vyklidí.

Děje se to pouze jako součást nočně naplánovaného úkolu? Nebo by to mělo být okamžité?

16
Mike B

Bude zpracována okamžitě při spuštění mysql.

Nemusíte čekat na restartování mysql.

Nejprve nastavte expire_logs_days být 10 v /etc/my.cnf

[mysqld]
log-bin
server-id=1
binlog-do-db=foodb1
binlog-do-db=foodb2
expire_logs_days=10

Dále se přihlaste do mysql a spusťte to

PURGE BINARY LOGS BEFORE (date(now()) + interval 0 second - interval 10 day);

Poznamenejte si datum a čas dotazu

mysql> select date(now()) + interval 0 second - interval 10 day;
+---------------------------------------------------+
| date(now()) + interval 0 second - interval 10 day |
+---------------------------------------------------+
| 2012-12-11 00:00:00                               |
+---------------------------------------------------+
1 row in set (0.00 sec)

mysql>

Příkaz PURGE BINARY LOGS tedy smaže všechny binlogy, jejichž datetime razítko předchází 2012-12-11 00:00:00.

Nakonec spusťte tento příkaz

SET GLOBAL expire_logs_days = 10;

A je to. Pro instalaci není třeba restartovat expire_logs_days .

Pokud jde o parametry replikace, je nutné restartovat ano.

29
RolandoMySQLDBA