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

Откуда:
Сообщений: 8
у меня 2 сервера и 1 БД
с одного сервера риплицируются 3 таблицы этой БД на другой сервер (всего таблиц гораздо больше)
после рипликации на втором сервере у юзеров имеющих доступ к этим 3 таблицам этот доступ исчезает
как боротся?
28 окт 03, 15:50    [396395]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Либо репликация не прошла нормально - см. соответствующих агентов репликации и ошибки в их history.
Либо проблемы с правами доступа к ним. Тогда у вас явно стоит опция пересоздания таблиц при подключении нового подписчика. При этом владельцем вновь созданных таблиц на подписчике является отнюдь не dbo. Так?

Какой тип репликации (snapshot, transactional, merge)? Какой тип подписки (push, pull)?
28 окт 03, 16:11    [396455]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
Тщательно изучить свойства статей вкладочку snapshot (не перепутать с одноименной вкладочкой свойств публикации).
28 окт 03, 16:12    [396458]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Рядом с вкладкой snaphot есть также полезная вкладка general, на которой для некоторых типов репликации есть опция Destination table owner. Вкупе с галкой DROP the existing table and re-create it весьма полезна для здоровья подписчика.
28 окт 03, 16:24    [396480]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
Chipmunk
Member

Откуда:
Сообщений: 8
виноват, не совсем верно указал на трабл:

доступ удаляется при "ре-иницаилизации"
а без нее часто рипликация отказывается делатся (после длительного перерыва или сбоев при предыдущих рипликациях)

используется transactional репликация
28 окт 03, 19:38    [396875]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
1) Поставьте в свойствах публикации флажочек Subscription never expire.

и/или

2) Поставьте в свойствах статьи Delete all data in existing table.
28 окт 03, 20:00    [396886]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
доступ удаляется при "ре-иницаилизации"
При реинициализации происходят те же действия, что при добавлении подписчика. Повторюсь еще раз: если у вас стоит галка "DROP the existing table and re-create it", то при добавлении подписчиков, а также при реинициализации у вас будет происходить удаление и создание таблицы. Это отлично видно в профайлере, не верите - запустите сами. Поэтому владелец таблицы может меняться. Посмотрите, кто у вас owner этих трех таблиц. Тот же самый, кто владелец Distribution agent job'а?

1) Поставьте в свойствах публикации флажочек Subscription never expire.
Subscription never expire не всегда может помочь. Иногда реинициализацию приходится делать вручную.

2) Поставьте в свойствах статьи Delete all data in existing table.
Не всегда возможно по причине структуры базы. Может у него там есть констрейнты или триггера, которые не позволят этого сделать.
29 окт 03, 11:19    [397412]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
или

3) Явно выставляйте права применяя свой скрипт после реинициализации (на вкладочке snapshot свойств статьи).
29 окт 03, 11:33    [397449]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
:-)
3) Явно выставляйте права применяя свой скрипт после реинициализации (на вкладочке snapshot свойств статьи).
Зачем масло масляное делать? Table Article Properties, поле Destination table owner. Или мы об одном и том же говорим, я что-то уже не догоняю?
29 окт 03, 11:36    [397458]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
Там не овнер меняется, там права пропадают.
29 окт 03, 11:38    [397468]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
Если заглянуть в BOL, то увидим, что по умолчанию при реинициализации подписчика таблица у него дропается, а, следовательно, слетят все права. Можно в свойствах статьи заменить удаление таблицы на удаление из неё данных, если не планируете изменять структуру этой таблицы. Если желательнё всётаки её дропать, добавте следующим после сеанса репликации шагом восстановление прав на таблицу соответствующим пользовательским ролям.

RTFM

article Properties, Snapshot Tab

The following options are available on the Snapshot tab of the article Properties dialog box.

Options
Keep the existing table unchanged


Keep all the existing data and schema in the Subscriber table with the same name as the destination table.

DROP the existing table and re-create it

Delete the Subscriber table that has the same name as the destination table and create a new table locally that is identical to the table at the Publisher.

Delete data in the existing table that matches the row filter statement

Delete the data that matches the data to be replicated from the Publisher in the Subscriber table with the same name as the destination table. Data in the local table that does not match the data to be replicated remains unchanged in the local table.

Delete all data in the existing table

Delete all the data but keep the table schema in the Subscriber table with the same name as the destination table.

Include declared referential integrity

Copy all primary key constraints, reference constraints, and unique constraints to the destination table if they exist on the source table at the Publisher.

Clustered indexes

Copy clustered indexes to the destination table if they exist on the source table at the Publisher.

Nonclustered indexes

Copy nonclustered indexes to the destination table if they exist on the source table at the Publisher.

User triggers

Copy user triggers to the destination table if they exist on the source table at the Publisher.

Extended properties

Copy extended properties to the destination table if they exist on the source table at the Publisher.

Collation

Copy collation specifications to the destination database if they exist on the source database at the Publisher.

Convert user-defined to base data types

Convert the user-defined types to the original data types on which they were based if there are user-defined data types in the source table at the Publisher. Converting user-defined data types to base data types may alter the formatting and other characteristics of the data.
29 окт 03, 11:49    [397502]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
LAlex
Member

Откуда: Omsk
Сообщений: 209
А можно на эту тему еще более интересный вопрос?
У меня все проги коннектятся к базе под одним условным юзером, которому на базу стоят права data writer и таких проблем с таблицами не возникает, но у нас еще настроена репликация хранимых процедур, которые не работают, если им явно в permissions не включить галочку exec, а вот она-то слетает при каждой репликации (если процедуру не грохать то зачем вообще репликация :)). Вышли из положения тем, что на подписчике объявили этого юзера овнером хранимок, но есть вероятность, что условных юзеров станет 2. А как тогда быть?
29 окт 03, 11:57    [397525]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Пришел Александр и в пятый раз попытался донести ту же информацию до автора вопроса :-)), который упорно молчит...
29 окт 03, 12:00    [397543]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
2 LAlex

А можно поподробней?
29 окт 03, 12:01    [397545]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
2злой шаман: так в pre- или post-скрипте вы предлагали пермишены обратно навешивать на пересозданную таблицу?
29 окт 03, 12:04    [397554]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
2 LAlex: Я это решил, применяя после снапшота такой скрипт:

declare @s varchar(1000),@n varchar(100)


declare cur cursor local forward_only for
select name from sysobjects where xtype in ('U','V','TF','IF')
and objectproperty(id,'IsMSShipped')=0
order by 1

open cur

fetch next from cur into @n
while @@fetch_status=0 begin
set @s='grant select on '+@n+' to [myuser]'
exec(@s)
fetch next from cur into @n
end

close cur
deallocate cur

declare cur cursor local forward_only for
select name from sysobjects where xtype in ('P','FN')
and objectproperty(id,'IsMSShipped')=0 and name not like 'sp_%'
order by 1

open cur

fetch next from cur into @n
while @@fetch_status=0 begin
set @s='grant execute on '+@n+' to [myuser]'
exec(@s)
fetch next from cur into @n
end


close cur
deallocate cur
29 окт 03, 12:05    [397561]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
2 GreenSunrise: в post :)
29 окт 03, 12:19    [397593]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
Chipmunk
Member

Откуда:
Сообщений: 8
я не молчу, я читаю и очень ценю советы.
но поскольку у меня сейчас просто сервер упал нафиг и я занят немного другим - мне сказать пока нечего

вот проверю - и начну спасибы говорить красочные и вкусные :)
29 окт 03, 16:53    [398466]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
Chipmunk
Member

Откуда:
Сообщений: 8
Поднял сервер :)

Спасибо всем за ответы. Я выбрал решить проблему запуская скрипт после синхронизации.

Сделал, вписал его вызов в строку After applying the snapshot вкладки Snapshot

пошла сихронизация: мне пишут фатал эрор с пояснениями

z:\sql\MSSQL\ReplData\unc\SRVR4_sdn-isf_sdn-isf\20040527170604\role(post-synchro)_0.sql
Transaction sequence number and command ID of last execution batch are 0x0000021000000159000700000002 and 61.

не знаете как это расшифровывать?
27 май 04, 17:56    [705977]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
Chipmunk
Member

Откуда:
Сообщений: 8
Еще интересно - что это ошибка не всегда появляется...

А куда еще можно засунуть вызов скрипта?
может его по job'у запусть каждые 10 мин? Хотя как то это неуютно...
2 июн 04, 14:14    [716600]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
1/2 OFF

29 окт 03, 16:53 - но поскольку у меня сейчас просто сервер упал...

27 май 04, 17:56 - Поднял сервер

Видать конкретно сервер упал...
2 июн 04, 14:22    [716624]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Покажите текст z:\sql\MSSQL\ReplData\unc\SRVR4_sdn-isf_sdn-isf\20040527170604\role(post-synchro)_0.sql
2 июн 04, 14:22    [716628]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
pkarklin
Видать конкретно сервер упал

- (юзер) Помогите! У нас сервер упал!!!
- (админ) Что пишет? Какая ошибка?
- (юзер) Не... Он со стола упал...
2 июн 04, 14:25    [716636]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 GreenSunrise

2 июн 04, 14:29    [716651]     Ответить | Цитировать Сообщить модератору
 Re: проблема с рипликацией  [new]
Chipmunk
Member

Откуда:
Сообщений: 8
текст скрипта очень прост:


GRANT SELECT ON [Cities] TO [member-role1]
GRANT SELECT ON [Users] TO [member-role1]

в нем проблем быть не должно,
но ругать идет именно на него
не понятно :(

___________________

чего вы ржете?
ну полгода мне было не до этой проблемы
вот и не заходил :)
2 июн 04, 15:32    [716892]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить