Je restaure un dépotoir de 52 Go à une base de données MySQL. Le fichier ibdata1 a déjà dépassé la taille du fichier de vidage et la restauration est toujours incomplète. Existe-t-il un moyen d'estimer la taille finale du fichier ibdata1 si la taille du fichier de vidage MySQL est connue?
Juste des mots de votre question, je suppose que ce qui suit: vous avez probablement ((( innodb_file_per_table Désactivé.
Remarque: les informations suivantes sont basées sur innodb_file_per_table étant désactivé.
Lorsque vous insérez des données dans des tables innovées, tout et sa grand-mère atterrissent dans le fichier de tables de table, mieux connu sous le nom d'IBDATA1. Que contient-il ibdata1?
Données de table et index tout en flagrant initialement ibdata1. Les métadonnées sont simplement simplement le dictionnaire de données + la liste de tablepace_ids attribue sur une base de table.
Qu'en est-il ((( MVCC (contrôle de la concurrence multiversion) ? Cela représente les objets SYSTREM conçus pour prendre en charge l'isolation des transactions, les retombées, les journaux annulaires, les tampons d'insertion pour les index de secondayr et le tampon à double écriture.
Vous devez nettoyer l'infrastructure innodub. J'ai déjà écrit des messages Stackexchange sur la façon dont et pourquoi faire ceci:
Revenez à votre question initiale, le seul moyen d'estimer la taille de l'IBDATA1 sur Recharge aurait été d'exécuter cette requête avant le MySqldump:
SELECT
data_length/power(1024,3) InnoDBData,
index_length/power(1024,3) InnoDBIndexes,
(data_length+index_length)/power(1024,3) InnoDBSize
FROM
information_schema.tables
WHERE
engine='InnoDB';
Cela signalera la taille des données en GB. Sur une nouvelle recharge de l'ibdata1 (avec Innodb_File_Per_Table Désactivé dans votre cas), cela aurait été la règle de base de l'estimation de la taille.
À partir de la taille du fichier de vidage, il est difficile de juger parce que la taille totale combinée des pages de données et des pages d'index peut-être beaucoup moins que la taille de ibdata1 le décharge a été créée à partir de. Cette différence aurait des restes d'espace de la ballonnement des objets système MVCC (segments de restauration, des journaux annulaires, tampon à double écriture, tampon d'index secondaire). D'une autre perspective, les pages de données pourraient dépasser les pages d'index et inversement. Cela pourrait être dû à trop d'index, de mauvais design ou juste une quantité judicieuse de données.