Toggle Databases State Operation
(Enable / Disable)
-
Use
ToggleDatabasesStateOperation
to enable/disable a single database or multiple databases. -
The database will be enabled/disabled on all nodes in the database-group.
-
In this page:
Enable/Disable database from the Client API
Enable database:
// Define the toggle state operation
// specify the database name & pass 'false' to enable
var enableDatabaseOp = new ToggleDatabasesStateOperation("Northwind", disable: false);
// To enable multiple databases use:
// var enableDatabaseOp =
// new ToggleDatabasesStateOperation(new [] { "DB1", "DB2", ... }, disable: false);
// Execute the operation by passing it to Maintenance.Server.Send
var toggleResult = documentStore.Maintenance.Server.Send(enableDatabaseOp);
// Define the toggle state operation
// specify the database name(s) & pass 'false' to enable
var enableDatabaseOp = new ToggleDatabasesStateOperation(new [] { "Foo", "Bar" }, disable: false);
// Execute the operation by passing it to Maintenance.Server.SendAsync
var toggleResult = await documentStore.Maintenance.Server.SendAsync(enableDatabaseOp);
Disable database:
// Define the toggle state operation
// specify the database name(s) & pass 'true' to disable
var disableDatabaseOp = new ToggleDatabasesStateOperation("Northwind", disable: true);
// To disable multiple databases use:
// var disableDatabaseOp =
// new ToggleDatabasesStateOperation(new [] { "DB1", "DB2", ... }, disable: true);
// Execute the operation by passing it to Maintenance.Server.Send
var toggleResult = documentStore.Maintenance.Server.Send(disableDatabaseOp);
// Define the toggle state operation
// specify the database name(s) & pass 'true' to disable
var disableDatabaseOp = new ToggleDatabasesStateOperation("Northwind", disable: true);
// Execute the operation by passing it to Maintenance.Server.SendAsync
var toggleResult = await documentStore.Maintenance.Server.SendAsync(disableDatabaseOp);
Syntax:
// Available overloads:
public ToggleDatabasesStateOperation(string databaseName, bool disable)
public ToggleDatabasesStateOperation(string[] databaseNames, bool disable)
Parameter | Type | Description |
---|---|---|
databaseName | string |
Name of database for which to toggle state |
databaseNames | string[] |
List of database names for which to toggle state |
disable | bool |
true - request to disable the database(s)false - request to enable the database(s) |
// Executing the operation returns the following object:
public class DisableDatabaseToggleResult
{
public bool Disabled; // Is database disabled
public string Name; // Name of the database
public bool Success; // Has request succeeded
public string Reason; // Reason for success or failure
}
Disable database via the file system
It may sometimes be useful to disable a database manually, through the file system.
-
To manually disable a database:
- Place a file named
disable.marker
in the database directory. - The
disable.marker
file can be empty,
and can be created by any available method, e.g. using the File Explorer, a terminal, or code.
- Place a file named
-
Attempting to use a manually disabled database will generate the following exception:
Unable to open database: '{DatabaseName}', it has been manually disabled via the file: '{disableMarkerPath}'. To re-enable, remove the disable.marker and reload the database.
-
To enable a manually disabled database:
- First, remove the
disable.marker
file from the database directory. - Then, reload the database.
- First, remove the