Manually upgrade from InfluxDB 1.x to 2.7
To manually upgrade from InfluxDB 1.x to InfluxDB 2.7:
- Install InfluxDB 2.7
- Migrate custom configuration settings
- Create DBRP mappings
- Create authorizations
- Migrate time series data
- Migrate continuous queries
- Query data with InfluxQL
Install InfluxDB 2.7
Download, install, and set up InfluxDB 2.7.
Required 2.x credentials
All InfluxDB 2.7 influx
CLI examples below assume the required host, organization, and API token credentials are provided by your influx CLI configuration.
Migrate custom configuration settings
If you’re using custom configuration settings in your InfluxDB 1.x instance, do the following:
Compare 1.x and 2.7 configuration settings:
View configuration option parity
1.x configuration option 2.7 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 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 1.x configuration groups not in 2.7
The following 1.x configuration groups do not apply to InfluxDB 2.7:
- meta
- coordinator
- monitor
- subscriber
- graphite
- collectd
- opentsdb
- udp
- continuous_queries
Apply your 1.x custom settings to the comparable InfluxDB 2.7 settings using
influxd
flags, environment variables, or a 2.7 configuration file. For more information about configuring InfluxDB 2.7, see Configuration options.Restart
influxd
.
Create DBRP mappings
InfluxDB database and retention policy (DBRP) mappings associate database and retention policy combinations with InfluxDB 2.7 buckets. These mappings allow InfluxDB 1.x clients to successfully query and write to InfluxDB 2.7 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 2.7 bucket:
Create a bucket
Create an InfluxDB 2.7 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
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
DB with one RP DB with multiple RPs
influx v1 dbrp create \
--db example-db \
--rp example-rp \
--bucket-id 00xX00o0X001 \
--default
# 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
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 2.7 requires authentication and provides two authentication methods:
Token authentication
Use InfluxDB 2.7 token authentication to authenticate requests to InfluxDB 2.7.
Recommended if:
- Your 1.x instance does not have authentication enabled.
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.
1.x-compatible authorizations
InfluxDB 2.7 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 2.7 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.
1.x compatibility authorizations are separate from credentials used to log into the InfluxDB 2.7 user interface (UI).
Create a 1.x-compatible authorization
Use the InfluxDB 2.7 influx v1 auth create command to create a 1.x-compatible authorization that grants read/write permissions to specific 2.7 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)
Single bucket Multiple buckets
influx v1 auth create \
--read-bucket 00xX00o0X001 \
--write-bucket 00xX00o0X001 \
--username example-user
influx v1 auth create \
--read-bucket 00xX00o0X001 \
--read-bucket 00xX00o0X002 \
--write-bucket 00xX00o0X001 \
--write-bucket 00xX00o0X002 \
--username example-user
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 2.7:
Use the InfluxDB 1.x influx_inspect export command 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 2.7 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
Use the InfluxDB 2.7 influx write command to write the exported line protocol to InfluxDB 2.7.
# 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
Repeat steps 1-2 for each bucket.
Migrate continuous queries
For information about migrating InfluxDB 1.x continuous queries to InfluxDB 2.7 tasks, see Migrate continuous queries to tasks.
Query data with InfluxQL
InfluxDB 2.7 supports querying data with both Flux and InfluxQL. For more information about querying InfluxDB 2.7 with InfluxQL, see Query data with InfluxQL.