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

Откуда: Харків
Сообщений: 1233
use master
go
create database [MyDB]
GO
use [MyDB]
exec sp_addsubscription 
@publication = N'PublSQLServerName', 
@subscriber = N'MySQLServerName', 
@destination_db = N'MyDB', 
@sync_type = N'Automatic', 
@subscription_type = N'pull', 
@update_mode = N'failover',
@enabled_for_syncmgr = N'True'
GO

Получаю:
Msg 14013, Level 16, State 1, Procedure sp_MSrepl_addsubscription, Line 252
This database is not enabled for publication.

Куда бежать?
27 окт 11, 21:01    [11512386]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
exec sp_replicationdboption 'MyDB', 'publish', 'true'
27 окт 11, 22:25    [11512706]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Да в том то и дело что
The replication option 'publish' of database 'MyDB' has already been set to true.
28 окт 11, 12:53    [11515212]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
select @@version что вернет?
28 окт 11, 12:57    [11515269]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
На обоих серверах
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)   Apr  2 2010 15:48:46   Copyright (c) Microsoft Corporation  Data Center Edition (64-bit) on Windows NT 6.0 <X64>
28 окт 11, 13:15    [11515412]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
По порядочку. Вот так я создал публикацию:
use master
exec sp_replicationdboption @dbname = N'MyDb', @optname = N'publish', @value = N'true'
GO
exec [MyDb].sys.sp_addlogreader_agent @job_login = null, @job_password = null, @publisher_security_mode = 1
GO
exec [MyDb].sys.sp_addqreader_agent @job_login = null, @job_password = null, @frompublisher = 1
GO
-- Adding the transactional publication
use [MyDb]
exec sp_addpublication 
@publication = N'Test', 
@description = N'', 
@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'true', 
@autogen_sync_procs = N'true', 
@allow_queued_tran = N'true', 
@allow_dts = N'false', 
@conflict_policy = N'pub wins', 
@centralized_conflicts = N'true', 
@conflict_retention = 14, 
@queue_type = N'sql', 
@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'Test', 
@frequency_type = 4, 
@frequency_interval = 1, 
@frequency_relative_interval = 1, 
@frequency_recurrence_factor = 0, 
@frequency_subday = 8, 
@frequency_subday_interval = 1, 
@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 = 0, 
@publisher_login = N'DbLogin', 
@publisher_password = N''

exec sp_grant_publication_access @publication = N'Test', @login = N'SourceComputer\Administrator'
GO

use [MyDb]
exec sp_addarticle 
@publication = N'Test', 
@article = N'A_Test_for_repl', 
@source_owner = N'dbo', 
@source_object = N'A_Test_for_repl', 
@type = N'logbased', 
@description = N'', 
@creation_script = N'', 
@pre_creation_cmd = N'drop', 
@schema_option = 0x0000000008035CDF, 
@identityrangemanagementoption = N'auto', 
@pub_identity_range = 10000, 
@identity_range = 1000, 
@threshold = 80, 
@destination_table = N'A_Test_for_repl', 
@destination_owner = N'dbo', 
@status = 24, 
@vertical_partition = N'false', 
@ins_cmd = N'CALL [dbo].[sp_MSins_dboA_Test_for_repl]', 
@del_cmd = N'VCALL [dbo].[sp_MSdel_dboA_Test_for_repl]', 
@upd_cmd = N'VCALL [dbo].[sp_MSupd_dboA_Test_for_repl]'
GO

use [MyDb]
exec sp_addsubscription 
@publication = N'Test', 
@subscriber = N'DestComputer', 
@destination_db = N'MyDb', 
@subscription_type = N'Push', 
@sync_type = N'automatic', 
@article = N'all', 
@update_mode = N'failover', 
@subscriber_type = 0


exec sp_addpushsubscription_agent 
@publication = N'Test', 
@subscriber = N'DestComputer',  
@subscriber_db = N'MyDb', 
@job_login = N'SourceComputer\Administrator', 
@job_password = null, 
@subscriber_security_mode = 0, 
@subscriber_login = N'DbLogin', 
@subscriber_password = null, 
@frequency_type = 64, 
@frequency_interval = 1, 
@frequency_relative_interval = 1, 
@frequency_recurrence_factor = 0, 
@frequency_subday = 4,
@frequency_subday_interval = 5, 
@active_start_time_of_day = 0, 
@active_end_time_of_day = 235959, 
@active_start_date = 0, 
@active_end_date = 0, 
@dts_package_location = N'Distributor'


Публикация работает. И файлики исправно складывает
28 окт 11, 13:26    [11515497]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
На дестинейшен машине создаю датабейс линк к сурсу- всё работает.
Потом выполняю:

use master
go
create database [myDB]
GO
use [myDB]
exec sp_addsubscription 
@publication = N'Test', 
@subscriber = N'DestComputer', 
@destination_db = N'myDB', 
@sync_type = N'Automatic', 
@subscription_type = N'pull', 
@update_mode = N'failover',
@enabled_for_syncmgr = N'True'
GO
И получаю
Msg 14013, Level 16, State 1, Procedure sp_MSrepl_addsubscription, Line 252
This database is not enabled for publication.

Перед этим была проблема с DTC. Но ее уже нет. Куда еще смотреть?
28 окт 11, 13:30    [11515539]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Для начала, было бы неплохо накатить на оба сервера SP1 + CU3.
28 окт 11, 13:52    [11515707]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Такой возможности нет. Две секунды простоя критичны.
Без СП1 на 2008R2 репликация транзакций на работает?
28 окт 11, 14:03    [11515816]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
igor2222
Такой возможности нет. Две секунды простоя критичны.
Без СП1 на 2008R2 репликация транзакций на работает?

Во-первых, СП и КУ выпускают для исправления ошибок в продукте.
Во-вторых, почему вы выполняете sp_addsubscription на подписчике? Ознакомьтесь вот с этим документом: Как создавать подписки по запросу (программирование репликации на языке Transact-SQL)
28 окт 11, 14:12    [11515917]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
Glory
Member

Откуда:
Сообщений: 104751
igor2222
На дестинейшен машине создаю датабейс линк к сурсу- всё работает.
Потом выполняю:

Так и непонятно. Вы хотите сделать два Publisher-a ? Или все таки Subscriber-а ?
28 окт 11, 14:32    [11516116]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Subscriber-а конечно. Я открываю Менеджмент студию и визардом создаю подписчика. Она мне и генерит этот скрипт.
28 окт 11, 14:35    [11516162]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Создал пошагово. Вроде прошло нормально. Теперь джоб на подписчике запускается, но файлы репликации почему то с издателя не вычитывает...
28 окт 11, 15:27    [11516694]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Подскажите пожалуйста что же делать дальше?
Попытался выполнить sp_link_publication - получаю
The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "MyLinkedServer" was unable to begin a distributed transaction.

Что нужно сделать для того, чтобы подписчик таки вычитал репликационные файлы?
28 окт 11, 15:57    [11517032]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Вот на издателе увидел:
Error messages:
The process could not execute 'sp_replcmds' on 'SourceServer'. (Source: MSSQL_REPL, Error number: MSSQL_REPL20011)
Get help: http://help/MSSQL_REPL20011
Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission. (Source: MSSQLServer, Error number: 15517)
Get help: http://help/15517
The process could not execute 'sp_replcmds' on 'SourceServer'. (Source: MSSQL_REPL, Error number: MSSQL_REPL22037)
Get help: http://help/MSSQL_REPL22037

И что можно с этим сделать?
28 окт 11, 16:09    [11517170]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
ЛЮДИ! Помогите пожалуйста! Горю по времени просто совсем!
28 окт 11, 16:40    [11517504]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
Glory
Member

Откуда:
Сообщений: 104751
igor2222
Что нужно сделать для того, чтобы подписчик таки вычитал репликационные файлы?

Настроить MSDTC - Microsoft Distrubuted Transaction Coordinator
28 окт 11, 16:42    [11517519]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Если это имеется ввиду- то я это сделал еще вчераКартинка с другого сайта.

К сообщению приложен файл. Размер - 66Kb
28 окт 11, 16:48    [11517577]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
Glory
Member

Откуда:
Сообщений: 104751
http://support.microsoft.com/kb/293799
28 окт 11, 16:49    [11517588]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Сорри за сказочный вопрос. А публикация транзакций всегда создает колонку в каждой из таблиц, которая будет реплицироваться? Независимо от того есть ли уже примари кей или нет?
Можно ли как то избежать создания этих колонок?
28 окт 11, 17:36    [11518036]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
Glory
Member

Откуда:
Сообщений: 104751
All published tables in transactional replication must contain a declared primary key.
28 окт 11, 17:39    [11518059]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
У меня есть PK во всех таблицах. Но это разные типы полей- и INt и GUID и VARCHAR. Тем не менее репликация создает поле "под себя".
28 окт 11, 17:56    [11518136]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
http://msdn.microsoft.com/ru-ru/library/ms151794(SQL.105).aspx
При публикации таблицы в той публикации, где разрешены обновляемые подписки, к таблице добавляется столбец msrepl_tran_version. Этот столбец используется для отслеживания изменений и обнаружения конфликтов. Конфликты при немедленном обновлении возникают, если подписчик обновляет устаревшую копию данных.
28 окт 11, 18:24    [11518309]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Отсюда получается, что если у меня жесткое ограничение - трогать таблицы нельзя, то я не могу использовать ни репликацию транзакций, ни репликацию моментальных снимков? Конечно же все ALTER DATABASE должны на дестинейшене отслеживаться. Как тогда можно выйти из положения? С одной стороны я могу разве что создавать для репликации свои таблицы, а с другой- дестинейшен база должна быть актуальна с точностью +/- 30 минут и доступна для чтения.
31 окт 11, 16:12    [11527726]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите плиз. Торможу в конце дня...  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
igor2222, репликация транзакций и репликация транзакций с обновляемой подпиской -- несколько разные вещи. Репликация моментальных снимков вообще из другой оперы. Вы тип репликации выбирали осознанно или наугад?
31 окт 11, 16:19    [11527786]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить