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

Откуда: Кемерово
Сообщений: 1057
Здравствуйте.
Кто делал такую, подскажите как решить одну проблемку... Есть настроенная репликация нескольких баз, и сейча одна отвалилась... зайдя в свойтсва публикации увидел следующее сообщение на многих таблицах
This table cannot be published because it does not have a primary key column. Primary key columns are required for all tables in transactional publications.

Естественно у всех таблиц есть поля, на которые созданы первичные ключи. Реинициализация с созданием нового снапшота не помогает.
Что делать?
17 окт 11, 06:49    [11449062]     Ответить | Цитировать Сообщить модератору
 Re: On-line репликация  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31993
smoyk
Естественно у всех таблиц есть поля, на которые созданы первичные ключи.
Вы это проверили (скриптом, например) или предполагаете?
17 окт 11, 08:58    [11449168]     Ответить | Цитировать Сообщить модератору
 Re: On-line репликация  [new]
smoyk
Member

Откуда: Кемерово
Сообщений: 1057
alexeyvg,

Нет, не скриптом, глазами) Раскрыл таблицу в студии, раскрыл таблицу колонок, там у первого поля стоит золотой ключик. Перед этим сделал рефреш базы.
17 окт 11, 09:03    [11449178]     Ответить | Цитировать Сообщить модератору
 Re: On-line репликация  [new]
smoyk
Member

Откуда: Кемерово
Сообщений: 1057
alexeyvg,

Проверил не все таблицы конешно, их там много, так, парочку... но на них первичные ключи есть, значит сервер уже гонит?
17 окт 11, 09:06    [11449183]     Ответить | Цитировать Сообщить модератору
 Re: On-line репликация  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31993
smoyk
alexeyvg,

Проверил не все таблицы конешно, их там много, так, парочку... но на них первичные ключи есть, значит сервер уже гонит?
Вам сервер говорит, что на какой то одной таблице нету ПК, поэтому невозможна работа репликации.

Конечно, может быть, это просто баг сервера, но я сомневаюсь, скорее всего сервер вам не врёт и действительно ПК где то нету. Осталось найти таблицу без ПК и поправить (добавить ПК или исключить таблицу из репликации).
17 окт 11, 09:49    [11449304]     Ответить | Цитировать Сообщить модератору
 Re: On-line репликация  [new]
smoyk
Member

Откуда: Кемерово
Сообщений: 1057
alexeyvg,

Проверил скриптами, на всех таблица есть ключи.
Вот как это выглядит в студии:

К сообщению приложен файл. Размер - 40Kb
17 окт 11, 10:49    [11449633]     Ответить | Цитировать Сообщить модератору
 Re: On-line репликация  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31993
smoyk
alexeyvg,

Проверил скриптами, на всех таблица есть ключи.
Вот как это выглядит в студии:
Так где скрипт и результат?
17 окт 11, 10:59    [11449706]     Ответить | Цитировать Сообщить модератору
 Re: On-line репликация  [new]
smoyk
Member

Откуда: Кемерово
Сообщений: 1057
alexeyvg,

Первый запрос выводит список всех таблиц, второй - таблицы с первичными ключами в базе. Сравнил - все кашерно.

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.tables
where table_type='BASE TABLE'
ORDER BY TABLE_NAME

SELECT KU.table_name
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS TC
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KU 
ON TC.CONSTRAINT_TYPE = 'PRIMARY KEY' AND TC.CONSTRAINT_NAME = KU.CONSTRAINT_NAME
ORDER BY KU.TABLE_NAME, KU.ORDINAL_POSITION
17 окт 11, 12:14    [11450280]     Ответить | Цитировать Сообщить модератору
 Re: On-line репликация  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
smoyk, владеете передовым методом верификации данных -- "сравнение глазами"?
select
 t.TABLE_NAME
from
 INFORMATION_SCHEMA.TABLES t
where
 t.TABLE_TYPE = 'BASE TABLE' and
 not exists(
  select
   *
  from
   INFORMATION_SCHEMA.TABLE_CONSTRAINTS
  where
   TABLE_CATALOG = t.TABLE_CATALOG and
   TABLE_SCHEMA = t.TABLE_SCHEMA and
   TABLE_NAME = t.TABLE_NAME and
   CONSTRAINT_TYPE = N'PRIMARY KEY'
 )
17 окт 11, 12:36    [11450503]     Ответить | Цитировать Сообщить модератору
 Re: On-line репликация  [new]
smoyk
Member

Откуда: Кемерово
Сообщений: 1057
invm,

Я и не говорил, что я супер крут) Да, этот запрос тоже показал, что все кашерно...

Сейчас вот кстати это ошибка пропала. Шама. Та, которую я на скриншоте пиводил. Т.е. теперь пишет, что у всех таблиц есть ПК. Клянусь я ничего не делал) Но репликация все равно не работает. Теперь уже не знаю почему( В мониторе репликации пишет
автор
The process was successfully stopped.

Что делать?
17 окт 11, 12:52    [11450661]     Ответить | Цитировать Сообщить модератору
 Re: On-line репликация  [new]
smoyk
Member

Откуда: Кемерово
Сообщений: 1057
Ах да, реинициализацию делать пробовал, не помогло.
17 окт 11, 12:55    [11450690]     Ответить | Цитировать Сообщить модератору
 Re: On-line репликация  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
Так прямо и сообщает "не работаю"?
"The process was successfully stopped." это не сообщение об ошибке.
17 окт 11, 13:57    [11451391]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить