Fonctionnalité GTID
MySQL 5.6 a introduit la fonctionnalité Global Transaction Identifier (GTID). L'utilitaire mysqldump de MySQL 5.6 et des versions ultérieures inclut donc l'option set-gtid-purged.
|
Parameter |
Default |
Value |
Description |
||
|
set-gtid-purged |
AUTO |
ON |
OFF |
AUTO |
Contrôle l'inclusion de l'instruction |
ON: inclut l'instructionSET @@GLOBAL.GTID_PURGEDdans la sortie demysqldump.OFF: n'inclut pas l'instructionSET @@GLOBAL.GTID_PURGEDdans la sortie demysqldump.AUTO: valeur par défaut. Inclut l'instructionSET @@GLOBAL.GTID_PURGEDsi GTID est activé sur l'instance source. Sinon, aucune information GTID n'est incluse.
Lorsque vous utilisez mysqldump à partir de MySQL 5.6 ou d'une version ultérieure pour exporter des données depuis une instance ApsaraDB RDS for MySQL 5.5, définissez set-gtid-purged sur OFF. Dans le cas contraire, l'une des erreurs suivantes se produit :
Error: Server has GTIDs disabled.
or
mysqldump: Couldn’t execute ‘SELECT @@GTID_MODE’: Unknown system variable ‘GTID_MODE’ <1193>
Éviter les attentes de verrouillage au niveau des tables
Par défaut, mysqldump active l'option lock-tables. Cette option applique un verrou au niveau de la table aux tables exportées et bloque les opérations DML (Data Manipulation Language) sur celles-ci.
Les moteurs de stockage InnoDB et TokuDB, pris en charge par défaut sur les instances ApsaraDB RDS for MySQL, prennent tous deux en charge les transactions. Nous vous recommandons d'utiliser l'option single-transaction pour exporter les données plutôt que les options lock-all-tables ou lock-tables.
|
Parameter |
Default |
Value |
Description |
|
|
lock-all-tables |
FALSE |
TRUE |
FALSE |
Acquiert un verrou de lecture global pendant toute la durée de l'exportation. Cela rend toutes les tables de toutes les bases de données accessibles en lecture seule. Cette option désactive automatiquement les options |
|
lock-tables |
TRUE |
TRUE |
FALSE |
Verrouille les tables exportées pendant l'exportation. Cette option est activée par défaut. Pour la désactiver, utilisez l'option |
|
single-transaction |
FALSE |
TRUE |
FALSE |
Effectue l'exportation dans une seule transaction. Cette option désactive automatiquement l'option |
Définition du jeu de caractères d'exportation
Si vous ne spécifiez pas de jeu de caractères, mysqldump utilise UTF8 par défaut.
|
Parameter |
Default |
Value |
Description |
|
default-character-set |
UTF8 |
Character sets supported by the instance |
Définit le jeu de caractères pour l'exportation. |
Autres options d'exportation
|
Parameter |
Default |
Value |
Description |
|||
|
no-defaults |
NA |
NA |
Ne lit aucun fichier d'options, à l'exception de |
|||
|
defaults-file=file_name |
NA |
NA |
Lit uniquement le fichier d'options spécifié. |
|||
|
add-drop-database |
FALSE |
TRUE |
FALSE |
Ajoute une instruction |
||
|
add-drop-table |
TRUE |
TRUE |
FALSE |
Ajoute une instruction |
||
|
add-locks |
TRUE |
TRUE |
FALSE |
Entoure chaque vidage de table avec des instructions |
||
|
compatible=name |
NA |
ansi |
postgresql |
oracle |
mssql |
Génère une sortie plus compatible avec le type de base de données spécifié. |
|
compact |
FALSE |
TRUE |
FALSE |
Active les options |
||
|
databases |
FALSE |
TRUE |
FALSE |
Exporte plusieurs bases de données. Par défaut, |
||
|
disable-keys |
TRUE |
TRUE |
FALSE |
Entoure les instructions |
||
|
events |
FALSE |
TRUE |
FALSE |
Exporte les événements planifiés depuis les bases de données vidées. |
||
|
extended-insert |
TRUE |
TRUE |
FALSE |
Utilise la syntaxe |
||
|
hex-blob |
FALSE |
TRUE |
FALSE |
Exporte les colonnes |
||
|
ignore-table=db.tab |
NA |
NA |
Exclut la table ou la vue spécifiée. Le format est |
|||
|
max-allowed-packet |
24 MB |
24 MB to 1 GB |
Définit la taille maximale du tampon pour la communication client-serveur. La valeur par défaut est de 24 Mo. La valeur maximale est de 1 Go. |
|||
|
no-create-db |
FALSE |
TRUE |
FALSE |
Supprime les instructions |
||
|
no-create-info |
FALSE |
TRUE |
FALSE |
Supprime les instructions |
||
|
no-data |
FALSE |
TRUE |
FALSE |
N'écrit aucune donnée de ligne. |
||
|
opt |
TRUE |
TRUE |
FALSE |
Active les options |
||
|
dump-date |
TRUE |
TRUE |
FALSE |
Ajoute un horodatage de vidage sous forme de commentaire à la fin de la sortie. Cela nécessite l'option |
||
|
routines |
FALSE |
TRUE |
FALSE |
Exporte les procédures stockées et les fonctions. Cette option est désactivée par défaut. |
||
|
result-file |
NA |
NA |
Redirige la sortie vers un fichier spécifié. |
|||
|
set-charset |
TRUE |
TRUE |
FALSE |
Ajoute |
||
|
triggers |
TRUE |
TRUE |
FALSE |
Exporte les déclencheurs pour chaque table vidée. |
Options non prises en charge
|
Parameter |
Default |
Value |
Description |
|
|
all-databases |
FALSE |
TRUE |
FALSE |
Exporte toutes les bases de données, y compris la base de données |
|
flush-logs |
FALSE |
TRUE |
FALSE |
Exécute une commande |
|
flush-privileges |
FALSE |
TRUE |
FALSE |
Ajoute une commande |
|
lock-all-tables |
FALSE |
TRUE |
FALSE |
Acquiert un verrou de lecture global pendant toute la durée de l'exportation, ce qui rend toutes les tables de toutes les bases de données accessibles en lecture seule. Cette option désactive automatiquement les options |
|
tab=dir_name |
NA |
NA |
Génère un fichier |
Options non prises en charge et raisons
-
all-databases: cette option n'est pas prise en charge. Les comptes utilisateur standard dans ApsaraDB RDS for MySQL ne disposent pas des autorisations pour certaines tables de la base de donnéesmysql. L'utilisation de cette option provoque une erreur.Message d'erreur
mysqldump: Couldn’t execute ‘show create table slow_log‘: SHOW command denied to user ‘xxx’@’xx.xx.xx.xx’ for table ‘slow_log’ (1142) -
flush-logs: cette option n'est pas prise en charge. Les comptes utilisateur standard dans ApsaraDB RDS for MySQL ne disposent pas du privilègeRELOADet ne peuvent donc pas exécuter la commandeflush logs;.Message d'erreur
mysqldump: Couldn’t execute ‘FLUSH TABLES’: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227) flush-privileges: cette option est inutile car ApsaraDB RDS for MySQL ne prend pas en charge l'exportation de la base de donnéesmysql.-
lock-all-tables: cette option n'est pas prise en charge. Les comptes utilisateur standard dans ApsaraDB RDS for MySQL ne disposent pas du privilègeRELOAD.Message d'erreur
mysqldump: Couldn’t execute ‘FLUSH TABLES’: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227) -
tab=dir_name: cette option n'est pas prise en charge car elle nécessite quemysqldumps'exécute sur la même machine physique que celle qui héberge l'instance ApsaraDB RDS for MySQL. Toutefois, vous pouvez utiliser cette option avec l'optionno-datapour générer des fichiers contenant des instructionsCREATE TABLE.# Use this option with the no-data option to obtain the tab_name.sql file, which contains the CREATE TABLE statement for each table in the test database. mysqldump —no-defaults -uuser_name -ppass_word -hxxx.mysql.rds.aliyuncs.com -P3306 —set-gtid-purged=off —single-transaction —tab=/tmp —no-data test # Error message returned when you export data without using the --no-data option: mysqldump —no-defaults -uuser_name -ppass_word -hxxx.mysql.rds.aliyuncs.com -P3306 —set-gtid-purged=off —single-transaction —tab=/tmp test mysqldump: Got error: 1045: Access denied for user ‘xxx’@’%’ (using password: YES) when executing ‘SELECT INTO OUTFILE’