Идентификация БД в MSSQL 2005
От: xdeltax  
Дата: 27.09.07 09:07
Оценка:
Есть ли какая-нибудь возможно однозначно идентифицировать копию БД. Поясню что я имею в виду: Есть БД (1), потом её бекапят и востанавливают под тем же именем по тому же пути, на той же машине что и (1), причём (1) уже убита. Или востанавливают бекап на другой машине с тем же путём что и (1). Вот можно ли как-то отличить базы (1) и (2)?
Re: Идентификация БД в MSSQL 2005
От: Mr.Cat  
Дата: 27.09.07 19:42
Оценка:
Здравствуйте, xdeltax, Вы писали:

X>Есть ли какая-нибудь возможно однозначно идентифицировать копию БД. Поясню что я имею в виду: Есть БД (1), потом её бекапят и востанавливают под тем же именем по тому же пути, на той же машине что и (1), причём (1) уже убита. Или востанавливают бекап на другой машине с тем же путём что и (1). Вот можно ли как-то отличить базы (1) и (2)?


Т.е. отличить? Ты хочешь сделать так, чтобы каждая копия БД, сделанная из бэкапа была уникальна? Ну... можно написать процедуры для бэкапа/восстановления, которые будут заодно в специальную таблицу вставлять GUID, например. Подойдет?
Re[2]: Идентификация БД в MSSQL 2005
От: xdeltax  
Дата: 28.09.07 07:33
Оценка:
MC>Т.е. отличить? Ты хочешь сделать так, чтобы каждая копия БД, сделанная из бэкапа была уникальна? Ну... можно написать процедуры для бэкапа/восстановления, которые будут заодно в специальную таблицу вставлять GUID, например. Подойдет?

Ага что-то вроде этого. Только у нас нет возможности контролировать процесс бекапа/рестора или атача/детача БД. Следовательно процедурки для записи в спец таблицы отпадают. Нужно что-то чтобы пользователь об этом даже не догадывался. Более подробно опишу суть проблемы, может поможет:
Есть система, которая работает с двумя БД, которые абсолютно одинаковы по структуре, и вся разница лишь в количестве данных, т.е. одна, которая меньшая — используется для работы, а другая, которая на порядок больше служет чем-то вроде хранилища. Так вот, если ничайно попутать местами базы (не туда подключиться), то система начинает делать винегрет из баз (короче их просто нельзя путать). Что бы дать системе, холть какие-то шансы на жизнь, в маленькой базе была заведена специальная запись в служебной таблице. По сути, это лишь временное решение, потому что большая база делается следующим образом: берётся маленькая и клонируется... следовательно поле-флай оказывается в ней и опять происходит винегрет...
Re[3]: Идентификация БД в MSSQL 2005
От: Mr.Cat  
Дата: 28.09.07 09:14
Оценка:
Мне кажется, Ваша проблема решается по другому. Насколько я понимаю, данные попадают в основное хранилище автоматизированно. Ну так пусть только тот, "программный модуль" (сервис репликации, джоб или клиентская прога), который производит синхронизацию, имеет право на работу с основным хранилищем. А у остальных пользователей надо эти права отобрать. Или я что-то недопонял? Или нет возможности применять "административные" средства?
Re[4]: Идентификация БД в MSSQL 2005
От: xdeltax  
Дата: 28.09.07 09:47
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC> Или нет возможности применять "административные" средства?


В том то и дело что нет возможности
Re[5]: Идентификация БД в MSSQL 2005
От: Mr.Cat  
Дата: 28.09.07 14:04
Оценка:
Здравствуйте, xdeltax, Вы писали:
X>В том то и дело что нет возможности

А что можно делать? Просто, зная список разрешенного, легче предложить вариант.
Re[6]: Идентификация БД в MSSQL 2005
От: xdeltax  
Дата: 29.09.07 08:46
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, xdeltax, Вы писали:

X>>В том то и дело что нет возможности

MC>А что можно делать? Просто, зная список разрешенного, легче предложить вариант.


В общем дело обстоит так: мы предоставляем ПО, которое работает с БД, но администрирование и настройку делают уже пользователи. И мы их не можем обязать делать настройку серверов как нам надо. Им же в свою очередь что-то делать просто лень. По-этому и хочется сделать так, чтобы они даже не о чём не догадывались, и в то же время, чтобы не были перепутаны базы
Re[3]: Идентификация БД в MSSQL 2005
От: kuj  
Дата: 29.09.07 09:25
Оценка:
Здравствуйте, xdeltax, Вы писали:

MC>>Т.е. отличить? Ты хочешь сделать так, чтобы каждая копия БД, сделанная из бэкапа была уникальна? Ну... можно написать процедуры для бэкапа/восстановления, которые будут заодно в специальную таблицу вставлять GUID, например. Подойдет?


X>Ага что-то вроде этого. Только у нас нет возможности контролировать процесс бекапа/рестора или атача/детача БД. Следовательно процедурки для записи в спец таблицы отпадают. Нужно что-то чтобы пользователь об этом даже не догадывался. Более подробно опишу суть проблемы, может поможет:

X>Есть система, которая работает с двумя БД, которые абсолютно одинаковы по структуре, и вся разница лишь в количестве данных, т.е. одна, которая меньшая — используется для работы, а другая, которая на порядок больше служет чем-то вроде хранилища. Так вот, если ничайно попутать местами базы (не туда подключиться), то система начинает делать винегрет из баз (короче их просто нельзя путать). Что бы дать системе, холть какие-то шансы на жизнь, в маленькой базе была заведена специальная запись в служебной таблице. По сути, это лишь временное решение, потому что большая база делается следующим образом: берётся маленькая и клонируется... следовательно поле-флай оказывается в ней и опять происходит винегрет...

Это конечно не ответ на Ваш вопрос, но я бы порекомендовал сменить архитектуру "большой" базы и сделать ее полноценной data warehouse.
... << RSDN@Home 1.2.0 alpha rev. 746>>
Re[4]: Идентификация БД в MSSQL 2005
От: xdeltax  
Дата: 01.10.07 05:26
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>Это конечно не ответ на Ваш вопрос, но я бы порекомендовал сменить архитектуру "большой" базы и сделать ее полноценной data warehouse.


К сожалению нельзя.
Re[7]: Идентификация БД в MSSQL 2005
От: Mr.Cat  
Дата: 01.10.07 20:35
Оценка:
Здравствуйте, xdeltax, Вы писали:

X>В общем дело обстоит так: мы предоставляем ПО, которое работает с БД, но администрирование и настройку делают уже пользователи. И мы их не можем обязать делать настройку серверов как нам надо. Им же в свою очередь что-то делать просто лень. По-этому и хочется сделать так, чтобы они даже не о чём не догадывались, и в то же время, чтобы не были перепутаны базы


Тут сложно что-либо сказать. Разве что попробовать предоставлять скрипт настройки. Все же, при неправильном использовании можно что угодно поломать.
Re[8]: Идентификация БД в MSSQL 2005
От: xdeltax  
Дата: 02.10.07 06:02
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Тут сложно что-либо сказать. Разве что попробовать предоставлять скрипт настройки. Все же, при неправильном использовании можно что угодно поломать.


Нашёл временное решени, может и приживётся: дата создания файла mdf Т.к. всегда пользуются разворачиванием БД из бекапа, то вероятно поможет. А скорее всего сделаю две записи в бд:
1. Хеш по дате создания mdf 2.
2. Хеш по всей остальной доступной информации (имя бд, путь к файлам и т.п.)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.