Merge branch 'randomize_optimize'

This commit is contained in:
Gabriel Filion 2014-03-12 11:43:31 -04:00
commit 84fba22bad
4 changed files with 26 additions and 5 deletions

10
README
View file

@ -61,6 +61,16 @@ Optimizing tables
If you wish mysql to periodically optimize tables, set the If you wish mysql to periodically optimize tables, set the
"$mysql_optimize_cron = true" variable before you include mysql::server. "$mysql_optimize_cron = true" variable before you include mysql::server.
By default, time of execution for the optimization script will be randomly
chosen (and will stay consistant for a server) any day between midnight and
7:00 AM. If you wish to force at least one value, you can use the following
parameters to the mysql::server class (all values are used directly as a
cronjob value so they should be set within cron value space):
* optimize_day => sets the day of the week (integer value) during which the script will run.
* optimize_hour => sets the hour at which the optimization script will run.
* optimize_minute => sets the minute in the hour at which the script will run.
Munin Munin
----- -----

View file

@ -8,6 +8,9 @@ class mysql::server (
$nagios_password_hash = 'absent', $nagios_password_hash = 'absent',
$backup_cron = false, $backup_cron = false,
$optimize_cron = false, $optimize_cron = false,
$optimize_hour = fqdn_rand(7),
$optimize_minute = fqdn_rand(60),
$optimize_day = fqdn_rand(7),
$backup_dir = '/var/backups/mysql', $backup_dir = '/var/backups/mysql',
$manage_backup_dir = true, $manage_backup_dir = true,
$nagios_notcp = false $nagios_notcp = false

View file

@ -70,7 +70,11 @@ class mysql::server::base {
} }
if $mysql::server::optimize_cron { if $mysql::server::optimize_cron {
include mysql::server::cron::optimize class { 'mysql::server::cron::optimize':
optimize_hour => $mysql::server::optimize_hour,
optimize_minute => $mysql::server::optimize_minute,
optimize_day => $mysql::server::optimize_day,
}
} }
service { 'mysql': service { 'mysql':

View file

@ -1,5 +1,9 @@
# optimize mysql databases regurarely # optimize mysql databases regurarely
class mysql::server::cron::optimize { class mysql::server::cron::optimize (
$optimize_hour,
$optimize_minute,
$optimize_day
) {
file { 'mysql_optimize_script': file { 'mysql_optimize_script':
path => '/usr/local/sbin/optimize_mysql_tables.rb', path => '/usr/local/sbin/optimize_mysql_tables.rb',
@ -12,9 +16,9 @@ class mysql::server::cron::optimize {
cron { 'mysql_optimize_cron': cron { 'mysql_optimize_cron':
command => '/usr/local/sbin/optimize_mysql_tables.rb', command => '/usr/local/sbin/optimize_mysql_tables.rb',
user => 'root', user => 'root',
minute => 40, minute => $optimize_minute,
hour => 6, hour => $optimize_hour,
weekday => 7, weekday => $optimize_day,
require => [ Exec['mysql_set_rootpw'], require => [ Exec['mysql_set_rootpw'],
File['mysql_root_cnf'], File['mysql_root_cnf'],
File['mysql_optimize_script'] ], File['mysql_optimize_script'] ],