[[setup-upgrade]]
= Upgrade Elasticsearch

[partintro]
--
Elasticsearch can usually be upgraded using a <<rolling-upgrades,Rolling upgrade>>
process so upgrading does not interrupt service. However, you might
need to <<reindex-upgrade,Reindex to upgrade>> indices created in older versions.
Upgrades across major versions prior to 6.0 require a <<restart-upgrade,Full cluster restart>>.

When upgrading to a new version of Elasticsearch, you need to upgrade each
of the products in your Elastic Stack. The steps you need to take to upgrade
differ depending on which products you are using. Want a list that's tailored
to your stack? Try out our {upgrade_guide}[Interactive Upgrade Guide]. For
more information about upgrading your stack, see {stack-ref}[Upgrading the
Elastic Stack].

[IMPORTANT]
===========================================
Before upgrading Elasticsearch:

* Review the <<breaking-changes,breaking changes>> for changes that
affect your application.
* Check the <<deprecation-logging, deprecation log>> to see if you are using
any deprecated features.
* If you use custom plugins, make sure compatible versions are available.
* Test upgrades in a dev environment before upgrading your production cluster.
* <<modules-snapshots,Back up your data>> before upgrading.
You **cannot roll back** to an earlier version unless you have a backup of
your data.

===========================================


The following table shows when you can perform a rolling upgrade, when you
need to reindex or delete old indices, and when a full cluster restart is
required.

[[upgrade-paths]]
[cols="1<m,1<m,3",options="header",]
|=======================================================================
|Upgrade From   |Upgrade To     |Supported Upgrade Type
|5.x            |5.y            |<<rolling-upgrades,Rolling upgrade>> (where `y > x`)
|5.6            |6.x            |<<rolling-upgrades,Rolling upgrade>> footnoteref:[reindexfn, You must delete or reindex any indices created in 2.x before upgrading.]
|5.0-5.5        |6.x            |<<restart-upgrade,Full cluster restart>> footnoteref:[reindexfn]
|<5.x           |6.x            |<<reindex-upgrade,Reindex to upgrade>>
|6.x            |6.y            |<<rolling-upgrades,Rolling upgrade>> (where `y > x`) 
|=======================================================================

[IMPORTANT]
===============================================

Elasticsearch can read indices created in the *previous major version*.
Older indices must be reindexed or deleted. Elasticsearch 6.x
can use indices created in Elasticsearch 5.x, but not those created in
Elasticsearch 2.x or before. Elasticsearch 5.x can use indices created in
Elasticsearch 2.x, but not those created in 1.x or before.

This also applies to indices backed up with <<modules-snapshots,snapshot
and restore>>. If an index was originally created in 2.x, it cannot be
restored to a 6.x cluster even if the snapshot was created by a 5.x cluster.

Elasticsearch nodes will fail to start if incompatible indices are present.

For information about how to upgrade old indices, see <<reindex-upgrade,
Reindex to upgrade>>.

===============================================
--

include::upgrade/rolling_upgrade.asciidoc[]

include::upgrade/cluster_restart.asciidoc[]

include::upgrade/reindex_upgrade.asciidoc[]
