summaryrefslogtreecommitdiffstats
path: root/doc/04-Upgrading.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/04-Upgrading.md')
-rw-r--r--doc/04-Upgrading.md51
1 files changed, 51 insertions, 0 deletions
diff --git a/doc/04-Upgrading.md b/doc/04-Upgrading.md
new file mode 100644
index 0000000..5a085e0
--- /dev/null
+++ b/doc/04-Upgrading.md
@@ -0,0 +1,51 @@
+# Upgrading Icinga DB
+
+Specific version upgrades are described below. Please note that version upgrades are incremental.
+If you are upgrading across multiple versions, make sure to follow the steps for each of them.
+
+## Upgrading to Icinga DB v1.1.1
+
+Please apply the `1.1.1.sql` upgrade script to your database.
+For package installations, you can find this file at `/usr/share/icingadb/schema/mysql/upgrades/` or
+`/usr/share/icingadb/schema/pgsql/upgrades/`, depending on your database type.
+
+Note that this upgrade will change the `history` table, which can take some time depending on the size of the table and
+the performance of the database. While the upgrade is running, that table will be locked and can't be accessed. This
+means that the existing history can't be viewed in Icinga Web and new history entries will be buffered in Redis.
+
+As the daemon checks the schema version, the recommended way to perform the upgrade is to stop the daemon, apply the
+schema upgrade and then start the new daemon version. If you want to minimize downtime as much as possible, it is safe
+to apply this schema upgrade while the Icinga DB v1.1.0 daemon is still running and then restart the daemon with the
+new version. Please keep in mind that depending on the distribution, your package manager may automatically attempt to
+restart the daemon when upgrading the package.
+
+## Upgrading to Icinga DB v1.0
+
+**Requirements**
+
+* You need at least Icinga 2 version 2.13.4 to run Icinga DB v1.0.0.
+
+**Database Schema**
+
+* For MySQL databases, please apply the `1.0.0.sql` upgrade script.
+ For package installations, you can find this file at `/usr/share/icingadb/schema/mysql/upgrades/`.
+
+## Upgrading to Icinga DB RC2
+
+Icinga DB RC2 is a complete rewrite compared to RC1. Because of this, a lot has changed in the Redis and database
+schema, which is why they have to be deleted and recreated. The configuration file has changed from `icingadb.ini`
+to `config.yml`. Instead of the INI format, we are now using YAML and have introduced more configuration options. We
+have also changed the packages of `icingadb-redis`, which is why the Redis CLI commands are now prefixed with `icingadb`
+instead of just `icinga`, i.e. the Redis CLI is now accessed via `icingadb-redis-cli`.
+
+Please follow the steps below to upgrade to Icinga DB RC2:
+
+1. Stop Icinga 2 and Icinga DB.
+2. Flush your Redis instances using `icinga-redis-cli flushall` (note the `icinga` prefix as we did not
+ upgrade `icingadb-redis` yet) and stop them afterwards.
+3. Upgrade Icinga 2 to version 2.13.2 or newer.
+4. Remove the `icinga-redis` package where installed as it may conflict with `icingadb-redis`.
+5. Install Icinga DB Redis (`icingadb-redis`) on your primary Icinga 2 nodes to version 6.2.6 or newer.
+6. Upgrade Icinga DB to RC2.
+7. Drop the Icinga DB MySQL database and recreate it using the provided schema.
+8. Start Icinga DB Redis, Icinga 2 and Icinga DB.