Déplacement de données d'un tablespace partagé vers un tablespace fichier par table dans les SGBD MySQL ou MariaDB

Tout développer | Tout réduire

Pour les SGBD MySQL et MariaDB, vous pouvez stocker les données comme suit :

L'utilisation d'un tablespace partagé augmente le risque de fragmentation du tablespace. L'opération SHRINK étant impossible, un fichier du tablespace partagé peut occuper environ 90 % de l'espace disque. Cela affecte négativement les performances du sous-système de disque. Il est donc utile d'opter pour un tablespace fichier par table.

Cet article explique comment déplacer des données d'un tablespace partagé vers un tablespace fichier par table. Si les SGBD MySQL ou MariaDB sont également utilisés par d'autres applications, vous devez déplacer les bases de données de ces applications dans le tablespace fichier par table.

Nous vous recommandons d'effectuer cette procédure uniquement si vous utilisez le SGBD pour Serveur d'administration MySQL ou MariaDB.
Le déplacement de données d'un tablespace partagé vers un tablespace fichier par table peut augmenter la charge sur le sous-système de disque.

Prérequis

Avant de commencer, assurez-vous que :

L'espace disque requis représente 150 % de la taille totale actuelle des bases (taille actuelle du fichier ibdata1).

Processus

Pour déplacer des données d'un tablespace partagé vers un tablespace fichier par table, procédez comme suit :

  1. Arrêtez le service du Serveur d'administration de Kaspersky Security Center et les autres applications utilisant l'instance du SGBD pour lequel vous souhaitez exécuter cette procédure.
  2. En fonction de la version du SGBD, connectez-vous à votre SGBD en tant que superutilisateur, puis, dans n'importe quelle application pratique, exécutez le script fix_tablespace.sql.

    Vous pouvez consulter les scripts fix_tablespace.sql en cliquant sur les liens suivants :

    Consultez le script pour MySQL 5.7 et MariaDB 10.1 ou toute version ultérieure

    Consultez le script pour MySQL 8.0+

    Vous ne devez pas arrêter l'exécution du script.
    Si aucune erreur de SGBD ne s'est produite, mais que vous avez interrompu l'exécution du script, soit exécutez à nouveau le script, soit arrêtez d'exécuter les étapes de cette procédure, redémarrez le service SGBD et restaurez les données du Serveur d'administration à partir de la sauvegarde.

  3. Dans la section [mysqld] du fichier my.cnf, définissez le paramètre innodb_file_per_table sur 1.
  4. Redémarrez le service MySQL ou MariaDB.
  5. Relancez le service du Serveur d'administration de Kaspersky Security Center.

Les données sont déplacées d'un tablespace partagé vers un tablespace fichier par table.

Haut de page