Update to 0.6.2

looks good to Brad
This commit is contained in:
giovanni 2015-10-27 10:51:32 +00:00
parent 15cb270dec
commit 9cd345e8f8
6 changed files with 21 additions and 266 deletions

View File

@ -1,10 +1,9 @@
# $OpenBSD: Makefile,v 1.6 2014/09/15 17:10:45 brad Exp $$
# $OpenBSD: Makefile,v 1.7 2015/10/27 10:51:32 giovanni Exp $$
COMMENT = utility for quick MySQL dumping
V = 0.6.1
V = 0.6.2
DISTNAME = mydumper-${V}
REVISION = 1
CATEGORIES = databases
MAINTAINER = Giovanni Bechis <giovanni@openbsd.org>
@ -12,8 +11,8 @@ MAINTAINER = Giovanni Bechis <giovanni@openbsd.org>
# GPLv3+
PERMIT_PACKAGE_CDROM = Yes
WANTLIB += c crypto glib-2.0 gthread-2.0 m mysqlclient_r pcre pthread
WANTLIB += ssl z
WANTLIB += c crypto glib-2.0 gthread-2.0 m mysqlclient
WANTLIB += pcre pthread ssl z
MASTER_SITES = https://launchpad.net/mydumper/${V:R}/${V}/+download/

View File

@ -1,2 +1,2 @@
SHA256 (mydumper-0.6.1.tar.gz) = gZ/f7x33z64F5pNof2DfSiBIwgF1/kAdUOOOjaMqDy0=
SIZE (mydumper-0.6.1.tar.gz) = 38599
SHA256 (mydumper-0.6.2.tar.gz) = +ihWPolndSgolUxdgeJu9QqtkIPVCpd79XM4M7I+MzA=
SIZE (mydumper-0.6.2.tar.gz) = 40165

View File

@ -1,46 +1,14 @@
$OpenBSD: patch-CMakeLists_txt,v 1.2 2014/09/15 17:10:45 brad Exp $
binlog code now is optional, disabled by default
http://bazaar.launchpad.net/~perconardba/mydumper/0.6/revision/144
--- CMakeLists.txt.orig Tue Feb 25 10:18:05 2014
+++ CMakeLists.txt Sun Sep 14 12:32:25 2014
@@ -16,8 +16,10 @@ if (BUILD_DOCS)
add_subdirectory(docs)
endif (BUILD_DOCS)
$OpenBSD: patch-CMakeLists_txt,v 1.3 2015/10/27 10:51:32 giovanni Exp $
--- CMakeLists.txt.orig Fri Sep 5 18:48:12 2014
+++ CMakeLists.txt Tue Oct 27 08:41:44 2015
@@ -18,7 +18,9 @@ endif (BUILD_DOCS)
option(WITH_BINLOG "Build binlog dump options" OFF)
-set(CMAKE_C_FLAGS "-Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wno-strict-aliasing -Wextra -Wshadow -Werror -O3 -g ${MYSQL_CFLAGS}")
+option(WITH_BINLOG "Build binlog dump options" OFF)
+set(CMAKE_C_FLAGS "-Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wno-strict-aliasing -Wextra -Wshadow -Werror ${MYSQL_CFLAGS}")
+
+set(CMAKE_C_FLAGS "-Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wno-strict-aliasing -Wextra -Wshadow -Werror ${MYSQL_CFLAGS}")
include_directories(${MYDUMPER_SOURCE_DIR} ${MYSQL_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR} ${PCRE_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS})
if (NOT CMAKE_INSTALL_PREFIX)
@@ -27,9 +29,15 @@ MARK_AS_ADVANCED(CMAKE)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/config.h)
-add_executable(mydumper mydumper.c binlog.c server_detect.c g_unix_signal.c)
-target_link_libraries(mydumper ${MYSQL_LIBRARIES_mysqlclient_r} ${GLIB2_LIBRARIES} ${GTHREAD2_LIBRARIES} ${PCRE_PCRE_LIBRARY} ${ZLIB_LIBRARIES})
+if (WITH_BINLOG)
+ add_executable(mydumper mydumper.c binlog.c server_detect.c g_unix_signal.c)
+else (WITH_BINLOG)
+ add_executable(mydumper mydumper.c server_detect.c g_unix_signal.c)
+endif (WITH_BINLOG)
+target_link_libraries(mydumper ${MYSQL_LIBRARIES} ${GLIB2_LIBRARIES} ${GTHREAD2_LIBRARIES} ${PCRE_PCRE_LIBRARY} ${ZLIB_LIBRARIES})
+
+
add_executable(myloader myloader.c)
target_link_libraries(myloader ${MYSQL_LIBRARIES_mysqlclient_r} ${GLIB2_LIBRARIES} ${GTHREAD2_LIBRARIES} ${PCRE_PCRE_LIBRARY} ${ZLIB_LIBRARIES})
@@ -55,6 +63,7 @@ MESSAGE(STATUS "--------------------------------------
MESSAGE(STATUS "MYSQL_CONFIG = ${MYSQL_CONFIG}")
MESSAGE(STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}")
MESSAGE(STATUS "BUILD_DOCS = ${BUILD_DOCS}")
+MESSAGE(STATUS "WITH_BINLOG = ${WITH_BINLOG}")
MESSAGE(STATUS "RUN_CPPCHECK = ${RUN_CPPCHECK}")
MESSAGE(STATUS "Change a values with: cmake -D<Variable>=<Value>")
MESSAGE(STATUS "------------------------------------------------")

View File

@ -1,15 +0,0 @@
$OpenBSD: patch-config_h_in,v 1.1 2014/09/15 17:10:45 brad Exp $
binlog code now is optional, disabled by default
http://bazaar.launchpad.net/~perconardba/mydumper/0.6/revision/144
--- config.h.in.orig Tue Feb 25 10:18:05 2014
+++ config.h.in Sun Sep 14 12:26:03 2014
@@ -2,5 +2,6 @@
#define CONFIG_H
#cmakedefine VERSION "@VERSION@"
+#cmakedefine WITH_BINLOG
#endif

View File

@ -1,7 +1,7 @@
$OpenBSD: patch-docs_mydumper_usage_rst,v 1.1 2013/09/25 09:02:09 giovanni Exp $
$OpenBSD: patch-docs_mydumper_usage_rst,v 1.2 2015/10/27 10:51:32 giovanni Exp $
remove tags that breaks textproc/py-sphinx
--- docs/mydumper_usage.rst.orig Wed Sep 25 09:12:54 2013
+++ docs/mydumper_usage.rst Wed Sep 25 09:13:37 2013
--- docs/mydumper_usage.rst.orig Fri Sep 5 18:48:12 2014
+++ docs/mydumper_usage.rst Tue Oct 27 08:41:44 2015
@@ -48,10 +48,8 @@ The :program:`mydumper` tool has several available opt
The port for the MySQL connection.
@ -26,7 +26,7 @@ remove tags that breaks textproc/py-sphinx
.. option:: --outputdir, -o
Output directory name, default is export-YYYYMMDD-HHMMSS
@@ -148,6 +144,4 @@ The :program:`mydumper` tool has several available opt
@@ -148,9 +144,7 @@ The :program:`mydumper` tool has several available opt
Do not execute the temporary shared read lock.
@ -34,3 +34,6 @@ remove tags that breaks textproc/py-sphinx
-
- This will cause inconsistent backups.
+ Warning: This will cause inconsistent backups.
.. option:: --[skip-]tz-utc

View File

@ -1,200 +0,0 @@
$OpenBSD: patch-mydumper_c,v 1.2 2014/09/15 17:10:45 brad Exp $
binlog code now is optional, disabled by default
http://bazaar.launchpad.net/~perconardba/mydumper/0.6/revision/144
--- mydumper.c.orig Sun Sep 14 12:26:44 2014
+++ mydumper.c Sun Sep 14 12:26:03 2014
@@ -34,18 +34,24 @@
#include <pcre.h>
#include <signal.h>
#include <glib/gstdio.h>
+#include "config.h"
+#ifdef WITH_BINLOG
#include "binlog.h"
+#else
+#include "mydumper.h"
+#endif
#include "server_detect.h"
#include "common.h"
#include "g_unix_signal.h"
-#include "config.h"
#include <math.h>
char *regexstring=NULL;
const char DIRECTORY[]= "export";
+#ifdef WITH_BINLOG
const char BINLOG_DIRECTORY[]= "binlog_snapshot";
const char DAEMON_BINLOGS[]= "binlogs";
+#endif
static GMutex * init_mutex = NULL;
@@ -70,9 +76,11 @@ char **ignore= NULL;
gchar *tables_list= NULL;
char **tables= NULL;
+#ifdef WITH_BINLOG
gboolean need_binlogs= FALSE;
gchar *binlog_directory= NULL;
gchar *daemon_binlog_directory= NULL;
+#endif
gchar *logfile= NULL;
FILE *logoutfile= NULL;
@@ -118,7 +126,9 @@ static GOptionEntry entries[] =
{ "less-locking", 0, 0, G_OPTION_ARG_NONE, &less_locking, "Minimize locking time on InnoDB tables.", NULL},
{ "long-query-guard", 'l', 0, G_OPTION_ARG_INT, &longquery, "Set long query timer in seconds, default 60", NULL },
{ "kill-long-queries", 'k', 0, G_OPTION_ARG_NONE, &killqueries, "Kill long running queries (instead of aborting)", NULL },
+#ifdef WITH_BINLOG
{ "binlogs", 'b', 0, G_OPTION_ARG_NONE, &need_binlogs, "Get a snapshot of the binary logs as well as dump data", NULL },
+#endif
{ "daemon", 'D', 0, G_OPTION_ARG_NONE, &daemon_mode, "Enable daemon mode", NULL },
{ "snapshot-interval", 'I', 0, G_OPTION_ARG_INT, &snapshot_interval, "Interval between each dump snapshot (in minutes), requires --daemon, default 60", NULL },
{ "logfile", 'L', 0, G_OPTION_ARG_FILENAME, &logfile, "Log file name to use, by default stdout is used", NULL },
@@ -145,10 +155,12 @@ gboolean write_data(FILE *,GString*);
gboolean check_regex(char *database, char *table);
void no_log(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data);
void set_verbose(guint verbosity);
+#ifdef WITH_BINLOG
MYSQL *reconnect_for_binlog(MYSQL *thrconn);
+void *binlog_thread(void *data);
+#endif
void start_dump(MYSQL *conn);
MYSQL *create_main_connection();
-void *binlog_thread(void *data);
void *exec_thread(void *data);
void write_log_file(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data);
@@ -368,8 +380,9 @@ void *process_queue(struct thread_data *td) {
struct job* job= NULL;
struct table_job* tj= NULL;
struct schema_job* sj= NULL;
+ #ifdef WITH_BINLOG
struct binlog_job* bj= NULL;
-
+ #endif
/* if less locking we need to wait until that threads finish
progressively waking up this threads */
if(less_locking){
@@ -446,6 +459,7 @@ void *process_queue(struct thread_data *td) {
g_free(sj);
g_free(job);
break;
+ #ifdef WITH_BINLOG
case JOB_BINLOG:
thrconn= reconnect_for_binlog(thrconn);
g_message("Thread %d connected using MySQL connection ID %lu (in binlog mode)", td->thread_id, mysql_thread_id(thrconn));
@@ -457,6 +471,7 @@ void *process_queue(struct thread_data *td) {
g_free(bj);
g_free(job);
break;
+ #endif
case JOB_SHUTDOWN:
g_message("Thread %d shutting down", td->thread_id);
if (thrconn)
@@ -599,7 +614,7 @@ void *process_queue_less_locking(struct thread_data *t
mysql_thread_end();
return NULL;
}
-
+#ifdef WITH_BINLOG
MYSQL *reconnect_for_binlog(MYSQL *thrconn) {
if (thrconn) {
mysql_close(thrconn);
@@ -620,7 +635,7 @@ MYSQL *reconnect_for_binlog(MYSQL *thrconn) {
}
return thrconn;
}
-
+#endif
int main(int argc, char *argv[])
{
GError *error = NULL;
@@ -697,15 +712,17 @@ int main(int argc, char *argv[])
dump_directory= g_strdup_printf("%s/1", output_directory);
create_backup_dir(dump_directory);
g_free(dump_directory);
+ #ifdef WITH_BINLOG
daemon_binlog_directory= g_strdup_printf("%s/%s", output_directory, DAEMON_BINLOGS);
create_backup_dir(daemon_binlog_directory);
+ #endif
}
-
+ #ifdef WITH_BINLOG
if (need_binlogs) {
binlog_directory = g_strdup_printf("%s/%s", output_directory, BINLOG_DIRECTORY);
create_backup_dir(binlog_directory);
}
-
+ #endif
/* Give ourselves an array of engines to ignore */
if (ignore_engines)
ignore = g_strsplit(ignore_engines, ",", 0);
@@ -716,14 +733,14 @@ int main(int argc, char *argv[])
if (daemon_mode) {
GError* terror;
-
+ #ifdef WITH_BINLOG
GThread *bthread= g_thread_create(binlog_thread, GINT_TO_POINTER(1), FALSE, &terror);
if (bthread == NULL) {
g_critical("Could not create binlog thread: %s", terror->message);
g_error_free(terror);
exit(EXIT_FAILURE);
}
-
+ #endif
start_scheduled_dump= g_async_queue_new();
GThread *ethread= g_thread_create(exec_thread, GINT_TO_POINTER(1), FALSE, &terror);
if (ethread == NULL) {
@@ -770,6 +787,7 @@ MYSQL *create_main_connection()
if (!mysql_real_connect(conn, hostname, username, password, db, port, socket_path, 0)) {
g_critical("Error connecting to database: %s", mysql_error(conn));
+ rmdir(output_directory);
exit(EXIT_FAILURE);
}
@@ -791,6 +809,7 @@ MYSQL *create_main_connection()
break;
default:
g_critical("Cannot detect server type");
+ rmdir(output_directory);
exit(EXIT_FAILURE);
break;
}
@@ -827,7 +846,7 @@ void *exec_thread(void *data) {
}
return NULL;
}
-
+#ifdef WITH_BINLOG
void *binlog_thread(void *data) {
(void) data;
MYSQL_RES *master= NULL;
@@ -863,7 +882,7 @@ void *binlog_thread(void *data) {
mysql_thread_end();
return NULL;
}
-
+#endif
void start_dump(MYSQL *conn)
{
struct configuration conf = { 1, NULL, NULL, NULL, NULL, NULL, NULL, 0 };
@@ -1087,11 +1106,11 @@ void start_dump(MYSQL *conn)
g_message("Non-InnoDB dump complete, unlocking tables");
mysql_query(conn, "UNLOCK TABLES /* FTWRL */");
}
-
+ #ifdef WITH_BINLOG
if (need_binlogs) {
get_binlogs(conn, &conf);
}
-
+ #endif
// close main connection
mysql_close(conn);