The following maintenance jobs are typically run against a MySQL database:
“Backup”
Clean-up binary logs.
Optimize tables
Purge query cache
Rotate binary logs
Backup
A backup is not a typical maintenance job. But it behaves more or less like one. The backup should be done regularly depending on the restore/PITR (Point in Time Recovery) requirements.
Make sure, that in the backup all the necessary files (data files, transaction log files, configuration files and binary log files) are included. To prove that the backup process is working properly a regular restore should be performed. This can ideally be combined with the set-up of new database instances for developers or testing.
Clean-up the binary logs
The binary logs can be cleaned-up in two ways:
a) Passive by MySQL itself:
|
b) Active by the customers environment:
|
Make sure NO binary logs are purged which are still needed by a slave. In this situation the slave is lost and has to be set-up from scratch.
Make also sure binary logs are not removed by a file system operation (rm bin-log.*). Otherwise the database gets confused.
Optimize table
|
This operation internally copies the whole table and therefore can take a long time!
Purge query cache
When there are SELECT queries with different sizes of result sets the query cache gets de-fragmented. This is shown by a lot of free space in the query cache but also a lot of not cached queries. Here it makes sense to purge the query cache from time to time.
|
Binlog rotate
|
What other MySQL maintenance jobs are you performing (not application related) I am very interested in...