In Release 9.5 of Sterling Order Management System Software, Elasticsearch version
0.20.1 has been replaced with Elasticsearch version 1.7.1 for indexing orders and
shipments.
About this task
Elasticsearch can usually be upgraded using a rolling upgrade process,
resulting in no interruption of service. Releases prior to version 1.0 and releases after version
1.0 are not compatible with eachother, so a rolling upgrade of these versions is not possible.
Therefore, because we are upgrading from version 0.20.1, a Full Cluster Restart type of upgrade is
required.
It is recommended that you back up the data on your system before performing an upgrade of
Elasticsearch. This allows you to roll back your data in the event of a problem with the
upgrade.
To back up a running Elasticsearch system:
Procedure
-
Disable index flushing, as follows, to prevent indices from being flushed to disk while the
backup is in process:
curl -XPUT 'http://<local_host>:9200/_all/_settings' -d'{ "index": { "translog.disable_flush": "true" }}'
Run
the preceding command from the command line, replacing <local_host> with the IP of the server
where Elasticsearch is running.
Refer to the Elasticsearch server console or log to ensure that
the following message displays for each
shard:
updating disable_flush from [false] to [true]
-
Disable reallocation, as follows, to prevent the cluster from moving data files from one node
to another node while the backup is in process:
curl -XPUT 'http://<local_host>:9200/_cluster/settings' -d '{ "transient" : { "cluster.routing.allocation.disable_allocation": "true" }}'
Refer to the Elasticsearch server console or log to ensure that the following message displays:
updating [cluster.routing.allocation.disable_allocation] from [false] to [true]
-
After reallocation and index flushing are disabled, back up the Elasticsearch's data path using
any backup method, such as tar, storage array snapshots, or backup software.
-
When the backup is complete and data no longer needs to be read from the Elasticsearch data
path, re-enable reallocation and index flushing, as follows:
curl -XPUT 'http://<local_host>:9200/_all/_settings' -d '{ "index": { "translog.disable_flush": "false" }}'
curl -XPUT 'http://<local_host>:9200/_cluster/settings' -d '{ "transient" : { "cluster.routing.allocation.disable_allocation": "false" }}'