powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Синхронизация
18 сообщений из 18, страница 1 из 1
Синхронизация
    #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
Синхронизация
    #39236948
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чингискакой мне алгоритм придумать?
Google MSSQL MySQL replication
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Синхронизация
    #39236961
Чингис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЧингискакой мне алгоритм придумать?
Google MSSQL MySQL replication



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

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

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

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

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

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

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

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

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

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

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

Здорово! Такой подход весьма устойчив к сбоям при передаче... всё что успело обновиться - в следующей попытке уже не участвует... (естественно при полном формате даты - часы, минуты, секунды...)
...
Рейтинг: 0 / 0
Синхронизация
    #39237280
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVПримерно так работают репликации.
Нет, как раз обычно они так не работают, поскольку у этой схемы есть проблемы с удалениями
и при работе системы в многопользовательском режиме.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Синхронизация
    #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
Синхронизация
    #39238349
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧингисmiksoftЕсли да, то я бы сделал экспорт всей таблицы в CSV/TSV-файл и его импорт в MySQL с помощью mysqlimport/LOAD DATA INFILE.
слишком замудренно и долго писать
Это самый простой и надёжный способ из возможных. Для перекачки жалких ста тысяч записей раз в сутки самое оно. Если слишком сложно - попроси какого-нибудь айтишника, он за десять минут сделает.
...
Рейтинг: 0 / 0
Синхронизация
    #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]