Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / синхронизация набора таблиц между бд / 25 сообщений из 30, страница 1 из 2
23.04.2020, 11:55
    #39950365
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
синхронизация набора таблиц между бд - есть ли такой механизм?
есть БД покупная ненормализованная
полей с датой последнего изменения там нет, row_version тоже нет
никаких ддл там делать нельзя

таблиц в БД штук 1000, надо синхронизировать штук 100 на другую БД
надо их синхронизировать с БД отчетов
все таблицы синхронизировать не надо и нельзя, там очень много инфы


пните куда почитать
...
Рейтинг: 0 / 0
23.04.2020, 11:59
    #39950367
godsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
andreymx,
можно использовать
Но придется написать условия для этих 100 таблиц
MERGE (Transact-SQL)

Выполняет операции вставки, обновления или удаления для целевой таблицы на основе результатов соединения с исходной таблицей. Например, можно синхронизировать две таблицы путем вставки, обновления или удаления строк в одной таблице на основании отличий, найденных в другой таблице.
...
Рейтинг: 0 / 0
23.04.2020, 12:28
    #39950384
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
andreymx
синхронизация набора таблиц между бд - есть ли такой механизм?
...
пните куда почитать
Репликация, наверное.
Выбор реализации нужно начинать с определения требований.
Можно "синхронизовать" репликацией, триггерами, пакетом SSIS, командами T-SQL из джоба через линке-сервер, в общем, вариантов много.
...
Рейтинг: 0 / 0
23.04.2020, 12:30
    #39950385
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
Спасибо
Что такое мёдж и апдейт я знаю

Но хотелось узнать, есть ли какие не ручные механизмы, типа голденгейт в Оракле
И сколько они стоят
...
Рейтинг: 0 / 0
23.04.2020, 12:41
    #39950399
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
В Microsoft SQL Server есть Change Data Capture (CDC). Может, Вам подойдет
...
Рейтинг: 0 / 0
23.04.2020, 13:53
    #39950468
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
...
Рейтинг: 0 / 0
23.04.2020, 14:09
    #39950481
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
Dimitry Sibiryakov
спасибо

админы отпинали (


только руками
...
Рейтинг: 0 / 0
23.04.2020, 15:21
    #39950537
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
andreymx,

в VS есть сравнение схем баз данных, с его помощью можно создать недостающие таблицы. Заполнить из также можно сравнением данных, но если данных много, то скрипты получатся гигантскими и ком, скорее всего, их не переварит.
...
Рейтинг: 0 / 0
23.04.2020, 19:40
    #39950684
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
Владислав Колосов
andreymx,

в VS есть сравнение схем баз данных, с его помощью можно создать недостающие таблицы. Заполнить из также можно сравнением данных, но если данных много, то скрипты получатся гигантскими и ком, скорее всего, их не переварит.
ага
Спасибо
...
Рейтинг: 0 / 0
24.04.2020, 20:18
    #39951174
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
andreymx
Но хотелось узнать, есть ли какие не ручные механизмы, типа голденгейт в Оракле


Почему не использовать тот же golden gate?
Есть еще аналог от информатики.
...
Рейтинг: 0 / 0
30.04.2020, 21:47
    #39953426
Glebanski
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
Merge можно сгенерить. Вы же знаете откуда взять PK к таблицам. Если они есть конечно...

А данные можно сравнить например по хэшу, заранее его кудато записав (пусть даже и в темп таблицу, если ддл совсем нельзя)
...
Рейтинг: 0 / 0
30.04.2020, 21:58
    #39953429
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
ПК есть, и я их знаю
Но как обновлять хеш, идею не просек
...
Рейтинг: 0 / 0
01.05.2020, 06:01
    #39953470
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
А вам нужно синхронизировать таблицы, или просто периодически перетаскивать данные с одной базы в другую?
И какой объем передаваемых данных? Гигабайт, 10, 100, Терабайт, больше?
Если данных, например, до 10 Гб, и данные нужно не чаще, чем раз в 15 минут целиком таскать с одного сервера на другой, то проще не морочиться, а выгружать все данные целиком через bcp в натуральный формат, грузить их bulk-ком в рядомстоящие таблицы на сервере-приемники, а в конце делать alter table switch этих рядомстоящих таблиц в продуктивные.

Идеи использовать CDC, или его эрзацы, типа добавления полей типа timestamp в отслеживаемые таблицы, или, чего доброго - добавление таблиц ключ/хеш на стороне источника, и периодические перерассчеты, чтобы выделить дельту данных, выгрузить и сделать merge на приемнике - они имеют смысл только тогда, когда объемы данных и каналы связи не позволяют быстро выгрузить и передать сразу всё.
...
Рейтинг: 0 / 0
01.05.2020, 09:48
    #39953479
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
uaggster
Если данных, например, до 10 Гб, и данные нужно не чаще, чем раз в 15 минут целиком таскать с одного сервера на другой, то проще не морочиться, а выгружать все данные целиком через bcp в натуральный формат, грузить их bulk-ком в рядомстоящие таблицы на сервере-приемники, а в конце делать alter table switch этих рядомстоящих таблиц в продуктивные.
Зачем все эти bcp? В снапшот-репликации уже всё сделано, если нужно синхронизировать периодически. Или в транзакционной, если нужно поддерживать "одинаковость" постоянно.
...
Рейтинг: 0 / 0
01.05.2020, 09:55
    #39953481
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
alexeyvg
uaggster
Если данных, например, до 10 Гб, и данные нужно не чаще, чем раз в 15 минут целиком таскать с одного сервера на другой, то проще не морочиться, а выгружать все данные целиком через bcp в натуральный формат, грузить их bulk-ком в рядомстоящие таблицы на сервере-приемники, а в конце делать alter table switch этих рядомстоящих таблиц в продуктивные.
Зачем все эти bcp? В снапшот-репликации уже всё сделано, если нужно синхронизировать периодически. Или в транзакционной, если нужно поддерживать "одинаковость" постоянно.
админы отказали в снапшот репликации
...
Рейтинг: 0 / 0
01.05.2020, 10:52
    #39953485
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
andreymx
alexeyvg
пропущено...
Зачем все эти bcp? В снапшот-репликации уже всё сделано, если нужно синхронизировать периодически. Или в транзакционной, если нужно поддерживать "одинаковость" постоянно.
админы отказали в снапшот репликации
А, понял. Тогда да, придётся писать самодельную репликацию.

Собственно, она так и работает: данные через bcp из таблиц в файлы, файлы передаём, данные из файлов в таблицы.
Так хорошо, как МС, не написать, но в принципе ничего невозможного.
...
Рейтинг: 0 / 0
01.05.2020, 11:21
    #39953488
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
alexeyvg
andreymx
пропущено...
админы отказали в снапшот репликации
А, понял. Тогда да, придётся писать самодельную репликацию.

Собственно, она так и работает: данные через bcp из таблиц в файлы, файлы передаём, данные из файлов в таблицы.
Так хорошо, как МС, не написать, но в принципе ничего невозможного.
да я думал
Через ажур дата фактори, это у нас стандарт
Но смущает количество таблиц, которое растёт
Вчера ещё добавилась одна
...
Рейтинг: 0 / 0
01.05.2020, 13:20
    #39953516
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
andreymx,

похоже, у вас наихудший сценарий поддержания баз в актуальном состоянии. Оптимальным было бы развертывание баз из проекта ил и использование скриптов развертывания от поставщика. Попробуйте добиться, все же, получения скриптов изменений. Если вы базы копируете нелегально - это другой вопрос, здесь придется попотеть.

Для синхронизации таблиц достаточно удобно использовать SSIS пакеты - их легко дополнять новыми таблицами, колонками. Где-то придется хранить списки отгруженных ключей. Например, ключами для куч могут являться вычисленные хэш-суммы строк. Копирование будет не слишком эффективным из-за затрат на сравнение изменений. В пакетах можно организовать параллельные выполнения потоков, это ускорит сравнение и загрузку.
...
Рейтинг: 0 / 0
01.05.2020, 21:19
    #39953619
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
andreymx
alexeyvg
пропущено...
А, понял. Тогда да, придётся писать самодельную репликацию.

Собственно, она так и работает: данные через bcp из таблиц в файлы, файлы передаём, данные из файлов в таблицы.
Так хорошо, как МС, не написать, но в принципе ничего невозможного.
да я думал
Через ажур дата фактори, это у нас стандарт
Но смущает количество таблиц, которое растёт
Вчера ещё добавилась одна
А что меняет количество таблиц?
Пишите код, который копирует таблицы из списка, и всё, будет копировать.

По сложности реализации тут главное, что нужно не поддерживать синхронизацию в реальном времени (свою мерж реликацию писать совсем грустно), а достаточно просто копировать, по расписанию.

Тут ещё Владислав Колосов упоминал SSIS, это было бы ещё проще (пакет можно создать мастером импорта-экспорта), но при каждом изменении таблиц придётся пакет править, это вам вряд ли подойдёт.
...
Рейтинг: 0 / 0
01.05.2020, 21:22
    #39953621
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
andreymx
да я думал
Через ажур дата фактори, это у нас стандарт
Но смущает количество таблиц, которое растёт
Вчера ещё добавилась одна
Самое удивительное в этой истории то, что админы запрещают реплликацию.
Самодельную не запрещают, а встроенную внутри СУБД запрещают.
...
Рейтинг: 0 / 0
04.05.2020, 14:47
    #39954086
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
alexeyvg
andreymx
да я думал
Через ажур дата фактори, это у нас стандарт
Но смущает количество таблиц, которое растёт
Вчера ещё добавилась одна
Самое удивительное в этой истории то, что админы запрещают реплликацию.
Самодельную не запрещают, а встроенную внутри СУБД запрещают.


оффтоп On
а че не ясно то ?
в 1 случае по косякам вопросы будут к ним
в 2-м случае к том кто писал самоделку

оффтоп Off
...
Рейтинг: 0 / 0
04.05.2020, 14:56
    #39954087
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
Гулин Федор
alexeyvg
пропущено...
Самое удивительное в этой истории то, что админы запрещают реплликацию.
Самодельную не запрещают, а встроенную внутри СУБД запрещают.


оффтоп On
а че не ясно то ?
в 1 случае по косякам вопросы будут к ним
в 2-м случае к том кто писал самоделку

оффтоп Off
Ага.

Тут ещё обсуждали преимущество узкой специализации в "Серьёзных Настоящих Компаниях" VS "дба всё-в-одном" в самоделкиных.
А потом хардварные админы кивают на сисадминов, те на DBA, а те на программистов. Да, ещё сетевики, они тоже ни при чём.
Ничего не рабготает, все молодцы, и никто не виноват.
...
Рейтинг: 0 / 0
04.05.2020, 15:50
    #39954095
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
alexeyvg
Гулин Федор
пропущено...


оффтоп On
а че не ясно то ?
в 1 случае по косякам вопросы будут к ним
в 2-м случае к том кто писал самоделку

оффтоп Off
Ага.

Тут ещё обсуждали преимущество узкой специализации в "Серьёзных Настоящих Компаниях" VS "дба всё-в-одном" в самоделкиных.
А потом хардварные админы кивают на сисадминов, те на DBA, а те на программистов. Да, ещё сетевики, они тоже ни при чём.
Ничего не рабготает, все молодцы, и никто не виноват.
нас щаз как раз интегрировали в такой бизнес процесс разработки и сопровождения
Идеологов много, а спросить не с кого
Главный вопрос - на чьей же стороне сегодня мячик
...
Рейтинг: 0 / 0
06.05.2020, 11:14
    #39954527
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
andreymx,

ответ-то простой - надо ориентироваться в смежных специализациях, чтобы понять и показать с доказательствами - на чьей стороне проблема. Потому что достаточно какому-то из специалистов оказаться недостаточно компетентным или достаточно ленивым, чтобы решение забуксовало. Или необходим многопрофильный системный аналитик, понимающий картину в целом.
...
Рейтинг: 0 / 0
06.05.2020, 11:33
    #39954532
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синхронизация набора таблиц между бд
andreymx,

Я сам написал утилиту, которая такое делает -- она сама генерит SSIS пакеты и целевые таблицы.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / синхронизация набора таблиц между бд / 25 сообщений из 30, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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