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

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


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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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


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

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


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

оффтоп Off
Ага.

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


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

оффтоп Off
Ага.

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

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

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


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