]> git.proxmox.com Git - mirror_ovs.git/blame - ovsdb/ovsdb-tool.1.in
stream: Allow timeout configuration for open_block.
[mirror_ovs.git] / ovsdb / ovsdb-tool.1.in
CommitLineData
f7f62235 1.\" -*- nroff -*-
9bccc3ff 2.so lib/ovs.tmac
d2cb6c95 3.TH ovsdb\-tool 1 "@VERSION@" "Open vSwitch" "Open vSwitch Manual"
f7f62235
BP
4.ds PN ovsdb\-tool
5.
6.SH NAME
7ovsdb\-tool \- Open vSwitch database management utility
8.
9.SH SYNOPSIS
12b84d50 10.IP "Database Creation Commands:"
e4476f74 11\fBovsdb\-tool \fR[\fIoptions\fR] \fBcreate \fR[\fIdb\fR [\fIschema\fR]]
f7f62235 12.br
1b1d2e6d
BP
13\fBovsdb\-tool \fR[\fIoptions\fR] \fBcreate\-cluster \fIdb contents address\fR
14.br
15\fBovsdb\-tool \fR[\fIoptions\fR] [\fB\-\-cid=\fIuuid\fR] \fBjoin\-cluster\fI db name local remote\fR...
12b84d50 16.IP "Version Management Commands:"
e4476f74
BP
17\fBovsdb\-tool \fR[\fIoptions\fR] \fBconvert \fR[\fIdb\fR [\fIschema
18\fR[\fItarget\fR]]]
8159b984 19.br
e4476f74 20\fBovsdb\-tool \fR[\fIoptions\fR] \fBneeds\-conversion \fR[\fIdb\fR [\fIschema\fR]]
403e3a25 21.br
e4476f74 22\fBovsdb\-tool \fR[\fIoptions\fR] \fBdb\-version \fR[\fIdb\fR]
8159b984 23.br
e4476f74 24\fBovsdb\-tool \fR[\fIoptions\fR] \fBschema\-version \fR[\fIschema\fR]
8159b984 25.br
e4476f74 26\fBovsdb\-tool \fR[\fIoptions\fR] \fBdb\-cksum \fR[\fIdb\fR]
6aa09313 27.br
e4476f74 28\fBovsdb\-tool \fR[\fIoptions\fR] \fBschema\-cksum \fR[\fIschema\fR]
1b1d2e6d
BP
29.br
30\fBovsdb\-tool \fR[\fIoptions\fR] \fBcompare-versions\fI a op b\fR
12b84d50
BP
31.IP "Other commands:"
32\fBovsdb\-tool \fR[\fIoptions\fR] \fBcompact \fR[\fIdb\fR [\fItarget\fR]]
6aa09313 33.br
ba19e98c 34\fBovsdb\-tool \fR[\fIoptions\fR] [\fB\-\-rbac\-role=\fIrole\fR] \fBquery \fR[\fIdb\fR] \fItransaction\fR
f7f62235 35.br
ba19e98c 36\fBovsdb\-tool \fR[\fIoptions\fR] [\fB\-\-rbac\-role=\fIrole\fR] \fBtransact \fR[\fIdb\fR] \fItransaction\fR
f7f62235 37.br
e4476f74 38\fBovsdb\-tool \fR[\fIoptions\fR] [\fB\-m\fR | \fB\-\-more\fR]... \fBshow\-log \fR[\fIdb\fR]
722f6301 39.br
1b1d2e6d
BP
40\fBovsdb\-tool \fR[\fIoptions\fR] \fBcheck\-cluster \fIdb\fR...
41.br
439902cb
BP
42\fBovsdb\-tool \fR[\fIoptions\fR] \fBdb\-name \fR[\fIdb\fR]
43.br
44\fBovsdb\-tool \fR[\fIoptions\fR] \fBschema\-name \fR[\fIschema\fR]
45.br
1b1d2e6d
BP
46\fBovsdb\-tool \fR[\fIoptions\fR] \fBdb\-cid\fI db\fR
47.br
48\fBovsdb\-tool \fR[\fIoptions\fR] \fBdb\-sid\fI db\fR
49.br
50\fBovsdb\-tool \fR[\fIoptions\fR] \fBdb\-local\-address db\fR
51.br
f7f62235
BP
52\fBovsdb\-tool help\fR
53.so lib/vlog-syn.man
54.so lib/common-syn.man
55.
56.SH DESCRIPTION
57The \fBovsdb\-tool\fR program is a command-line tool for managing Open
58vSwitch database (OVSDB) files. It does not interact directly with
59running Open vSwitch database servers (instead, use
60\fBovsdb\-client\fR).
12b84d50
BP
61For an introduction to OVSDB and its implementation in Open vSwitch,
62see \fBovsdb\fR(7).
63.PP
ba19e98c
JP
64Each command that takes an optional \fIdb\fR or \fIschema\fR argument
65has a default file location if it is not specified.. The default
66\fIdb\fR is \fB@DBDIR@/conf.db\fR. The default \fIschema\fR is
67\fB@pkgdatadir@/vswitch.ovsschema\fR.
68.PP
12b84d50 69This OVSDB implementation supports standalone and active-backup
1b1d2e6d
BP
70database service models with one on-disk format and a clustered
71database service model with a different format. \fBovsdb\-tool\fR
72supports both formats, but some commands are appropriate for only one
73format, as documented for individual commands below. For a
74specification of these formats, see \fBovsdb\fR(5). For more
12b84d50
BP
75information on OVSDB service models, see the \fBService Models\fR
76section in \fBovsdb\fR(7).
f7f62235 77.
12b84d50 78.SS "Database Creation Commands"
1b1d2e6d
BP
79These commands create a new OVSDB database file.
80They will not overwrite an existing database file. To
12b84d50 81replace an existing database with a new one, first delete the old one.
f7f62235 82.
ba19e98c 83.IP "\fBcreate \fR[\fIdb\fR [\fIschema\fR]]"
12b84d50
BP
84Use this command to create the database for controlling
85\fBovs\-vswitchd\fR or another standalone or active-backup database.
86It creates database file \fIdb\fR with the given \fIschema\fR, which
87must be the name of a file that contains an OVSDB schema in JSON
88format, as specified in the OVSDB specification. The new database is
1b1d2e6d
BP
89initially empty. (You can use \fBcp\fR to copy a database including
90both its schema and data.)
91.
92.IP "\fBcreate\-cluster\fI db contents local"
93Use this command to initialize the first server in a high-availability
94cluster of 3 (or more) database servers, e.g. for an OVN northbound or
95southbound database in an environment that cannot tolerate a single
96point of failure. It creates clustered database file \fIdb\fR and
97configures the server to listen on \fIlocal\fR, which must take the
98form \fIprotocol\fB:\fIip\fB:\fIport\fR, where \fIprotocol\fR is
99\fBtcp\fR or \fBssl\fR, \fIip\fR is the server's IP (either an IPv4
100address or an IPv6 address enclosed in square brackets), and
101\fIport\fR is a TCP port number. Only one address is specified, for
102the first server in the cluster, ordinarily the one for the server
103running \fBcreate\-cluster\fR. The address is used for communication
104within the cluster, not for communicating with OVSDB clients, and must
105not use the same port used for the OVSDB protocol.
106.IP
107The new database is initialized with \fIcontents\fR, which must name a
108file that contains either an OVSDB schema in JSON format or a
109standalone OVSDB database. If it is a schema file, the new database
110will initially be empty, with the given schema. If it is a database
111file, the new database will have the same schema and contents.
112.
113.IP "[\fB\-\-cid=\fIuuid\fR] \fBjoin\-cluster\fI db name local remote\fR..."
114Use this command to initialize each server after the first one in an
115OVSDB high-availability cluster. It creates clustered database file
116\fIdb\fR for a database named \fIname\fR, and
117configures the server to listen on \fIlocal\fR and to initially
118connect to \fIremote\fR, which must be a server that already belongs
119to the cluster. \fIlocal\fR and \fIremote\fR use the same
120\fIprotocol\fB:\fIip\fB:\fIport\fR syntax as \fBcreate\-cluster\fR.
121.IP
122The \fIname\fR must be the name of the schema or database passed to
123\fBcreate\-cluster\fR. For example, the name of the OVN Southbound
124database schema is \fBOVN_Southbound\fR. Use \fBovsdb\-tool\fR's
125\fBschema\-name\fR or \fBdb\-name\fR command to find out the name of a
126schema or database, respectively.
127.IP
128This command does not do any network access, which means that it
129cannot actually join the new server to the cluster. Instead, the
130\fIdb\fR file that it creates prepares the server to join the cluster
131the first time that \fBovsdb\-server\fR serves it. As part of joining
132the cluster, the new server retrieves the database schema and obtains
133the list of all cluster members. Only after that does it become a
134full member of the cluster.
135.IP
136Optionally, more than one \fIremote\fR may be specified; for example,
137in a cluster that already contains multiple servers, one could specify
138all the existing servers. This is beneficial if some of the existing
139servers are down while the new server joins, but it is not otherwise
140needed.
141.IP
142By default, the \fIdb\fR created by \fBjoin\-cluster\fR will join any
143clustered database named \fIname\fR that is available at a
144\fIremote\fR. In theory, if machines go up and down and IP addresses
145change in the right way, it could join the wrong database cluster. To
146avoid this possibility, specify \fB\-\-cid=\fIuuid\fR, where
147\fIuuid\fR is the cluster ID of the cluster to join, as printed by
148\fBovsdb\-tool get\-cid\fR.
1e19e50e 149.
51738fe1 150.SS "Version Management Commands"
12b84d50 151.so ovsdb/ovsdb-schemas.man
51738fe1
BP
152.PP
153These commands work with different versions of OVSDB schemas and
154databases.
155.
ba19e98c 156.IP "\fBconvert \fR[\fIdb\fR [\fIschema \fR[\fItarget\fR]]]"
1e19e50e
BP
157Reads \fIdb\fR, translating it into to the schema specified in
158\fIschema\fR, and writes out the new interpretation. If \fItarget\fR
159is specified, the translated version is written as a new file named
160\fItarget\fR, which must not already exist. If \fItarget\fR is
161omitted, then the translated version of the database replaces \fIdb\fR
12b84d50
BP
162in-place. In-place conversion cannot take place if the database is
163currently being served by \fBovsdb\-server\fR (instead, either stop
164\fBovsdb\-server\fR first or use \fBovsdb\-client\fR's \fBconvert\fR
165command).
1e19e50e
BP
166.IP
167This command can do simple ``upgrades'' and ``downgrades'' on a
168database's schema. The data in \fIdb\fR must be valid when
169interpreted under \fIschema\fR, with only one exception: data in
170\fIdb\fR for tables and columns that do not exist in \fIschema\fR are
171ignored. Columns that exist in \fIschema\fR but not in \fIdb\fR are
172set to their default values. All of \fIschema\fR's constraints apply
173in full.
12b84d50
BP
174.IP
175Some uses of this command can cause unrecoverable data loss. For
176example, converting a database from a schema that has a given column
177or table to one that does not will delete all data in that column or
178table. Back up critical databases before converting them.
179.IP
1b1d2e6d
BP
180This command is for standalone and active-backup databases only. For
181clustered databases, use \fBovsdb\-client\fR's \fBconvert\fR command
182to convert them online.
183.
ba19e98c 184.IP "\fBneeds\-conversion \fR[\fIdb\fR [\fIschema\fR]]"
12b84d50 185Reads the schema embedded in \fIdb\fR and the JSON schema from
403e3a25 186\fIschema\fR and compares them. If the schemas are the same, prints
12b84d50
BP
187\fBno\fR on stdout; if they differ, prints \fByes\fR.
188.IP
1b1d2e6d
BP
189This command is for standalone and active-backup databases only. For
190clustered databases, use \fBovsdb\-client\fR's \fBneeds-conversion\fR
191command instead.
192.
ba19e98c
JP
193.IP "\fBdb\-version \fR[\fIdb\fR]"
194.IQ "\fBschema\-version \fR[\fIschema\fR]"
6aa09313 195Prints the version number in the schema embedded within the database
12b84d50 196\fIdb\fR or in the JSON schema \fIschema\fR on stdout.
6aa09313
BP
197If \fIschema\fR or \fIdb\fR was created before schema versioning was
198introduced, then it will not have a version number and this command
199will print a blank line.
12b84d50 200.IP
1b1d2e6d
BP
201The \fBdb\-version\fR command is for standalone and active-backup
202databases only. For clustered databases, use \fBovsdb\-client\fR's
203\fBschema\-version\fR command instead.
204.
ba19e98c
JP
205.IP "\fBdb\-cksum \fR[\fIdb\fR]"
206.IQ "\fBschema\-cksum \fR[\fIschema\fR]"
6aa09313 207Prints the checksum in the schema embedded within the database
12b84d50 208\fIdb\fR or of the JSON schema \fIschema\fR on stdout.
de66aa57
BP
209If \fIschema\fR or \fIdb\fR was created before schema checksums were
210introduced, then it will not have a checksum and this command
6aa09313 211will print a blank line.
12b84d50 212.IP
1b1d2e6d
BP
213The \fBdb\-cksum\fR command is for standalone and active-backup
214databases only. For clustered databases, use \fBovsdb\-client\fR's
215\fBschema\-cksum\fR command instead.
216.
217.IP "\fBcompare-versions\fI a op b\fR"
218Compares \fIa\fR and \fIb\fR according to \fIop\fR. Both \fIa\fR and
219\fIb\fR must be OVSDB schema version numbers in the form
220\fIx\fB.\fIy\fB.\fIz\fR, as described in \fBovsdb\fR(7), and \fIop\fR
221must be one of \fB< <= == >= > !=\fR. If the comparison is true,
222exits with status 0; if it is false, exits with status 2. (Exit
223status 1 indicates an error, e.g. \fIa\fR or \fIb\fR is the wrong
224syntax for an OVSDB version or \fIop\fR is not a valid comparison
225operator.)
226.
51738fe1
BP
227.SS "Other Commands"
228.
ba19e98c 229.IP "\fBcompact \fR[\fIdb\fR [\fItarget\fR]]"
12b84d50
BP
230Reads \fIdb\fR and writes a compacted version. If \fItarget\fR is
231specified, the compacted version is written as a new file named
232\fItarget\fR, which must not already exist. If \fItarget\fR is
233omitted, then the compacted version of the database replaces \fIdb\fR
234in-place. This command is not needed in normal operation because
235\fBovsdb\-server\fR from time to time automatically compacts a
236database that grows much larger than its minimum size.
237.IP
238This command does not work if \fIdb\fR is currently being served by
239\fBovsdb\-server\fR, or if it is otherwise locked for writing by
1b1d2e6d
BP
240another process. This command also does not work with clustered
241databases. Instead, in either case, send the
242\fBovsdb\-server/compact\fR command to \fBovsdb\-server\fR, via
243\fBovs\-appctl\fR).
12b84d50 244.
ba19e98c 245.IP "[\fB\-\-rbac\-role=\fIrole\fR] \fBquery \fR[\fIdb\fR] \fItransaction\fR"
f7f62235
BP
246Opens \fIdb\fR, executes \fItransaction\fR on it, and prints the
247results. The \fItransaction\fR must be a JSON array in the format of
248the \fBparams\fR array for the JSON-RPC \fBtransact\fR method, as
249described in the OVSDB specification.
250.IP
12b84d50 251This command opens \fIdb\fR for read-only access, so it may
f7f62235 252safely run concurrently with other database activity, including
4e312e69 253\fBovsdb\-server\fR and other database writers. The \fItransaction\fR
f7f62235
BP
254may specify database modifications, but these will have no effect on
255\fIdb\fR.
d6db7b3c
LR
256.IP
257By default, the transaction is executed using the ``superuser'' RBAC
258role. Use \fB\-\-rbac\-role\fR to specify a different role.
1b1d2e6d
BP
259.IP
260This command does not work with clustered databases. Instead, use
261\fBovsdb-client\fR's \fBquery\fR command to send the query to
262\fBovsdb\-server\fR.
f7f62235 263.
ba19e98c 264.IP "[\fB\-\-rbac\-role=\fIrole\fR] \fBtransact \fR[\fIdb\fR] \fItransaction\fR"
f7f62235
BP
265Opens \fIdb\fR, executes \fItransaction\fR on it, prints the results,
266and commits any changes to \fIdb\fR. The \fItransaction\fR must be a
267JSON array in the format of the \fBparams\fR array for the JSON-RPC
268\fBtransact\fR method, as described in the OVSDB specification.
269.IP
12b84d50
BP
270This command does not work if \fIdb\fR is currently being served by
271\fBovsdb\-server\fR, or if it is otherwise locked for writing by
1b1d2e6d
BP
272another process. This command also does not work with clustered
273databases. Instead, in either case, use \fBovsdb\-client\fR's
274\fBtransact\fR command to send the query to \fBovsdb\-server\fR.
d6db7b3c
LR
275.IP
276By default, the transaction is executed using the ``superuser'' RBAC
277role. Use \fB\-\-rbac\-role\fR to specify a different role.
f7f62235 278.
ba19e98c 279.IP "[\fB\-m\fR | \fB\-\-more\fR]... \fBshow\-log \fR[\fIdb\fR]"
9d02e3da 280Prints a summary of the records in \fIdb\fR's log, including the time
722f6301
BP
281and date at which each database change occurred and any associated
282comment. This may be useful for debugging.
5dfad3fa 283.IP
4e312e69
BP
284To increase the verbosity of output, add \fB\-m\fR (or \fB\-\-more\fR)
285one or more times to the command line. With one \fB\-m\fR,
c6782bb0 286\fBshow\-log\fR prints a summary of the records added, deleted, or
4e312e69 287modified by each transaction. With two \fB\-m\fRs, \fBshow\-log\fR
c6782bb0
BP
288also prints the values of the columns modified by each change to a
289record.
1b1d2e6d
BP
290.IP
291This command works with standalone and active-backup databases and
292with clustered databases, but the output formats are different.
293.
294.IP "\fBcheck\-cluster \fIdb\fR..."
295Reads all of the records in the supplied databases, which must be
296collected from different servers (and ideally all the servers) in a
297single cluster. Checks each database for self-consistency and the set
298together for cross-consistency. If \fBovsdb\-tool\fR detects unusual
299but not necessarily incorrect content, it prints a warning or warnings
300on stdout. If \fBovsdb\-tool\fR find consistency errors, it prints an
301error on stderr and exits with status 1. Errors typically indicate
302bugs in \fBovsdb\-server\fR; please consider reporting them to the
303Open vSwitch developers.
722f6301 304.
12b84d50
BP
305.IP "\fBdb\-name \fR[\fIdb\fR]"
306.IQ "\fBschema\-name \fR[\fIschema\fR]"
307Prints the name of the schema embedded within the database \fIdb\fR or
308in the JSON schema \fIschema\fR on stdout.
309.
1b1d2e6d
BP
310.IP "\fBdb\-cid\fI db\fR"
311Prints the cluster ID, which is a UUID that identifies the cluster,
312for \fIdb\fR. If \fIdb\fR is a database newly created by
313\fBovsdb\-tool cluster\-join\fR that has not yet successfully joined
314its cluster, and \fB\-\-cid\fR was not specified on the
315\fBcluster\-join\fR command line, then this command will output an
316error, and exit with status 2, because the cluster ID is not yet
317known. This command works only with clustered databases.
318.IP
319The all-zeros UUID is not a valid cluster ID.
320.
321.IP "\fBdb\-sid\fI db\fR"
322Prints the server ID, which is a UUID that identifies the server, for
323\fIdb\fR. This command works only with clustered databases. It works
324even if \fIdb\fR is a database newly created by \fBovsdb\-tool
325cluster\-join\fR that has not yet successfully joined its cluster.
326.
327.IP "\fBdb\-local\-address db\fR"
328Prints the local address used for database clustering for \fIdb\fR, in
329the same \fIprotocol\fB:\fIip\fB:\fIport\fR form used on
330\fBcreate\-cluster\fR and \fBjoin\-cluster\fR.
331.
332.IP "\fBdb\-is\-clustered\fI db\fR"
333.IQ "\fBdb\-is\-standalone\fI db\fR"
334Tests whether \fIdb\fR is a database file in clustered or standalone
335format, respectively. If so, exits with status 0; if not, exits with
336status 2. (Exit status 1 indicates an error, e.g. \fIdb\fR is not an
337OVSDB database or does not exist.)
338.
f7f62235
BP
339.SH OPTIONS
340.SS "Logging Options"
341.so lib/vlog.man
342.SS "Other Options"
343.so lib/common.man
e4476f74 344.SH "FILES"
f973f2af 345The default \fIdb\fR is \fB@DBDIR@/conf.db\fR. The
e4476f74
BP
346default \fIschema\fR is \fB@pkgdatadir@/vswitch.ovsschema\fR. The
347\fBhelp\fR command also displays these defaults.
f7f62235
BP
348.SH "SEE ALSO"
349.
12b84d50 350\fBovsdb\fR(7),
f7f62235 351\fBovsdb\-server\fR(1),
12b84d50 352\fBovsdb\-client\fR(1).