DBAtlas · Atlas d'exploitation des bases de données

Définir le niveau de compatibilité / la version des fonctionnalités

Oracle

-- Raise the COMPATIBLE initialization parameter (irreversible!):
ALTER SYSTEM SET COMPATIBLE = '19.0.0' SCOPE=SPFILE;
-- Then restart the instance. To see the current value:
SHOW PARAMETER compatible;

Le paramètre COMPATIBLE détermine quelles fonctionnalités de version et quels formats de fichiers sont activés. Une fois élevé et l'instance redémarrée, il NE PEUT PLUS ÊTRE ABAISSÉ (le downgrade est bloqué) ; élevez-le donc progressivement, jusqu'à confirmation du succès de la mise à niveau.

PostgreSQL

# Not applicable: PostgreSQL has no database compatibility level.
# If legacy behavior is needed, set the relevant GUCs (e.g. SET standard_conforming_strings=off)
# or manage the major migration with dump/restore.

PostgreSQL n'a pas de notion de « niveau de compatibilité » comme SQL Server/Oracle ; le comportement est directement lié à la version binaire. La migration entre versions se fait avec pg_dump/pg_restore ou pg_upgrade.

MySQL

# Not applicable: MySQL has no configurable database compatibility level.
# Behavioral differences are managed with sql_mode:
SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';

MySQL n'a pas de niveau de compatibilité par version ; le comportement SQL dépend surtout de la version binaire et du réglage sql_mode. Ajustez finement sql_mode pour préserver le comportement des applications existantes.

SQL Server

-- Set the database compatibility level (e.g. SQL Server 2022 = 160):
ALTER DATABASE Sales SET COMPATIBILITY_LEVEL = 160;
-- To see the current value:
SELECT name, compatibility_level FROM sys.databases;

COMPATIBILITY_LEVEL détermine le comportement de version de l'optimiseur de requêtes et des fonctionnalités du langage (150=2019, 160=2022). Après la mise à niveau de l'instance, les bases peuvent rester à l'ancien niveau ; il est recommandé de l'élever progressivement en surveillant les régressions de plans. Il peut être abaissé de nouveau.

MongoDB

// Set the Feature Compatibility Version (FCV):
db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })
// Read the current value:
db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })

La FCV contrôle le moment où les changements de format des données persistantes et les nouvelles fonctionnalités d'une version sont activés. Élevez-la après la mise à niveau binaire, cluster stable ; l'abaisser n'est possible que si la même version binaire prend encore en charge la FCV inférieure.

Redis

# Not applicable: Redis has no compatibility level / feature version concept.
# Behavior depends directly on the running binary version.

Redis n'a pas de niveau de compatibilité configurable ; l'ensemble des fonctionnalités dépend entièrement de la version en cours d'exécution. La compatibilité n'est assurée qu'au niveau du format de fichier RDB/AOF, dans le sens ascendant.

Elasticsearch

# Not applicable: Elasticsearch has no configurable compatibility level.
# An index is tied to the format of the version it was created in; very old indices
# cannot be read in the new version and require a reindex.

Elasticsearch n'a pas de réglage de niveau de compatibilité ; chaque index porte le format de la version majeure dans laquelle il a été créé. Les indices créés dans la version majeure précédente sont lisibles, les plus anciens doivent être migrés vers la nouvelle version avec _reindex.

Ouvrir dans DBAtlas →