Upgrade and Recovery
Use the release package to upgrade, restore, or uninstall Engine. Keep an independent backup outside the server.
Upgrade
- Read the changelog and create a database backup:
/opt/xaccel-engine/bin/web --backup /root/xaccel-engine-before-upgrade.gzThe destination must end in .gz and must not already exist. This backup includes configuration, accounts, content metadata, and cumulative usage—not media files or temporary runtime history. Copy it off the server.
- Download and run the installer as root:
wget http://ftp.xaccel-codec.com/releases/xaccel-engine-1.0.1.sh
bash ./xaccel-engine-1.0.1.sh --installThe installer saves program files and a logical database backup before upgrading. It preserves verified HTTP and RTMP ports. If Engine is stopped, it warns that no database backup is included. Media storage and local MySQL data files are not copied by default.
Changed in Engine 1.0+
After Engine has run on version 1.0.1 or later, upgrades reuse its saved HTTP and RTMP ports even when the service is stopped or the host has restarted. Port conflicts are still checked. When upgrading from an older release, you may need to choose the existing ports manually if Engine is stopped.
Engine 1.0.1+
- Verify login, database access, Streams, Adapters, and playback before removing backups.
Downgrade
When installing a lower major version, such as 2.x to 1.x, the installer warns that the older version may not start or work correctly. Type yes in the terminal to continue. Press Enter to cancel. Without an interactive terminal, the downgrade is cancelled. --accept-terms does not skip this confirmation. Downgrades within the same major version do not require this extra confirmation.
Engine 1.0.1+
Confirmation allows the installation to proceed. Use an installer containing this check; previously released installers cannot provide it.
Database Compatibility
Upgrade the Master before LB servers. When the database version is older than the software, the Master applies pending changes in version order and records the software version after migration and schema checks succeed. It records the new version even when no migration is needed. Matching versions skip migrations, but the Master still checks and repairs the schema on each startup. New databases start at the current software version. This also applies when the Master uses external MySQL or restores an older backup. Its database account must be able to change the schema and managed LB account permissions.
Engine 1.0.1+
Engine does not block startup because the database was used by a newer version. If the major versions differ, it logs a warning and attempts to continue. Older software leaves the newer database structure and version unchanged. This does not guarantee that every feature will work; restore a matching backup if needed.
Changed in Engine 1.0.1+
If a migration fails, startup stops. Check the error, fix its cause, and restart the upgrading version to retry. Some changes may already have committed, so keep the backup until the upgrade is verified. The database version is managed by Engine and cannot be edited through System Settings or its API.
Backup Options
To also save managed local MySQL data files:
bash ./xaccel-engine-1.0.1.sh --install --backup-mysql-dataOnly skip the automatic database backup if you already have an independent backup:
bash ./xaccel-engine-1.0.1.sh --install --skip-database-backupWarning
Skipping the database backup prevents automatic rollback of database changes. Do not use it just to speed up an upgrade. It cannot be combined with --backup-mysql-data.
Recovery points are under /opt/.xaccel-engine-snapshots/<version>-<YYYYMMDDHHMMSS>/, using UTC. Keep each directory intact. It contains engine-files.tar.xz, available engine-database.gz, and xaccel-engine.service. A physical backup also includes data.tar.xz.
Each successful database export also saves a copy in /opt/xaccel-engine/storage/backup/, named xaccel-engine-<version>-installer-<timestamp>-<checksum>.gz. On the Master, it appears in Database Settings, where you can download or restore it. These copies remain when old recovery points or scheduled backups are removed. Delete them manually when no longer needed, and keep an off-server copy. If the export is skipped, no copy is created.
Engine 1.0.1+
Failed Health Check
The installer saves error logs and offers rollback:
- Y or Enter: restore the previous version.
- N: keep the failed installation for diagnosis. The recovery point remains, and the command reports failure.
- No interactive terminal: roll back automatically.
Restore a Recovery Point
bash ./xaccel-engine-1.0.1.sh --recoverySelect a recovery point, then choose:
| Restore Option | Effect |
|---|---|
| Runtime files only (default) | Restore program and configuration; leave the database unchanged. |
| Runtime files + saved MySQL data | Restore saved managed local MySQL data files. |
| Runtime files + saved MySQL backup | Import the logical backup; supports external MySQL too. |
Recovery first saves the current program and a logical database backup when available. Add --backup-mysql-data to also save current local MySQL data files. A physical restore preserves the replaced data directory.
Database restoration requires an explicit choice. Older software may not support data written by a newer version. Verify the service and database after restart.
Uninstall Program Files
bash ./xaccel-engine-1.0.1.sh --uninstallUninstall preserves persistent data. Keep an external backup before retiring a server.