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

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

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

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


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

А это все в одном инстансе MySQL происходит?
...
Рейтинг: 0 / 0
Перенести таблицу с одной бд в другую
    #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
Перенести таблицу с одной бд в другую
    #39719102
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkijв пределах одного хоста
в пределах одного экземпляра mysql, конечно.
Ну и конечно права должны быть, но у рута права наверное есть.
...
Рейтинг: 0 / 0
Перенести таблицу с одной бд в другую
    #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
Перенести таблицу с одной бд в другую
    #39719318
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Булыжник,

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

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


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