vtctl Schema, Version, Permissions Command Reference
The following vtctl
commands are available for administering Schema, Versions and Permissions.
Commands #
GetSchema #
Displays the full schema for a tablet, or just the schema for the specified tables in that tablet.
Example #
GetSchema [-tables=<table1>,<table2>,...] [-exclude_tables=<table1>,<table2>,...] [-include-views] <tablet alias>
Flags #
Name | Type | Definition |
---|---|---|
exclude_tables | string | Specifies a comma-separated list of tables to exclude. Each is either an exact match, or a regular expression of the form /regexp/ |
include-views | Boolean | Includes views in the output |
table_names_only | Boolean | Only displays table names that match |
tables | string | Specifies a comma-separated list of tables for which we should gather information. Each is either an exact match, or a regular expression of the form /regexp/ |
Arguments #
<tablet alias>
– Required. A Tablet Alias uniquely identifies a vttablet. The argument value is in the format<cell name>-<uid>
.
Errors #
- The
<tablet alias>
argument is required for the<GetSchema>
command This error occurs if the command is not called with exactly one argument.
ReloadSchema #
Reloads the schema on a remote tablet.
Example #
ReloadSchema <tablet alias>
Arguments #
<tablet alias>
– Required. A Tablet Alias uniquely identifies a vttablet. The argument value is in the format<cell name>-<uid>
.
Errors #
- The
<tablet alias>
argument is required for the<ReloadSchema>
command This error occurs if the command is not called with exactly one argument.
ReloadSchemaShard #
Reloads the schema on all the tablets in a shard.
Example #
ReloadSchemaShard [-concurrency=10] [-include_primary=false] <keyspace/shard>
Flags #
Name | Type | Definition |
---|---|---|
concurrency | Int | How many tablets to reload in parallel |
include_primary | Boolean | Include the primary tablet |
Arguments #
<keyspace/shard>
– Required. The name of a sharded database that contains one or more tables as well as the shard associated with the command. The keyspace must be identified by a string that does not contain whitespace, while the shard is typically identified by a string in the format<range start>-<range end>
.
Errors #
- The
<keyspace/shard>
argument is required for the<ReloadSchemaShard>
command This error occurs if the command is not called with exactly one argument.
ReloadSchemaKeyspace #
Reloads the schema on all the tablets in a keyspace.
Example #
ReloadSchemaKeyspace [-concurrency=10] [-include_primary=false] <keyspace>
Flags #
Name | Type | Definition |
---|---|---|
concurrency | Int | How many tablets to reload in parallel |
include_primary | Boolean | Include the primary tablet(s) |
Arguments #
<keyspace>
– Required. The name of a sharded database that contains one or more tables. Vitess distributes keyspace shards into multiple machines and provides an SQL interface to query the data. The argument value must be a string that does not contain whitespace.
Errors #
- The
<keyspace>
argument is required for the<ReloadSchemaKeyspace>
command This error occurs if the command is not called with exactly one argument.
ValidateSchemaShard #
Validates that the schema on the primary tablet matches all of the replicas.
Example #
ValidateSchemaShard [-exclude_tables=''] [-include-views] <keyspace/shard>
Flags #
Name | Type | Definition |
---|---|---|
exclude_tables | string | Specifies a comma-separated list of tables to exclude. Each is either an exact match, or a regular expression of the form /regexp/ |
include-views | Boolean | Includes views in the validation |
Arguments #
<keyspace/shard>
– Required. The name of a sharded database that contains one or more tables as well as the shard associated with the command. The keyspace must be identified by a string that does not contain whitespace, while the shard is typically identified by a string in the format<range start>-<range end>
.
Errors #
- The
<keyspace/shard>
argument is required for the<ValidateSchemaShard>
command This error occurs if the command is not called with exactly one argument.
ValidateSchemaKeyspace #
Validates that the schema on the primary tablet for shard 0 matches the schema on all of the other tablets in the keyspace.
Example #
ValidateSchemaKeyspace [-exclude_tables=''] [-include-views] <keyspace name>
Flags #
Name | Type | Definition |
---|---|---|
exclude_tables | string | Specifies a comma-separated list of tables to exclude. Each is either an exact match, or a regular expression of the form /regexp/ |
include-views | Boolean | Includes views in the validation |
Arguments #
<keyspace name>
– Required. The name of a sharded database that contains one or more tables. Vitess distributes keyspace shards into multiple machines and provides an SQL interface to query the data. The argument value must be a string that does not contain whitespace.
Errors #
- The
<keyspace name>
argument is required for the<ValidateSchemaKeyspace>
command This error occurs if the command is not called with exactly one argument.
ApplySchema #
Applies the schema change to the specified keyspace on every primary, running in parallel on all shards. The changes are then propagated to replicas via replication. If -allow_long_unavailability is set, schema changes affecting a large number of rows (and possibly incurring a longer period of unavailability) will not be rejected. -ddl_strategy is used to instruct migrations via vreplication, gh-ost or pt-osc with optional parameters. -request_context allows the user to specify a custom request context for online DDL migrations. If -skip_preflight, SQL goes directly to shards without going through sanity checks.
Example #
ApplySchema [-allow_long_unavailability] [-wait_replicas_timeout=10s] [-ddl_strategy=] [-request_context= ] [-skip_preflight] {-sql=<sql> || -sql-file=<filename>} <keyspace>
Flags #
Name | Type | Definition |
---|---|---|
allow_long_unavailability | Boolean | Allow large schema changes which incur a longer unavailability of the database. |
ddl_strategy | string | Online DDL strategy, compatible with @@ddl_strategy session variable (examples: 'gh-ost', 'pt-osc', 'gh-ost --max-load=Threads_running=100' (default "direct"). |
request_context | string | For Only DDL, optionally supply a custom unique string used as context for the migration(s) in this command. By default a unique context is auto-generated by Vitess. |
skip_preflight | Boolean | Skip pre-apply schema checks, and directly forward schema change query to shards. |
sql | string | A list of semicolon-delimited SQL commands. |
sql-file | string | Identifies the file that contains the SQL commands. This file needs to exist on the server, rather than on the client. |
wait_replicas_timeout | Duration | The amount of time to wait for replicas to receive the schema change via replication (default 10s). |
Arguments #
<keyspace>
– Required. The name of a sharded database that contains one or more tables. Vitess distributes keyspace shards into multiple machines and provides an SQL interface to query the data. The argument value must be a string that does not contain whitespace.
Errors #
- The
<keyspace>
argument is required for the command<ApplySchema>
command This error occurs if the command is not called with exactly one argument. - If using a file you may need to pass the absolute path.
CopySchemaShard #
Copies the schema from a source shard's primary (or a specific tablet) to a destination shard. The schema is applied directly on the primary of the destination shard, and it is propagated to the replicas through binlogs.
Example #
CopySchemaShard [-tables=<table1>,<table2>,...] [-exclude_tables=<table1>,<table2>,...] [-include-views] [-wait_replicas_timeout=10s] {<source keyspace/shard> || <source tablet alias>} <destination keyspace/shard>
Flags #
Name | Type | Definition |
---|---|---|
exclude_tables | string | Specifies a comma-separated list of tables to exclude. Each is either an exact match, or a regular expression of the form /regexp/ |
include-views | Boolean | Includes views in the output |
tables | string | Specifies a comma-separated list of tables to copy. Each is either an exact match, or a regular expression of the form /regexp/ |
wait_replicas_timeout | Duration | The amount of time to wait for replicas to receive the schema change via replication. |
Arguments #
<source keyspace/shard>
– Required. A keyspace or shard to be used as the source of the copy.<source tablet alias>
– Required. A Tablet Alias uniquely identifies a vttablet. The argument value is in the format<cell name>-<uid>
.<destination keyspace/shard>
– Required. The name of a sharded database that contains one or more tables as well as the shard associated with the command. The keyspace must be identified by a string that does not contain whitespace, while the shard is typically identified by a string in the format<range start>-<range end>
.
Errors #
- The
<source keyspace/shard>
and<destination keyspace/shard>
arguments are both required for the<CopySchemaShard>
command. Instead of the<source keyspace/shard>
argument, you can also specify<tablet alias>
which refers to a specific tablet of the shard in the source keyspace This error occurs if the command is not called with exactly 2 arguments.
ValidateVersionShard #
Validates that the version on the primary matches all of the replicas.
Example #
ValidateVersionShard <keyspace/shard>
Arguments #
<keyspace/shard>
– Required. The name of a sharded database that contains one or more tables as well as the shard associated with the command. The keyspace must be identified by a string that does not contain whitespace, while the shard is typically identified by a string in the format<range start>-<range end>
.
Errors #
- The
<keyspace/shard>
argument is required for the<ValidateVersionShard>
command This error occurs if the command is not called with exactly one argument.
ValidateVersionKeyspace #
Validates that the version on the primary of shard 0 matches all of the other tablets in the keyspace.
Example #
ValidateVersionKeyspace <keyspace name>
Arguments #
<keyspace name>
– Required. The name of a sharded database that contains one or more tables. Vitess distributes keyspace shards into multiple machines and provides an SQL interface to query the data. The argument value must be a string that does not contain whitespace.
Errors #
- The
<keyspace name>
argument is required for the<ValidateVersionKeyspace>
command This error occurs if the command is not called with exactly one argument.
GetPermissions #
Displays the permissions for a tablet.
Example #
GetPermissions <tablet alias>
Arguments #
<tablet alias>
– Required. A Tablet Alias uniquely identifies a vttablet. The argument value is in the format<cell name>-<uid>
.
Errors #
- The
<tablet alias>
argument is required for the<GetPermissions>
command This error occurs if the command is not called with exactly one argument.
ValidatePermissionsShard #
Validates that the permissions on the primary tablet match all the replicas.
Example #
ValidatePermissionsShard <keyspace/shard>
Arguments #
<keyspace/shard>
– Required. The name of a sharded database that contains one or more tables as well as the shard associated with the command. The keyspace must be identified by a string that does not contain whitespace, while the shard is typically identified by a string in the format<range start>-<range end>
.
Errors #
- The
<keyspace/shard>
argument is required for the<ValidatePermissionsShard>
command This error occurs if the command is not called with exactly one argument.
ValidatePermissionsKeyspace #
Validates that the permissions on the primary of shard 0 match those of all of the other tablets in the keyspace.
Example #
ValidatePermissionsKeyspace <keyspace name>
Arguments #
<keyspace name>
– Required. The name of a sharded database that contains one or more tables. Vitess distributes keyspace shards into multiple machines and provides an SQL interface to query the data. The argument value must be a string that does not contain whitespace.
Errors #
- The
<keyspace name>
argument is required for the<ValidatePermissionsKeyspace>
command This error occurs if the command is not called with exactly one argument.
GetVSchema #
Displays the VTGate routing schema.
Example #
GetVSchema <keyspace>
Arguments #
<keyspace>
– Required. The name of a sharded database that contains one or more tables. Vitess distributes keyspace shards into multiple machines and provides an SQL interface to query the data. The argument value must be a string that does not contain whitespace.
Errors #
- The
<keyspace>
argument is required for the<GetVSchema>
command This error occurs if the command is not called with exactly one argument.
ApplyVSchema #
Applies the VTGate routing schema to the provided keyspace. Shows the result after application.
Example #
ApplyVSchema {-vschema=<vschema> || -vschema_file=<vschema file> || -sql=<sql> || -sql_file=<sql file>} [-cells=c1,c2,...] [-skip_rebuild] [-dry-run]<keyspace>
Flags #
Name | Type | Definition |
---|---|---|
cells | string | If specified, limits the rebuild to the cells, after upload. Ignored if skipRebuild is set. |
dry-run | Boolean | If set, do not save the altered vschema, simply echo to console. |
skip_rebuild | Boolean | If set, do not rebuild the SrvSchema objects. |
sql | add vindex | A vschema ddl SQL statement (e.g. add vindex, alter table t add vindex hash(id) , etc) |
sql_file | add vindex | A vschema ddl SQL statement (e.g. add vindex, alter table t add vindex hash(id) , etc) |
vschema | string | Identifies the VTGate routing schema |
vschema_file | string | Identifies the VTGate routing schema file |
Arguments #
<keyspace>
– Required. The name of a sharded database that contains one or more tables. Vitess distributes keyspace shards into multiple machines and provides an SQL interface to query the data. The argument value must be a string that does not contain whitespace.
Errors #
- The
<keyspace>
argument is required for the<ApplyVSchema>
command This error occurs if the command is not called with exactly one argument. - Either the
<vschema>
or<vschema>
File flag must be specified when calling the<ApplyVSchema>
command. - If using a file you may need to pass the absolute path.
GetRoutingRules #
GetRoutingRules
ApplyRoutingRules #
Applies the VSchema routing rules.
Example #
ApplyRoutingRules {-rules=<rules> | -rules_file=<rules_file>} [-cells=c1,c2,...] [-skip_rebuild] [-dry-run]
Flags #
Name | Type | Definition |
---|---|---|
cells | string | If specified, limits the rebuild to the cells, after upload. Ignored if skip_rebuild is set. |
dry-run | Boolean | If set, do not save the altered vschema, simply echo to console. |
skip_rebuild | Boolean | If set, do not rebuild the SrvSchema objects. |
-rules | string | Specify rules as a string. |
-rules_file | string | Specify rules in a file. |
RebuildVSchemaGraph #
Rebuilds the cell-specific SrvVSchema from the global VSchema objects in the provided cells (or all cells if none provided).
Example #
RebuildVSchemaGraph [-cells=c1,c2,...]
Flags #
Name | Type | Definition |
---|---|---|
cells | string | Specifies a comma-separated list of cells to look for tablets |
Errors #
<RebuildVSchemaGraph>
doesn't take any arguments This error occurs if the command is not called with exactly 0 arguments.