diff options
author | Don Brewer <dbrewer@dbrewer-host.usersys.redhat.com> | 2008-04-29 17:35:44 -0400 |
---|---|---|
committer | Brenton Leanhardt <bleanhar@redhat.com> | 2008-05-15 15:42:03 -0400 |
commit | 9c4703b25e43a3102ac79d6c5d15ea24f8e034d6 (patch) | |
tree | 4889f1aeb006a5391460a28878c6149f755a471a /templates | |
parent | 95f9398cb4cd1e531eaef21066ae02bb03ab0af1 (diff) | |
download | puppet-mysql-9c4703b25e43a3102ac79d6c5d15ea24f8e034d6.tar.gz puppet-mysql-9c4703b25e43a3102ac79d6c5d15ea24f8e034d6.tar.xz puppet-mysql-9c4703b25e43a3102ac79d6c5d15ea24f8e034d6.zip |
Fixing dependency issues related to Mysql replication
Diffstat (limited to 'templates')
-rw-r--r-- | templates/gather_master_data.bash.erb | 10 | ||||
-rw-r--r-- | templates/my.cnf.erb | 24 | ||||
-rw-r--r-- | templates/verify_slave_configuration.bash.erb | 70 |
3 files changed, 96 insertions, 8 deletions
diff --git a/templates/gather_master_data.bash.erb b/templates/gather_master_data.bash.erb index 53cf2cf..093b4a8 100644 --- a/templates/gather_master_data.bash.erb +++ b/templates/gather_master_data.bash.erb @@ -2,9 +2,9 @@ PATH=$PATH -logname=$(mysql -u replication --host=<%= mysql_master_ip_address %> --password=password --execute="show master status" | grep mysqllog | awk '{ print $1 }') +logname=$(mysql --user=<%= mysql_replication_user %> --host=<%= mysql_master_ip_address %> --password=<%= mysql_replication_password %> --execute="show master status" | grep mysqllog | awk '{ print $1 }') export logname -position=$(mysql -u replication --host=<%= mysql_master_ip_address %> --password=password --execute="show master status" | grep mysqllog | awk '{ print $2 }') +position=$(mysql --user=<%= mysql_replication_user %> --host=<%= mysql_master_ip_address %> --password=<%= mysql_replication_password %> --execute="show master status" | grep mysqllog | awk '{ print $2 }') export position rm /var/lib/mysql/set_master_repl_data.sql @@ -16,11 +16,11 @@ export mysql_master_ip_address=<%= mysql_master_ip_address %> echo CHANGE MASTER TO >> /var/lib/mysql/set_master_repl_data.sql echo MASTER_HOST=\'$mysql_master_ip_address\', >> /var/lib/mysql/set_master_repl_data.sql -echo MASTER_USER=\'replication\', >> /var/lib/mysql/set_master_repl_data.sql -echo MASTER_PASSWORD=\'password\', >> /var/lib/mysql/set_master_repl_data.sql +echo MASTER_USER=\'<%= mysql_replication_user %>\', >> /var/lib/mysql/set_master_repl_data.sql +echo MASTER_PASSWORD=\'<%= mysql_replication_password %>\', >> /var/lib/mysql/set_master_repl_data.sql echo MASTER_LOG_FILE=\'$logname\', >> /var/lib/mysql/set_master_repl_data.sql echo MASTER_LOG_POS=$position, >> /var/lib/mysql/set_master_repl_data.sql echo MASTER_CONNECT_RETRY=10\; >> /var/lib/mysql/set_master_repl_data.sql +/usr/bin/mysql --user=<%= mysql_replication_user %> --password=<%= mysql_replication_password %> --database=<%= mysql_root_database %> --host=<%= mysql_root_local_host %> --execute="source /var/lib/mysql/set_master_repl_data.sql" -/usr/bin/mysql --user='replication' --password='password' --database='mysql' --host='localhost' --execute="source /var/lib/mysql/set_master_repl_data.sql" diff --git a/templates/my.cnf.erb b/templates/my.cnf.erb index 1c009fa..db1a4ef 100644 --- a/templates/my.cnf.erb +++ b/templates/my.cnf.erb @@ -54,7 +54,7 @@ default-character-set=utf8 # <% if binary_logging %> log-output =FILE -log =/var/lib/mysql/mysqllog_general.log +#log =/var/lib/mysql/mysqllog_general.log log-slow-queries=/var/lib/mysql/mysqllog_slow_queries.log log-error =/var/lib/mysql/mysqlderror.log log-bin =/var/lib/mysql/mysqllog_bin.log @@ -74,6 +74,10 @@ init-connect='SET NAMES utf8' innodb_file_per_table +# Auto Increment Parameters +auto_increment_increment = 10 +auto_increment_offset = <%= mysql_server_id %> + # # required unique id between 1 and 2^32 - 1 # defaults to 1 if master-host is not set @@ -147,6 +151,19 @@ server-id = <%= mysql_server_id %> # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high #innodb_buffer_pool_size = 16M + +innodb_buffer_pool_size=<%= +mem = memorysize[0..-4].to_f +unit = memorysize[-2..-2] +if unit == "G" +mem = mem*1024 +unit = "M" +end +(mem / 2.0).round +%><%= +unit +%> + #innodb_additional_mem_pool_size = 2M # Set .._log_file_size to 25 % of buffer pool size #innodb_log_file_size = 5M @@ -154,6 +171,7 @@ server-id = <%= mysql_server_id %> #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 + [mysqldump] quick max_allowed_packet = 16M @@ -181,12 +199,12 @@ interactive-timeout <% if binary_logging %> [mysqld_safe] log-output =FILE -log =/var/lib/mysql/mysqllog_general.log +#log =/var/lib/mysql/mysqllog_general.log log-slow-queries=/var/lib/mysql/mysqllog_slow_queries.log log-error =/var/lib/mysql/mysqlderror.log log-bin =/var/lib/mysql/mysqllog_bin.log log-queries-not-using-indexes -long-query-time=2 +long-query-time=5 innodb_flush_log_at_trx_commit=1 sync_binlog=1 diff --git a/templates/verify_slave_configuration.bash.erb b/templates/verify_slave_configuration.bash.erb new file mode 100644 index 0000000..91abffc --- /dev/null +++ b/templates/verify_slave_configuration.bash.erb @@ -0,0 +1,70 @@ +#!/bin/bash -x + +PATH=$PATH + +# Chech to see if the messaging and datasource databases are configured. + +ds_name_response=$(mysql --user=<%= mysql_replication_user %> --host=<%= mysql_master_ip_address %> --password=<%= mysql_replication_password %> --execute="show databases;" | grep <%= ds_name %>) +export ds_name_response +echo $ds_name_response + +if [ $ds_name_response = '<%= ds_name %>' ]; then + export response=True + exit 1 +else + export response=False + echo $response + echo $ds_name_response +fi + +rm /var/lib/mysql/<%= ds_name %>_verify_slave_status.out + +response=TRUE +export $response + +mysql --user=<%= mysql_replication_user %> --host=<%= mysql_master_ip_address %> --password=<%= mysql_replication_password %> --execute="show slave status\G" > /var/lib/mysql/<%= ds_name %>_verify_slave_status.out + +Slave_IO_Running=$(grep 'Slave_IO_Running:' /var/lib/mysql/<%= ds_name %>_verify_slave_status.out | grep Yes | awk '{ print $2 }') +echo $Slave_IO_Running + +if [ $Slave_IO_Running = "Yes" ]; then + export response=True +else + export response=False + echo $response + exit 1 +fi + +Slave_SQL_Running=$(grep 'Slave_SQL_Running:' /var/lib/mysql/<%= ds_name %>_verify_slave_status.out | grep Yes | awk '{ print $2 }') + echo $Slave_SQL_Running + +if [ $Slave_SQL_Running = "Yes" ]; then + export response=True +else + export response=False + echo $response + exit 1 +fi + +Slave_IO_Stat=$(grep 'Slave_IO_State:' /var/lib/mysql/<%= ds_name %>_verify_slave_status.out | grep 'Waiting for master to send event' | awk '{ print $6 }') + echo $Slave_IO_Stat + +if [ $Slave_IO_Stat = "send" ]; then + export response=True +else + export response=False + echo $response + exit 1 +fi + +Seconds_Behind_Master=$(grep 'Seconds_Behind_Master:' /var/lib/mysql/<%= ds_name %>_verify_slave_status.out | grep 0 | awk '{ print $2 }') + echo $Seconds_Behind_Master + +if [ $Seconds_Behind_Master = "0" ]; then + export response=True +else + export response=False + echo $response + exit 1 +fi + |