|
|
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
добрый день гуру по БД! есть на локальном компе 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 записей довольно долго и любой разрыв заново запуск долго что предложите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2016, 22:25 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
Чингискакой мне алгоритм придумать? Google MSSQL MySQL replication Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2016, 22:35 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЧингискакой мне алгоритм придумать? Google MSSQL MySQL replication интересно, но сложновато и на англ. и времени больше надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2016, 22:59 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
Чингис, MySQL всегда должен только отражать происходящее в MS SQL? Если да, то я бы сделал экспорт всей таблицы в CSV/TSV-файл и его импорт в MySQL с помощью mysqlimport/LOAD DATA INFILE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2016, 23:08 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
Чингискакой мне алгоритм придумать? Разнести выгрузку на две категории: 1. Выгрузка. 2. Корректировка. Всё что выгружено (как обычно) столбится у оператора (типа ставим первый признак выгружено). Всё, что идет повторно из того что застолбили - идет уже как корректировка и только те строки, которые менялись, там где меняли проставляем второй признак - корректировка. После успешной корректировки сбрасываем второй признак (корректировки) и оставляем первый (уже выгружено)... Если с умом - то хватит одного признака: - 0 нулячиая строка - 1 отправлена на сервер - 2 подлежит корректировке После корректировке 2 сбрасывается опять в 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2016, 23:11 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
miksoftЧингис, MySQL всегда должен только отражать происходящее в MS SQL? Если да, то я бы сделал экспорт всей таблицы в CSV/TSV-файл и его импорт в MySQL с помощью mysqlimport/LOAD DATA INFILE. слишком замудренно и долго писать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2016, 23:19 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
vmag, а если без корректировки, я таблицу корректировки не создавал создать надо бы но это со временем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2016, 23:22 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
vmagРазнести выгрузку на две категории: 1. Выгрузка. 2. Корректировка. Ну, соответственно когда оператор нажимает кнопку Выгрузка, всё что с нулем идет на сервер с признаком один и сервак тупо грузит, а у оператора все нули меняются на 1, а когда оператор жмет Корректировка, то на сервер идет всё с признаком 2 (сервак понимает, находит строки и меняет), после корректировки всё что было 2 у оператора становится 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2016, 23:25 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
Чингисvmag, а если без корректировки, я таблицу корректировки не создавал а она и не нужна - добавить поле признака в основную таблицу у оператора и всё... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2016, 23:26 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
vmag, По большому счету можно и одной кнопкой обойтись - Отправить... На сервак полетит от оператора всё с 0 и 2, а тот строки с 0 (1) тупо загрузит, строки с 2 - откорректирует... После успешной отправки у оператора строки с 0 и 2 станут с признаком 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2016, 23:33 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
ЧингисmiksoftЧингис, MySQL всегда должен только отражать происходящее в MS SQL? Если да, то я бы сделал экспорт всей таблицы в CSV/TSV-файл и его импорт в MySQL с помощью mysqlimport/LOAD DATA INFILE.слишком замудренно и долго писатьНаоборот, это практически самый простой способ из возможных. Две команды по большому счету, не считая передачи файла на нужный сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 00:03 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
Простое решение по сабжу: При обновлении/добавлении строки в некое служебное поле ЛокальнаяБД."Дата" ставится дата/время обновления записи. ВЕБ-база перед тем как сделать запрос к ЛокальнаяБД получает максимальное значение "даты", кот. есть у нее в таблице и запрашивает с условием ЛокальнаяБД."Дата" > ВЕБ."Дата". В итоге получаем только записи, кот. обновлены/добавлены с момента последнего обмена. Осталось их внести в "ЛокальнаяБД" вместе с "Датой". Для полного обновления (ну вдруг надо) достаточно запросить что-то вроде ЛокальнаяБД."Дата"> '1990-01-01' Немного сумбурно, но думаю суть ясна. Примерно так работают репликации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 09:31 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
Сорри. Осталось их внести в "ЛокальнаяБД" вместе с "Датой". читать как: Осталось их внести в "ВЕБ-БД" вместе с "Датой". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 09:32 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
LSVПри обновлении/добавлении строки в некое служебное поле ЛокальнаяБД."Дата" ставится дата/время обновления записи. ВЕБ-база перед тем как сделать запрос к ЛокальнаяБД получает максимальное значение "даты", кот. есть у нее в таблице и запрашивает с условием ЛокальнаяБД."Дата" > ВЕБ."Дата". Здорово! Такой подход весьма устойчив к сбоям при передаче... всё что успело обновиться - в следующей попытке уже не участвует... (естественно при полном формате даты - часы, минуты, секунды...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 10:32 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
LSVПримерно так работают репликации. Нет, как раз обычно они так не работают, поскольку у этой схемы есть проблемы с удалениями и при работе системы в многопользовательском режиме. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 12:34 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
спс всем но только ни как не соображу 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. загрузка "алгоритм" что под ставить вместо "алгоритм"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2016, 13:48 |
|
||
|
Синхронизация
|
|||
|---|---|---|---|
|
#18+
ЧингисmiksoftЕсли да, то я бы сделал экспорт всей таблицы в CSV/TSV-файл и его импорт в MySQL с помощью mysqlimport/LOAD DATA INFILE. слишком замудренно и долго писать Это самый простой и надёжный способ из возможных. Для перекачки жалких ста тысяч записей раз в сутки самое оно. Если слишком сложно - попроси какого-нибудь айтишника, он за десять минут сделает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2016, 15:18 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39236968&tid=1540335]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 288ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...