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

Откуда: г. Краснодар
Сообщений: 223
Издатель:
+
select @@version
автор
Microsoft SQL Server 2005 - 9.00.4053.00 (Intel X86) May 26 2009 14:24:20 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

select @@servername
автор
TEST-BSS\TEST_MSSQL

Подписчик:
+
select @@version
автор
Microsoft SQL Server 2005 - 9.00.4053.00 (Intel X86) May 26 2009 14:24:20 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

select @@servername
автор
TEST-BSS\TEST_DEST

Изменяю данные в таблице на издателе, но на подписчике данные не меняются. Прошу помочь разобраться в причинах происходящего.
27 окт 09, 10:22    [7842430]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Хм... Ну а хотя бы ошибки есть ? История репликации что говорит ? А то как то скромно. Типа у меня машина не едет - почему ?
27 окт 09, 10:29    [7842518]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Чижанов Артем
Member

Откуда: г. Краснодар
Сообщений: 223
Ozerov
Хм... Ну а хотя бы ошибки есть ? История репликации что говорит ? А то как то скромно. Типа у меня машина не едет - почему ?

Пишет следующую ошибку
автор
Command attempted:
if @@trancount > 0 rollback tran
(Transaction sequence number: 0x0000001F000000CD001400000000, Command ID: 1)
Error messages:
Violation of PRIMARY KEY constraint 'PK__ACCOUNT__7C8480AE'. Cannot insert duplicate key in object 'dbo.ACCOUNT'. (Source: MSSQLServer, Error number: 2627)
Get help: http://help/2627
Violation of PRIMARY KEY constraint 'PK__ACCOUNT__7C8480AE'. Cannot insert duplicate key in object 'dbo.ACCOUNT'. (Source: MSSQLServer, Error number: 2627)
Get help: http://help/2627
27 окт 09, 12:32    [7843643]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Ну и что тут не понятно ?
27 окт 09, 12:35    [7843681]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Чижанов Артем
Member

Откуда: г. Краснодар
Сообщений: 223
Ozerov
Ну и что тут не понятно ?

Я полагал, что на подписчике будет всегда точная копия издателя. Не понимаю почему на подписчике возникли дублирующиеся ключи.
27 окт 09, 12:54    [7843842]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Чижанов Артем
Ozerov
Ну и что тут не понятно ?

Я полагал, что на подписчике будет всегда точная копия издателя. Не понимаю почему на подписчике возникли дублирующиеся ключи.

ну вот это уже сложнее сказать...
27 окт 09, 13:48    [7844309]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Evgen
Member

Откуда: Екатеринбург
Сообщений: 91
Чижанов Артем

Я полагал, что на подписчике будет всегда точная копия издателя. Не понимаю почему на подписчике возникли дублирующиеся ключи.


подписка обновляемая? если первичный ключ - identity, имеет ли он признак NOT FOR REPLICATION?
27 окт 09, 13:52    [7844362]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Yadrinez
Member

Откуда: :адуктО
Сообщений: 360
Чижанов Артем
Издатель:
+
+
select @@version
автор
Microsoft SQL Server 2005 - 9.00.4053.00 (Intel X86) May 26 2009 14:24:20 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

select @@servername
автор
TEST-BSS\TEST_MSSQL

Подписчик:
+
+
select @@version
автор
Microsoft SQL Server 2005 - 9.00.4053.00 (Intel X86) May 26 2009 14:24:20 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

select @@servername
автор
TEST-BSS\TEST_DEST

Изменяю данные в таблице на издателе, но на подписчике данные не меняются. Прошу помочь разобраться в причинах происходящего.


Артем в BSS есть же приложение dictman.exe. Для обновления данных там просто можно перетащить таблицу из одной БД в другую
27 окт 09, 13:55    [7844405]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Чижанов Артем
Member

Откуда: г. Краснодар
Сообщений: 223
Yadrinez
Чижанов Артем
Издатель:
++
+
select @@version
автор
Microsoft SQL Server 2005 - 9.00.4053.00 (Intel X86) May 26 2009 14:24:20 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

select @@servername
автор
TEST-BSS\TEST_MSSQL

Подписчик:
++
+
select @@version
автор
Microsoft SQL Server 2005 - 9.00.4053.00 (Intel X86) May 26 2009 14:24:20 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

select @@servername
автор
TEST-BSS\TEST_DEST

Изменяю данные в таблице на издателе, но на подписчике данные не меняются. Прошу помочь разобраться в причинах происходящего.

Артем в BSS есть же приложение dictman.exe. Для обновления данных там просто можно перетащить таблицу из одной БД в другую

Мне для других целей. То, о чем Вы говорите про ДБО, мне известно.
27 окт 09, 14:09    [7844524]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Чижанов Артем
Member

Откуда: г. Краснодар
Сообщений: 223
Evgen
Чижанов Артем

Я полагал, что на подписчике будет всегда точная копия издателя. Не понимаю почему на подписчике возникли дублирующиеся ключи.


подписка обновляемая? если первичный ключ - identity, имеет ли он признак NOT FOR REPLICATION?

Где это посмотреть?
27 окт 09, 15:14    [7844990]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Алексей Гужин
Member

Откуда:
Сообщений: 130
Чижанов Артем

Где это посмотреть?

В дизайнере таблицы можно посмотреть, свойство NOT FOR REPLICATION.

Чижанов Артем

Не понимаю почему на подписчике возникли дублирующиеся ключи.

Это зависит от того что Вы делали с БД, как настраивали репликацию, какой тип репликации транзакций используете, какие свойства статей и т.д. Гадать на кофейной гуще смысла нет.
Опишите подробно как настраивали репликацию.
27 окт 09, 16:00    [7845360]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Чижанов Артем
Member

Откуда: г. Краснодар
Сообщений: 223
Алексей Гужин
Чижанов Артем

Где это посмотреть?

В дизайнере таблицы можно посмотреть, свойство NOT FOR REPLICATION.

Установлено значение Yes
Чижанов Артем

Не понимаю почему на подписчике возникли дублирующиеся ключи.
Это зависит от того что Вы делали с БД, как настраивали репликацию, какой тип репликации транзакций используете, какие свойства статей и т.д. Гадать на кофейной гуще смысла нет.
Опишите подробно как настраивали репликацию.

Существует ли запрос, при помощи которого можно посмотреть конфигурацию репликации на издателе и подписчике?
27 окт 09, 17:39    [7846067]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Алексей Гужин
Member

Откуда:
Сообщений: 130
Чижанов Артем

Существует ли запрос, при помощи которого можно посмотреть конфигурацию репликации на издателе и подписчике?

Ммм... Правой кнопкой на публикации и Generate Scripts.

По поводу identity уще вот здесь посмотрите.
28 окт 09, 11:14    [7848371]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Чижанов Артем
Member

Откуда: г. Краснодар
Сообщений: 223
Издатель:
+
-- Enabling the replication database
use master
exec sp_replicationdboption @dbname = N'Mirrored_db', @optname = N'publish', @value = N'true'
GO

exec [Mirrored_db].sys.sp_addlogreader_agent @job_login = null, @job_password = null, @publisher_security_mode = 1
GO
exec [Mirrored_db].sys.sp_addqreader_agent @job_login = null, @job_password = null, @frompublisher = 1
GO

-- Adding the transactional publication
use [Mirrored_db]
exec sp_addpublication @publication = N'Public_db', @description = N'Transactional publication of database ''Mirrored_db'' from Publisher ''TEST-BSS\TEST_MSSQL''.', @sync_method = N'concurrent', @retention = 0, @allow_push = N'true', @allow_pull = N'true', @allow_anonymous = N'true', @enabled_for_internet = N'false', @snapshot_in_defaultfolder = N'true', @compress_snapshot = N'false', @ftp_port = 21, @ftp_login = N'anonymous', @allow_subscription_copy = N'false', @add_to_active_directory = N'false', @repl_freq = N'continuous', @status = N'active', @independent_agent = N'true', @immediate_sync = N'true', @allow_sync_tran = N'false', @autogen_sync_procs = N'false', @allow_queued_tran = N'false', @allow_dts = N'false', @replicate_ddl = 1, @allow_initialize_from_backup = N'false', @enabled_for_p2p = N'false', @enabled_for_het_sub = N'false'
GO

exec sp_addpublication_snapshot @publication = N'Public_db', @frequency_type = 1, @frequency_interval = 0, @frequency_relative_interval = 0, @frequency_recurrence_factor = 0, @frequency_subday = 0, @frequency_subday_interval = 0, @active_start_time_of_day = 0, @active_end_time_of_day = 235959, @active_start_date = 0, @active_end_date = 0, @job_login = null, @job_password = null, @publisher_security_mode = 1
exec sp_grant_publication_access @publication = N'Public_db', @login = N'sa'
GO
exec sp_grant_publication_access @publication = N'Public_db', @login = N'NT AUTHORITY\SYSTEM'
GO
exec sp_grant_publication_access @publication = N'Public_db', @login = N'BUILTIN\Администраторы'
GO
exec sp_grant_publication_access @publication = N'Public_db', @login = N'TEST-BSS\SQLServer2005SQLAgentUser$TEST-BSS$TEST_MSSQL'
GO
exec sp_grant_publication_access @publication = N'Public_db', @login = N'TEST-BSS\SQLServer2005MSSQLUser$TEST-BSS$TEST_MSSQL'
GO
exec sp_grant_publication_access @publication = N'Public_db', @login = N'TEST-BSS\test'
GO
exec sp_grant_publication_access @publication = N'Public_db', @login = N'admin'
GO
exec sp_grant_publication_access @publication = N'Public_db', @login = N'dba'
GO
exec sp_grant_publication_access @publication = N'Public_db', @login = N'distributor_admin'
GO

-- Adding the transactional articles
use [Mirrored_db]
exec sp_addarticle @publication = N'Public_db', @article = N'ACCOUNT', @source_owner = N'dbo', @source_object = N'ACCOUNT', @type = N'logbased', @description = N'', @creation_script = N'', @pre_creation_cmd = N'drop', @schema_option = 0x000000000803509F, @identityrangemanagementoption = N'manual', @destination_table = N'ACCOUNT', @destination_owner = N'dbo', @status = 24, @vertical_partition = N'false', @ins_cmd = N'CALL [sp_MSins_dboACCOUNT]', @del_cmd = N'CALL [sp_MSdel_dboACCOUNT]', @upd_cmd = N'SCALL [sp_MSupd_dboACCOUNT]'
GO

-- Adding the transactional subscriptions
use [Mirrored_db]
exec sp_addsubscription @publication = N'Public_db', @subscriber = N'TEST-BSS\TEST_DEST', @destination_db = N'repl_db', @subscription_type = N'Pull', @sync_type = N'automatic', @article = N'all', @update_mode = N'read only', @subscriber_type = 0
GO]

Подписчик:
+
-- Adding the transactional pull subscription

/****** Begin: Script to be run at Subscriber ******/
use [repl_db]
exec sp_addpullsubscription @publisher = N'TEST-BSS\TEST_MSSQL', @publication = N'Public_db', @publisher_db = N'Mirrored_db', @independent_agent = N'True', @subscription_type = N'pull', @description = N'', @update_mode = N'read only', @immediate_sync = 1

exec sp_addpullsubscription_agent @publisher = N'TEST-BSS\TEST_MSSQL', @publisher_db = N'Mirrored_db', @publication = N'Public_db', @distributor = N'TEST-BSS\TEST_MSSQL', @distributor_security_mode = 1, @distributor_login = N'', @distributor_password = N'', @enabled_for_syncmgr = N'False', @frequency_type = 64, @frequency_interval = 0, @frequency_relative_interval = 0, @frequency_recurrence_factor = 0, @frequency_subday = 0, @frequency_subday_interval = 0, @active_start_time_of_day = 0, @active_end_time_of_day = 235959, @active_start_date = 0, @active_end_date = 0, @alt_snapshot_folder = N'', @working_directory = N'', @use_ftp = N'False', @job_login = null, @job_password = null, @publication_type = 0
GO
/****** End: Script to be run at Subscriber ******/

/****** Begin: Script to be run at Publisher ******/
/*use [Mirrored_db]
-- Parameter @sync_type is scripted as 'automatic', please adjust when appropriate.
exec sp_addsubscription @publication = N'Public_db', @subscriber = N'TEST-BSS\TEST_DEST', @destination_db = N'repl_db', @sync_type = N'Automatic', @subscription_type = N'pull', @update_mode = N'read only'
*/
/****** End: Script to be run at Publisher ******/
28 окт 09, 15:33    [7850853]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Чижанов Артем
Member

Откуда: г. Краснодар
Сообщений: 223
Актуально.
29 окт 09, 12:21    [7855062]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
1234567
Member

Откуда:
Сообщений: 704
Чижанов Артем,

Snapshot Agent отрабатывал?
29 окт 09, 16:34    [7857693]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Чижанов Артем
Member

Откуда: г. Краснодар
Сообщений: 223
1234567
Чижанов Артем,
Snapshot Agent отрабатывал?

Да
30 окт 09, 09:54    [7859972]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Evgen
Member

Откуда: Екатеринбург
Сообщений: 91
Чижанов Артем
@identityrangemanagementoption = N'manual

а что-нибудь было сделано для этой ручной раздачи диапазонов идентити?
30 окт 09, 10:52    [7860395]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Чижанов Артем
Member

Откуда: г. Краснодар
Сообщений: 223
Evgen
Чижанов Артем
@identityrangemanagementoption = N'manual

а что-нибудь было сделано для этой ручной раздачи диапазонов идентити?

Нет. А как раздается этот диапазон?
30 окт 09, 14:50    [7862773]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией транзакиций  [new]
Evgen
Member

Откуда: Екатеринбург
Сообщений: 91
Чижанов Артем,
самое простое поставить автоматическое управление и дистрибьютор сам будет подписчикам выдавать диапазоны.

если все же хочется ручного управления, то надо задавать смещения диапазонов идентити.

из БОЛ
"Если указывается ручное управление диапазонами идентификаторов, следует убедиться, что издатель и каждый подписчик используют разные диапазоны идентификаторов. Например, рассмотрим таблицу на издателе со столбцом идентификаторов, определенным как IDENTITY(1,1): столбец идентификаторов начинается с 1 и увеличивается с шагом 1 при каждой вставке строки. Если таблица на издателе имеет 5 000 строк и ожидается некоторое увеличение таблицы на протяжении существования приложения, издатель мог бы использовать диапазон 1—10 000. При наличии двух подписчиков подписчик А мог бы использовать диапазон 10 001—20 000, а подписчик B — использовать диапазон 20 001—30 000.

После инициализации подписчика с помощью моментального снимка или иным способом выполните DBCC CHECKIDENT, чтобы назначить подписчику начальную точку для его диапазона идентификаторов. Например, на подписчике А следовало бы выполнить DBCC CHECKIDENT('<TableName>','reseed',10001). На подписчике B следовало бы выполнить CHECKIDENT('<TableName>','reseed',20001)."
30 окт 09, 15:06    [7862930]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить