From 45adda8fd1b86b446d6cc9d08f02e7221e024b6b Mon Sep 17 00:00:00 2001 From: "hartmut@mysql.com" <> Date: Mon, 5 Dec 2005 11:21:30 +0100 Subject: [PATCH] added --server-id option to mysqlbinlog to filter for a certain server id in the binlog only --- client/client_priv.h | 2 +- client/mysqlbinlog.cc | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/client/client_priv.h b/client/client_priv.h index 7d836189e2e..b4962bf08c8 100644 --- a/client/client_priv.h +++ b/client/client_priv.h @@ -52,5 +52,5 @@ enum options_client OPT_TRIGGERS, OPT_IGNORE_TABLE,OPT_INSERT_IGNORE,OPT_SHOW_WARNINGS,OPT_DROP_DATABASE, OPT_TZ_UTC, OPT_AUTO_CLOSE, - OPT_MYSQL_REPLACE_INTO + OPT_MYSQL_REPLACE_INTO, OPT_SERVER_ID }; diff --git a/client/mysqlbinlog.cc b/client/mysqlbinlog.cc index ae482a155d5..da8a23f8447 100644 --- a/client/mysqlbinlog.cc +++ b/client/mysqlbinlog.cc @@ -516,6 +516,9 @@ int process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev, start_datetime= 0; offset= 0; // print everything and protect against cycling rec_count } + if (server_id && (server_id != ev->server_id)) { + DBUG_RETURN(0); + } if (((my_time_t)(ev->when) >= stop_datetime) || (pos >= stop_position_mot)) { @@ -742,6 +745,11 @@ static struct my_option my_long_options[] = (gptr*) &stop_position, (gptr*) &stop_position, 0, GET_ULL, REQUIRED_ARG, (ulonglong)(~(my_off_t)0), BIN_LOG_HEADER_SIZE, (ulonglong)(~(my_off_t)0), 0, 0, 0}, + {"server-id", OPT_SERVER_ID, + "Only extract binlog entries created by a certain server id " + "passed on the command line.", + (gptr*) &server_id, (gptr*) &server_id, 0, GET_ULONG, + REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"to-last-log", 't', "Requires -R. Will not stop at the end of the \ requested binlog but rather continue printing until the end of the last \ binlog of the MySQL server. If you send the output to the same MySQL server, \