~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to docs/clients/drizzledump.rst

  • Committer: Brian Aker
  • Date: 2010-09-12 01:42:27 UTC
  • mto: (1759.2.1 build)
  • mto: This revision was merged to the branch mainline in revision 1762.
  • Revision ID: brian@tangent.org-20100912014227-krt6d9z5ohqrokhb
Add two plugins to handle the string and math functions.

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
260
 
 
261
 
When you migrate from MySQL to Drizzle, the following conversions are required:
262
 
 
263
 
MyISAM -> InnoDB
264
 
FullText -> drop it (with stderr warning)
265
 
int unsigned -> bigint
266
 
tinyint -> int
267
 
smallint -> int
268
 
mediumint -> int
269
 
tinytext -> text
270
 
mediumtext -> text
271
 
longtext -> text
272
 
tinyblob -> blob
273
 
mediumblob -> blob
274
 
longblob -> blob
275
 
time -> int (of seconds)
276
 
year -> int
277
 
set -> text
278
 
date/datetime default 0000-00-00 -> default NULL *(Currently, ALL date columns have their DEFAULT set to NULL on migration)
279
 
date/datetime NOT NULL columns -> NULL
280
 
any date data containing 0000-00-00 -> NULL
281
 
enum-> DEFAULT NULL
 
 
b'\\ No newline at end of file'