1MK-PARALLEL-DUMP(1) User Contributed Perl Documentation MK-PARALLEL-DUMP(1)
2
3
4
6 mk-parallel-dump - (DEPRECATED) Dump MySQL tables in parallel.
7
9 This tool is deprecated because after several complete redesigns, we
10 concluded that Perl is the wrong technology for this task. Read
11 "RISKS" before you use it, please. It remains useful for some people
12 who we know aren't depending on it in production, and therefore we are
13 not removing it from the distribution.
14
15 Usage: mk-parallel-dump [OPTION...] [DSN]
16
17 mk-parallel-dump dumps MySQL tables in parallel to make some data
18 loading operations more convenient. IT IS NOT A BACKUP TOOL!
19
20 Dump all databases and tables to the current directory:
21
22 mk-parallel-dump
23
24 Dump all databases and tables via SELECT INTO OUTFILE to /tmp/dumps:
25
26 mk-parallel-dump --tab --base-dir /tmp/dumps
27
28 Dump only table db.foo in chunks of ten thousand rows using 8 threads:
29
30 mk-parallel-dump --databases db --tables foo \
31 --chunk-size 10000 --threads 8
32
33 Dump tables in chunks of approximately 10kb of data (not ten thousand
34 rows!):
35
36 mk-parallel-dump --chunk-size 10k
37
39 The following section is included to inform users about the potential
40 risks, whether known or unknown, of using this tool. The two main
41 categories of risks are those created by the nature of the tool (e.g.
42 read-only tools vs. read-write tools) and those created by bugs.
43
44 mk-parallel-dump is not a backup program! It is only designed for fast
45 data exports, for purposes such as quickly loading data into test
46 systems. Do not use mk-parallel-dump for backups.
47
48 At the time of this release there is a bug that prevents
49 "--lock-tables" from working correctly, an unconfirmed bug that
50 prevents the tool from finishing, a bug that causes the wrong character
51 set to be used, and a bug replacing default values.
52
53 The authoritative source for updated information is always the online
54 issue tracking system. Issues that affect this tool will be marked as
55 such. You can see a list of such issues at the following URL:
56 <http://www.maatkit.org/bugs/mk-parallel-dump>.
57
58 See also "BUGS" for more information on filing bugs and getting help.
59
61 mk-parallel-dump connects to a MySQL server, finds database and table
62 names, and dumps them in parallel for speed. Only tables and data are
63 dumped; view definitions or any kind of stored code (triggers, events,
64 routines, procedures, etc.) are not dumped. However, if you dump the
65 "mysql" database, you'll be dumping the stored routines anyway.
66
67 Exit status is 0 if everything went well, 1 if any chunks failed, and
68 any other value indicates an internal error.
69
70 To dump all tables to uncompressed text files in the current directory,
71 each database with its own directory, with a global read lock, flushing
72 and recording binary log positions, each table in a single file:
73
74 mk-parallel-dump
75
76 To dump tables elsewhere:
77
78 mk-parallel-dump --base-dir /path/to/elsewhere
79
80 To dump to tab-separated files with "SELECT INTO OUTFILE", each table
81 with separate data and SQL files:
82
83 mk-parallel-dump --tab
84
85 mk-parallel-dump doesn't clean out any destination directories before
86 dumping into them. You can move away the old destination, then remove
87 it after a successful dump, with a shell script like the following:
88
89 #!/bin/sh
90 CNT=`ls | grep -c old`;
91 if [ -d default ]; then mv default default.old.$CNT;
92 mk-parallel-dump
93 if [ $? != 0 ]
94 then
95 echo "There were errors, not purging old sets."
96 else
97 echo "No errors during dump, purging old sets."
98 rm -rf default.old.*
99 fi
100
101 mk-parallel-dump checks whether files have been created before dumping.
102 If the file has been created, it skips the table or chunk that would
103 have created the file. This makes it possible to resume dumps. If you
104 don't want this behavior, and instead you want a full dump, then move
105 away the old files or specify "--[no]resume".
106
108 mk-parallel-dump can break your tables into chunks when dumping, and
109 put approximately the amount of data you specify into each chunk. This
110 is useful for two reasons:
111
112 • A table that is dumped in chunks can be dumped in many threads
113 simultaneously.
114
115 • Dumping in chunks creates small files, which can be imported more
116 efficiently and safely. Importing a single huge file can be a lot
117 of extra work for transactional storage engines like InnoDB. A
118 huge file can create a huge rollback segment in your tablespace.
119 If the import fails, the rollback can take a very long time.
120
121 To dump in chunks, specify the "--chunk-size" option. This option is
122 an integer with an optional suffix. Without the suffix, it's the
123 number of rows you want in each chunk. With the suffix, it's the
124 approximate size of the data.
125
126 mk-parallel-dump tries to use index statistics to calculate where the
127 boundaries between chunks should be. If the values are not evenly
128 distributed, some chunks can have a lot of rows, and others may have
129 very few or even none. Some chunks can exceed the size you want.
130
131 When you specify the size with a suffix, the allowed suffixes are k, M
132 and G, for kibibytes, mebibytes, and gibibytes, respectively. mk-
133 parallel-dump doesn't know anything about data size. It asks MySQL
134 (via "SHOW TABLE STATUS") how long an average row is in the table, and
135 converts your option to a number of rows.
136
137 Not all tables can be broken into chunks. mk-parallel-dump looks for
138 an index whose leading column is numeric (integers, real numbers, and
139 date and time types). It prefers the primary key if its first column
140 is chunk-able. Otherwise it chooses the first chunk-able column in the
141 table.
142
143 Generating a series of "WHERE" clauses to divide a table into evenly-
144 sized chunks is difficult. If you have any ideas on how to improve the
145 algorithm, please write to the author (see "BUGS").
146
148 Output depends on "--verbose", "--progress", "--dry-run" and "--quiet".
149 If "--dry-run" is specified mk-parallel-dump prints the commands or SQL
150 statements that it would use to dump data but it does not actually dump
151 any data. If "--quiet" is specified there is no output; this overrides
152 all other options that affect the output.
153
154 The default output is something like the following example:
155
156 CHUNK TIME EXIT SKIPPED DATABASE.TABLE
157 db 0.28 0 0 sakila
158 all 0.28 0 0 -
159
160 CHUNK
161 The CHUNK column signifies what kind of information is in the line:
162
163 Value Meaning
164 ===== ========================================================
165 db This line contains summary information about a database.
166 tbl This line contains summary information about a table.
167 <int> This line contains information about the Nth chunk of a
168 table.
169
170 The types of lines you'll see depend on the "--chunk-size" option
171 and "--verbose" options. mk-parallel-dump treats everything as a
172 chunk. If you don't specify "--chunk-size", then each table is one
173 big chunk and each database is a chunk (of all its tables). Thus,
174 there is output for numbered table chunks ("--chunk-size"), table
175 chunks, and database chunks.
176
177 TIME
178 The TIME column shows the wallclock time elapsed while the chunk
179 was dumped. If CHUNK is "db" or "tbl", this time is the total
180 wallclock time elapsed for the database or table.
181
182 EXIT
183 The EXIT column shows the exit status of the chunk. Any non-zero
184 exit signifies an error. The cause of errors are usually printed
185 to STDERR.
186
187 SKIPPED
188 The SKIPPED column shows how many chunks were skipped. These are
189 not errors. Chunks are skipped if the dump can be resumed. See
190 "--[no]resume".
191
192 DATABASE.TABLE
193 The DATABASE.TABLE column shows to which table the chunk belongs.
194 For "db" chunks, this shows just the database. Chunks are printed
195 when they complete, and this is often out of the order you'd
196 expect. For example, you might see a chunk for db1.table_1, then a
197 chunk for db2.table_2, then another chunk for db1.table_1, then the
198 "db" chunk summary for db2.
199
200 PROGRESS
201 If you specify "--progress", then the tool adds a PROGRESS column
202 after DATABASE.TABLE, which contains text similar to the following:
203
204 PROGRESS
205 4.10M/4.10M 100.00% ETA ... 00:00 (2009-10-16T15:37:49)
206 done at 2009-10-16T15:37:48, 1 databases, 16 tables, 16 chunks
207
208 This column shows information about the amount of data dumped so
209 far, the amount of data left to dump, and an ETA ("estimated time
210 of arrival"). The ETA is a best-effort prediction when everything
211 will be finished dumping. Sometimes the ETA is very accurate, but
212 at other times it can be significantly wrong.
213
214 The final line of the output is special: it summarizes all chunks (all
215 table chunks, tables and databases).
216
217 If you specify "--verbose" once, then the output includes "tbl" CHUNKS:
218
219 CHUNK TIME EXIT SKIPPED DATABASE.TABLE
220 tbl 0.07 0 0 sakila.payment
221 tbl 0.08 0 0 sakila.rental
222 tbl 0.03 0 0 sakila.film
223 db 0.28 0 0 sakila
224 all 0.28 0 0 -
225
226 And if you specify "--verbose" twice in conjunction with
227 "--chunk-size", then the output includes the chunks:
228
229 CHUNK TIME EXIT SKIPPED DATABASE.TABLE
230 0 0.03 0 0 sakila.payment
231 1 0.03 0 0 sakila.payment
232 tbl 0.10 0 0 sakila.payment
233 0 0.01 0 1 sakila.store
234 tbl 0.02 0 1 sakila.store
235 db 0.20 0 1 sakila
236 all 0.21 0 1 -
237
238 The output shows that "sakila.payment" was dumped in two chunks, and
239 "sakila.store" was dumped in one chunk that was skipped.
240
242 How much faster is it to dump in parallel? That depends on your
243 hardware and data. You may be able dump files twice as fast, or more
244 if you have lots of disks and CPUs. At the time of writing, no
245 benchmarks exist for the current release. User-contributed results for
246 older versions of mk-parallel-dump showed very good speedup depending
247 on the hardware. Here are two links you can use as reference:
248
249 • <http://www.paragon-cs.com/wordpress/?p=52>
250
251 • <http://mituzas.lt/2009/02/03/mydumper/>
252
254 "--lock-tables" and "--[no]flush-lock" are mutually exclusive.
255
256 This tool accepts additional command-line arguments. Refer to the
257 "SYNOPSIS" and usage information for details.
258
259 --ask-pass
260 Prompt for a password when connecting to MySQL.
261
262 --base-dir
263 type: string
264
265 The base directory in which files will be stored.
266
267 The default is the current working directory. Each database gets
268 its own directory under the base directory. So if the base
269 directory is "/tmp" and database "foo" is dumped, then the
270 directory "/tmp/foo" is created which contains all the table dump
271 files for "foo".
272
273 --[no]biggest-first
274 default: yes
275
276 Process tables in descending order of size (biggest to smallest).
277
278 This strategy gives better parallelization. Suppose there are 8
279 threads and the last table is huge. We will finish everything else
280 and then be running single-threaded while that one finishes. If
281 that one runs first, then we will have the max number of threads
282 running at a time for as long as possible.
283
284 --[no]bin-log-position
285 default: yes
286
287 Dump the master/slave position.
288
289 Dump binary log positions from both "SHOW MASTER STATUS" and "SHOW
290 SLAVE STATUS", whichever can be retrieved from the server. The
291 data is dumped to a file named 00_master_data.sql in the
292 "--base-dir".
293
294 The file also contains details of each table dumped, including the
295 WHERE clauses used to dump it in chunks.
296
297 --charset
298 short form: -A; type: string
299
300 Default character set. If the value is utf8, sets Perl's binmode
301 on STDOUT to utf8, passes the mysql_enable_utf8 option to
302 DBD::mysql, and runs SET NAMES UTF8 after connecting to MySQL. Any
303 other value sets binmode on STDOUT without the utf8 layer, and runs
304 SET NAMES after connecting to MySQL.
305
306 --chunk-size
307 type: string
308
309 Number of rows or data size to dump per file.
310
311 Specifies that the table should be dumped in segments of
312 approximately the size given. The syntax is either a plain
313 integer, which is interpreted as a number of rows per chunk, or an
314 integer with a suffix of G, M, or k, which is interpreted as the
315 size of the data to be dumped in each chunk. See "CHUNKS" for more
316 details.
317
318 --client-side-buffering
319 Fetch and buffer results in memory on client.
320
321 By default this option is not enabled because it causes data to be
322 completely fetched from the server then buffered in-memory on the
323 client. For large dumps this can require a lot of memory
324
325 Instead, the default (when this option is not specified) is to
326 fetch and dump rows one-by-one from the server. This requires a
327 lot less memory on the client but can keep the tables on the server
328 locked longer.
329
330 Use this option only if you're sure that the data being dumped is
331 relatively small and the client has sufficient memory. Remember
332 that, if this option is specified, all "--threads" will buffer
333 their results in-memory, so memory consumption can increase by a
334 factor of N "--threads".
335
336 --config
337 type: Array
338
339 Read this comma-separated list of config files; if specified, this
340 must be the first option on the command line.
341
342 --csv
343 Do "--tab" dump in CSV format (implies "--tab").
344
345 Changes "--tab" options so the dump file is in comma-separated
346 values (CSV) format. The SELECT INTO OUTFILE statement looks like
347 the following, and can be re-loaded with the same options:
348
349 SELECT * INTO OUTFILE %D.%N.%6C.txt
350 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
351 LINES TERMINATED BY '\n' FROM %D.%N;
352
353 --databases
354 short form: -d; type: hash
355
356 Dump only this comma-separated list of databases.
357
358 --databases-regex
359 type: string
360
361 Dump only databases whose names match this Perl regex.
362
363 --defaults-file
364 short form: -F; type: string
365
366 Only read mysql options from the given file. You must give an
367 absolute pathname.
368
369 --dry-run
370 Print commands instead of executing them.
371
372 --engines
373 short form: -e; type: hash
374
375 Dump only tables that use this comma-separated list of storage
376 engines.
377
378 --[no]flush-lock
379 Use "FLUSH TABLES WITH READ LOCK".
380
381 This is enabled by default. The lock is taken once, at the
382 beginning of the whole process and is released after all tables
383 have been dumped. If you want to lock only the tables you're
384 dumping, use "--lock-tables".
385
386 --flush-log
387 Execute "FLUSH LOGS" when getting binlog positions.
388
389 This option is NOT enabled by default because it causes the MySQL
390 server to rotate its error log, potentially overwriting error
391 messages.
392
393 --[no]gzip
394 default: yes
395
396 Compress (gzip) SQL dump files; does not work with "--tab".
397
398 The IO::Compress::Gzip Perl module is used to compress SQL dump
399 files as they are written to disk. The resulting dump files have a
400 ".gz" extension, like "table.000000.sql.gz". They can be
401 uncompressed with gzip. mk-parallel-restore will automatically
402 uncompress them, too, when restoring.
403
404 This option does not work with "--tab" because the MySQL server
405 writes the tab dump files directly using "SELECT INTO OUTFILE".
406
407 --help
408 Show help and exit.
409
410 --host
411 short form: -h; type: string
412
413 Connect to host.
414
415 --ignore-databases
416 type: Hash
417
418 Ignore this comma-separated list of databases.
419
420 --ignore-databases-regex
421 type: string
422
423 Ignore databases whose names match this Perl regex.
424
425 --ignore-engines
426 type: Hash; default: FEDERATED,MRG_MyISAM
427
428 Do not dump tables that use this comma-separated list of storage
429 engines.
430
431 The schema file will be dumped as usual. This prevents dumping
432 data for Federated tables and Merge tables.
433
434 --ignore-tables
435 type: Hash
436
437 Ignore this comma-separated list of table names.
438
439 Table names may be qualified with the database name.
440
441 --ignore-tables-regex
442 type: string
443
444 Ignore tables whose names match the Perl regex.
445
446 --lock-tables
447 Use "LOCK TABLES" (disables "--[no]flush-lock").
448
449 Disables "--[no]flush-lock" (unless it was explicitly set) and
450 locks tables with "LOCK TABLES READ". The lock is taken and
451 released for every table as it is dumped.
452
453 --lossless-floats
454 Dump float types with extra precision for lossless restore
455 (requires "--tab").
456
457 Wraps these types with a call to "FORMAT()" with 17 digits of
458 precision. According to the comments in Google's patches, this
459 will give lossless dumping and reloading in most cases. (I
460 shamelessly stole this technique from them. I don't know enough
461 about floating-point math to have an opinion).
462
463 This works only with "--tab".
464
465 --password
466 short form: -p; type: string
467
468 Password to use when connecting.
469
470 --pid
471 type: string
472
473 Create the given PID file. The file contains the process ID of the
474 script. The PID file is removed when the script exits. Before
475 starting, the script checks if the PID file already exists. If it
476 does not, then the script creates and writes its own PID to it. If
477 it does, then the script checks the following: if the file contains
478 a PID and a process is running with that PID, then the script dies;
479 or, if there is no process running with that PID, then the script
480 overwrites the file with its own PID and starts; else, if the file
481 contains no PID, then the script dies.
482
483 --port
484 short form: -P; type: int
485
486 Port number to use for connection.
487
488 --progress
489 Display progress reports.
490
491 Progress is displayed each time a table or chunk of a table
492 finishes dumping. Progress is calculated by measuring the average
493 data size of each full chunk and assuming all bytes are created
494 equal. The output is the completed and total bytes, the percent
495 completed, estimated time remaining, and estimated completion time.
496 For example:
497
498 40.72k/112.00k 36.36% ETA 00:00 (2009-10-27T19:17:53)
499
500 If "--chunk-size" is not specified then each table is effectively
501 one big chunk and the progress reports are pretty accurate. When
502 "--chunk-size" is specified the progress reports can be skewed
503 because of averaging.
504
505 Progress reports are inaccurate when a dump is resumed. This is
506 known issue and will be fixed in a later release.
507
508 --quiet
509 short form: -q
510
511 Quiet output; disables "--verbose".
512
513 --[no]resume
514 default: yes
515
516 Resume dumps.
517
518 --set-vars
519 type: string; default: wait_timeout=10000
520
521 Set these MySQL variables. Immediately after connecting to MySQL,
522 this string will be appended to SET and executed.
523
524 --socket
525 short form: -S; type: string
526
527 Socket file to use for connection.
528
529 --stop-slave
530 Issue "STOP SLAVE" on server before dumping data.
531
532 This ensures that the data is not changing during the dump. Issues
533 "START SLAVE" after the dump is complete.
534
535 If the slave is not running, throws an error and exits. This is to
536 prevent possibly bad things from happening if the slave is not
537 running because of a problem, or because someone intentionally
538 stopped the slave for maintenance or some other purpose.
539
540 --tab
541 Dump tab-separated (sets "--umask" 0).
542
543 Dump via "SELECT INTO OUTFILE", which is similar to what
544 "mysqldump" does with the "--tab" option, but you're not
545 constrained to a single database at a time.
546
547 Before you use this option, make sure you know what "SELECT INTO
548 OUTFILE" does! I recommend using it only if you're running mk-
549 parallel-dump on the same machine as the MySQL server, but there is
550 no protection if you don't.
551
552 This option sets "--umask" to zero so auto-created directories are
553 writable by the MySQL server.
554
555 --tables
556 short form: -t; type: hash
557
558 Dump only this comma-separated list of table names.
559
560 Table names may be qualified with the database name.
561
562 --tables-regex
563 type: string
564
565 Dump only tables whose names match this Perl regex.
566
567 --threads
568 type: int; default: 2
569
570 Number of threads to dump concurrently.
571
572 Specifies the number of parallel processes to run. The default is
573 2 (this is mk-parallel-dump, after all -- 1 is not parallel). On
574 GNU/Linux machines, the default is the number of times 'processor'
575 appears in /proc/cpuinfo. On Windows, the default is read from the
576 environment. In any case, the default is at least 2, even when
577 there's only a single processor.
578
579 --[no]tz-utc
580 default: yes
581
582 Enable TIMESTAMP columns to be dumped and reloaded between
583 different time zones. mk-parallel-dump sets its connection time
584 zone to UTC and adds "SET TIME_ZONE='+00:00'" to the dump file.
585 Without this option, TIMESTAMP columns are dumped and reloaded in
586 the time zones local to the source and destination servers, which
587 can cause the values to change. This option also protects against
588 changes due to daylight saving time.
589
590 This option is identical to "mysqldump --tz-utc". In fact, the
591 above text was copied from mysqldump's man page.
592
593 --umask
594 type: string
595
596 Set the program's "umask" to this octal value.
597
598 This is useful when you want created files and directories to be
599 readable or writable by other users (for example, the MySQL server
600 itself).
601
602 --user
603 short form: -u; type: string
604
605 User for login if not current user.
606
607 --verbose
608 short form: -v; cumulative: yes
609
610 Be verbose; can specify multiple times.
611
612 See "OUTPUT".
613
614 --version
615 Show version and exit.
616
617 --wait
618 short form: -w; type: time; default: 5m
619
620 Wait limit when the server is down.
621
622 If the MySQL server crashes during dumping, waits until the server
623 comes back and then continues with the rest of the tables.
624 "mk-parallel-dump" will check the server every second until this
625 time is exhausted, at which point it will give up and exit.
626
627 This implements Peter Zaitsev's "safe dump" request: sometimes a
628 dump on a server that has corrupt data will kill the server. mk-
629 parallel-dump will wait for the server to restart, then keep going.
630 It's hard to say which table killed the server, so no tables will
631 be retried. Tables that were being concurrently dumped when the
632 crash happened will not be retried. No additional locks will be
633 taken after the server restarts; it's assumed this behavior is
634 useful only on a server you're not trying to dump while it's in
635 production.
636
637 --[no]zero-chunk
638 default: yes
639
640 Add a chunk for rows with zero or zero-equivalent values. The only
641 has an effect when "--chunk-size" is specified. The purpose of the
642 zero chunk is to capture a potentially large number of zero values
643 that would imbalance the size of the first chunk. For example, if
644 a lot of negative numbers were inserted into an unsigned integer
645 column causing them to be stored as zeros, then these zero values
646 are captured by the zero chunk instead of the first chunk and all
647 its non-zero values.
648
650 These DSN options are used to create a DSN. Each option is given like
651 "option=value". The options are case-sensitive, so P and p are not the
652 same option. There cannot be whitespace before or after the "=" and if
653 the value contains whitespace it must be quoted. DSN options are
654 comma-separated. See the maatkit manpage for full details.
655
656 • A
657
658 dsn: charset; copy: yes
659
660 Default character set.
661
662 • D
663
664 dsn: database; copy: yes
665
666 Default database.
667
668 • F
669
670 dsn: mysql_read_default_file; copy: yes
671
672 Only read default options from the given file
673
674 • h
675
676 dsn: host; copy: yes
677
678 Connect to host.
679
680 • p
681
682 dsn: password; copy: yes
683
684 Password to use when connecting.
685
686 • P
687
688 dsn: port; copy: yes
689
690 Port number to use for connection.
691
692 • S
693
694 dsn: mysql_socket; copy: yes
695
696 Socket file to use for connection.
697
698 • u
699
700 dsn: user; copy: yes
701
702 User for login if not current user.
703
705 You can download Maatkit from Google Code at
706 <http://code.google.com/p/maatkit/>, or you can get any of the tools
707 easily with a command like the following:
708
709 wget http://www.maatkit.org/get/toolname
710 or
711 wget http://www.maatkit.org/trunk/toolname
712
713 Where "toolname" can be replaced with the name (or fragment of a name)
714 of any of the Maatkit tools. Once downloaded, they're ready to run; no
715 installation is needed. The first URL gets the latest released version
716 of the tool, and the second gets the latest trunk code from Subversion.
717
719 The environment variable "MKDEBUG" enables verbose debugging output in
720 all of the Maatkit tools:
721
722 MKDEBUG=1 mk-....
723
725 You need Perl, DBI, DBD::mysql, and some core packages that ought to be
726 installed in any reasonably new version of Perl.
727
728 This program works best on GNU/Linux. Filename quoting might not work
729 well on Microsoft Windows if you have spaces or funny characters in
730 your database or table names.
731
733 For a list of known bugs see
734 <http://www.maatkit.org/bugs/mk-parallel-dump>.
735
736 Please use Google Code Issues and Groups to report bugs or request
737 support: <http://code.google.com/p/maatkit/>. You can also join
738 #maatkit on Freenode to discuss Maatkit.
739
740 Please include the complete command-line used to reproduce the problem
741 you are seeing, the version of all MySQL servers involved, the complete
742 output of the tool when run with "--version", and if possible,
743 debugging output produced by running with the "MKDEBUG=1" environment
744 variable.
745
747 This program is copyright 2007-2011 Baron Schwartz. Feedback and
748 improvements are welcome.
749
750 THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
751 WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
752 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
753
754 This program is free software; you can redistribute it and/or modify it
755 under the terms of the GNU General Public License as published by the
756 Free Software Foundation, version 2; OR the Perl Artistic License. On
757 UNIX and similar systems, you can issue `man perlgpl' or `man
758 perlartistic' to read these licenses.
759
760 You should have received a copy of the GNU General Public License along
761 with this program; if not, write to the Free Software Foundation, Inc.,
762 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
763
765 See also mk-parallel-restore.
766
768 Baron Schwartz
769
771 This tool is part of Maatkit, a toolkit for power users of MySQL.
772 Maatkit was created by Baron Schwartz; Baron and Daniel Nichter are the
773 primary code contributors. Both are employed by Percona. Financial
774 support for Maatkit development is primarily provided by Percona and
775 its clients.
776
778 This manual page documents Ver 1.0.28 Distrib 7540 $Revision: 7460 $.
779
780
781
782perl v5.34.0 2022-01-20 MK-PARALLEL-DUMP(1)