content/shared/influxdb3-admin/upgrade-to-enterprise.md
Upgrade from InfluxDB 3 Core to InfluxDB 3 Enterprise. Your existing data and plugins are compatible with Enterprise--no data migration is required.
[!Warning]
Downgrading is not supported
After upgrading to InfluxDB 3 Enterprise, you cannot downgrade back to InfluxDB 3 Core. Enterprise makes catalog changes that are incompatible with Core. To revert to Core, you must restore from a backup taken before the upgrade.
Before upgrading, back up your data directory.
Back up your data: Create a backup of your InfluxDB 3 Core data directory before upgrading. For more information, see Back up and restore data.
Note your current configuration: Record your Core startup options,
including --data-dir, --object-store, --plugin-dir, and any other configuration.
You'll use the same data directory with Enterprise.
For a complete list of configuration options, see the
influxdb3 serve CLI reference.
If you use a cloud object store (S3, Azure, or Google Cloud Storage), see
Configure object storage.
Choose a license type: Decide which InfluxDB 3 Enterprise license you need:
For more information about licenses, see Manage your license.
Choose your installation method:
{{< tabs-wrapper >}} {{% tabs %}} Quick install (Linux/macOS) Docker DEB/RPM (systemd) {{% /tabs %}} {{% tab-content %}}
<!---------------------------- BEGIN QUICK INSTALL ---------------------------->Stop the running Core process:
<!-- pytest.mark.skip --># If running in foreground, press Ctrl+C
# If running in background, find and stop the process
pkill -f "influxdb3 serve"
Run the quick install script for Enterprise:
<!-- pytest.mark.skip -->curl -O https://www.influxdata.com/d/install_influxdb3.sh \
&& sh install_influxdb3.sh enterprise
Start Enterprise with your existing data directory. Enterprise requires a
--cluster-id option that Core doesn't use:
influxdb3 serve \
--node-id NODE_ID \
--cluster-id CLUSTER_ID \
--object-store file \
--data-dir DATA_DIR \
--license-email EMAIL_ADDRESS
Replace the following:
NODE_ID{{% /code-placeholder-key %}}: Your existing node identifier from CoreCLUSTER_ID{{% /code-placeholder-key %}}: A new cluster identifier for Enterprise--for example, cluster0DATA_DIR{{% /code-placeholder-key %}}: The same data directory you used with CoreEMAIL_ADDRESS{{% /code-placeholder-key %}}: Your email address for license activationWhen prompted, select your license type (trial or home), then verify your
email address.
After starting Enterprise, verify the upgrade was successful:
<!-- pytest.mark.skip --># Check the version
influxdb3 --version
# Verify your license
influxdb3 show license --host http://localhost:8181
Query your existing data to confirm it's accessible.
<!----------------------------- END QUICK INSTALL ----------------------------->{{% /tab-content %}} {{% tab-content %}}
<!------------------------------ BEGIN DOCKER --------------------------------->docker stop CORE_CONTAINER_NAME
Replace {{% code-placeholder-key %}}CORE_CONTAINER_NAME{{% /code-placeholder-key %}} with the name of your InfluxDB 3 Core container.
docker pull influxdb:3-enterprise
Start Enterprise using the same data volume. Enterprise requires a --cluster-id
option and license configuration:
docker run -d \
--name influxdb3-enterprise \
-p 8181:8181 \
-e INFLUXDB3_ENTERPRISE_LICENSE_EMAIL=EMAIL_ADDRESS \
-v DATA_VOLUME:/var/lib/influxdb3/data \
-v PLUGIN_VOLUME:/var/lib/influxdb3/plugins \
influxdb:3-enterprise \
influxdb3 serve \
--node-id NODE_ID \
--cluster-id CLUSTER_ID \
--object-store file \
--data-dir /var/lib/influxdb3/data
Replace the following:
EMAIL_ADDRESS{{% /code-placeholder-key %}}: Your email address for license activationDATA_VOLUME{{% /code-placeholder-key %}}: The same data volume you used with CorePLUGIN_VOLUME{{% /code-placeholder-key %}}: The same plugin volume you used with CoreNODE_ID{{% /code-placeholder-key %}}: Your existing node identifier from CoreCLUSTER_ID{{% /code-placeholder-key %}}: A new cluster identifier for Enterprise--for example, cluster0[!Important]
License activation in Docker
You must provide
INFLUXDB3_ENTERPRISE_LICENSE_EMAILas an environment variable because the interactive license prompt doesn't work in containers. After starting the container, check your email and click the verification link.
{{< expand-wrapper >}} {{% expand "Using Docker Compose" %}}
Update your compose.yaml to use the Enterprise image:
services:
influxdb3:
image: influxdb:3-enterprise
container_name: influxdb3-enterprise
ports:
- 8181:8181
environment:
- INFLUXDB3_ENTERPRISE_LICENSE_EMAIL=${EMAIL_ADDRESS}
command:
- influxdb3
- serve
- --node-id=NODE_ID
- --cluster-id=CLUSTER_ID
- --object-store=file
- --data-dir=/var/lib/influxdb3/data
volumes:
# Use the same paths as Core
- type: bind
source: DATA_VOLUME
target: /var/lib/influxdb3/data
- type: bind
source: PLUGIN_VOLUME
target: /var/lib/influxdb3/plugins
Replace the following:
EMAIL_ADDRESS{{% /code-placeholder-key %}}: Your email address for license activation (or a variable from your Compose .env file)NODE_ID{{% /code-placeholder-key %}}: Your existing node identifier from CoreCLUSTER_ID{{% /code-placeholder-key %}}: A new cluster identifier for Enterprise--for example, cluster0DATA_VOLUME{{% /code-placeholder-key %}}: The same host data path you used with Core--for example, ~/.influxdb3/dataPLUGIN_VOLUME{{% /code-placeholder-key %}}: The same host plugin path you used with Core--for example, ~/.influxdb3/pluginsThen run:
<!-- pytest.mark.skip -->docker compose down
docker compose up -d
{{% /expand %}} {{< /expand-wrapper >}}
After starting Enterprise, verify the upgrade was successful:
{{< code-tabs-wrapper >}} {{% code-tabs %}} Docker Docker Compose {{% /code-tabs %}} {{% code-tab-content %}}
<!-- pytest.mark.skip --># Check the version
docker exec influxdb3-enterprise \
influxdb3 --version
# Verify your license
docker exec influxdb3-enterprise \
influxdb3 show license --host http://localhost:8181
{{% /code-tab-content %}} {{% code-tab-content %}}
<!-- pytest.mark.skip --># Check the version
docker compose exec influxdb3-enterprise \
influxdb3 --version
# Verify your license
docker compose exec influxdb3-enterprise \
influxdb3 show license --host http://localhost:8181
{{% /code-tab-content %}} {{< /code-tabs-wrapper >}}
Query your existing data to confirm it's accessible.
<!-------------------------------- END DOCKER --------------------------------->{{% /tab-content %}} {{% tab-content %}}
<!----------------------------- BEGIN DEB/RPM --------------------------------->sudo systemctl stop influxdb3-core
First, remove the Core package (this doesn't remove your data or configuration):
{{< expand-wrapper >}} {{% expand "DEB-based systems (Debian, Ubuntu)" %}}
<!-- pytest.mark.skip --># Debian/Ubuntu
sudo apt-get remove influxdb3-core # doesn't remove /var/lib/influxdb3 or /etc/influxdb3
sudo apt-get update && sudo apt-get install influxdb3-enterprise
{{% /expand %}} {{% expand "RPM-based systems (RHEL, CentOS, Fedora)" %}}
<!-- pytest.mark.skip --># RHEL/CentOS/Fedora
sudo yum remove influxdb3-core # doesn't remove /var/lib/influxdb3 or /etc/influxdb3
sudo yum install influxdb3-enterprise
{{% /expand %}} {{< /expand-wrapper >}}
The Enterprise package installs a self-documenting configuration file at
/etc/influxdb3/influxdb3-enterprise.conf.
Merge your Core settings into this file rather than overwriting it.
View the settings you configured in Core:
<!-- pytest.mark.skip --># Show uncommented (active) settings from Core configuration
sudo grep -E '^ *[^#]' /etc/influxdb3/influxdb3-core.conf
Merge Core settings into the Enterprise configuration:
<!-- pytest.mark.skip --># Back up the original Enterprise configuration
sudo cp /etc/influxdb3/influxdb3-enterprise.conf \
/etc/influxdb3/influxdb3-enterprise.conf.orig
# Merge settings from Core into Enterprise config
sudo grep -E '^ *[^#]' /etc/influxdb3/influxdb3-core.conf | while IFS= read -r line; do
key=$(echo "$line" | sed 's/=.*/=/')
if sudo grep -qE "^ *${key}" /etc/influxdb3/influxdb3-enterprise.conf; then
# Update existing uncommented line
sudo sed -i "s|^ *${key}.*|${line}|" /etc/influxdb3/influxdb3-enterprise.conf
else
# Replace commented line with active setting
sudo sed -i "s|^#${key}.*|${line}|" /etc/influxdb3/influxdb3-enterprise.conf
fi
done
Add your license email to the Enterprise configuration:
<!-- pytest.mark.skip -->sudo sed -i 's|^#license-email.*|license-email = "EMAIL_ADDRESS"|' \
/etc/influxdb3/influxdb3-enterprise.conf
Replace {{% code-placeholder-key %}}EMAIL_ADDRESS{{% /code-placeholder-key %}} with your email address for license activation.
Verify the merged configuration:
<!-- pytest.mark.skip -->sudo grep -E '^ *[^#]' /etc/influxdb3/influxdb3-enterprise.conf
The output should include your Core settings plus the license email and cluster ID--for example:
node-id = "primary-node"
object-store = "file"
data-dir = "/var/lib/influxdb3/data"
plugin-dir = "/var/lib/influxdb3/plugins"
cluster-id = "primary-cluster"
license-email = "[email protected]"
[!Note] The DEB/RPM packages use
primary-nodeandprimary-clusteras defaults, matching the behavior of runninginfluxdb3 servewithout--node-idor--cluster-id.
sudo systemctl start influxdb3-enterprise
Check the logs to verify the server started successfully:
<!-- pytest.mark.skip -->journalctl --unit influxdb3-enterprise -f
After starting, check your email and click the verification link to activate your license.
After starting Enterprise, verify the upgrade was successful:
<!-- pytest.mark.skip --># Check the version
influxdb3 --version
# Verify your license
influxdb3 show license --host http://localhost:8181
Query your existing data to confirm it's accessible.
<!------------------------------- END DEB/RPM --------------------------------->{{% /tab-content %}} {{< /tabs-wrapper >}}