diff --git a/doc/code_snippets/snippets/config/instances.enabled/force_recovery/README.md b/doc/code_snippets/snippets/config/instances.enabled/force_recovery/README.md new file mode 100644 index 000000000..9eb681ec5 --- /dev/null +++ b/doc/code_snippets/snippets/config/instances.enabled/force_recovery/README.md @@ -0,0 +1,18 @@ +# Force recovery + +A sample application demonstrating how to start an instance with a corrupted write-ahead log file. + +## Running + +- To start the instance using the `tt` utility, execute the following command in the [config](../../../config) directory: + + ```console + $ TT_FORCE_RECOVERY=true tt start force_recovery + ``` + +- To start the instance using the `tarantool` command, you can use both the `TT_FORCE_RECOVERY` environment variable and add the `--force-recovery` option. + In the example below, the `tarantool` command is executed in the [config/instances.enabled/force_recovery](../../../config/instances.enabled/force_recovery) directory: + + ```console + $ tarantool --name instance001 --config config.yaml --force-recovery -i + ``` diff --git a/doc/code_snippets/snippets/config/instances.enabled/force_recovery/config.yaml b/doc/code_snippets/snippets/config/instances.enabled/force_recovery/config.yaml new file mode 100644 index 000000000..69ccf58c8 --- /dev/null +++ b/doc/code_snippets/snippets/config/instances.enabled/force_recovery/config.yaml @@ -0,0 +1,9 @@ +groups: + group001: + replicasets: + replicaset001: + instances: + instance001: + iproto: + listen: + - uri: '127.0.0.1:3301' \ No newline at end of file diff --git a/doc/code_snippets/snippets/config/instances.enabled/force_recovery/instances.yml b/doc/code_snippets/snippets/config/instances.enabled/force_recovery/instances.yml new file mode 100644 index 000000000..aa60c2fc4 --- /dev/null +++ b/doc/code_snippets/snippets/config/instances.enabled/force_recovery/instances.yml @@ -0,0 +1 @@ +instance001: diff --git a/doc/code_snippets/snippets/config/instances.enabled/force_recovery/var/lib/instance001/00000000000000000000.snap b/doc/code_snippets/snippets/config/instances.enabled/force_recovery/var/lib/instance001/00000000000000000000.snap new file mode 100644 index 000000000..43e18b235 Binary files /dev/null and b/doc/code_snippets/snippets/config/instances.enabled/force_recovery/var/lib/instance001/00000000000000000000.snap differ diff --git a/doc/code_snippets/snippets/config/instances.enabled/force_recovery/var/lib/instance001/00000000000000000000.xlog b/doc/code_snippets/snippets/config/instances.enabled/force_recovery/var/lib/instance001/00000000000000000000.xlog new file mode 100644 index 000000000..d9b4e6642 Binary files /dev/null and b/doc/code_snippets/snippets/config/instances.enabled/force_recovery/var/lib/instance001/00000000000000000000.xlog differ diff --git a/doc/reference/tarantool_cli_options.rst b/doc/reference/tarantool_cli_options.rst index 8e79ed8d7..108e3c120 100644 --- a/doc/reference/tarantool_cli_options.rst +++ b/doc/reference/tarantool_cli_options.rst @@ -65,6 +65,25 @@ Options Start an external coordinator used for a :ref:`supervised failover `. +.. _tarantool_cli_force_recovery: + +.. option:: --force-recovery + + **Since:** :doc:`3.0.0 `. + + Try to start an instance if there is an error while reading a corrupted snapshot or write-ahead log file during the recovery process: + + - For a corrupted :ref:`snapshot file ` -- at the instance start. + - For a corrupted :ref:`write-ahead log file ` -- at the instance start or when applying an update at a replica. + + With this option enabled, Tarantool skips invalid records, reads as much data as possible, and lets the process finish with a warning. + When the instance has started, call :ref:`box.snapshot() ` to make a new snapshot so that the corrupted snapshots or write-ahead logs aren't used for recovery anymore. + + You can also enable force recovery using the ``TT_FORCE_RECOVERY`` environment variable. + ``TT_FORCE_RECOVERY`` has a lower priority than the ``--force-recovery`` option. + + Example on GitHub: `force_recovery `_ + .. _index-tarantool_version: .. option:: -v, -V, --version