Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
Для упрощения рассмотим следущую ситуацию

есть база Main, в ней есть одна большая таблица MainTable.

есть несколько небольших баз BaseA, BaseB итд

в таблице MainTable есть 2 поля: data и признак отношения к какой-либо дочерней базе (т.е. в какую базу сливать это)

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

Как это можно реализовать используя SQL Server 2008 Express? Через linked сервера? Express их поддерживает?

просто не сталкивался раньше с проблемой синхронизацией баз и куда копать не знаю.
20 авг 09, 13:58    [7561761]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
есть база Main, в ней есть одна большая таблица MainTable.

есть несколько небольших баз BaseA, BaseB итд

...

Через linked сервера


Так у Вас разные базы или разные сервера?!
20 авг 09, 14:09    [7561832]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
планируется что дочерние базы будут на своих отдельных физических серверах
исходя из этого нужно придумать решение по синхронизации. В дочерних базах записи не изменяются, обновления будут приходить только с главной базы.

все базы естественно sql server express
20 авг 09, 14:12    [7561853]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
CmeTanka
планируется что дочерние базы будут на своих отдельных физических серверах
исходя из этого нужно придумать решение по синхронизации. В дочерних базах записи не изменяются, обновления будут приходить только с главной базы.

все базы естественно sql server express


Печально. Придеться выполнять закат солнца вручную. А вот, если бы центральный сервер был бы хотябы, Standard, можно было бы использовать Merge репликацию.
20 авг 09, 14:16    [7561880]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
pkarklin
CmeTanka
планируется что дочерние базы будут на своих отдельных физических серверах
исходя из этого нужно придумать решение по синхронизации. В дочерних базах записи не изменяются, обновления будут приходить только с главной базы.

все базы естественно sql server express


Печально. Придеться выполнять закат солнца вручную. А вот, если бы центральный сервер был бы хотябы, Standard, можно было бы использовать Merge репликацию.

а я нашёл такую инфу
автор

Microsoft SQL Server 2005 Express Edition (SQL Server Express) может выступать подписчиком для репликации всех типов, предоставляя удобный способ распространения данных среди клиентских приложений, использующих SQL Server Express. При использовании SQL Server Express в топологии репликации принимайте во внимание следующие сведения.

SQL Server Express не может выступать в роли издателя или распространителя.
В этой версии подписки следует создавать посредством Transact-SQL или объектов RMO.
Дополнительные сведения см. в разделах
Программирование репликации с помощью Transact-SQL. Как создавать принудительные подписки (программирование репликации на языке Transact-SQL) и Как создавать подписки по запросу (программирование репликации на языке Transact-SQL).
Программирование RMO. Как создавать принудительные подписки (программирование объектов RMO) и Как создать подписку по запросу (программирование объектов RMO).


т.е. как я понял sql express может выступать как и создатель подписок или только как подписчик?

А сколько стоит самая простая коммерческая версия sql server (вроде workgroup)?

Т.е. человеческое решение моей проблемы слово под названием "Репликация"?
20 авг 09, 14:22    [7561927]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Репликация - да, это решение. Но все зависит от того, что вы хотите синхронизировать.
у МС есть где-то Synchronization классы с примерами, можно наколотить приложение, которое будет делать синхронизацию данных.
20 авг 09, 14:25    [7561950]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
т.е. как я понял sql express может выступать как и создатель подписок или только как подписчик?


Только как подписчик, но он может участвовать в двухсторонней Merge репликации, когда в ней участвует хотя бы одна "взрослая" редакция.

автор
А сколько стоит самая простая коммерческая версия sql server (вроде workgroup)?


У WG есть ограничение на число подписок - 25. А стоимость зависит от выбранного типа лицензирования.
20 авг 09, 14:34    [7562012]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
А сложно реализовать свой костыль типа репликации самому на основе Express?

как хоть примерно алгоритм работает?
20 авг 09, 14:45    [7562105]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
Winnipuh
Репликация - да, это решение. Но все зависит от того, что вы хотите синхронизировать.
у МС есть где-то Synchronization классы с примерами, можно наколотить приложение, которое будет делать синхронизацию данных.


Sync Framework?
20 авг 09, 15:13    [7562310]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
CmeTanka
Winnipuh
Репликация - да, это решение. Но все зависит от того, что вы хотите синхронизировать.
у МС есть где-то Synchronization классы с примерами, можно наколотить приложение, которое будет делать синхронизацию данных.


Sync Framework?


да, он самый
20 авг 09, 15:14    [7562320]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
Winnipuh
CmeTanka
Winnipuh
Репликация - да, это решение. Но все зависит от того, что вы хотите синхронизировать.
у МС есть где-то Synchronization классы с примерами, можно наколотить приложение, которое будет делать синхронизацию данных.


Sync Framework?


да, он самый

чё-та посмотрел, как-то стрёмно... очень непонятно как он работает... может примерчег есть простенький какой?
20 авг 09, 15:18    [7562360]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
CmeTanka
Winnipuh
CmeTanka
Winnipuh
Репликация - да, это решение. Но все зависит от того, что вы хотите синхронизировать.
у МС есть где-то Synchronization классы с примерами, можно наколотить приложение, которое будет делать синхронизацию данных.


Sync Framework?


да, он самый

чё-та посмотрел, как-то стрёмно... очень непонятно как он работает... может примерчег есть простенький какой?


там же у них примеры должны быть, по крайней мере раньше были в предыдущих версиях.
Для неболших объемов и прсотой синхронизации должно работать неплохо.
Я даже пытался скл сервер с постгресом связывать...
20 авг 09, 15:26    [7562412]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
придётся самопальный синхронизатор делать через linked сервера.
Надеюсь хоть linked сервера поддерживаются...
20 авг 09, 15:37    [7562509]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
мега синхронизатор, написанный за 10 минут
BEGIN TRAN
	DELETE FROM SlaveTable WHERE Id NOT IN (select id FROM MasterTable)
	
	UPDATE SlaveTable SET data = mt.data FROM SlaveTable st INNER JOIN  MasterTable mt ON mt.id =st.id

	INSERT INTO SlaveTable (id, data)
	SELECT id, data FROM MasterTable WHERE id NOT IN(SELECT id FROM SlaveTable) 

COMMIT TRAN
20 авг 09, 16:31    [7562927]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение для синхронизации баз (SQL Server 2008 Express)  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
мощь!
20 авг 09, 20:29    [7564028]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить