Перенос данных MariaDB с DMS для исключения старых записей и уменьшения размера RDS - PullRequest
0 голосов
/ 05 января 2020

У меня есть база данных MariaDB с 1 ТБ данных, из которых мне нужно удалить старые записи.

Общее количество удалений оставит базу данных менее чем на половину ее фактического размера, поэтому я подумал, что может быть проще, если я перейду на новую RDS, используя DMS и ее функцию фильтра для копирования только тех записей, которые я необходимо и также реплицировать текущие изменения.

Вторая причина миграции заключается в том, что я не могу «вернуть» свободное пространство для хранения после удаления, чтобы сократить расходы, поэтому amazon предлагает перейти на меньшую RDS.

С учетом этого сценария возникли некоторые сомнения.

1 - сказано, что DMS не создает все объекты таблицы. Должен ли я беспокоиться об идентификаторах автоинкремента? Я имею в виду, DMS будет отфильтровывать записи с начала последовательности во время миграции, поэтому при вставке новых записей БД будет продолжать увеличиваться с последнего идентификатора?

2 - Когда именно мне нужно создать ограничения, ФК и другие не созданные объекты?

3 - Не все таблицы будут фильтроваться. Лучше ли разделять их в разных задачах миграции?

4 - я никогда не переносил ничего, используя эти инструменты. Есть ли какая-то скрытая ловушка, о которой мне нужно беспокоиться?

OBS: миграция будет осуществляться с AND на MariaDB

Ответы [ 2 ]

0 голосов
/ 13 января 2020

Если вы можете выгрузить, переместить и загрузить все таблицы, кроме самой большой, обычными средствами, то выполните следующие действия для самой большой части дампа:

mysqldump ... --where='...' ...

Необходимо создать предложение where для сохранения строки, которые вы хотите сохранить .

Похоже, вы хотите удалить половину большой таблицы. Такой DELETE может быть весьма проблематичным c. К SELECTing из тех, что нужно оставить, должно быть гораздо меньше хлопот.

Убедитесь, что в новой системе innodb_file_per_table=ON.

0 голосов
/ 06 января 2020

1 - перед миграцией я думаю, что желательно удалить старые записи. Это облегчит миграцию. Возможно, это поможет вам ...

 https://pt.stackoverflow.com/questions/139437/remover-registros-antigos-mysql-automaticamente

2 - Не создавайте ограничений перед удалением старых записей. Потому что это может привести к ошибкам.

3 - Хорошо разделять таблицы как для удаления записей, так и для импорта. И это делает вашу миграцию быстрее при загрузке. Поскольку он имеет 1 ТБ.

4 - Поскольку вы никогда не выполняли такого рода миграцию, я рекомендую сосредоточиться на удалении записей, чтобы их было легче импортировать в вашу новую систему.

Удачи! Отправить новость

...