Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Синхронизация / 18 сообщений из 18, страница 1 из 1
16.05.2016, 22:25
    #39236937
Чингис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
добрый день гуру по БД!
есть на локальном компе ms sql данные и под вечер выгружают данные на веб сервер
My SQL.
выгружают к примеру оплату
oid = 5 ab_oid = 1 opl=500
oid = 6 ab_oid = 2 opl=1000

mysql
эти данные получил
oid = 5 ab_oid = 1 opl=500
oid = 6 ab_oid = 2 opl=1000

оператор где то исправил и повторно отправил
oid = 5 ab_oid = 1 opl=500
oid = 6 ab_oid = 2 opl=100

какой мне алгоритм придумать?
для сравнения слишком долго думаю...
можно придумать через удаления, но как ....
можно придумать upgrade 140000 записей довольно долго и любой разрыв заново запуск долго
что предложите...
...
Рейтинг: 0 / 0
16.05.2016, 22:35
    #39236948
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
Чингискакой мне алгоритм придумать?
Google MSSQL MySQL replication
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.05.2016, 22:59
    #39236961
Чингис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
Dimitry SibiryakovЧингискакой мне алгоритм придумать?
Google MSSQL MySQL replication



интересно, но сложновато и на англ. и времени больше надо
...
Рейтинг: 0 / 0
16.05.2016, 23:08
    #39236965
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
Чингис,

MySQL всегда должен только отражать происходящее в MS SQL?
Если да, то я бы сделал экспорт всей таблицы в CSV/TSV-файл и его импорт в MySQL с помощью mysqlimport/LOAD DATA INFILE.
...
Рейтинг: 0 / 0
16.05.2016, 23:11
    #39236967
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
Чингискакой мне алгоритм придумать?

Разнести выгрузку на две категории:
1. Выгрузка.
2. Корректировка.
Всё что выгружено (как обычно) столбится у оператора (типа ставим первый признак выгружено).
Всё, что идет повторно из того что застолбили - идет уже как корректировка и только те строки, которые менялись,
там где меняли проставляем второй признак - корректировка. После успешной корректировки сбрасываем второй признак (корректировки) и оставляем первый (уже выгружено)...
Если с умом - то хватит одного признака:
- 0 нулячиая строка
- 1 отправлена на сервер
- 2 подлежит корректировке
После корректировке 2 сбрасывается опять в 1
...
Рейтинг: 0 / 0
16.05.2016, 23:19
    #39236968
Чингис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
miksoftЧингис,

MySQL всегда должен только отражать происходящее в MS SQL?
Если да, то я бы сделал экспорт всей таблицы в CSV/TSV-файл и его импорт в MySQL с помощью mysqlimport/LOAD DATA INFILE.

слишком замудренно и долго писать
...
Рейтинг: 0 / 0
16.05.2016, 23:22
    #39236969
Чингис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
vmag, а если без корректировки, я таблицу корректировки не создавал
создать надо бы но это со временем
...
Рейтинг: 0 / 0
16.05.2016, 23:25
    #39236970
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
vmagРазнести выгрузку на две категории:
1. Выгрузка.
2. Корректировка.

Ну, соответственно когда оператор нажимает кнопку Выгрузка, всё что с нулем идет на сервер с признаком один и сервак тупо грузит, а у оператора все нули меняются на 1, а когда оператор жмет Корректировка, то на сервер идет всё с признаком 2 (сервак понимает, находит строки и меняет), после корректировки всё что было 2 у оператора становится 1
...
Рейтинг: 0 / 0
16.05.2016, 23:26
    #39236971
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
Чингисvmag, а если без корректировки, я таблицу корректировки не создавал

а она и не нужна - добавить поле признака в основную таблицу у оператора и всё...
...
Рейтинг: 0 / 0
16.05.2016, 23:33
    #39236974
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
vmag,

По большому счету можно и одной кнопкой обойтись - Отправить...
На сервак полетит от оператора всё с 0 и 2, а тот строки с 0 (1) тупо загрузит, строки с 2 - откорректирует...
После успешной отправки у оператора строки с 0 и 2 станут с признаком 1
...
Рейтинг: 0 / 0
17.05.2016, 00:03
    #39236985
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
ЧингисmiksoftЧингис,

MySQL всегда должен только отражать происходящее в MS SQL?
Если да, то я бы сделал экспорт всей таблицы в CSV/TSV-файл и его импорт в MySQL с помощью mysqlimport/LOAD DATA INFILE.слишком замудренно и долго писатьНаоборот, это практически самый простой способ из возможных. Две команды по большому счету, не считая передачи файла на нужный сервер.
...
Рейтинг: 0 / 0
17.05.2016, 09:31
    #39237085
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
Простое решение по сабжу:
При обновлении/добавлении строки в некое служебное поле ЛокальнаяБД."Дата" ставится дата/время обновления записи.
ВЕБ-база перед тем как сделать запрос к ЛокальнаяБД получает максимальное значение "даты", кот. есть у нее в таблице
и запрашивает с условием ЛокальнаяБД."Дата" > ВЕБ."Дата".
В итоге получаем только записи, кот. обновлены/добавлены с момента последнего обмена. Осталось их внести в "ЛокальнаяБД" вместе с "Датой". Для полного обновления (ну вдруг надо) достаточно запросить что-то вроде ЛокальнаяБД."Дата"> '1990-01-01'

Немного сумбурно, но думаю суть ясна.
Примерно так работают репликации.
...
Рейтинг: 0 / 0
17.05.2016, 09:32
    #39237086
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
Сорри.
Осталось их внести в "ЛокальнаяБД" вместе с "Датой".

читать как:
Осталось их внести в "ВЕБ-БД" вместе с "Датой".
...
Рейтинг: 0 / 0
17.05.2016, 10:32
    #39237134
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
LSVПри обновлении/добавлении строки в некое служебное поле ЛокальнаяБД."Дата" ставится дата/время обновления записи.
ВЕБ-база перед тем как сделать запрос к ЛокальнаяБД получает максимальное значение "даты", кот. есть у нее в таблице
и запрашивает с условием ЛокальнаяБД."Дата" > ВЕБ."Дата".

Здорово! Такой подход весьма устойчив к сбоям при передаче... всё что успело обновиться - в следующей попытке уже не участвует... (естественно при полном формате даты - часы, минуты, секунды...)
...
Рейтинг: 0 / 0
17.05.2016, 12:34
    #39237280
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
LSVПримерно так работают репликации.
Нет, как раз обычно они так не работают, поскольку у этой схемы есть проблемы с удалениями
и при работе системы в многопользовательском режиме.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.05.2016, 13:48
    #39238218
Чингис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
спс всем но только ни как не соображу

oid = 5 ab_oid = 1 opl=500 date_opl=01.05.06
oid = 6 ab_oid = 2 opl=1000 date_opl=01.05.06

mysql
эти данные получил
oid = 5 ab_oid = 1 opl=500 date_opl=01.05.06
oid = 6 ab_oid = 2 opl=1000 date_opl=01.05.06

оператор где то исправил и повторно отправил
oid = 5 ab_oid = 1 opl=500 date_opl=01.05.06
oid = 6 ab_oid = 2 opl=100 date_opl=01.05.06

ну или думаю так мой вариант
выбирают мес.
1 очистка
2 загрузка

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

1. очистка "алгоритм"
2. загрузка "алгоритм"

что под ставить вместо "алгоритм"?
...
Рейтинг: 0 / 0
18.05.2016, 15:18
    #39238349
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
ЧингисmiksoftЕсли да, то я бы сделал экспорт всей таблицы в CSV/TSV-файл и его импорт в MySQL с помощью mysqlimport/LOAD DATA INFILE.
слишком замудренно и долго писать
Это самый простой и надёжный способ из возможных. Для перекачки жалких ста тысяч записей раз в сутки самое оно. Если слишком сложно - попроси какого-нибудь айтишника, он за десять минут сделает.
...
Рейтинг: 0 / 0
26.05.2016, 12:48
    #39243973
Чингис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация
спс всем решил
оператор выбирать недели (1 or 2 or 3 or 4 or месяц) период
зачистка идет на сервере период
и загрузка период
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Синхронизация / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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