Имя: Пароль:
1C
1С v8
Репликация SQL баз 1С
,
0 Serginio1
 
29.12.11
16:43
Заинтересовала репликация баз через механизмы SQL. Но сразу возникл вопрос по изменению конфигурации и реакция прежде всего на сервере приложения зеркала. Кт ал такие проблемы поделитесь опытом.
1 Джинн
 
29.12.11
16:46
Кагбэ тебе поточнее совет дать - примерно "Не пей, братец из копытца...." в классике это называется.
2 МихаилМ
 
29.12.11
16:50
МУ-МУ

http://softpoint.ru/article_id381.htm

самим написать тоже можно- но проще купить.
3 Serginio1
 
29.12.11
16:50
(1) Очень дельный совет. Но попытка не пытка.Главное учесть все подводные камни.
Эти тоже козленочками стали? http://www.softpoint.ru/products_id4.htm
4 Serginio1
 
29.12.11
16:51
(2) А сколько стоит? Чего то там не нашел. Или напрямую связаться?
5 Джинн
 
29.12.11
16:53
(3) Ты бы знал сколько на это сил ушло у них :)) Весь этот проект у местных старожилов на глазах происходил. Ну или по крайней мере у тех, кто с Кубани сюда переполз.
6 МихаилМ
 
29.12.11
16:54
напрямую иключительно.
7 Serginio1
 
29.12.11
16:54
(6) Спасибо.
8 Serginio1
 
29.12.11
16:59
(5) Купить в пределах разумного непроблема. Ну так все движится все меняется с тех то пор.
9 szhukov
 
29.12.11
17:06
(0) SQL Базы, не 1С, для репликации нормально.
Реплицировать 1С-е базы средствами sql server, на фоне штатных проблем, которые присутствуют в репликации обычных баз я бы не рискнул даж под дулом пистолета. Без спец навыков и средств первый же затык реплики может привести к полной ж..е
10 Serginio1
 
29.12.11
17:10
(9) А я рискну. Коллизий не будет. Проблемы видятся только при обновлении конфигурации, прежде всего на стороне сервера приложений. Одна база это в основном чтение и мало записи.
11 rs_trade
 
29.12.11
17:12
я подробно разбирал эту тему. что то какие то таблички даже реплицировал, работало. но геморойно это.
12 Джинн
 
29.12.11
17:12
(10) Рискни. Только вазелина купи. Мало ли что.
13 rs_trade
 
29.12.11
17:13
(10) репликацию слиянием хочешь заюзать?
14 rs_trade
 
29.12.11
17:15
peer-to-peer интересная репликация. но там коллизии не разруливаются. в некоторых случаях можно ее использовать.
15 Serginio1
 
29.12.11
17:18
(12) это ты по себе судишь. Моим мозгам другое питание нужно.
(13) да у меня не будет коллизий.
(14) Спасибо. Посмотрю.
16 Serginio1
 
29.12.11
17:22
(14) А ка с изменением конфигураций. Она наверняка кэшируется на сервере. Решается ли это простым перезапуском службы?
17 rs_trade
 
29.12.11
17:25
(16) ты всю базу что будешь реплицировать? перезапуск службы тут не причем. просто таблички участвующие в репликации меняются с помощью спец ХП, а не с помощью алтер табле.
18 rs_trade
 
29.12.11
17:26
что за обмен ты вообще хочешь этой репликацией реализовать? что куда ходить должно?
19 Serginio1
 
29.12.11
17:28
(17) Я про другое. Про Спец ХП я уже прочитал. Я про изменение кода в конфигурации. Знаю, что она хранится в БД. Но как кэшируется на сервере приложений не знаю.
20 rs_trade
 
29.12.11
17:32
(19) таблицы конфигурации просто включением в подписку не реплицируешь. можно передавать изменения конфы конечно средстваи скуля, но это делать по другому надо.
21 Serginio1
 
29.12.11
17:38
(20) А как еслин секрет? Понятно, что можно изменять конфигурацию в 2 местах. И при зменении таблицы конфигурации можно сделать сервис для перезагрузки службы. Или нужны еще какие то дейчтвия?
22 Serginio1
 
29.12.11
17:48
(20) Даже могу сделать зеркалирование, где в одной будет только чтение, а запись через вэб сервисы в оригинальную базу их будет немного. А вот для чтения огромные данные. И их нужно разделять впервую очередь для надежноси и во вторую для распределения нагрузки.
23 rs_trade
 
29.12.11
17:53
(21) Я так и не понял что за обмен нужен. Что куда ходить должно.
24 Serginio1
 
29.12.11
18:00
Одна база для чтения. Вторая рабочая где все изменяется. Так понял, для такого варианта зеркалирование самый прстой способ http://msdn.microsoft.com/ru-ru/library/ms175511.aspx
25 rs_trade
 
29.12.11
18:02
(24) Не надо репликацию для этого. Зеркало или бекап-ресторе.
26 szhukov
 
29.12.11
18:02
Просто интересно:
а в чем смысл, зачем нужен именно такой способ?
Чем, например, не подходит стандартный (обмен 1С).
В чем планируется получить выигрыш или это просто в познавательных целях?
27 rs_trade
 
29.12.11
18:03
Зеркала я правда еще не настраивал. Хз как это работает в контексте 1С.
28 Serginio1
 
29.12.11
18:04
Тфю не то. Прошу прощения.
29 Serginio1
 
29.12.11
18:07
(26) Слишком большой объем изменяемой информации, распределение нагрузки, т.к. одна база работает только на чтение и должна быть постоянная доступность, пусть это будет и некийоффлайн
30 szhukov
 
29.12.11
18:19
(29) Ну это наверное должен быть очень большой объем изменяемой информации, тем более, что вторая база для чтения и некий оффлайн (т.е. я так понимаю относительно большая задержка в поступлении данных вполне допустима)
31 Serginio1
 
29.12.11
18:27
(30) Очень большой миллионы строк и нужен офф лайн. Даже можно включать эту базу при отказе основной в крайнем случае. П првости можно пойти и таким путем.
32 rs_trade
 
29.12.11
18:37
(30) да даже если не очень большой. полную копию только для чтения лучше конечно средствами скуля забацать. это не слишком сложно и очень эффиктивно. но не репликацией конечно.
33 Serginio1
 
29.12.11
18:43
Спасибо. У меня есть еще месяц на раздумья. Заодно ознакомлюсь с различными видами репликаций и зеркалирования. Эта область для меня пока "практические" потемки одна теория.
34 Живой Ископаемый
 
29.12.11
18:45
2(4) есть четыре способа. :)
35 Живой Ископаемый
 
29.12.11
18:45
то есть(33)
36 Aloex
 
29.12.11
18:48
метка
37 Serginio1
 
29.12.11
19:01
(35) Нет что бы направить на путь истинный. Для чего форум то нужен другим советы даешьа тебе только вазелин и предлагают ...
38 Живой Ископаемый
 
29.12.11
19:29
путь в букварях... мне просто так совестно бывает цитировать оттуда. Как будто я считаю собеседника ну... умственно отсталым.
Но если все-таки нужно, то вот:

http://dbasurvivor.thomaslarock.com/
http://rutracker.org/forum/viewtopic.php?t=3120721
http://screencast.com/t/psrrq7Zoy
39 rs_trade
 
29.12.11
22:13
кстати хорошая задачка для продвинутых. организовать обновление некой удаленной конфы средствами скл. речь идет именно о конфигурации. есть у кого нить варианты реализации?
40 Живой Ископаемый
 
29.12.11
23:31
Логшиппинг... одна база эктив, другая - стэндбай.. вторая - точная копия первой на какой-то момент, получена например из бэкапа все файлы журналов транзакций из одной базы отправляются в другую.(с ней само собой не работают, ведь в условии нет что с ней должны работать).  И потом все что остается выполнить - команду роллфорвард для логов транзакции.. транзакции повторяются в стэндбай базе, мы заходим в нее конфигуратором - база обновлена...
41 МихаилМ
 
29.12.11
23:46
(39)
в чем сложность ?

таблицы конфы не пресоздаются при реструктуризации, т.е. подойдет классическая репликация
42 МихаилМ
 
29.12.11
23:48
(40) при больших объемах будет долговато журнал накатывать после рестркутуризации.
43 Живой Ископаемый
 
29.12.11
23:54
в ДБ2 журнал - простой текстовый файл.. вернее набор.. который жмется... Но да. есть такой недостаток.
44 rs_trade
 
29.12.11
23:55
(41) изменили тип реквизита. как при репликации в базе приемнике все пройдет?
45 МихаилМ
 
30.12.11
00:05
(44)
Вы путаете обновление конфигурации (конфы) и обновление БД

если обновлять бд то

можно
сравнить структуру бд до и после обновы
прочитать метаданные, чтобы понять что посенялось
и сделать скрипты одновления.

или запустить трейсер
выявить изменения структуры бд и

и скрипты обновления таблиц бд (тогда не нужен анализ метаданных)

тут тупо воспроизвести не получится из-за разного колва данных

нужно воспроизвести сам алгоритм обновления таблиц.
опять же при этом можно отказаться от копирования

если настоить view вместо таблиц то и пользователей выгонять не требуется

но это тема для отдельной ветки.
46 rs_trade
 
30.12.11
00:47
(45) я ниче не путаю. в (41) я конкретно спрашивал про варианты обновления конфигурации БД. то есть о метаданных. данные пока оставим в покое.

...обновление конфигурации (конфы) и обновление БД

это как понимать? обновление конфигурации термин понятный. а обновление БД это слишком абстрактно. что входит по вашему в это понятие?

view и пользователи тут вообще не причем.
47 rs_trade
 
30.12.11
00:56
Если под обновленим БД, подразумевалось обновление конфигурации БД, то я тем более ничего не путаю. Ибо обновление конфы разработчика, без дальнейшего обновления конфы БД не имеет смысла. В (39) вопрос естестевенно в первую очередь касался конфигурации именно БД,
48 МихаилМ
 
30.12.11
01:29
(47)
для меня обновление конфигурации (то , что Вы назвали конфигурацией разработчика ) и обновление конфигурации бд разные понятия.

обновления конфигурации бд происходит в штатном  монопольно  и возможной реструктуризацией

обновление  метаданных   (в части описания структуры бд) конфигурации бд
без обновления структуры и данных в них (реструктуризации) не имет смысла.

тк возможна аварийная ситуация обращения к несуществующим или с измененым типом данных.


а варианты описаны в (45)
3 вариант вариант с дмл триггером  нудобен, тк на триггеры можно возложить другие (сопутствующие задачи), хотя и вполне возможен.


о готовых продуктах не слышал тк сие нарушает лицензионность и сответственно рынок специфичен .

но очень вероятно у му-му есть подобный продукт.
тк я неоднократно сталкивался с их решениями не офишируемыми на сайте,
то ,возможно,и такой продукт есть, тк  крупным заказчивам такой продукт очень пригодится,
чтобы не выгонять сотни пользователей или обновляться без обновленца.
49 rs_trade
 
30.12.11
10:10
(48) В штатном обновлении 1С есть один большой минус. Имена таблиц и полей у базы приемника будут отличными от базы источника. Это большой минус для всяких скульных обменов, репликаций и прочего.
50 Serginio1
 
30.12.11
10:45
(38) Спасибо. Эх если бы на русском. А мне не стыдно признаться в умственной отсталости в конкретной области. Но мозги же развиваются как мышцы.
Можешь дать конкретный советпо организации зеркала, репликации для базы только для чтения.
конце концов на начальном этапе можно после реструктуризации базы делать новый слепок базы.
Я не администратор и на такую задачу нанял бы толкового админа, но мне нужно самому знать все подводные камни и опыт других людей. На то форумы и нужны.
51 rs_trade
 
30.12.11
12:36
по репликации вот полезная книга http://msmvps.com/blogs/gladchenko/archive/2009/01/14/1662288.aspx
52 Serginio1
 
30.12.11
12:49
Во большое спасибо. На выходных закажу почитаю.
53 Живой Ископаемый
 
30.12.11
12:58
2(50) там конкретно написано.. буквально с рецептами... ну еще и читай (40)
54 Serginio1
 
30.12.11
13:21
(51) (53) Что скажете по Одноранговая репликация транзакций http://msdn.microsoft.com/ru-ru/library/ms151196.aspx
55 Живой Ископаемый
 
30.12.11
13:22
вот чтобы мы ни сказали - она либо будет работать либо нет.. поэтому только провобовать
56 Живой Ископаемый
 
30.12.11
13:22
пробовать
57 rs_trade
 
30.12.11
13:27
В твоем случе лучше обратить внимание на репликацию моментальных снимков. Но я вот точно уже не помню будет она работать для 1С или там засада где то. Делать надо.
58 Serginio1
 
30.12.11
13:29
Спасибо. Разгребусь и займусь. Самому интересно для многих решений когда нужно передавать только изменения.
59 МуМу
 
25.01.12
18:14
Не понял до конца цели. Если балансировка нагрузки и резервное хранение - это действительно отдельная тема. Кстати в марте выступаем(я с коллегой) в Новосибе на научной конференции посвященной параллельным вычислениям.  Там как раз тема будет о решении балансировки нагрузки для SQL серверов. Сейчас активно разрабатываем продукт с которым планируем на запад выходить.   Казалось бы столько книг и теорий написано а реально работающих решений нет.   То есть у нас и сейчас это реализовано но например есть в некоторых случаях задержка резервного сервера.(как раз на репликации сделано)Сейчас концептуально технологию поменяли. В том числе с применением аппаратных решений.
60 МуМу
 
25.01.12
18:20
(58) Вообщем задавай конкретные технические вопросы на все отвечу. Скрывать нечего.
61 Serginio1
 
25.01.12
18:24
Какой тип репликации Одноранговая репликация или репликацию моментальных снимков использовать для моей схемы. Это даже не балансировка, а случай когда 1 из серверов по каким то причинам не может работать.
То есть 1 сервер основной где все изменяется, второй только для чтения.
62 МуМу
 
25.01.12
19:56
Какие основные цели? Получить минимальную потерю данных или же балансировать нагрузку?
А вообще то из бесплатных решений посмотри в сторону логшипинга. Зеркалирование имеет ряд недостатков.  Транзакционную репликацию нужно серьезно настраивать к тому же имеет ряд багов(поэтому от нее отказались). Моментальные снимки для твоего случая вообще не вариант.
63 rs_trade
 
25.01.12
20:31
(60) в вашем решении как изменения конфы реплицируются?
64 Джинн
 
25.01.12
20:42
(62) Самое хорошее решение - повышение аппаратной надежности (для первой части) и аппаратные же кластеры (для второй части). Все остальное в конечном итоге от лукавого, ибо рано или поздно вся эта красота приводит к геморрою.

В военных системах очень любят делать всяческие репликации для повышения отказоустойчивости и распределения нагрузки. Толку с них никакого. Раз в месяц-полтора возникает "клинч" и все встает колом.
65 МуМу
 
25.01.12
21:55
(63) Полуавтоматом. То есть регламент обновления конфигурации(в случае изменения структуры данных) - но он максимально простой, плюс аппаратные решения не дают ошибиться.
66 rs_trade
 
25.01.12
21:59
(65) полуавтомаом, но в штатном режиме? почему не стали делать обновление конфы средствами скуля?
67 rs_trade
 
25.01.12
22:01
(66) имеется ввиду, обновление накатывается все таки платформой, или в обход нее?
68 ковер
 
25.01.12
22:25
закладка
69 упс
 
26.01.12
05:20
(0) я может что-то не понял, но зачем репликация? Если надо в одну базу писать, а из другой читать - есть намного более простые и удобные варианты:
1. Лог-шиппинг. Настраивается просто, сразу умеет делать вторую ("резервную") базу доступной для чтения. Возможный косяк - после перехода на "резервный" сервер, придется на "основном" базу восстанавливать из бэкапа, обратный переход не предусмотрен.
Потеря данных, в случае аварии, может быть довольно большой - все бэкапы не доставленные на резервный сервер.
Даже SQL Server 2000 его умеет делать.
2. Зеркалирование. Настраивается тоже довольно просто. С одинэсными базами работает отлично (с восьмеркой, по крайней мере, за семерку не уверен).
Основная проблема в том, что нужен SQL Server Enterprise Edition, для того чтобы резервная база была доступна для чтения, поскольку это реализуется только через Snapshot (Standard этого не умеет).
Потеря данных, при аварии, либо незначительна, либо отсутствует. После сбоя, возможно, придется "первую" (ранее основную) базу восстанавливать из бэкапа, но это зависит от того как прошел "переход" на резервную базу.

(52) http://www.sql.ru/forum/actualthread.aspx?tid=643700 - в этом треде Гладченко ее сам в открытый доступ выложил. Сейчас, вроде, хрен где ее уже закажешь.
70 strange2007
 
26.01.12
06:35
Хм, интересно, а не обращаясь к СУБД, где база лежит можно ли решить вопрос в (0)? У некоторых могут быть разные СУБД
71 Mikhail Volkov
 
26.01.12
07:05
(69) Нужна не копия базы, а объединение данных нескольких баз. Механизмы распределенной базы 1С не стыкуются с репликацией SQL.
72 strange2007
 
26.01.12
07:08
Так это экономически неоправданный тогда вариант. Там же работы на уровне СУБД много, потом отслеживать изменения при обновлениях и что бы ни где ни чего не слетело. Не знаю, сколько бы народу подобное не делало, все равно получается долго, дорого, криво и требуется наличие штата сопровождающего персонала
73 skunk
 
26.01.12
07:14
как репликация связана с консолидацией?
74 упс
 
26.01.12
08:42
(71) 1. Про объединение данных из нескольких баз ранее нигде не увидел, плохо смотрел, наверное. Тогда да, ни один из этих методов не подойдет.
2. Про репликацию в моем посте нет ни слова (:
75 Serginio1
 
26.01.12
10:32
(62) (69) Большое Спасибо. Посмотрю. Есть сайт и есть рабочая база. Склады, ТСД и прочяя лабуда с Wi-Fi, уже со своим софтом, который переделывать проблематично.
Сайт работает в основном на чтение, (и читать он может из основной). А записывать будет в рабочую базу. Иногда нужно останавливать основной сервер. Но работа сайта должна 24/7. Кроме того основная база изменяется массовыми изменениями булками (не средсвами 1С).
76 Serginio1
 
26.01.12
10:40
(75) Вернее булками создается темповая таблица, которая через Merge модифицирует таблицу 1С
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс