docs-v2/content/influxdb/v2.1/upgrade/v1-to-v2/manual-upgrade.md

20 KiB

title list_title description menu weight related
Manually upgrade from InfluxDB 1.x to 2.1 Manually upgrade from 1.x to 2.1 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.
influxdb_2_1
parent name
InfluxDB 1.x to 2.1 Manually upgrade
11
/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 >}}
  2. Migrate custom configuration settings
  3. Create DBRP mappings
  4. Create authorizations
  5. Migrate time series data
  6. Migrate continuous queries

Install InfluxDB {{< current-version >}}

Download, install, and set up InfluxDB {{< current-version >}}.

{{% 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. {{% /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
wal-dir engine-path
wal-fsync-delay storage-wal-fsync-delay
index-version
trace-logging-enabled
query-log-enabled
strict-error-handling
validate-keys storage-validate-keys
cache-max-memory-size storage-cache-max-memory-size
cache-snapshot-memory-size storage-cache-snapshot-memory-size
cache-snapshot-write-cold-duration storage-cache-snapshot-write-cold-duration
compact-full-write-cold-duration storage-compact-full-write-cold-duration
max-concurrent-compactions storage-max-concurrent-compactions
compact-throughput
compact-throughput-burst storage-compact-throughput-burst
tsm-use-madv-willneed storage-tsm-use-madv-willneed
max-series-per-database
max-values-per-tag
max-index-log-file-size storage-max-index-log-file-size
series-id-set-cache-size storage-series-id-set-cache-size
[retention]
check-interval storage-retention-check-interval
[shard-precreation]
check-interval storage-shard-precreator-check-interval
advance-period storage-shard-precreator-advance-period
[http]
flux-enabled
flux-log-enabled
bind-address http-bind-address
auth-enabled
realm
log-enabled
suppress-write-log
access-log-path
access-log-status-filters
write-tracing
pprof-enabled pprof-disabled
pprof-auth-enabled
debug-pprof-enabled
ping-auth-enabled
https-enabled
https-certificate tls-cert
https-private-key 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
[logging]
format
level log-level
suppress-logo
[tls]
ciphers tls-strict-ciphers
min-version 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 >}}
  1. 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.
  2. Restart influxd.

Create DBRP mappings

InfluxDB database and retention policy (DBRP) mappings associate database and retention policy combinations with InfluxDB {{< current-version >}} buckets. 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.

To map a DBRP combination to an InfluxDB {{< current-version >}} bucket:

  1. Create a bucket
    Create an InfluxDB {{< current-version >}} bucket. We recommend creating a bucket for each unique 1.x database and retention policy combination using the following naming convention:

    # Naming convention
    db-name/rp-name
    
    # Example
    telegraf/autogen
    
  2. Create a DBRP mapping
    Use the influx v1 dbrp create command to create a DBRP mapping. Provide the following:

    • database name
    • retention policy name (not retention period)
    • bucket ID
    • (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 %}}

influx v1 dbrp create \
  --db example-db \
  --rp example-rp \
  --bucket-id 00xX00o0X001 \
  --default
{{% /code-tab-content %}}
{{% code-tab-content %}}
# 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 >}}
  1. Confirm the DBRP mapping was created
    Use the influx v1 dbrp list to list existing DBRP mappings.

    influx v1 dbrp list
    

For information about managing DBRP mappings, see the influx v1 dbrp command documentation.

Create authorizations

InfluxDB {{< current-version >}} requires authentication and provides two authentication methods:

Token authentication

Use InfluxDB {{< current-version >}} token authentication to authenticate requests to InfluxDB {{< current-version >}}.

  • 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 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 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.

  • 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 to create a 1.x-compatible authorization that grants read/write permissions to specific {{< current-version >}} buckets. Provide the following:

  • list of bucket IDs 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 %}}

influx v1 auth create \
  --read-bucket 00xX00o0X001 \
  --write-bucket 00xX00o0X001 \
  --username example-user

{{% /code-tab-content %}} {{% code-tab-content %}}

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.

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.

    # 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 to write the exported line protocol to InfluxDB {{< current-version >}}.

    # 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.