<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://gsbelarus.com:80/gs/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://gsbelarus.com:80/gs/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_%D0%B8_%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F</id>
		<title>Сохранение в поток и репликация - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://gsbelarus.com:80/gs/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_%D0%B8_%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F"/>
		<link rel="alternate" type="text/html" href="https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_%D0%B8_%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&amp;action=history"/>
		<updated>2026-07-17T07:24:40Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.16</generator>

	<entry>
		<id>https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_%D0%B8_%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=2923&amp;oldid=prev</id>
		<title>SYSDBA в 10:42, 21 августа 2009</title>
		<link rel="alternate" type="text/html" href="https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_%D0%B8_%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=2923&amp;oldid=prev"/>
				<updated>2009-08-21T10:42:42Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 10:42, 21 августа 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''By JT'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''By JT'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Репликация]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SYSDBA</name></author>	</entry>

	<entry>
		<id>https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_%D0%B8_%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=1653&amp;oldid=prev</id>
		<title>SYSDBA в 20:28, 13 января 2007</title>
		<link rel="alternate" type="text/html" href="https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_%D0%B8_%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=1653&amp;oldid=prev"/>
				<updated>2007-01-13T20:28:50Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 20:28, 13 января 2007&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* сохранение/считывание данных в поток.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* сохранение/считывание данных в поток.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Оба механизма имеют как ряд преимуществ, так и ряд недостатков. К преимуществам репликации можно отнести скорость, автоматическое логирование изменений и механизм разрешения конфликтов. Репликатор работает напрямую с базой данных и ничего не знает о бизнес-логике. Здесь же кроется и его главный недостаток: репликация возможна только на базах с одинаковой структурой. Точнее, базы должны иметь, как минимум, общую часть структуры, и после настройки репликации изменить структуру базы становится невозможно. Кроме того, репликация накладывает ряд ограничений на функционал. На базе с настроенной репликацией невозможно производить такие операции как «слияние», «создание настроек» и т.д. Необходимо также добавить, что репликация ведет логирование в базе данных, что несколько замедляет операции на изменение данных и увеличивает размер самой базы. Ну и, кроме того, на данный момент, репликация производится не встроенными средствами Гедымина, а отдельным программным средством. Следует также отметить, что репликатор требует определенных навыков работы, и сам механизм настройки репликации довольно громоздкий.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Оба механизма имеют как ряд преимуществ, так и ряд недостатков. К преимуществам репликации можно отнести скорость, автоматическое логирование изменений и механизм разрешения конфликтов. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;Репликатор&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;работает напрямую с базой данных и ничего не знает о бизнес-логике. Здесь же кроется и его главный недостаток: репликация возможна только на базах с одинаковой структурой. Точнее, базы должны иметь, как минимум, общую часть структуры, и после настройки репликации изменить структуру базы становится невозможно. Кроме того, репликация накладывает ряд ограничений на функционал. На базе с настроенной репликацией невозможно производить такие операции как «слияние», «создание настроек» и т.д. Необходимо также добавить, что репликация ведет логирование в базе данных, что несколько замедляет операции на изменение данных и увеличивает размер самой базы. Ну и, кроме того, на данный момент, репликация производится не встроенными средствами Гедымина, а отдельным программным средством. Следует также отметить, что репликатор требует определенных навыков работы, и сам механизм настройки репликации довольно громоздкий.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;К преимуществам сохранения/загрузки данных из потока относится следующее:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;К преимуществам сохранения/загрузки данных из потока относится следующее:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* использование такого подхода делает возможным перенос данных между базами с различными структурами.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* использование такого подхода делает возможным перенос данных между базами с различными структурами.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;К недостаткам сохранения/загрузки данных из потока можно отнести низкую скорость, большой объем файла с переносимыми данными и, практически, отсутствие механизма разрешения конфликтов. Т.е. если мы загружаем в базу запись с уже существующим в базе РУИД-ом, и загружаемая запись имеет дату обновления позже, чем дата записи в базе, данные перезаписывается автоматически. Иначе пользователю выдается запрос на перезапись данных. К недостаткам можно также отнести то, что данный подход налагает на человека всю ответственность за то, какие данные будут перенесены. Имеется ввиду, что автоматическое логирование изменений, как в случае с репликацией, не ведется. И человек, создающий файл с обновлениями, полностью отвечает за его содержимое.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;К недостаткам сохранения/загрузки данных из потока можно отнести низкую скорость, большой объем файла с переносимыми данными и, практически, отсутствие механизма разрешения конфликтов. Т.е. если мы загружаем в базу запись с уже существующим в базе &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;РУИД&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;-ом, и загружаемая запись имеет дату обновления позже, чем дата записи в базе, данные перезаписывается автоматически. Иначе пользователю выдается запрос на перезапись данных. К недостаткам можно также отнести то, что данный подход налагает на человека всю ответственность за то, какие данные будут перенесены. Имеется ввиду, что автоматическое логирование изменений, как в случае с репликацией, не ведется. И человек, создающий файл с обновлениями, полностью отвечает за его содержимое&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; Один из основных недостатков переноса данных через файл, является невозможность отследить&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; какие объекты были удалены из базы и распространить эти удаления на другие базы&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Оба подхода интересны и могут использоваться как дополнение друг другу. Однако бывают случаи, когда пользователи не хотят пользоваться репликацией для переноса данных между базами. Да и базы могут иметь различную структуру. Например, предприятие имеет несколько филиалов. Каждый филиал имеет свою специфику работы, но при этом время от времени они могут обмениваться между собой данными о клиентах. Возможны оба варианта: и настройка репликации только на часть базы, хранящую информацию о клиентах, и перенос данных между базами при помощи потоков. Если речь идет о полной синхронизации клиентской базы, репликация конечно предпочтительнее. Но, обмен информацией может иметь некие ограничения. Например, филиалу в Гродненской области вовсе незачем знать клиентов Минска. Тогда на помощь приходит сохранение информации в поток. Однако, если клиентов много, такая операция может занять часы.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Оба подхода интересны и могут использоваться как дополнение друг другу. Однако бывают случаи, когда пользователи не хотят пользоваться репликацией для переноса данных между базами. Да и базы могут иметь различную структуру. Например, предприятие имеет несколько филиалов. Каждый филиал имеет свою специфику работы, но при этом время от времени они могут обмениваться между собой данными о клиентах. Возможны оба варианта: и настройка репликации только на часть базы, хранящую информацию о клиентах, и перенос данных между базами при помощи потоков. Если речь идет о полной синхронизации клиентской базы, репликация конечно предпочтительнее. Но, обмен информацией может иметь некие ограничения. Например, филиалу в Гродненской области вовсе незачем знать клиентов Минска. Тогда на помощь приходит сохранение информации в поток. Однако, если клиентов много, такая операция может занять часы.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''By JT'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''By JT'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SYSDBA</name></author>	</entry>

	<entry>
		<id>https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_%D0%B8_%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=1648&amp;oldid=prev</id>
		<title>SYSDBA в 20:21, 13 января 2007</title>
		<link rel="alternate" type="text/html" href="https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_%D0%B8_%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=1648&amp;oldid=prev"/>
				<updated>2007-01-13T20:21:29Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 20:21, 13 января 2007&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Оба подхода интересны и могут использоваться как дополнение друг другу. Однако бывают случаи, когда пользователи не хотят пользоваться репликацией для переноса данных между базами. Да и базы могут иметь различную структуру. Например, предприятие имеет несколько филиалов. Каждый филиал имеет свою специфику работы, но при этом время от времени они могут обмениваться между собой данными о клиентах. Возможны оба варианта: и настройка репликации только на часть базы, хранящую информацию о клиентах, и перенос данных между базами при помощи потоков. Если речь идет о полной синхронизации клиентской базы, репликация конечно предпочтительнее. Но, обмен информацией может иметь некие ограничения. Например, филиалу в Гродненской области вовсе незачем знать клиентов Минска. Тогда на помощь приходит сохранение информации в поток. Однако, если клиентов много, такая операция может занять часы.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Оба подхода интересны и могут использоваться как дополнение друг другу. Однако бывают случаи, когда пользователи не хотят пользоваться репликацией для переноса данных между базами. Да и базы могут иметь различную структуру. Например, предприятие имеет несколько филиалов. Каждый филиал имеет свою специфику работы, но при этом время от времени они могут обмениваться между собой данными о клиентах. Возможны оба варианта: и настройка репликации только на часть базы, хранящую информацию о клиентах, и перенос данных между базами при помощи потоков. Если речь идет о полной синхронизации клиентской базы, репликация конечно предпочтительнее. Но, обмен информацией может иметь некие ограничения. Например, филиалу в Гродненской области вовсе незачем знать клиентов Минска. Тогда на помощь приходит сохранение информации в поток. Однако, если клиентов много, такая операция может занять часы.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;'''By JT'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SYSDBA</name></author>	</entry>

	<entry>
		<id>https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_%D0%B8_%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=1647&amp;oldid=prev</id>
		<title>SYSDBA в 20:20, 13 января 2007</title>
		<link rel="alternate" type="text/html" href="https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_%D0%B8_%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=1647&amp;oldid=prev"/>
				<updated>2007-01-13T20:20:59Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Текущая версия Гедымина имеет два механизма по переносу (синхронизации) данных между базами:&lt;br /&gt;
&lt;br /&gt;
* [[Репликация]];&lt;br /&gt;
* сохранение/считывание данных в поток.&lt;br /&gt;
&lt;br /&gt;
Оба механизма имеют как ряд преимуществ, так и ряд недостатков. К преимуществам репликации можно отнести скорость, автоматическое логирование изменений и механизм разрешения конфликтов. Репликатор работает напрямую с базой данных и ничего не знает о бизнес-логике. Здесь же кроется и его главный недостаток: репликация возможна только на базах с одинаковой структурой. Точнее, базы должны иметь, как минимум, общую часть структуры, и после настройки репликации изменить структуру базы становится невозможно. Кроме того, репликация накладывает ряд ограничений на функционал. На базе с настроенной репликацией невозможно производить такие операции как «слияние», «создание настроек» и т.д. Необходимо также добавить, что репликация ведет логирование в базе данных, что несколько замедляет операции на изменение данных и увеличивает размер самой базы. Ну и, кроме того, на данный момент, репликация производится не встроенными средствами Гедымина, а отдельным программным средством. Следует также отметить, что репликатор требует определенных навыков работы, и сам механизм настройки репликации довольно громоздкий.&lt;br /&gt;
&lt;br /&gt;
К преимуществам сохранения/загрузки данных из потока относится следующее:&lt;br /&gt;
* данная операция производится встроенными средствами Гедымина;&lt;br /&gt;
* потоки используют бизнес-объекты, что в свою очередь позволяет на этапе загрузке данных из потока изменить структуру базы. Именно поэтому данный подход лежит в основе создания/загрузки настроек.&lt;br /&gt;
* использование такого подхода делает возможным перенос данных между базами с различными структурами.&lt;br /&gt;
&lt;br /&gt;
К недостаткам сохранения/загрузки данных из потока можно отнести низкую скорость, большой объем файла с переносимыми данными и, практически, отсутствие механизма разрешения конфликтов. Т.е. если мы загружаем в базу запись с уже существующим в базе РУИД-ом, и загружаемая запись имеет дату обновления позже, чем дата записи в базе, данные перезаписывается автоматически. Иначе пользователю выдается запрос на перезапись данных. К недостаткам можно также отнести то, что данный подход налагает на человека всю ответственность за то, какие данные будут перенесены. Имеется ввиду, что автоматическое логирование изменений, как в случае с репликацией, не ведется. И человек, создающий файл с обновлениями, полностью отвечает за его содержимое.&lt;br /&gt;
&lt;br /&gt;
Оба подхода интересны и могут использоваться как дополнение друг другу. Однако бывают случаи, когда пользователи не хотят пользоваться репликацией для переноса данных между базами. Да и базы могут иметь различную структуру. Например, предприятие имеет несколько филиалов. Каждый филиал имеет свою специфику работы, но при этом время от времени они могут обмениваться между собой данными о клиентах. Возможны оба варианта: и настройка репликации только на часть базы, хранящую информацию о клиентах, и перенос данных между базами при помощи потоков. Если речь идет о полной синхронизации клиентской базы, репликация конечно предпочтительнее. Но, обмен информацией может иметь некие ограничения. Например, филиалу в Гродненской области вовсе незачем знать клиентов Минска. Тогда на помощь приходит сохранение информации в поток. Однако, если клиентов много, такая операция может занять часы.&lt;/div&gt;</summary>
		<author><name>SYSDBA</name></author>	</entry>

	</feed>