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

Откуда: С-Петербург
Сообщений: 616
Здравствуте!
имеется некоторая база с которой настроена транзакционная репликация на запасной сервер
при крахе основного сервера предполагается что можно подключиться к запасному
попробовали и получили следующую проблему
identity на таблицах в базе на запасном сервере вообще не установлены
причем они не восстанавливаются применением dbcc checkident (tab, noreseed)
получается только сначала сделать insert и получить ошибку
и только потом dbcc checkident (tab, noreseed)
вообще думалось что какой-то универсальный способ должен быть но что-то не могу найти

sql 2005 и 2008 проверялись

спасибо
24 янв 13, 14:18    [13821602]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
Glory
Member

Откуда:
Сообщений: 104751
leov
identity на таблицах в базе на запасном сервере вообще не установлены
причем они не восстанавливаются применением dbcc checkident (tab, noreseed)
получается только сначала сделать insert и получить ошибку
и только потом dbcc checkident (tab, noreseed)
вообще думалось что какой-то универсальный способ должен быть но что-то не могу найти

Поток сознания.
Если "identity не установлены", то какой dbcc checkident (tab, noreseed) вы собрались "применять" ?
Если identity нет на обоих серверах, то зачем вдруг понадобилось его "устанавливать" ?
24 янв 13, 14:26    [13821654]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Glory
leov
identity на таблицах в базе на запасном сервере вообще не установлены
причем они не восстанавливаются применением dbcc checkident (tab, noreseed)
получается только сначала сделать insert и получить ошибку
и только потом dbcc checkident (tab, noreseed)
вообще думалось что какой-то универсальный способ должен быть но что-то не могу найти

Поток сознания.
Если "identity не установлены", то какой dbcc checkident (tab, noreseed) вы собрались "применять" ?
Если identity нет на обоих серверах, то зачем вдруг понадобилось его "устанавливать" ?

извиняюсь что сбивчиво объяснил. попробую уточнить.
безусловно identity существуют в обоих базах
но поведение второй базы такое как будто сервер не видит identity
вот на такое checkident ('Company', noreseed)
оно отвечает Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'Company'.
причем если попытаться проинсертить что-то в таблицу
то оно выдаст ошибку нарушения primary key
и потом оно сможет сделать checkident ('Company', noreseed) и все поправится
но как-то глупо будет выделывать такие инсерты на все таблицы
я думал что dbcc checkdb долдно бы все выправить однако нет
24 янв 13, 14:38    [13821765]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
Glory
Member

Откуда:
Сообщений: 104751
leov
но поведение второй базы такое как будто сервер не видит identity
вот на такое checkident ('Company', noreseed)
оно отвечает Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'Company'.

потому что корректная команда выглядит так
dbcc checkident('Company', noreseed)

leov
причем если попытаться проинсертить что-то в таблицу
то оно выдаст ошибку нарушения primary key

Так наверное надо инсертить данные, которые не нарушают primary key
Иначе для чего он нужен ?
24 янв 13, 14:42    [13821802]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Glory
leov
но поведение второй базы такое как будто сервер не видит identity
вот на такое checkident ('Company', noreseed)
оно отвечает Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'Company'.

потому что корректная команда выглядит так
dbcc checkident('Company', noreseed)

сори, тут уж я совсем тупую ошибку пропустил
вот такое теперь отвечает
Checking identity information: current identity value 'NULL', current column value 'NULL'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

хотя select max(ID) from Company выдает 8456

и CONSTRAINT [PK_Company] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY] ,


Glory
leov
причем если попытаться проинсертить что-то в таблицу
то оно выдаст ошибку нарушения primary key

Так наверное надо инсертить данные, которые не нарушают primary key
Иначе для чего он нужен ?

безусловно в столбец ID ничего не инсертится в надежде что туда вставится правильное identity
но такое впечатление что если таблица в базе на сервере создавалась из репликации
а свойство identity установлено not for replication (оно так при установке репликации прописывается)
и соответственно на этом сервере для этой таблицы никогда ни одного нормального insert не происходило
то в этой базе ничего про identity не определено
и как это выправить не понятно (ну кроме фиктивного инсерта)
24 янв 13, 14:59    [13821934]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
что-то_лень_логиниться
Guest
leov,

почитать про "Репликация столбцов идентификаторов"
http://msdn.microsoft.com/ru-ru/library/ms152543(v=sql.90).aspx
24 янв 13, 15:00    [13821940]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
И какое отношение

автор
и CONSTRAINT [PK_Company] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY] ,


имеет к identity?! Приведите скрипт на CREATE.
24 янв 13, 15:01    [13821954]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
pkarklin
И какое отношение
автор
и CONSTRAINT [PK_Company] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY] ,
имеет к identity?! Приведите скрипт на CREATE.
это было приведено в ответ на
Так наверное надо инсертить данные, которые не нарушают primary key
Иначе для чего он нужен ?
да ничего там особенного нет
CREATE TABLE [dbo].[Company] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[RefID] [int] NULL ,
[Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[RegionID] [int] NOT NULL ,
......
просто долго работали на sql 2000 и там все нормально выходило
как перешли на 2008 то полезли вот эти проблемы
пока хотелось бы остаться в пределах старой идеологии
поэтому хочется при аварии каким-то скриптом привести запасную базу в рабочее состояние
24 янв 13, 15:13    [13822044]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
что-то_лень_логиниться
leov,

почитать про "Репликация столбцов идентификаторов"
http://msdn.microsoft.com/ru-ru/library/ms152543(v=sql.90).aspx
спасибо. хотя это и не ответ на вопрос но движение в правильную сторону.
теоретически там стот наверное добавить в primarykey идентификатор базы и забыть про управление identity, но это приведет к большим переделкам
пока хотелось бы найти решение как привести текущую базу в рабочее состояние
24 янв 13, 15:18    [13822090]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Вам нужен резервный сервер? Откажитесь от репликации в пользу зеркалирования!
24 янв 13, 15:21    [13822124]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
pkarklin
Вам нужен резервный сервер? Откажитесь от репликации в пользу зеркалирования!
я предлагал, но что-то там толи с лицензиями или еще с чем не помню, но не срослось
24 янв 13, 15:23    [13822159]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
leov,

Для зеркального сервера не нужна отдельная лицензия на MS SQL.
24 янв 13, 15:30    [13822229]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
pkarklin
leov,

Для зеркального сервера не нужна отдельная лицензия на MS SQL.
Если по нему репортов не гонять, если мне не изменяет память.
24 янв 13, 15:54    [13822465]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Гавриленко Сергей Алексеевич
Если по нему репортов не гонять, если мне не изменяет память.


Естественно.
24 янв 13, 15:57    [13822504]     Ответить | Цитировать Сообщить модератору
 Re: проблема с Identity  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
ну в общем через какую-то ж восстановил
а вообще похоже надо планировать модификацию
чтобы так сказать соответствовать текущей политике
24 янв 13, 17:49    [13823271]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить