---
title: Restore data
description: Use the influx restore command to restore backup data and metadata from InfluxDB.
url: https://docs.influxdata.com/influxdb/v2/admin/backup-restore/restore/
estimated_tokens: 2196
product: InfluxDB OSS v2
version: v2
---

# Restore data

This page documents an earlier version of InfluxDB OSS. [InfluxDB 3 Core](/influxdb3/core/) is the latest stable version.

#### API token hashing is enabled by default in InfluxDB OSS 2.9.0

Stronger token security: tokens are stored as hashes on disk, so a copy of the database file doesn’t expose usable tokens. Existing tokens are hashed on first startup and the original strings can’t be recovered afterward — **capture any plaintext tokens you still need before you upgrade**.

For more information, see [Token hashing](/influxdb/v2/admin/tokens/#token-hashing).

Restores **not supported in InfluxDB Cloud**.

#### Restoring a backup with hashed tokens

If the backup was taken from an instance with [token hashing](/influxdb/v2/admin/tokens/#token-hashing) enabled (the default in **InfluxDB OSS 2.9.0+**), the backup does not contain a plaintext operator token. To run a full restore of that backup, supply the operator token to the CLI with the `--operator-token <token>` flag (`influx-cli` v2.8.0+):

```sh
influx restore --full --operator-token <OPERATOR_TOKEN> /path/to/backup
```

Use the `influx restore` command to restore backup data and metadata from InfluxDB OSS.

-   [Restore data with the influx CLI](#restore-data-with-the-influx-cli)
-   [Recover from a failed restore](#recover-from-a-failed-restore)

InfluxDB moves existing data and metadata to a temporary location. If the restore fails, InfluxDB preserves temporary data for recovery, otherwise this data is deleted. *See [Recover from a failed restore](#recover-from-a-failed-restore).*

#### Cannot restore to existing buckets

The `influx restore` command cannot restore data to existing buckets. Use the `--new-bucket` flag to create a new bucket to restore data to. To restore data and retain bucket names, [delete existing buckets](/influxdb/v2/admin/buckets/delete-bucket/) and then begin the restore process.

## Restore data with the influx CLI

Use the `influx restore` command and specify the path to the backup directory.

*For more information about restore options and flags, see the [`influx restore` documentation](/influxdb/v2/reference/cli/influx/restore/).*

-   [Restore all time series data](#restore-all-time-series-data)
-   [Restore data from a specific bucket](#restore-data-from-a-specific-bucket)
-   [Restore and replace all InfluxDB data](#restore-and-replace-all-influxdb-data)

### Restore all time series data

To restore all time series data from a backup directory, provide the following:

-   backup directory path

```sh
influx restore /backups/2020-01-20_12-00/
```

### Restore data from a specific bucket

To restore data from a specific backup bucket, provide the following:

-   backup directory path
-   bucket name or ID

```sh
influx restore \
  /backups/2020-01-20_12-00/ \
  --bucket example-bucket

# OR

influx restore \
  /backups/2020-01-20_12-00/ \
  --bucket-id 000000000000
```

If a bucket with the same name as the backed up bucket already exists in InfluxDB, use the `--new-bucket` flag to create a new bucket with a different name and restore data into it.

```sh
influx restore \
  /backups/2020-01-20_12-00/ \
  --bucket example-bucket \
  --new-bucket new-example-bucket
```

### Restore and replace all InfluxDB data

To restore and replace all time series data *and* InfluxDB key-value data such as tokens, users, dashboards, etc., include the following:

-   `--full` flag
-   backup directory path

```sh
influx restore \
  /backups/2020-01-20_12-00/ \
  --full
```

#### Restore to a new InfluxDB server

If using a backup to populate a new InfluxDB server:

1. Retrieve the [admin token](/influxdb/v2/admin/tokens/#operator-token) from your source InfluxDB instance.
    
2. Set up your new InfluxDB instance, but use the `-t`, `--token` flag to use the **admin token** from your source instance as the admin token on your new instance.
    
    ```sh
    influx setup --token My5uP3rSecR37t0keN
    ```
    
3. Restore the backup to the new server.
    
    ```sh
    influx restore \
      /backups/2020-01-20_12-00/ \
      --full
    ```
    

If you do not provide the admin token from your source InfluxDB instance as the admin token in your new instance, the restore process and all subsequent attempts to authenticate with the new server will fail.

1. The first restore API call uses the auto-generated token to authenticate with the new server and overwrites the entire key-value store in the new server, including the auto-generated token.
2. The second restore API call attempts to upload time series data, but uses the auto-generated token to authenticate with new server. That token is overwritten in first restore API call and the process fails to authenticate.

## Recover from a failed restore

If the restoration process fails, InfluxDB preserves existing data in a `tmp` directory in the [target engine path](/influxdb/v2/reference/cli/influx/restore/#flags) (default is `~/.influxdbv2/engine`).

To recover from a failed restore:

1. Copy the temporary files back into the `engine` directory.
2. Remove the `.tmp` extensions from each of the copied files.
3. Restart the `influxd` server.

#### Related

-   [Back up data](/influxdb/v2/admin/backup-restore/backup/)

[restore](/influxdb/v2/tags/restore/)
