# Restore

Using the custom backup container it is possible to restore:

* the Elasticsearch indices
* the OpenLDAP database (if present)

To restore any of the data the following steps have to be performed:

* stop Snow Owl, Elasticsearch, and the OpenLDAP containers (in the folder `./snow-owl/docker`):

```sh
docker compose stop snowowl elasticsearch ldap
```

* (re)move the contents of the old Elasticsearch data folder:

```sh
mv -t /tmp ./snow-owl/resources/indexes/nodes
```

* restart the Elasticsearch container **only** (keep Snow Owl stopped):

```sh
docker compose start elasticsearch
```

* use **the backup container's terminal** and execute the restore script:

  * without any parameters, if only the Elasticsearch indices have to be restored

  ```shell-session
  root@host:/# docker exec -it backup bash
  root@ad36cfb0448c:/# /backup/restore.sh
  ```

  * with parameter `-l` in case the Elasticsearch indices **and** the OpenLDAP database have to be restored at the same time

  ```shell-session
  root@host:/# docker exec -it backup bash
  root@ad36cfb0448c:/# /backup/restore.sh -l
  ```
* the script will list all available backups and prompts for selection:

```shell-session
root@ad36cfb0448c:/# /backup/restore.sh

################################
Snow Owl restore script STARTED.

#### Verify Elasticsearch snapshot repository ####

Checking existence of repository 'snowowl-snapshots' ...
Repository with name 'snowowl-snapshots' is present, verifying repository state ...
Repository 'snowowl-snapshots' is functional

#### Select backup to restore ####

Found 10 available backups under '/backup'
Please select the backup to restore by choosing the right number in the menu below (hit Enter when the selection was made)

 1) snowowl-daily-20220323030001
 2) snowowl-daily-20220324030001
 3) snowowl-daily-20220325030002
 4) snowowl-daily-20220326030002
 5) snowowl-daily-20220329030001
 6) snowowl-daily-20220330030001
 7) snowowl-daily-20220331030002
 8) snowowl-daily-20220401030002
 9) snowowl-daily-20220402030001
10) snowowl-daily-20220405030002

#?

```

* enter the numerical identifier of the backup to restore and wait until the process finishes
* exit the backup container and restart all containers:

```shell-session
root@ad36cfb0448c:/# exit
root@host:/# docker compose up -d
```

{% hint style="info" %}
In case only the contents of the OpenLDAP server have to be restored, it is sufficient to just extract the contents of the backup archive to `./snow-owl/ldap` and restart the container.&#x20;
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.b2ihealthcare.com/snow-owl/setup-and-administration/backup-and-restore/restore.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
