Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Транзакционный перенос даннных (zz) 28/02/2003 - 01:58:53
      Re: Транзакционный перенос даннных (UzLA) 28/02/2003 - 12:50:07
      Re: Транзакционный перенос даннных (zz) 03/03/2003 - 16:53:12

> Original message text:
> From: zz - 28/02/2003 - 01:58:53
> Subject:Транзакционный перенос даннных
> -----------------
> Задача: требуется безопасно и быстро перенести данные из одной базы данных в другую. Обе под mysql, но на разных компьютерах.
>
> Данные: информация о клиенте - несколько взаимосвязанных таблиц. Объёмы данных: около миллиона записей, операция повторяется каждый час.
>
> Усложнение: Вторая база постоянно работает (выдаёт ответы на веб-
> запросы, SELECT-ориентирована)
>
> В простом случае можно было бы делать mysqldump-mysqlimport. но из-за того, что вторая база "вынуждена" отвечать на запросы, требуется некоторая целостность данных. то есть если данные о клиенте хранятся в нескольких таблицах, то должна быть транзакция для INSERT-ов в эти таблицы.
>
> Вопрос состоит в том - как реализовать эти транзакции?
>
> Предположения (используем InnoDB):
>
> 1) mysqldump из первой таблицы. выполняем весь в одной транзакции (перед началом - SET AUTOCOMMIT=0, в конце - COMMIT).
> один недостаток: при откате InnoDB будет страшнейшим образом тормозить (цитата из документации: "Ограниченный производительностью диска откат может занять в 30 раз больше времени, чем вставка."). хотя для миллиона записей это, возможно, несущественно.
>
> 2)транзакция для нескольких клиентов. осуществляется скриптом (напр. perl). берет данные по сотне клиентов из нескольких таблиц и вставляет во вторую базу в транзакции. либо создает аналогичный sql-скрипт.
> работает наверняка медленнее предыдущего варианта, но осуществляет баланс между скоростью вставок и откатов.
> недостаток: допустим, скрипт вставил 500.000 клиентов из 1.000.000, а к базе уже обратились за данными. результат будет не совсем верным.
>
> Может есть третий вариант?
>


From: zz - 03/03/2003 - 16:53:12
Subject:Транзакционный перенос даннных
-----------------
а дело-то вот в чем. данные передаются не идентично. то есть в середине процесса импорта-экспорта присутствует элемент, как счаз модно говорить, бизнес-логики, и данные преобразовываются. более того, они переносятся в несколько различных баз (в зависимости от данных).

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


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
7049



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |