У меня есть script ниже, который проходит через 380 баз данных innodb MySQL и запускает различные таблицы создания, вставки, обновления... и т.д. для переноса схемы. Он запускается с веб-сервера, который подключается к серверу облачной базы данных. Я покидаю миграцию script из этого вопроса, поскольку я не думаю, что это имеет значение.
У меня возникла проблема, и я пытаюсь найти обходной путь.
У меня есть сервер базы данных облаков 4gb, работающий под MySQL 5.6. Я перенесла 380 баз данных с 40 таблицами на 59 таблиц. Около 70% пути я получил ошибки ниже. Он умер в середине одной миграции, и сервер опустился. Я наблюдал за использованием памяти, и у нее не хватало памяти. Это база данных как служба, поэтому у меня нет корневого доступа к серверу, поэтому я не знаю всех деталей.
Выполнение запросов на phppoint_smg
Warning: Using a password on the command line interface can be insecure.
ERROR 2013 (HY000) at line 355: Lost connection to MySQL server during query
Выполнение запросов на phppoint_soulofhalloween
Warning: Using a password on the command line interface can be insecure.
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
Выполнение запросов на phppoint_srvais
Warning: Using a password on the command line interface can be insecure.
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
Вот упрощенная версия PHP script.
db_host = escapeshellarg($db_host);
$db_user = escapeshellarg($db_user);
$db_password = escapeshellarg($db_password);
foreach($databases as $database)
{
echo "Running queries on $database\n***********************************\n";
system("mysql --host=$db_host --user=$db_user --password=$db_password --port=3306 $database < ../update.sql");
echo "\n\n";
}
Мои вопросы:
Есть ли способ избежать использования памяти в процессе миграции? Я делаю это по одной базе данных одновременно. Или добавление таблиц и данных связано с тем, что она поднимается?
Я смог использовать серверные слова и удалил 80 баз данных и завершил миграцию. Он имеет 800 мб бесплатно; и я ожидаю, что он снизится до 600 мб. До миграции он был в 500 мб