Назад | Перейти на главную страницу

Переместить базу данных MySQL, пока экземпляр находится в сети

У меня есть экземпляр MySQL, содержащий несколько баз данных, одна из которых является архивной базой данных (хотя и использует INNODB, а не механизм хранения ARCHIVE), которая не запрашивается и не записывается при нормальной работе.

Файловая система данных заполняется, и я хотел бы переместить каталог данных архивной базы данных в другую файловую систему (а затем, очевидно, создать символическую ссылку). Если нет операторов SQL, пытающихся запросить или обновить данные во время перемещения, могу ли я безопасно сделать это, пока экземпляр MySQL и другие базы данных остаются в сети и используются?

Я планирую выполнить синхронизацию каталога базы данных с новой файловой системой, затем переименовать старый каталог в исходной файловой системе во что-то другое и создать новую символическую ссылку. lsof сообщает, что у MySQL есть открытые файлы .ibd, поэтому, по-видимому, придется их снова открыть.

Я сделал это, используя механизм хранения MYISAM, но думаю, что с INNODB все будет так же:

mysql "горячая копия" и символические ссылки

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

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