# ==== Purpose ====
#
# Check that two or more servers have identical databases; fail if not .
#
# ==== Usage ====
#
# --let $diff_servers = 1 2
# [--let $databases = db1 db2 ...]
# [--let $rpl_debug = 1 ]
# --source include/diff_servers.inc
# pretty-print header
--let $_ ds_info= servers=$diff_servers
if ($databases != '' )
{
--let $_ ds_info= $_ ds_info databases=$databases
}
--let $include_filename = diff_servers.inc [$_ ds_info]
--source include/begin_include_file.inc
# get databases
--let $_ ds_databases= $diff_database
if ($_ ds_databases == '' )
{
--let $_ ds_databases= `SELECT GROUP_CONCAT(SCHEMA_NAME SEPARATOR ' ' ) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME NOT IN ('information_schema' , 'mtr' , 'mysql' , 'performance_schema' )`
}
# generate command line
--let $_ ds_arg= --defaults-group-suffix=.
--let $_ ds_number_pos= `SELECT LOCATE('$_ds_arg' , '$MYSQL_DUMP' ) + LENGTH('$_ds_arg' )`
--let $_ ds_pre_command= `SELECT SUBSTR('$MYSQL_DUMP' , 1 , $_ ds_number_pos - 1 )`
--let $_ ds_post_command= `SELECT SUBSTR('$MYSQL_DUMP' , $_ ds_number_pos + 1 )`
--let $_ ds_post_command= $_ ds_post_command --compact --order-by-primary --skip-extended-insert --no-create-info --databases $_ ds_databases
--let $_ ds_prev_outfile=
# iterate over servers
--let $_ ds_servers= $diff_servers
while ($_ ds_servers != '' )
{
--let $_ ds_server_number= `SELECT SUBSTRING_INDEX('$_ds_servers' , ' ' , 1 )`
--let $_ ds_servers= `SELECT TRIM(SUBSTRING('$_ds_servers' , 1 + LENGTH('_$ds_server_number' )))`
--let $_ ds_outfile= $MYSQLTEST_VARDIR /tmp/diff_servers_$_ ds_server_number
if ($rpl_debug )
{
--echo generating dump from server '$_ds_server_number' using command '$_ds_pre_command$_ds_server_number $_ds_post_command > $_ds_outfile'
--echo remaining servers: '$_ds_servers'
}
--exec $_ ds_pre_command$_ ds_server_number $_ ds_post_command > $_ ds_outfile
if ($_ ds_prev_outfile != '' )
{
if ($rpl_debug )
{
--echo diffing files '$_ds_prev_outfile' and '$_ds_outfile'
}
--diff_files $_ ds_prev_outfile $_ ds_outfile
--remove_file $_ ds_prev_outfile
}
--let $_ ds_prev_outfile= $_ ds_outfile
}
--remove_file $_ ds_prev_outfile
--let $include_filename = diff_servers.inc [servers=$_ ds_info]
--source include/end_include_file.inc
Messung V0.5 in Prozent C=100 H=84 G=92
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-10-08)
¤
*© Formatika GbR, Deutschland