On Wed, Dec 20, 2017 at 02:23:54PM -0800, Justin Pettit wrote: > > On Dec 13, 2017, at 3:10 PM, Ben Pfaff <b...@ovn.org> wrote: > > diff --git a/Documentation/ref/ovsdb.7.rst b/Documentation/ref/ovsdb.7.rst > > index ddc573a47c94..1f860768df2d 100644 > > --- a/Documentation/ref/ovsdb.7.rst > > +++ b/Documentation/ref/ovsdb.7.rst > > @@ -317,9 +317,14 @@ Another way to make a backup is to use ``ovsdb-client > > backup``, which > > connects to a running database server and outputs an atomic snapshot of its > > schema and content, in the same format used for on-disk databases. > > > > -To restore from a backup, stop the database server or servers, overwrite > > -the database file with the backup (e.g. with ``cp``), and then > > -restart the servers. > > +Multiple options are also available when the time comes to restore a > > database > > +from a backup. One option is to stop the database server or servers, > > overwrite > > +the database file with the backup (e.g. with ``cp``), and then restart the > > +servers. Another way is to use ``ovsdb-client restore``, which connects > > to a > > +running database server and replaces the data in one of its databases by a > > +provided snapshot. Using ``ovsdb-client restore`` has the disadvantage > > that > > +UUIDs of rows in the restored database will differ from those in the > > snapshot, > > +because the OVSDB protocol does not allow clients to specify row UUIDs. > > Do you think it's worth mentioning the cases where it is useful? Does that > come later with the clustering change?
Thanks, I added that it allows avoiding any downtime for the database. > > diff --git a/ovsdb/ovsdb-client.1.in b/ovsdb/ovsdb-client.1.in > > index 2e2df5e5aa7f..30de9c536600 100644 > > --- a/ovsdb/ovsdb-client.1.in > > +++ b/ovsdb/ovsdb-client.1.in > > @@ -33,6 +33,9 @@ ovsdb\-client \- command-line interface to > > \fBovsdb-server\fR(1) > > \fBovsdb\-client \fR[\fIoptions\fR] > > \fBbackup\fI \fR[\fIserver\fR] \fR[\fIdatabase\fR] > \fIsnapshot\fR > > .br > > +\fBovsdb\-client \fR[\fIoptions\fR] [\fB\-\-force\fR] > > +\fBrestore\fI \fR[\fIserver\fR] \fR[\fIdatabase\fR] < \fIsnapshot\fR > > Same comment as the earlier patches about unnecessary markups. Fixed, thanks. > > @@ -41,7 +44,6 @@ ovsdb\-client \- command-line interface to > > \fBovsdb-server\fR(1) > > \fBovsdb\-client \fR[\fIoptions\fR] \fBmonitor\-cond\fI \fR[\fIserver\fR] > > \fR[\fIdatabase\fR] \fIconditions > > \fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]... > > .IP "Testing Commands:" > > -.br > > \fBovsdb\-client \fR[\fIoptions\fR] \fBlock\fI \fR[\fIserver\fR] \fIlock\fR > > .br > > \fBovsdb\-client \fR[\fIoptions\fR] \fBsteal\fI \fR[\fIserver\fR] \fIlock\fR > > @@ -156,6 +158,30 @@ database is in use. > > The output does not include ephemeral columns, which by design do not > > survive across restarts of \fBovsdb\-server\fR. > > . > > +.IP "[\fB\-\-force\fR] \fBrestore\fI \fR[\fIserver\fR] \fR[\fIdatabase\fR] > > < \fIsnapshot\fR" > > Here too. Ditto. > > +Reads \fIsnapshot\fR, which must be in the format used for OVSDB > > +standalone and active-backup databases. Then, connects to > > Do you think it's worth mentioning how you'd get it in that format? > > > +Normally \fBrestore\fR exits with a failure if \fBsnapshot\fR and the > > +server's database have different schemas. In such a case, it is a > > +good idea to convert the database to the new schema before restoring, > > +e.g. with \fBovsdb\-client convert\fR. Use \fB\-\-force\fR to proceed > > +regardless of schema differences even though the restore might fail > > +with an error or succeed with surprising results. > > I love surprises! Then you should use --force all the time! > > diff --git a/ovsdb/ovsdb-client.c b/ovsdb/ovsdb-client.c > > index 568c46b84d54..1af19d5dbc28 100644 > > --- a/ovsdb/ovsdb-client.c > > +++ b/ovsdb/ovsdb-client.c > > > > > > @@ -279,6 +289,8 @@ usage(void) > > " dump contents of DATABASE on SERVER to stdout\n" > > "\n backup [SERVER] [DATABASE] > DB\n" > > " dump database contents in the form of a database file\n" > > + "\n [--force] restore [SERVER] [DATABASE] < DB\n" > > + " restore database contents from a database file\n" > > There's obviously some precedent, but the man page uses "snapshot" instead of > "DB". It might be nice to use consistent terms--especially since the > difference between "DATABASE" and "DB" is not obvious without context--but > it's not a big deal. Thanks, I changed these to SNAPSHOT. > Acked-by: Justin Pettit <jpet...@ovn.org> Thanks! I applied this to master. _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev