~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to docs/clients/drizzledump.rst

  • Committer: Brian Aker
  • Date: 2010-11-08 18:24:58 UTC
  • mto: (1921.1.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 1916.
  • Revision ID: brian@tangent.org-20101108182458-twv4hyix43ojno80
Merge in changes such that lock is now broken out into its own directory.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Drizzledump Backup Tool
 
2
=======================
 
3
 
 
4
Synopsis
 
5
--------
 
6
 
 
7
**drizzledump** [*OPTIONS*] *database* [*tables*]
 
8
 
 
9
**drizzledump** [*OPTIONS*] *--databases* [*OPTIONS*] *DB1* [*DB2* *DB3*...]
 
10
 
 
11
**drizzledump** [*OPTIONS*] *--all-databases* [*OPTIONS*]
 
12
 
 
13
Description
 
14
-----------
 
15
 
 
16
:program:`drizzledump` is used for backing up and
 
17
restoring logical backups of a Drizzle database, as well as for migrating
 
18
from *MySQL*. 
 
19
 
 
20
When connecting to a Drizzle server it will do a plain dump of the server.  It
 
21
will, however, automatically detect when it is connected to a *MySQL* server and
 
22
will convert the tables and data into a Drizzle compatible format.
 
23
 
 
24
Any binary data in tables will be converted into hexadecimal output so that it
 
25
does not corrupt the dump file.
 
26
 
 
27
Drizzledump options
 
28
-------------------
 
29
 
 
30
The :program:`drizzledump` tool has several available options:
 
31
 
 
32
.. option:: -A, --all-databases
 
33
   
 
34
   Dumps all databases found on the server apart from *information_schema* and
 
35
   *data_dictionary* in Drizzle and *information_schema*, *performance_schema*
 
36
   and *mysql* in MySQL.
 
37
 
 
38
.. option:: -f, --force
 
39
 
 
40
   Continue even if we get an sql-error.
 
41
 
 
42
.. option:: -?, --help
 
43
 
 
44
   Show a message with all the available options.
 
45
 
 
46
.. option:: -x, --lock-all-tables
 
47
 
 
48
   Locks all the tables for all databases with a global read lock.  The lock is
 
49
   released automatically when :program:`drizzledump` ends.
 
50
   Turns on :option:`--single-transaction` and :option:`--lock-tables`.
 
51
 
 
52
.. option:: --single-transaction
 
53
 
 
54
   Creates a consistent snapshot by dumping the tables in a single transaction.
 
55
   During the snapshot no other connected client should use any of the
 
56
   following as this will implicitly commit the transaction and prevent the
 
57
   consistency::
 
58
 
 
59
      ALTER TABLE
 
60
      DROP TABLE
 
61
      RENAME TABLE
 
62
      TRUNCATE TABLE
 
63
 
 
64
   Only works with InnoDB.
 
65
 
 
66
.. option:: --skip-opt
 
67
 
 
68
   A shortcut for :option:`--skip-drop-table`, :option:`--skip-create`, 
 
69
   :option:`--skip-extended-insert` and :option:`--skip-disable-keys`
 
70
 
 
71
.. option:: --tables t1 t2 ...
 
72
 
 
73
   Dump a list of tables.
 
74
 
 
75
.. option:: --show-progress-size rows (=10000)
 
76
 
 
77
   Show progress of the dump every *rows* of the dump.  Requires
 
78
   :option:`--verbose`
 
79
 
 
80
.. option:: -v, --verbose
 
81
 
 
82
   Sends various verbose information to stderr as the dump progresses.
 
83
 
 
84
.. option:: --skip-create
 
85
 
 
86
   Do not dump the CREATE TABLE / CREATE DATABASE statements.
 
87
 
 
88
.. option:: --skip-extended-insert
 
89
 
 
90
   Dump every row on an individual line.  For example::
 
91
 
 
92
     INSERT INTO `t1` VALUES (1,'hello');
 
93
     INSERT INTO `t1` VALUES (2,'world');
 
94
 
 
95
.. option:: --skip-dump-date
 
96
 
 
97
   Do not display the date/time at the end of the dump.
 
98
 
 
99
.. option:: --no-defaults
 
100
 
 
101
   Do not attempt to read configuration from configuration files.
 
102
 
 
103
.. option:: --add-drop-database
 
104
 
 
105
   Add `DROP DATABASE` statements before `CREATE DATABASE`.
 
106
 
 
107
.. option:: --compact
 
108
 
 
109
   Gives a more compact output by disabling header/footer comments and enabling
 
110
   :option:`--skip-add-drop-table`, :option:`--skip-disable-keys` 
 
111
   and :option:`--skip-add-locks`.
 
112
 
 
113
.. option:: -B, --databases
 
114
 
 
115
   Dump several databases.  The databases do not need to follow on after this
 
116
   option, they can be anywhere in the command line.
 
117
 
 
118
.. option:: -K, --skip-disable-keys
 
119
 
 
120
   Do not dump the statements `ALTER TABLE ... DISABLE KEYS` and
 
121
   `ALTER TABLE ... ENABLE KEYS`
 
122
 
 
123
.. option:: --ignore-table table
 
124
 
 
125
   Do not dump specified table, needs to be in the format `database.table`.
 
126
   Can be specified multiple times for multiple tables.
 
127
 
 
128
.. option:: --insert-ignore
 
129
 
 
130
   Add the `IGNORE` keyword into every `INSERT` statement.
 
131
 
 
132
.. option:: --no-autocommit
 
133
 
 
134
   Make the dump of each table a single transaction by wrapping it in `COMMIT`
 
135
   statements.
 
136
 
 
137
.. option:: -n, --no-create-db
 
138
 
 
139
   Do not dump the `CREATE DATABASE` statements when using
 
140
   :option:`--all-databases` or :option:`--databases`.
 
141
 
 
142
.. option:: -t, --skip-create
 
143
   
 
144
   Do not dump the `CREATE TABLE` statements.
 
145
 
 
146
.. option:: -d, --no-data
 
147
 
 
148
   Do not dump the data itself, used to dump the schemas only.
 
149
 
 
150
.. option:: --replace
 
151
 
 
152
   Use `REPLACE INTO` statements instead of `INSERT INTO`
 
153
 
 
154
.. option:: --destination-type type (=stdout)
 
155
 
 
156
   Destination of the data.
 
157
 
 
158
   **stdout**
 
159
      The default.  Output to the command line
 
160
 
 
161
   **database**
 
162
      Connect to another database and pipe data to that.
 
163
 
 
164
   .. versionadded:: 2010-09-27
 
165
 
 
166
.. option:: --destination-host hostname (=localhost)
 
167
 
 
168
   The hostname for the destination database.  Requires
 
169
   :option:`--destination-type` `= database`
 
170
 
 
171
   .. versionadded:: 2010-09-27
 
172
 
 
173
.. option:: --destination-port port (=3306)
 
174
 
 
175
   The port number for the destination database.  Requires
 
176
   :option:`--destination-type` `= database`
 
177
 
 
178
  .. versionadded:: 2010-09-27
 
179
 
 
180
.. option:: --destination-user username
 
181
 
 
182
   The username for the destinations database.  Requires
 
183
   :option:`--destination-type` `= database`
 
184
 
 
185
  .. versionadded:: 2010-09-27
 
186
 
 
187
.. option:: --destination-password password
 
188
 
 
189
   The password for the destination database.  Requires
 
190
   :option:`--destination-type` `= database`
 
191
 
 
192
  .. versionadded:: 2010-09-27
 
193
 
 
194
.. option:: --destination-database database
 
195
 
 
196
   The database for the destination database, for use when only dumping a
 
197
   single database.  Requires
 
198
   :option:`--destination-type` `= database`
 
199
 
 
200
  .. versionadded:: 2010-09-27
 
201
 
 
202
.. option:: -h, --host hostname (=localhost)
 
203
 
 
204
   The hostname of the database server.
 
205
 
 
206
.. option:: -u, --user username
 
207
 
 
208
   The username for the database server.
 
209
 
 
210
.. option:: -P, --password password
 
211
 
 
212
   The password for the database server.
 
213
 
 
214
.. option:: -p, --port port (=3306,4427)
 
215
 
 
216
   The port number of the database server.  Defaults to 3306 for MySQL protocol
 
217
   and 4427 for Drizzle protocol.
 
218
 
 
219
.. option:: --protocol protocol (=mysql)
 
220
 
 
221
   The protocol to use when connecting to the database server.  Options are:
 
222
 
 
223
   **mysql**
 
224
      The standard MySQL protocol.
 
225
 
 
226
   **drizzle**
 
227
      The Drizzle protocol.
 
228
 
 
229
Backups using Drizzledump
 
230
-------------------------
 
231
 
 
232
Backups of a database can be made very simply by running the following::
 
233
 
 
234
     $ drizzledump --all-databases > dumpfile.sql
 
235
 
 
236
This can then be re-imported into drizzle at a later date using::
 
237
 
 
238
     $ drizzle < dumpfile.sql
 
239
 
 
240
MySQL Migration using Drizzledump
 
241
---------------------------------
 
242
 
 
243
As of version 2010-09-27 there is the capability to migrate databases from
 
244
MySQL to Drizzle using :program:`drizzledump`.
 
245
 
 
246
:program:`drizzledump` will automatically detect whether it is talking to a
 
247
MySQL or Drizzle database server.  If it is connected to a MySQL server it will
 
248
automatically convert all the structures and data into a Drizzle compatible 
 
249
format.
 
250
 
 
251
So, simply connecting to a MySQL server with :program:`drizzledump` as follows
 
252
will give you a Drizzle compatible output::
 
253
 
 
254
     $ drizzledump --all-databases --host=mysql-host --user=mysql-user --password > dumpfile.sql
 
255
 
 
256
Additionally :program:`drizzledump` can now dump from MySQL and import directly
 
257
into a Drizzle server as follows::
 
258
 
 
259
     $ drizzledump --all-databases --host=mysql-host --user=mysql-user --password --destination-type=database --desination-host=drizzle-host