Ma table actuelle utilise MEDIUMINT
pour la colonne ID 'Touche primaire Auto incrément'. Les enregistrements de table actuels atteindront bientôt la valeur maximale pour mediumint
qui est 8388607. Cela étant le cas, je dois modifier le type à int
ou le modifier à unsigned
sans tout temps d'arrêt.
Ma configuration est Master-esclave MySQL 5.6 sur Amazon RDS. J'ai un maître et 4 esclaves.
pt-table-sync
sur Amazon RDS pour synchroniser une autre table, puis faire les changements sur la nouvelle table.Y a-t-il un moyen de passer à int
sans verrouillage de la table?
Mise à jour : Je ne suis pas sûr que l'attribut est signé ou non signé. Je ne suis pas capable de trouver où il a signé ou non. Je cours show columns from table
Et voici le résultat:
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| id | mediumint(8) | NO | PRI | NULL | auto_increment |
Alors que Rolando a mon vote, car il a raison dans votre cas, je souhaite répondre à votre question initiale (pour vous à l'avenir et pour les autres) concernant Percona Toolkit:
pt-table-sync
n'est pas ce que vous voulez. Pensez à (pt-online-schema-change
. Bien qu'il y ait des coins durs, , cela fonctionne sur RDS avec la bonne configuration ou des modifications minimales sur le script. pt-table-sync
va également résoudre les problèmes avec RDS dans la prochaine version . Il existe d'autres alternatives pour les changements de schéma en ligne, Oak-Toolkit et Facebook.
À titre d'alternative, vous avez besoin d'un esclave de rechange pouvant subir le retard du temps que le ALTER
est en cours d'exécution, puis effectuez une commutation contrôlée.