# Understanding Restore

For the restore process, the goal is to recreate the files in a "snapshot", with the contents as they were at the time the backup was made. To achieve this, the restore process first obtains a list of files, and from that builds a list of blocks that are required to recreate these files.

If a [local database](https://docs.duplicati.com/database-and-storage/the-local-database) is present, this information can be extracted directly from the database, and only the actual blocks are retrieved from the remote storage. If a local database is not present, a partial local database is created by downloading the relevant file list (aka `.dlist`) and index files (aka `.dindex`). If the index files are missing or do not contain the required information, Duplicati will download the block volumes (aka `.dblock`) files until all information is obtained.

The restore process will perform a best-effort restore if some of the data is missing, and give an error message at the end, explaining what went wrong. The goal with this is to be as fault tolerant as possible, but not give the illusion that the restore was succesful if it was not.

At the end of the restore, all restored files are verified to ensure they were restored correctly.


---

# 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.duplicati.com/technical-details/understanding-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.
