# Upgrading from MariaDB 10.11 to MariaDB 11.4

This page includes details for upgrading from [MariaDB 10.11](https://app.gitbook.com/s/aEnK0ZXmUbJzqQrTjFyb/community-server/10.11/what-is-mariadb-1011) to the subsequent long-term maintenance version, [MariaDB 11.4](https://app.gitbook.com/s/aEnK0ZXmUbJzqQrTjFyb/community-server/11.4/what-is-mariadb-114).

### How to Upgrade

For Windows, see [Upgrading MariaDB on Windows](https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/upgrading/platform-specific-upgrade-guides/upgrading-mariadb-on-windows).

For MariaDB Galera Cluster, see [Upgrading Galera Cluster](https://app.gitbook.com/s/3VYeeVGUV4AMqrA3zwy7/galera-management/upgrading-galera-cluster) section.

Before you upgrade, it would be best to take a backup of your database. This is always a good idea to do before an upgrade. We would recommend [mariadb-backup](https://mariadb.com/docs/server/server-usage/backup-and-restore/mariadb-backup/mariadb-backup-overview).

The suggested upgrade procedure is:

1. Modify the repository configuration, so the system's package manager installs MariaD11.4.
   1. On Debian, Ubuntu, and other similar Linux distributions, see [Updating the MariaDB APT repository to a New Major Release](https://mariadb.com/docs/server/server-management/installing-mariadb/binary-packages/installing-mariadb-deb-files#updating-the-mariadb-apt-repository-to-a-new-major-release) for more information.
   2. On RHEL, CentOS, Fedora, and other similar Linux distributions, see [Updating the MariaDB YUM repository to a New Major Release](https://mariadb.com/docs/server/server-management/installing-mariadb/binary-packages/rpm/yum#updating-the-mariadb-yum-repository-to-a-new-major-release) for more information.
   3. On SLES, OpenSUSE, and other similar Linux distributions, see [Updating the MariaDB ZYpp repository to a New Major Release](https://mariadb.com/docs/server/server-management/installing-mariadb/binary-packages/rpm/installing-mariadb-with-zypper#updating-the-mariadb-zypp-repository-to-a-new-major-release) for more information.
2. [Stop MariaDB](https://mariadb.com/docs/server/server-management/starting-and-stopping-mariadb/starting-and-stopping-mariadb-automatically).
3. Uninstall the old version of MariaDB.
   1. On Debian, Ubuntu, and other similar Linux distributions, execute the following: `sudo apt-get remove mariadb-server`
   2. On RHEL, CentOS, Fedora, and other similar Linux distributions, execute the following: `sudo yum remove MariaDB-server`
   3. On SLES, OpenSUSE, and other similar Linux distributions, execute the following: `sudo zypper remove MariaDB-server`
4. Install the new version of MariaDB.
   1. On Debian, Ubuntu, and other similar Linux distributions, see [Installing MariaDB Packages with APT](https://mariadb.com/docs/server/server-management/installing-mariadb/binary-packages/installing-mariadb-deb-files#installing-mariadb-packages-with-apt) for more information.
   2. On RHEL, CentOS, Fedora, and other similar Linux distributions, see [Installing MariaDB Packages with YUM](https://mariadb.com/docs/server/server-management/installing-mariadb/binary-packages/rpm/yum#installing-mariadb-packages-with-yum) for more information.
   3. On SLES, OpenSUSE, and other similar Linux distributions, see [Installing MariaDB Packages with ZYpp](https://mariadb.com/docs/server/server-management/installing-mariadb/binary-packages/rpm/installing-mariadb-with-zypper#installing-mariadb-packages-with-zypp) for more information.
5. Make any desired changes to configuration options in [option files](https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/configuring-mariadb/configuring-mariadb-with-option-files), such as `my.cnf`. This includes removing any options that are no longer supported.
6. [Start MariaDB](https://mariadb.com/docs/server/server-management/starting-and-stopping-mariadb/starting-and-stopping-mariadb-automatically).
7. Run [mariadb-upgrade](https://mariadb.com/docs/server/clients-and-utilities/deployment-tools/mariadb-upgrade), to:
   1. Ensure that the system tables in the [mysql](https://mariadb.com/docs/server/reference/system-tables/the-mysql-database-tables) database are fully compatible with the new version.
   2. Perform a very quick check of all tables and marks them as compatible with the new version of MariaDB.

### Incompatible Changes Between 10.11 and 11.4

On most servers upgrading from 10.11 should be painless. However, there are some things that have changed which could affect an upgrade:

#### Options That Have Been Removed or Renamed

The following options should be removed or renamed if you use them in your [option files](https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/configuring-mariadb/configuring-mariadb-with-option-files):

| Option                                                                                                                                                                        | Reason                                                                                                                                                                                                |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [debug\_no\_thread\_alarm](https://mariadb.com/docs/server/variables-and-modes/server-system-variables#debug_no_thread_alarm)                                                 | Unused code.                                                                                                                                                                                          |
| [innodb\_defragment](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-system-variables#innodb_defragment)                                           | [Defragmenting InnoDB Tablespaces](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/optimizing-tables/defragmenting-innodb-tablespaces) in this manner no longer supported. |
| [innodb\_defragment\_fill\_factor](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-system-variables#innodb_defragment_fill_factor)                 | [Defragmenting InnoDB Tablespaces](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/optimizing-tables/defragmenting-innodb-tablespaces) in this manner no longer supported. |
| [innodb\_defragment\_fill\_factor\_n\_recs](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-system-variables#innodb_defragment_fill_factor_n_recs) | [Defragmenting InnoDB Tablespaces](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/optimizing-tables/defragmenting-innodb-tablespaces) in this manner no longer supported. |
| [innodb\_defragment\_frequency](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-system-variables#innodb_defragment_frequency)                      | [Defragmenting InnoDB Tablespaces](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/optimizing-tables/defragmenting-innodb-tablespaces) in this manner no longer supported. |
| [innodb\_defragment\_n\_pages](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-system-variables#innodb_defragment_n_pages)                         | [Defragmenting InnoDB Tablespaces](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/optimizing-tables/defragmenting-innodb-tablespaces) in this manner no longer supported. |
| [innodb\_defragment\_stats\_accuracy](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-system-variables#innodb_defragment_stats_accuracy)           | [Defragmenting InnoDB Tablespaces](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/optimizing-tables/defragmenting-innodb-tablespaces) in this manner no longer supported. |

#### Options That Have Changed Default Values

| Option                                                                                                                                            | Old default | New default                                                                                                                              |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| [optimizer\_switch](https://mariadb.com/docs/server/variables-and-modes/server-system-variables#optimizer_switch)                                 |             | See [optimizer-switch](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/optimizer-switch). |
| [innodb\_purge\_batch\_size](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-system-variables#innodb_purge_batch_size) | 300         | 1000                                                                                                                                     |

#### Options That Have Been Removed or Renamed

The following options should be removed or renamed if you use them in your [option files](https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/configuring-mariadb/configuring-mariadb-with-option-files):

| Option                                                                                                           | Reason                                                                                                                         |
| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| [old\_alter\_table](https://mariadb.com/docs/server/variables-and-modes/server-system-variables#old_alter_table) | Superceded by [alter\_algorithm](https://mariadb.com/docs/server/variables-and-modes/server-system-variables#alter_algorithm). |

#### Deprecated Options

The following options have been deprecated. They have not yet been removed, but will be in a future version, and should ideally no longer be used.

| Option                                                                                                                                                                       | Reason                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [innodb\_purge\_rseg\_truncate\_frequency](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-system-variables#innodb_purge_rseg_truncate_frequency) | The motivation for introducing this in MySQL seems to have been to avoid stalls due to freeing undo log pages or truncating undo log tablespaces. In MariaDB, [innodb\_undo\_log\_truncate=ON](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-system-variables#innodb_undo_log_truncate) should be a much lighter operation because it will not involve any log checkpoint, hence this is deprecated and ignored |
| [tx\_isolation](https://mariadb.com/docs/server/variables-and-modes/server-system-variables#tx_isolation)                                                                    | Replaced with [transaction\_isolation](https://mariadb.com/docs/server/variables-and-modes/server-system-variables#transaction_isolation) to align the option and system variable.                                                                                                                                                                                                                                                           |
| [tx\_read\_only](https://mariadb.com/docs/server/variables-and-modes/server-system-variables#tx_read_only)                                                                   | Replaced with [transaction\_read\_only](https://mariadb.com/docs/server/variables-and-modes/server-system-variables#transaction_read_only) to align the option and system variable.                                                                                                                                                                                                                                                          |

### See Also

* [Features in MariaDB 11.4](https://app.gitbook.com/s/aEnK0ZXmUbJzqQrTjFyb/community-server/11.4/what-is-mariadb-114)
* [Features in MariaDB 11.3](https://app.gitbook.com/s/aEnK0ZXmUbJzqQrTjFyb/community-server/old-releases/11.3/what-is-mariadb-113)
* [Features in MariaDB 11.2](https://app.gitbook.com/s/aEnK0ZXmUbJzqQrTjFyb/community-server/old-releases/11.2/what-is-mariadb-112)
* [Features in MariaDB 11.1](https://app.gitbook.com/s/aEnK0ZXmUbJzqQrTjFyb/community-server/old-releases/11.1/what-is-mariadb-111)
* [Features in MariaDB 11.0](https://app.gitbook.com/s/aEnK0ZXmUbJzqQrTjFyb/community-server/old-releases/11.0/what-is-mariadb-110)
* [Upgrading from MariaDB 10.6 to MariaDB 10.11 with Galera Cluster](https://app.gitbook.com/s/3VYeeVGUV4AMqrA3zwy7/galera-management/upgrading-galera-cluster/upgrading-from-mariadb-10-6-to-mariadb-10-11-with-galeracluster)
* [Upgrading from MariaDB 10.6 to MariaDB 10.11](https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/upgrading/mariadb-community-server-upgrade-paths/upgrading-to-unmaintained-mariadb-releases/upgrading-from-mariadb-10-6-to-mariadb-10-7)
* [Upgrading from MariaDB 10.5 to MariaDB 10.6](https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/upgrading/mariadb-community-server-upgrade-paths/upgrading-from-mariadb-10-5-to-mariadb-10-6)

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formId="4316" %}
