I saw a solution like this below:
- create a new table like your source table.
- alter that new table the way you want.
- insert your data into the new table.
- create indexes etc. as needed on the new table.
- rename your old table to something like ..._old or whatever.
- rename your new table to the former name of the old one.
- copy any missing rows from the _old table to the new one.
Reference for an above solution
But the above solution might cause data unavailability if there is a huge amount of data added before copying any missing rows from the _old table to the new one.
Is there any better solution than this, using AWS DMS, etc?
I also want to change the collate of all tables present in the database. Is it possible to get all the data replicated between two RDS DBs continuously, like new data entered in database A gets into Database B and viceversa?
Since I have around 50-60GB data any best way to solve this is appreciated.
Update:
- I have around 50-60GB of data.
- Mysql version: 5.7
- I need to change collation on all my tables