Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Перенести таблицу с одной бд в другую / 12 сообщений из 12, страница 1 из 1
17.10.2018, 17:41
    #39719014
Булыжник
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
Здравствуйте. Использую такой метод переноса: mysqldump -uroot -p table base1 | mysql -uroot -p base2
Ну очень долго переносит. В таблицах не много данных. С чем это связано?
Мб способ копирования некорректен?
...
Рейтинг: 0 / 0
17.10.2018, 17:42
    #39719015
Булыжник
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
сервер 8 ядер. 8 гиг озу. ресурсов хватает.
...
Рейтинг: 0 / 0
17.10.2018, 18:32
    #39719043
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
А что значит "Ну очень долго"? Сколько мегабайт данных и за какой промежуток времени?
Ещё и от структуры копируемых таблиц зависит...
Например, при больших объемах не получится выйти за скорость передачи данных интерфейса жесткого диска. Вполне себе ограничивающий фактор, коих много.
Хост не указан - значит используется один сервер на локалхосте. Соответственно, головкам диска придется бегать от файлов одной таблицы к файлам другой таблицы, если эти файлы на одном диске. Это не быстро. Да ещё и данные туда-сюда. На разных дисках копирование малость побыстрее будет.
Ну так то есть хитрости ускорить. Например, если сначала создать таблицу и индексы, а потом заливать туда данные, то процесс будет более медленным, нежели создание индексов после заливки данных.
В ряде случаев для скорости можно тупо остановить сервер и скопировать файлы таблиц из одной базы в другую. Головкам по диску тоже придется елозить, но некоторая экономия будет, те же индексы перенесутся уже готовыми. Конечно, если ситуация позволяет.
Ядрами можно не меряться, процессов тут всего ничего.
...
Рейтинг: 0 / 0
17.10.2018, 19:06
    #39719063
Булыжник
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
vkleА что значит "Ну очень долго"? Сколько мегабайт данных и за какой промежуток времени?
Ещё и от структуры копируемых таблиц зависит...
Например, при больших объемах не получится выйти за скорость передачи данных интерфейса жесткого диска. Вполне себе ограничивающий фактор, коих много.
Хост не указан - значит используется один сервер на локалхосте. Соответственно, головкам диска придется бегать от файлов одной таблицы к файлам другой таблицы, если эти файлы на одном диске. Это не быстро. Да ещё и данные туда-сюда. На разных дисках копирование малость побыстрее будет.
Ну так то есть хитрости ускорить. Например, если сначала создать таблицу и индексы, а потом заливать туда данные, то процесс будет более медленным, нежели создание индексов после заливки данных.
В ряде случаев для скорости можно тупо остановить сервер и скопировать файлы таблиц из одной базы в другую. Головкам по диску тоже придется елозить, но некоторая экономия будет, те же индексы перенесутся уже готовыми. Конечно, если ситуация позволяет.
Ядрами можно не меряться, процессов тут всего ничего.

Да. Я тут попробвал экспортировать таблицу. Потом ипортировать. Через ссш вижу какие запросы идут. Видимо таблица очень большой оказалось. Беда в том что при импорте в базу, база не принимает другие запросы с локалхоста т.к. занята импортом.

Есть ли вариант, просто быстро перенести таблицу с бд1 в бд2? Не скопировать, а перенести.
...
Рейтинг: 0 / 0
17.10.2018, 20:03
    #39719083
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
Булыжник, наверно Вы по диагонали прочитали процитированное. Попробую разжевать подробнее.
Таблица в ряде случаев есть лишь набор файлов. Если это Ваш случай - то можно.
Если же таблица, например на движке InnoDB в общем хранилище данных - тогда это не Ваш случай.
Файлы можно копировать (команда cp) и можно перемещать (команда mv). Применительно к СУБД MySQL это можно делать только при остановленном сервере, если нет желания восстанавливать таблицы из резервной копии.

И, на всякий случай, если вдруг не знаете или не читали. Перед любыми потенциально опасными операциями на сервере делайте резервную копию данных. Даже если на 146% понимаете, что собираетесь делать.


БулыжникБеда в том что при импорте в базу, база не принимает другие запросы с локалхоста т.к. занята импортом.Какую ошибку возвращает сервер при попытке выполнить запрос с локалхоста?
Или никакой ошибки нет, а запрос висит себе в очереди и ждет, пока эта самая очередь дойдет до него? ;-)
Можно, в принципе, и не гнать всю огромадную таблицу целиком, можно кусочками с паузами...
...
Рейтинг: 0 / 0
17.10.2018, 20:12
    #39719085
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
Булыжник,

А это все в одном инстансе MySQL происходит?
...
Рейтинг: 0 / 0
17.10.2018, 20:38
    #39719093
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
БулыжникЕсть ли вариант, просто быстро перенести таблицу с бд1 в бд2? Не скопировать, а перенести.
Судя по тому, что не указаны хосты и порты в исходных командах - речь о двух базах в пределах одного хоста. Тогда:
Код: sql
1.
rename table db1.tablename to db2.tablename;



А для скопировать данные аналогично в пределах инстанса наверняка будет эффективнее перенести структуру вручную и сделать
Код: sql
1.
insert into db2.tablename select * from db1.tablename;
...
Рейтинг: 0 / 0
17.10.2018, 21:02
    #39719102
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
Melkijв пределах одного хоста
в пределах одного экземпляра mysql, конечно.
Ну и конечно права должны быть, но у рута права наверное есть.
...
Рейтинг: 0 / 0
18.10.2018, 12:49
    #39719313
Булыжник
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
MelkijБулыжникЕсть ли вариант, просто быстро перенести таблицу с бд1 в бд2? Не скопировать, а перенести.
Судя по тому, что не указаны хосты и порты в исходных командах - речь о двух базах в пределах одного хоста. Тогда:
Код: sql
1.
rename table db1.tablename to db2.tablename;



А для скопировать данные аналогично в пределах инстанса наверняка будет эффективнее перенести структуру вручную и сделать
Код: sql
1.
insert into db2.tablename select * from db1.tablename;


Всем спасибо за помощь. Очень хорошо сработала rename, все таблицы перенесёт с одной базы в другую за 5 сек.
С последней таблицей выдаёт ошибку: ERROR 1435 (HY000): Trigger in wrong schema
...
Рейтинг: 0 / 0
18.10.2018, 12:53
    #39719318
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
Булыжник,

удалите с таблицы триггеры, перенесите табличку, создайте новые триггеры обратно какие нужны.
...
Рейтинг: 0 / 0
18.10.2018, 13:02
    #39719327
Булыжник
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
MelkijБулыжник,

удалите с таблицы триггеры, перенесите табличку, создайте новые триггеры обратно какие нужны.
Такая вылазит если я переименовываю таблицу. И потом переношу, ошибка. Если не переименовывать то всё ок. Странно как-то.
...
Рейтинг: 0 / 0
18.10.2018, 18:03
    #39719540
Булыжник
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенести таблицу с одной бд в другую
Всё сделал. Спасибо ребят. Удалил тригеры и заново добавил.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Перенести таблицу с одной бд в другую / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]