summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/CMakeLists.txt17
-rw-r--r--scripts/mysqlhotcopy.sh39
2 files changed, 37 insertions, 19 deletions
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
index 92cba86fc8a..f838d27a241 100755
--- a/scripts/CMakeLists.txt
+++ b/scripts/CMakeLists.txt
@@ -103,9 +103,9 @@ ENDIF()
IF(NOT FIND_PROC)
# BSD style
EXECUTE_PROCESS(COMMAND ps -uaxww OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result)
- IF(result MATCHES 0)
+ IF(result MATCHES 0)
SET( FIND_PROC
- "ps -uaxww | grep -v \" grep\" | grep -v mysqld_safe | grep -- "\$MYSQLD\" | grep \" $PID \" > /dev/null")
+ "ps -uaxww | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"$MYSQLD\" | grep \" $PID \" > /dev/null")
ENDIF()
ENDIF()
@@ -113,20 +113,15 @@ IF(NOT FIND_PROC)
# SysV style
EXECUTE_PROCESS(COMMAND ps -ef OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result)
IF(result MATCHES 0)
- SET( FIND_PROC "ps -ef | grep -v \" grep\" | grep -v mysqld_safe | grep -- "\$MYSQLD\" | grep \" $PID \" > /dev/null")
+ SET( FIND_PROC "ps -ef | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"$MYSQLD\" | grep \" $PID \" > /dev/null")
ENDIF()
ENDIF()
-EXECUTE_PROCESS(COMMAND sh -c "kill -0 $$" OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result2)
-IF(result3 MATCHES 0)
+EXECUTE_PROCESS(COMMAND sh -c "kill -0 $$" OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result)
+IF(result MATCHES 0)
SET(CHECK_PID "kill -0 $PID > /dev/null 2> /dev/null")
ELSE()
- EXECUTE_PROCESS(COMMAND sh -c "kill -s 0 $$" OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result3)
- IF(result4 MATCHES 0)
- SET(CHECK_PID "kill -s 0 $PID > /dev/null 2> /dev/null")
- ELSE()
- SET(CHECK_PID "kill -s SIGCONT $PID > /dev/null 2> /dev/null")
- ENDIF()
+ SET(CHECK_PID "kill -s SIGCONT $PID > /dev/null 2> /dev/null")
ENDIF()
ENDIF(UNIX)
diff --git a/scripts/mysqlhotcopy.sh b/scripts/mysqlhotcopy.sh
index 21fca0c0848..90f759739d0 100644
--- a/scripts/mysqlhotcopy.sh
+++ b/scripts/mysqlhotcopy.sh
@@ -56,6 +56,8 @@ Usage: $0 db_name[./table_regex/] [new_db_name | directory]
-h, --host=# hostname for local server when connecting over TCP/IP
-P, --port=# port to use when connecting to local server with TCP/IP
-S, --socket=# socket to use when connecting to local server
+ --old_server connect to old MySQL-server (before v5.5) which
+ doesn't have FLUSH TABLES WITH READ LOCK fully implemented.
--allowold don\'t abort if target dir already exists (rename it _old)
--addtodest don\'t rename target dir if it exists, just add files to it
@@ -103,6 +105,7 @@ GetOptions( \%opt,
"password|p=s",
"port|P=s",
"socket|S=s",
+ "old_server",
"allowold!",
"keepold!",
"addtodest!",
@@ -441,21 +444,37 @@ if ( $opt{checkpoint} || $opt{record_log_pos} ) {
my $hc_started = time; # count from time lock is granted
if ( $opt{dryrun} ) {
- print "LOCK TABLES $hc_locks\n";
- print "FLUSH TABLES /*!32323 $hc_tables */\n";
+ if ( $opt{old_server} ) {
+ print "LOCK TABLES $hc_locks\n";
+ print "FLUSH TABLES /*!32323 $hc_tables */\n";
+ }
+ else {
+ print "FLUSH TABLES $hc_tables WITH READ LOCK\n";
+ }
+
print "FLUSH LOGS\n" if ( $opt{flushlog} );
print "RESET MASTER\n" if ( $opt{resetmaster} );
print "RESET SLAVE\n" if ( $opt{resetslave} );
}
else {
my $start = time;
- $dbh->do("LOCK TABLES $hc_locks");
- printf "Locked $num_tables tables in %d seconds.\n", time-$start unless $opt{quiet};
- $hc_started = time; # count from time lock is granted
+ if ( $opt{old_server} ) {
+ $dbh->do("LOCK TABLES $hc_locks");
+ printf "Locked $num_tables tables in %d seconds.\n", time-$start unless $opt{quiet};
+ $hc_started = time; # count from time lock is granted
+
+ # flush tables to make on-disk copy up to date
+ $start = time;
+ $dbh->do("FLUSH TABLES /*!32323 $hc_tables */");
+ }
+ else {
+ $dbh->do("FLUSH TABLES $hc_tables WITH READ LOCK");
+ printf "Locked $num_tables tables in %d seconds.\n", time-$start unless $opt{quiet};
+ $hc_started = time; # count from time lock is granted
- # flush tables to make on-disk copy up to date
- $start = time;
- $dbh->do("FLUSH TABLES /*!32323 $hc_tables */");
+ # flush tables to make on-disk copy up to date
+ $start = time;
+ }
printf "Flushed tables ($hc_tables) in %d seconds.\n", time-$start unless $opt{quiet};
$dbh->do( "FLUSH LOGS" ) if ( $opt{flushlog} );
$dbh->do( "RESET MASTER" ) if ( $opt{resetmaster} );
@@ -975,6 +994,10 @@ when using the --host option.
UNIX domain socket to use when connecting to local server.
+=item --old_server
+
+Use old server (pre v5.5) commands.
+
=item --noindices
Don\'t include index files in copy. Only up to the first 2048 bytes