SingleStore Toolbox Config Files
On this page
The following directory structures reflect the default locations of the Toolbox configuration and state files.
/home/<user>/.local/share/singlestoredb-toolbox/
├── toolbox.hcl The Toolbox configuration file
├── toolbox-cache.hcl The Toolbox cache file
└── toolbox-state.hcl The Toolbox state file
The following table lists each configuration file and provides the location of each file, additional information about each file, and each file’s format.
File |
Location & Description |
Format |
|
|
|
||
The Toolbox configuration file. Overrides the default settings for a given user. Toolbox uses a description of the cluster which is stored in the user's home directory by default. Running a Toolbox command as the To run Toolbox commands as This file contains the following settings:
The following example shows expanded system defaults for a user on a 4-core host:
|
|||
|
|
||
The Toolbox state file. Maintains a list of hosts that are part of a cluster. There are two types of hosts: local and remote. The following is an empty Toolbox state file.
The following is a Toolbox state file that specifies three hosts and their connection information.
|
Toolbox and memsqlctl Differences
SingleStore provides two complementary tools to manage clusters: Toolbox and memsqlctl
.
Toolbox
Toolbox is a collection of command-line tools that can be used to deploy, administer, and manage a cluster.memsqlctl
.
Toolbox consists of four primary command-line tools:
-
sdb-deploy: Used to deploy and upgrade the SingleStore server across hosts in a cluster.
-
sdb-admin: Used to perform cluster administrative tasks, such as adding nodes, enabling high availability (HA), setting up cluster monitoring, performing backup operations, optimizing performance settings, and more.
-
sdb-report: Used to collect diagnostic information about a cluster.
-
sdb-toolbox-config: Primarily used to register and unregister hosts in a cluster.
Toolbox can be installed on any Linux computer with network access to all of the hosts in a cluster.
-
The user that runs memsqld
-
The Linux
root
user -
A Linux user with
sudo
privileges
Toolbox requires the following information to operate:
-
A list of hosts in a cluster
-
The credentials for each host, such as Linux username and SSH key
Toolbox stores the set of registered hosts and their credentials in the Toolbox state file, toolbox-state.
.env
sub-command of a Toolbox command, such as sdb-admin env
or sdb-report env
.
Contrary to SingleStore's legacy management tool, MemSQL Ops, Toolbox does not actively manage a cluster.memsqlctl
command which, in turn, issues the command to each node in the cluster.
More than one Toolbox instance can be used to manage a single cluster, and Toolbox can be manually reconfigured to manage a different cluster.
memsqlctl
The memsqlctl command is a low-level tool that is used to control and manage nodes on a host.memsqlctl
is a part of the SingleStore server package, it is installed along with the SingleStore database engine on each host in the cluster, where it employs the following files when manipulating the set of nodes:
-
memsql.
cnf: The node configuration file; also stores engine variables -
memsqlctl.
hcl: The memsqlctl
configuration file; can be used to override the default engine variable settings for the entire cluster; contains the location of thememsqlctl
state file,nodes.
hcl -
nodes.
hcl: The memsqlctl
state file, also referred to as the node metadata file; the file wherememsqlctl
stores information about the nodes that reside on a host; contains the location of the node configuration file,memsql.
cnf
Refer to Cluster Config Files for more detailed information.
Several administrative tasks supported by memsqlctl
can be accomplished via a SQL interface.memsqlctl
helps avoid the manual configurations involved when performing certain tasks, thereby minimizing human error.
For example, to create a node manually, one must:
-
Create a new
memsql.
filecnf -
Start
memsqld
, specifying all of the requiredmemsqld
command-line arguments
As starting memsqld
this way can be error-prone, memsqlctl
can (and should) be used instead.memsqlctl
, these actions are performed by reading information about the nodes on a host from the memsqlctl
configuration file, memsqlctl.
.
Last modified: August 22, 2024