diff options
Diffstat (limited to 'doc/04-Upgrading.md')
-rw-r--r-- | doc/04-Upgrading.md | 51 |
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. |