Add or Delete a Cell
Add #
To add a cell after a cluster is up and running, you start off by creating one using the same steps previously performed to create the first cell:
vtctlclient AddCellInfo -- \
--root /vitess/cell2 \
--server_address <cell2_topo_address> \
cell2
Additionally, you will need to make the keyspace info visible in the cell. For every keyspace, issue the following:
vtctlclient RebuildKeyspaceGraph -- --cells=cell2 <keyspace>
And finally, deploy the VSchema with
vtctlclient RebuildVSchemaGraph -- --cells=cell2
cells
option is not specified, the rebuild deploys to all cells.Once these steps are done, you can bring up the necessary mysqls, vttablets and vtgates under that cell.
Delete #
To delete a cell, bring down all servers in that cell, and then remove its entry from the global topo with:
vtctlclient DeleteCellInfo -- --force cell2
If --force
is not used the command will error out if any keyspace was deployed to that cell. There is currently no clean way to undeploy a keyspace from a cell. So, --force
will need to be used for most use cases.
VTGates and vtctlds do not refresh themselves after a cell is deleted or updated. It is recommended that you restart them.
Once the Vitess components are restarted, the final step will be to bring down the cell-specific topo server.
If you had deployed a cell-specific toposerver, that can now be brought down. The deployed info under the cell's root (/vitess/cell2
) will not be automatically deleted. You will have to manually delete that directory.