340 lines
20 KiB
Markdown
340 lines
20 KiB
Markdown
---
|
|
title: Manually upgrade from InfluxDB 1.x to 2.1
|
|
list_title: Manually upgrade from 1.x to 2.1
|
|
description: >
|
|
To manually upgrade from InfluxDB 1.x to InfluxDB 2.1, migrate data, create
|
|
1.x-compatible authorizations, and create database and retention policy
|
|
(DBRP) mappings.
|
|
menu:
|
|
influxdb_2_1:
|
|
parent: InfluxDB 1.x to 2.1
|
|
name: Manually upgrade
|
|
weight: 11
|
|
related:
|
|
- /influxdb/v2.1/upgrade/v1-to-v2/
|
|
- /influxdb/v2.1/upgrade/v1-to-v2/migrate-cqs/
|
|
---
|
|
|
|
To manually upgrade from InfluxDB 1.x to InfluxDB {{< current-version >}}:
|
|
|
|
1. [Install InfluxDB {{< current-version >}}](#install-influxdb-21)
|
|
2. [Migrate custom configuration settings](#migrate-custom-configuration-settings)
|
|
3. [Create DBRP mappings](#create-dbrp-mappings)
|
|
4. [Create authorizations](#create-authorizations)
|
|
5. [Migrate time series data](#migrate-time-series-data)
|
|
6. [Migrate continuous queries](#migrate-continuous-queries)
|
|
|
|
## Install InfluxDB {{< current-version >}}
|
|
[Download, install, and set up InfluxDB {{< current-version >}}](/influxdb/v2.1/get-started/).
|
|
|
|
{{% note %}}
|
|
#### Required 2.x credentials
|
|
All InfluxDB {{< current-version >}} `influx` CLI examples below assume the required **host**,
|
|
**organization**, and **API token** credentials are provided by your
|
|
[`influx` CLI configuration](/influxdb/v2.1/reference/cli/influx/#provide-required-authentication-credentials).
|
|
{{% /note %}}
|
|
|
|
## Migrate custom configuration settings
|
|
If you're using custom configuration settings in your InfluxDB 1.x instance, do the following:
|
|
|
|
1. Compare 1.x and {{< current-version >}} configuration settings:
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View configuration option parity" %}}
|
|
|
|
| 1.x configuration option | {{< current-version >}} configuration option |
|
|
| :--------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- |
|
|
| **[data]** | |
|
|
| dir | [engine-path](/influxdb/v2.1/reference/config-options/#engine-path) |
|
|
| wal-dir | [engine-path](/influxdb/v2.1/reference/config-options/#engine-path) |
|
|
| wal-fsync-delay | [storage-wal-fsync-delay](/influxdb/v2.1/reference/config-options/#storage-wal-fsync-delay) |
|
|
| index-version | |
|
|
| trace-logging-enabled | |
|
|
| query-log-enabled | |
|
|
| strict-error-handling | |
|
|
| validate-keys | [storage-validate-keys](/influxdb/v2.1/reference/config-options/#storage-validate-keys) |
|
|
| cache-max-memory-size | [storage-cache-max-memory-size](/influxdb/v2.1/reference/config-options/#storage-cache-max-memory-size) |
|
|
| cache-snapshot-memory-size | [storage-cache-snapshot-memory-size](/influxdb/v2.1/reference/config-options/#storage-cache-snapshot-memory-size) |
|
|
| cache-snapshot-write-cold-duration | [storage-cache-snapshot-write-cold-duration](/influxdb/v2.1/reference/config-options/#storage-cache-snapshot-write-cold-duration) |
|
|
| compact-full-write-cold-duration | [storage-compact-full-write-cold-duration](/influxdb/v2.1/reference/config-options/#storage-compact-full-write-cold-duration) |
|
|
| max-concurrent-compactions | [storage-max-concurrent-compactions](/influxdb/v2.1/reference/config-options/#storage-max-concurrent-compactions) |
|
|
| compact-throughput | |
|
|
| compact-throughput-burst | [storage-compact-throughput-burst](/influxdb/v2.1/reference/config-options/#storage-compact-throughput-burst) |
|
|
| tsm-use-madv-willneed | [storage-tsm-use-madv-willneed](/influxdb/v2.1/reference/config-options/#storage-tsm-use-madv-willneed) |
|
|
| max-series-per-database | |
|
|
| max-values-per-tag | |
|
|
| max-index-log-file-size | [storage-max-index-log-file-size](/influxdb/v2.1/reference/config-options/#storage-max-index-log-file-size) |
|
|
| series-id-set-cache-size | [storage-series-id-set-cache-size](/influxdb/v2.1/reference/config-options/#storage-series-id-set-cache-size) |
|
|
| | |
|
|
| **[retention]** | |
|
|
| check-interval | [storage-retention-check-interval](/influxdb/v2.1/reference/config-options/#storage-retention-check-interval) |
|
|
| | |
|
|
| **[shard-precreation]** | |
|
|
| check-interval | [storage-shard-precreator-check-interval](/influxdb/v2.1/reference/config-options/#storage-shard-precreator-check-interval) |
|
|
| advance-period | [storage-shard-precreator-advance-period](/influxdb/v2.1/reference/config-options/#storage-shard-precreator-advance-period) |
|
|
| | |
|
|
| **[http]** | |
|
|
| flux-enabled | |
|
|
| flux-log-enabled | |
|
|
| bind-address | [http-bind-address](/influxdb/v2.1/reference/config-options/#http-bind-address) |
|
|
| auth-enabled | |
|
|
| realm | |
|
|
| log-enabled | |
|
|
| suppress-write-log | |
|
|
| access-log-path | |
|
|
| access-log-status-filters | |
|
|
| write-tracing | |
|
|
| pprof-enabled | [pprof-disabled](/influxdb/v2.1/reference/config-options/#pprof-disabled) |
|
|
| pprof-auth-enabled | |
|
|
| debug-pprof-enabled | |
|
|
| ping-auth-enabled | |
|
|
| https-enabled | |
|
|
| https-certificate | [tls-cert](/influxdb/v2.1/reference/config-options/#tls-cert) |
|
|
| https-private-key | [tls-key](/influxdb/v2.1/reference/config-options/#tls-key) |
|
|
| shared-secret | |
|
|
| max-row-limit | |
|
|
| max-connection-limit | |
|
|
| unix-socket-enabled | |
|
|
| bind-socket | |
|
|
| max-body-size | |
|
|
| max-concurrent-write-limit | |
|
|
| max-enqueued-write-limit | |
|
|
| enqueued-write-timeout | [http-write-timeout](/influxdb/v2.1/reference/config-options/#http-write-timeout) |
|
|
| | |
|
|
| **[logging]** | |
|
|
| format | |
|
|
| level | [log-level](/influxdb/v2.1/reference/config-options/#log-level) |
|
|
| suppress-logo | |
|
|
| | |
|
|
| **[tls]** | |
|
|
| ciphers | [tls-strict-ciphers](/influxdb/v2.1/reference/config-options/#tls-strict-ciphers) |
|
|
| min-version | [tls-min-version](/influxdb/v2.1/reference/config-options/#tls-min-version) |
|
|
| max-version | |
|
|
|
|
{{% note %}}
|
|
#### 1.x configuration groups not in {{< current-version >}}
|
|
The following 1.x configuration groups **do not** apply to InfluxDB {{< current-version >}}:
|
|
|
|
- meta
|
|
- coordinator
|
|
- monitor
|
|
- subscriber
|
|
- graphite
|
|
- collectd
|
|
- opentsdb
|
|
- udp
|
|
- continuous_queries
|
|
{{% /note %}}
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
2. Apply your 1.x custom settings to the comparable InfluxDB {{< current-version >}} settings using
|
|
`influxd` flags, environment variables, or a {{< current-version >}} configuration file.
|
|
For more information about configuring InfluxDB {{< current-version >}}, see
|
|
[Configuration options](/influxdb/v2.1/reference/config-options/).
|
|
3. **Restart `influxd`**.
|
|
|
|
## Create DBRP mappings
|
|
InfluxDB database and retention policy (DBRP) mappings associate database and
|
|
retention policy combinations with InfluxDB {{< current-version >}} [buckets](/influxdb/v2.1/reference/glossary/#bucket).
|
|
These mappings allow InfluxDB 1.x clients to successfully query and write to
|
|
InfluxDB {{< current-version >}} buckets while using the 1.x DBRP convention.
|
|
|
|
_For more information about DBRP mapping, see
|
|
[Database and retention policy mapping](/influxdb/v2.1/reference/api/influxdb-1x/dbrp/)._
|
|
|
|
**To map a DBRP combination to an InfluxDB {{< current-version >}} bucket:**
|
|
|
|
1. **Create a bucket**
|
|
[Create an InfluxDB {{< current-version >}} bucket](/influxdb/v2.1/organizations/buckets/create-bucket/).
|
|
We recommend creating a bucket for each unique 1.x database and retention
|
|
policy combination using the following naming convention:
|
|
|
|
```sh
|
|
# Naming convention
|
|
db-name/rp-name
|
|
|
|
# Example
|
|
telegraf/autogen
|
|
```
|
|
|
|
2. **Create a DBRP mapping**
|
|
Use the [`influx v1 dbrp create` command](/influxdb/v2.1/reference/cli/influx/v1/dbrp/create/)
|
|
to create a DBRP mapping.
|
|
Provide the following:
|
|
|
|
- database name
|
|
- retention policy name _(not retention period)_
|
|
- [bucket ID](/influxdb/v2.1/organizations/buckets/view-buckets/)
|
|
- _(optional)_ `--default` flag if you want the retention policy to be the default retention
|
|
policy for the specified database
|
|
|
|
{{< code-tabs-wrapper >}}
|
|
{{% code-tabs %}}
|
|
[DB with one RP](#)
|
|
[DB with multiple RPs](#)
|
|
{{% /code-tabs %}}
|
|
{{% code-tab-content %}}
|
|
```sh
|
|
influx v1 dbrp create \
|
|
--db example-db \
|
|
--rp example-rp \
|
|
--bucket-id 00xX00o0X001 \
|
|
--default
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{% code-tab-content %}}
|
|
```sh
|
|
# Create telegraf/autogen DBRP mapping with autogen
|
|
# as the default RP for the telegraf DB
|
|
|
|
influx v1 dbrp create \
|
|
--db telegraf \
|
|
--rp autogen \
|
|
--bucket-id 00xX00o0X001 \
|
|
--default
|
|
|
|
# Create telegraf/downsampled-daily DBRP mapping that
|
|
# writes to a different bucket
|
|
|
|
influx v1 dbrp create \
|
|
--db telegraf \
|
|
--rp downsampled-daily \
|
|
--bucket-id 00xX00o0X002
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{< /code-tabs-wrapper >}}
|
|
|
|
3. **Confirm the DBRP mapping was created**
|
|
Use the [`influx v1 dbrp list`](/influxdb/v2.1/reference/cli/influx/v1/dbrp/list/) to list existing DBRP mappings.
|
|
|
|
```sh
|
|
influx v1 dbrp list
|
|
```
|
|
|
|
For information about managing DBRP mappings, see the
|
|
[`influx v1 dbrp` command documentation](/influxdb/v2.1/reference/cli/influx/v1/dbrp/).
|
|
|
|
## Create authorizations
|
|
InfluxDB {{< current-version >}} requires authentication and provides two authentication methods:
|
|
|
|
- [Token authentication](#token-authentication)
|
|
- [1.x compatible authorizations](#1x-compatible-authorizations)
|
|
|
|
### Token authentication
|
|
Use [InfluxDB {{< current-version >}} token authentication](/influxdb/v2.1/security/tokens/) to
|
|
authenticate requests to InfluxDB {{< current-version >}}.
|
|
|
|
##### Recommended if:
|
|
- Your 1.x instance **does not have authentication enabled**.
|
|
|
|
{{% note %}}
|
|
#### Use tokens with basic authentication
|
|
To use tokens with InfluxDB clients that require an InfluxDB username and password,
|
|
provide an arbitrary user name and pass the token as the password.
|
|
{{% /note %}}
|
|
|
|
### 1.x-compatible authorizations
|
|
InfluxDB {{< current-version >}} provides a [1.x compatibility API](/influxdb/v2.1/reference/api/influxdb-1x/)
|
|
that lets you authenticate using a username and password as in InfluxDB 1.x.
|
|
If authentication is enabled in your InfluxDB 1.x instance,
|
|
[create a 1.x-compatible authorization](#create-a-1x-compatible-authorization)
|
|
with the same username and password as your InfluxDB 1.x instance to allow
|
|
external clients to connect to your InfluxDB {{< current-version >}} instance without any change.
|
|
|
|
##### Recommended if:
|
|
- Your 1.x instance **has authentication enabled**.
|
|
- You're using **InfluxDB 1.x clients or client libraries** configured with
|
|
InfluxDB usernames and passwords.
|
|
|
|
{{% note %}}
|
|
1.x compatibility authorizations are separate from credentials used to log
|
|
into the InfluxDB {{< current-version >}} user interface (UI).
|
|
{{% /note %}}
|
|
|
|
#### Create a 1.x-compatible authorization
|
|
Use the InfluxDB {{< current-version >}} [`influx v1 auth create` command](/influxdb/v2.1/reference/cli/influx/v1/auth/create/)
|
|
to create a 1.x-compatible authorization that grants read/write permissions to specific {{< current-version >}} buckets.
|
|
Provide the following:
|
|
|
|
- list of [bucket IDs](/influxdb/v2.1/organizations/buckets/view-buckets/) to
|
|
grant read or write permissions to
|
|
- new v1 auth username
|
|
- new v1 auth password _(when prompted)_
|
|
|
|
{{< code-tabs-wrapper >}}
|
|
{{% code-tabs %}}
|
|
[Single bucket](#)
|
|
[Mutiple buckets](#)
|
|
{{% /code-tabs %}}
|
|
{{% code-tab-content %}}
|
|
```sh
|
|
influx v1 auth create \
|
|
--read-bucket 00xX00o0X001 \
|
|
--write-bucket 00xX00o0X001 \
|
|
--username example-user
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{% code-tab-content %}}
|
|
```sh
|
|
influx v1 auth create \
|
|
--read-bucket 00xX00o0X001 \
|
|
--read-bucket 00xX00o0X002 \
|
|
--write-bucket 00xX00o0X001 \
|
|
--write-bucket 00xX00o0X002 \
|
|
--username example-user
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{< /code-tabs-wrapper >}}
|
|
|
|
For information about managing 1.x compatible authorizations, see the
|
|
[`influx v1 auth` command documentation](/influxdb/v2.1/reference/cli/influx/v1/auth/).
|
|
|
|
## Migrate time series data
|
|
To migrate time series data from your InfluxDB 1.x instance to InfluxDB {{< current-version >}}:
|
|
|
|
1. Use the **InfluxDB 1.x** [`influx_inspect export` command](/{{< latest "influxdb" "v1" >}}/tools/influx_inspect/#export)
|
|
to export time series data as line protocol.
|
|
Include the `-lponly` flag to exclude comments and the data definition
|
|
language (DDL) from the output file.
|
|
|
|
_We recommend exporting each DBRP combination separately to easily write data
|
|
to a corresponding InfluxDB {{< current-version >}} bucket._
|
|
|
|
```sh
|
|
# Syntax
|
|
influx_inspect export \
|
|
-database <database-name> \
|
|
-retention <retention-policy-name> \
|
|
-out <output-file-path> \
|
|
-lponly
|
|
|
|
# Example
|
|
influx_inspect export \
|
|
-database example-db \
|
|
-retention example-rp \
|
|
-out /path/to/example-db_example-rp.lp \
|
|
-lponly
|
|
```
|
|
|
|
2. Use the **InfluxDB {{< current-version >}}** [`influx write` command](/influxdb/v2.1/reference/cli/influx/write/)
|
|
to write the exported line protocol to InfluxDB {{< current-version >}}.
|
|
|
|
```sh
|
|
# Syntax
|
|
influx write \
|
|
--bucket <bucket-name> \
|
|
--file <path-to-line-protocol-file>
|
|
|
|
# Example
|
|
influx write \
|
|
--bucket example-db/example-rp \
|
|
--file /path/to/example-db_example-rp.lp
|
|
```
|
|
|
|
3. Repeat steps 1-2 for each bucket.
|
|
|
|
## Migrate continuous queries
|
|
For information about migrating InfluxDB 1.x continuous queries to InfluxDB {{< current-version >}} tasks,
|
|
see [Migrate continuous queries to tasks](/influxdb/v2.1/upgrade/v1-to-v2/migrate-cqs/).
|