Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
ovsdb-tool(1)		       Open vSwitch Manual		   ovsdb-tool(1)

NAME
     ovsdb-tool - Open vSwitch database management utility

SYNOPSIS
     Database Creation Commands:
	    ovsdb-tool [options] create [db [schema]]
	    ovsdb-tool	[options]  [--election-timer=ms]  create-cluster db con-
	    tents address
	    ovsdb-tool [options] [--cid=uuid] join-cluster  db	name  local  re-
	    mote...

     Version Management Commands:
	    ovsdb-tool [options] convert [db [schema [target]]]
	    ovsdb-tool [options] needs-conversion [db [schema]]
	    ovsdb-tool [options] db-version [db]
	    ovsdb-tool [options] schema-version [schema]
	    ovsdb-tool [options] db-cksum [db]
	    ovsdb-tool [options] schema-cksum [schema]
	    ovsdb-tool [options] compare-versions a op b

     Other commands:
	    ovsdb-tool [options] compact [db [target]]
	    ovsdb-tool [options] [--rbac-role=role] query [db] transaction
	    ovsdb-tool [options] [--rbac-role=role] transact [db] transaction
	    ovsdb-tool [options] [-m | --more]... show-log [db]
	    ovsdb-tool [options] check-cluster db...
	    ovsdb-tool [options] db-name [db]
	    ovsdb-tool [options] schema-name [schema]
	    ovsdb-tool [options] db-cid db
	    ovsdb-tool [options] db-sid db
	    ovsdb-tool [options] db-local-address db
	    ovsdb-tool help

     Logging options:
	    [-v[module[:destination[:level]]]]...
	    [--verbose[=module[:destination[:level]]]]...
	    [--log-file[=file]]

     Common options:
	    [-h | --help] [-V | --version]

DESCRIPTION
     The  ovsdb-tool  program  is  a command-line tool for managing Open vSwitch
     database (OVSDB) files.  It does not interact directly  with  running  Open
     vSwitch  database servers (instead, use ovsdb-client).  For an introduction
     to OVSDB and its implementation in Open vSwitch, see ovsdb(7).

     Each command that takes an optional db or schema  argument  has  a  default
     file  location  if  it  is not specified..  The default db is /var/db/open-
     vswitch/conf.db.	 The   default	  schema    is	  /usr/local/share/open-
     vswitch/vswitch.ovsschema.

     This  OVSDB  implementation  supports standalone and active-backup database
     service models with one on-disk format and  a  clustered  database  service
     model  with a different format.  ovsdb-tool supports both formats, but some
     commands are appropriate for only one format, as documented for  individual
     commands  below.	For a specification of these formats, see ovsdb(5).  For
     more information on OVSDB service models, see the Service Models section in
     ovsdb(7).

   Database Creation Commands
     These commands create a new OVSDB database file.  They will  not  overwrite
     an existing database file.  To replace an existing database with a new one,
     first delete the old one.

     create [db [schema]]
	    Use this command to create the database for controlling ovs-vswitchd
	    or	another  standalone or active-backup database.	It creates data-
	    base file db with the given schema, which must be the name of a file
	    that contains an OVSDB schema in JSON format, as  specified  in  the
	    OVSDB specification.  The new database is initially empty.	(You can
	    use cp to copy a database including both its schema and data.)

     [--election-timer=ms] create-cluster db contents local
	    Use this command to initialize the first server in a high-availabil-
	    ity  cluster of 3 (or more) database servers, e.g. for a database in
	    an environment that cannot tolerate a single point of  failure.   It
	    creates clustered database file db and configures the server to lis-
	    ten  on local, which must take the form protocol:ip:port, where pro-
	    tocol is tcp or ssl, ip is the server's IP (either an  IPv4  address
	    or	an  IPv6 address enclosed in square brackets), and port is a TCP
	    port number.  Only one address is specified, for the first server in
	    the cluster, ordinarily the one for the server running  create-clus-
	    ter.   The address is used for communication within the cluster, not
	    for communicating with OVSDB clients, and must not use the same port
	    used for the OVSDB protocol.

	    The new database is initialized with contents,  which  must  name  a
	    file that contains either an OVSDB schema in JSON format or a stand-
	    alone OVSDB database.  If it is a schema file, the new database will
	    initially  be  empty,  with  the  given schema.  If it is a database
	    file, the new database will have the same schema and contents.

	    Leader election will be initiated by  a  follower  if  there  is  no
	    heartbeat  received  from  the  cluster  leader within the specified
	    election timer.  The default leader election timer is 1000	milisec-
	    onds.  To  use a different value when creating the database, specify
	    --election-timer=ms, where ms is a value in miliseconds between  100
	    and 600000 inclusive.

     [--cid=uuid] join-cluster db name local remote...
	    Use this command to initialize each server after the first one in an
	    OVSDB high-availability cluster.  It creates clustered database file
	    db for a database named name, and configures the server to listen on
	    local  and	to  initially  connect to remote, which must be a server
	    that already belongs to the cluster.  local and remote use the  same
	    protocol:ip:port syntax as create-cluster.

	    The  name  must be the name of the schema or database passed to cre-
	    ate-cluster.  For example, the name of the OVN  Southbound	database
	    schema  is	OVN_Southbound.  Use ovsdb-tool's schema-name or db-name
	    command to find out the name of a schema or database, respectively.

	    This command does not do any network access,  which  means	that  it
	    cannot actually join the new server to the cluster.  Instead, the db
	    file  that	it  creates  prepares the server to join the cluster the
	    first time that ovsdb-server serves it.   As  part	of  joining  the
	    cluster,  the  new	server retrieves the database schema and obtains
	    the list of all cluster members.  Only after that does it  become  a
	    full member of the cluster.

	    Optionally, more than one remote may be specified; for example, in a
	    cluster  that  already  contains multiple servers, one could specify
	    all the existing servers.  This is beneficial if some of the  exist-
	    ing  servers are down while the new server joins, but it is not oth-
	    erwise needed.

	    By default, the db created by join-cluster will join  any  clustered
	    database  named  name  that is available at a remote.  In theory, if
	    machines go up and down and IP addresses change in the right way, it
	    could join the wrong database cluster.  To avoid  this  possibility,
	    specify  --cid=uuid,  where uuid is the cluster ID of the cluster to
	    join, as printed by ovsdb-tool get-cid.

   Database Migration Commands
     This commands will convert cluster database to standalone database.

     cluster-to-standalone db clusterdb
	    Use this command to convert to standalone  database  from  clustered
	    database  when the cluster is down and cannot be revived. It creates
	    new standalone db file from the given cluster db file.

   Version Management Commands
     An OVSDB schema has a schema version number, and an OVSDB database embeds a
     particular version of an OVSDB schema.  These version numbers take the form
     x.y.z, e.g. 1.2.3.  The OVSDB implementation does not enforce a  particular
     version  numbering  scheme,  but  schemas	managed  within the Open vSwitch
     project use the  following  approach.   Whenever  the  database  schema  is
     changed  in  a non-backward compatible way (e.g. deleting a column or a ta-
     ble), x is incremented (and y and z are reset to  0).   When  the	database
     schema  is changed in a backward compatible way (e.g. adding a new column),
     y is incremented (and z is reset  to  0).	 When  the  database  schema  is
     changed cosmetically (e.g. reindenting its syntax), z is incremented.

     Some  OVSDB  databases and schemas, especially very old ones, do not have a
     version number.

     Schema version numbers and Open vSwitch version numbers are independent.

     These commands work with different versions of OVSDB schemas and databases.

     convert [db [schema [target]]]
	    Reads db, translating it into to the schema specified in schema, and
	    writes out the new interpretation.	 If  target  is  specified,  the
	    translated version is written as a new file named target, which must
	    not  already  exist.  If target is omitted, then the translated ver-
	    sion of the database replaces db in-place.	In-place conversion can-
	    not take  place  if  the  database	is  currently  being  served  by
	    ovsdb-server   (instead,  either  stop  ovsdb-server  first  or  use
	    ovsdb-client's convert command).

	    This command can do simple	``upgrades''  and  ``downgrades''  on  a
	    database's	schema.   The  data in db must be valid when interpreted
	    under schema, with only one exception: data in  db	for  tables  and
	    columns that do not exist in schema are ignored.  Columns that exist
	    in	schema	but  not  in db are set to their default values.  All of
	    schema's constraints apply in full.

	    Some uses of this command can cause unrecoverable  data  loss.   For
	    example, converting a database from a schema that has a given column
	    or table to one that does not will delete all data in that column or
	    table.  Back up critical databases before converting them.

	    This  command  is  for  standalone and active-backup databases only.
	    For clustered databases, use ovsdb-client's convert command to  con-
	    vert them online.

     needs-conversion [db [schema]]
	    Reads  the schema embedded in db and the JSON schema from schema and
	    compares them.  If the schemas are the same, prints no on stdout; if
	    they differ, prints yes.

	    This command is for standalone  and  active-backup	databases  only.
	    For clustered databases, use ovsdb-client's needs-conversion command
	    instead.

     db-version [db]
     schema-version [schema]
	    Prints the version number in the schema embedded within the database
	    db or in the JSON schema schema on stdout.	If schema or db was cre-
	    ated  before schema versioning was introduced, then it will not have
	    a version number and this command will print a blank line.

	    The db-version command is for standalone and active-backup databases
	    only.  For clustered databases,  use  ovsdb-client's  schema-version
	    command instead.

     db-cksum [db]
     schema-cksum [schema]
	    Prints the checksum in the schema embedded within the database db or
	    of	the  JSON  schema schema on stdout.  If schema or db was created
	    before schema checksums were introduced, then it  will  not  have  a
	    checksum and this command will print a blank line.

	    The  db-cksum  command is for standalone and active-backup databases
	    only.  For clustered databases, use ovsdb-client's schema-cksum com-
	    mand instead.

     compare-versions a op b
	    Compares a and b according to op.  Both a and b must be OVSDB schema
	    version numbers in the form x.y.z, as described in ovsdb(7), and  op
	    must  be  one  of < <= == >= > !=.	If the comparison is true, exits
	    with status 0; if it is false, exits with status 2.  (Exit status  1
	    indicates  an  error,  e.g.  a or b is the wrong syntax for an OVSDB
	    version or op is not a valid comparison operator.)

   Other Commands
     compact [db [target]]
	    Reads db and writes a compacted version.  If  target  is  specified,
	    the  compacted  version is written as a new file named target, which
	    must not already exist.  If target is omitted,  then  the  compacted
	    version  of  the database replaces db in-place.  This command is not
	    needed in normal operation because ovsdb-server from  time	to  time
	    automatically  compacts  a	database that grows much larger than its
	    minimum size.

	    This command does not work	if  db	is  currently  being  served  by
	    ovsdb-server,  or  if  it is otherwise locked for writing by another
	    process.  This command also does not work with clustered  databases.
	    Instead,  in  either  case, send the ovsdb-server/compact command to
	    ovsdb-server, via ovs-appctl).

     [--rbac-role=role] query [db] transaction
	    Opens db, executes transaction on it, and prints the  results.   The
	    transaction  must  be a JSON array in the format of the params array
	    for the JSON-RPC transact method, as described in the OVSDB specifi-
	    cation.

	    This command opens db for read-only access, so  it	may  safely  run
	    concurrently  with	other  database activity, including ovsdb-server
	    and other database writers.  The transaction  may  specify	database
	    modifications, but these will have no effect on db.

	    By default, the transaction is executed using the ``superuser'' RBAC
	    role.  Use --rbac-role to specify a different role.

	    This  command  does not work with clustered databases.  Instead, use
	    ovsdb-client's query command to send the query to ovsdb-server.

     [--rbac-role=role] transact [db] transaction
	    Opens db, executes transaction on it, prints the results,  and  com-
	    mits any changes to db.  The transaction must be a JSON array in the
	    format  of the params array for the JSON-RPC transact method, as de-
	    scribed in the OVSDB specification.

	    This command does not work	if  db	is  currently  being  served  by
	    ovsdb-server,  or  if  it is otherwise locked for writing by another
	    process.  This command also does not work with clustered  databases.
	    Instead, in either case, use ovsdb-client's transact command to send
	    the query to ovsdb-server.

	    By default, the transaction is executed using the ``superuser'' RBAC
	    role.  Use --rbac-role to specify a different role.

     [-m | --more]... show-log [db]
	    Prints  a summary of the records in db's log, including the time and
	    date at which each database change occurred and any associated  com-
	    ment.  This may be useful for debugging.

	    To	increase the verbosity of output, add -m (or --more) one or more
	    times to the command line.	With one -m, show-log prints  a  summary
	    of	the  records  added,  deleted,	or modified by each transaction.
	    With two -ms, show-log also prints the values of the  columns  modi-
	    fied by each change to a record.

	    This  command  works with standalone and active-backup databases and
	    with clustered databases, but the output formats are different.

     check-cluster db...
	    Reads all of the records in the supplied databases,  which	must  be
	    collected  from different servers (and ideally all the servers) in a
	    single cluster.  Checks each database for self-consistency	and  the
	    set  together  for cross-consistency.  If ovsdb-tool detects unusual
	    but not necessarily incorrect content, it prints a warning or  warn-
	    ings on stdout.  If ovsdb-tool find consistency errors, it prints an
	    error  on stderr and exits with status 1.  Errors typically indicate
	    bugs in ovsdb-server; please consider reporting  them  to  the  Open
	    vSwitch developers.

     db-name [db]
     schema-name [schema]
	    Prints  the name of the schema embedded within the database db or in
	    the JSON schema schema on stdout.

     db-cid db
	    Prints the cluster ID, which is a UUID that identifies the	cluster,
	    for  db.   If  db  is  a  database newly created by ovsdb-tool clus-
	    ter-join that has not yet successfully joined its cluster, and --cid
	    was not specified on the cluster-join command line, then  this  com-
	    mand will output an error, and exit with status 2, because the clus-
	    ter  ID  is  not  yet known.  This command works only with clustered
	    databases.

	    The all-zeros UUID is not a valid cluster ID.

     db-sid db
	    Prints the server ID, which is a UUID that	identifies  the  server,
	    for db.  This command works only with clustered databases.	It works
	    even  if  db  is a database newly created by ovsdb-tool cluster-join
	    that has not yet successfully joined its cluster.

     db-local-address db
	    Prints the local address used for database clustering for db, in the
	    same protocol:ip:port form used on create-cluster and join-cluster.

     db-is-clustered db
     db-is-standalone db
	    Tests whether db is a database file in clustered or standalone  for-
	    mat,  respectively.   If so, exits with status 0; if not, exits with
	    status 2.  (Exit status 1 indicates an error,  e.g.  db  is  not  an
	    OVSDB database or does not exist.)

OPTIONS
   Logging Options
     -v[spec]
     --verbose=[spec]
	    Sets logging levels.  Without any spec, sets the log level for every
	    module  and  destination to dbg.  Otherwise, spec is a list of words
	    separated by spaces or commas or colons, up to one from  each  cate-
	    gory below:

	    *	   A valid module name, as displayed by the vlog/list command on
		   ovs-appctl(8),  limits  the log level change to the specified
		   module.

	    *	   syslog, console, or file, to limit the log  level  change  to
		   only to the system log, to the console, or to a file, respec-
		   tively.   (If  --detach  is	specified, ovsdb-tool closes its
		   standard file descriptors, so logging  to  the  console  will
		   have no effect.)

		   On Windows platform, syslog is accepted as a word and is only
		   useful along with the --syslog-target option (the word has no
		   effect otherwise).

	    *	   off, emer, err, warn, info, or dbg, to control the log level.
		   Messages  of the given severity or higher will be logged, and
		   messages of lower severity will be filtered out.  off filters
		   out all messages.  See ovs-appctl(8) for a definition of each
		   log level.

	    Case is not significant within spec.

	    Regardless of the log levels set for file, logging to  a  file  will
	    not take place unless --log-file is also specified (see below).

	    For  compatibility	with older versions of OVS, any is accepted as a
	    word but has no effect.

     -v
     --verbose
	    Sets the maximum  logging  verbosity  level,  equivalent  to  --ver-
	    bose=dbg.

     -vPATTERN:destination:pattern
     --verbose=PATTERN:destination:pattern
	    Sets  the  log pattern for destination to pattern.	Refer to ovs-ap-
	    pctl(8) for a description of the valid syntax for pattern.

     -vFACILITY:facility
     --verbose=FACILITY:facility
	    Sets the RFC5424 facility of the log message. facility can be one of
	    kern, user, mail, daemon, auth, syslog, lpr, news, uucp, clock, ftp,
	    ntp, audit, alert, clock2, local0, local1, local2,	local3,  local4,
	    local5, local6 or local7. If this option is not specified, daemon is
	    used  as  the default for the local system syslog and local0 is used
	    while sending a message to the target provided via the --syslog-tar-
	    get option.

     --log-file[=file]
	    Enables logging to a file.	If file is specified, then it is used as
	    the exact name for the log file.  The default log file name used  if
	    file is omitted is /var/log/openvswitch/ovsdb-tool.log.

     --syslog-target=host:port
	    Send  syslog messages to UDP port on host, in addition to the system
	    syslog.  The host must be a numerical IP address, not a hostname.

     --syslog-method=method
	    Specify method how syslog messages should be sent to syslog  daemon.
	    Following forms are supported:

	    *	   libc, use libc syslog() function.  Downside of using this op-
		   tions  is that libc adds fixed prefix to every message before
		   it is actually sent to the syslog daemon over  /dev/log  UNIX
		   domain socket.

	    *	   unix:file,  use  UNIX domain socket directly.  It is possible
		   to specify arbitrary message format with this  option.   How-
		   ever,  rsyslogd  8.9 and older versions use hard coded parser
		   function anyway that limits UNIX domain socket use.	 If  you
		   want to use arbitrary message format with older rsyslogd ver-
		   sions, then use UDP socket to localhost IP address instead.

	    *	   udp:ip:port, use UDP socket.  With this method it is possible
		   to  use  arbitrary  message	format also with older rsyslogd.
		   When sending syslog messages over UDP socket extra precaution
		   needs to be taken into account, for	example,  syslog  daemon
		   needs  to  be configured to listen on the specified UDP port,
		   accidental iptables rules could  be	interfering  with  local
		   syslog  traffic  and  there	are some security considerations
		   that apply to UDP sockets, but do not apply	to  UNIX  domain
		   sockets.

	    *	   null, discards all messages logged to syslog.

	    The  default  is  taken from the OVS_SYSLOG_METHOD environment vari-
	    able; if it is unset, the default is libc.

   Other Options
     -h
     --help Prints a brief help message to the console.

     -V
     --version
	    Prints version information to the console.

FILES
     The default db  is  /var/db/openvswitch/conf.db.	The  default  schema  is
     /usr/local/share/openvswitch/vswitch.ovsschema.  The help command also dis-
     plays these defaults.

SEE ALSO
     ovsdb(7), ovsdb-server(1), ovsdb-client(1).

Open vSwitch			     2.17.12			   ovsdb-tool(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ovsdb-tool&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help