Способы архивации MS SQL

Обсуждение вопросов связанных с использованием серверов баз данных MS SQL сервер, MySQL и т.д.

Модератор: Модераторы

Новый участник
Сообщения: 7
Зарегистрирован: 14 апр 2005, 08:15

Сообщение StarS » 14 апр 2005, 08:40

У меня несколько вопросов по архивации данных.
У меня установлен Windows Server 2003 Enterprise Edition,
MS SQL Server 2000 St. Edition.
База данных ночью простаивает.

1) Что предпочтительнее : делать ночью BackUp баз средствами SQL Server
или же ночью остановить экземпляр SQL Server и создать ARJ-архив файлов баз данных ?

2) Если грохнутся базы данных Ms SQL могу ли я простой остановкой
экземпляра и копированием файлов из arj-архива восстановить их ?

3) Ms SQL хранит информацию о всех базах (в том числе и об их расположении)
в системной базе MSDB. А откуда SQL знает где находится сама MSDB ?
Это информация хранится где-то в реестре ?

4) В Windows Server 2003 появилась технология Volume Shadow Copy.
Никто не пользовался утилитой NTBACKUP из Windows Server 2003 ?
Можно ли пользоваться ей при стартованом экземпляре MS SQL или лучше
останавливать экземпляр от греха подальше ?

С Уважением, Александр.

Администратор
Аватара пользователя
Сообщения: 2875
Зарегистрирован: 05 янв 2004, 17:21
Откуда: Москва

Сообщение GifteD » 14 апр 2005, 13:32

StarS
1) Единственно что при отстановки SQL Server ты можешь собрать все файлы, т.е. это сродни деатачу. Ключевое слово, транзакшен лог.
Стандартными средствами SQL при бекапе, ты можешь отчистить логи транзакции, что позволить экономить место.
2) Да, дотсаточно будет приатачить базу.
3) Слишком долго писать, от чего собственно вопрос? Т.е. можешь более предметно сформировать что ты хочешь получить в итоге?
4) Как уже говорилось, VSC можно рассматривать как дополнительный инструмент к имеющимся.

Активный пользователь
Сообщения: 243
Зарегистрирован: 30 июн 2004, 16:18
Откуда: Кировоград (Украина)

Сообщение Valeriy » 15 апр 2005, 16:44

Цитата
1) Что предпочтительнее : делать ночью BackUp баз средствами SQL Server
или же ночью остановить экземпляр SQL Server и создать ARJ-архив файлов баз данных ?
[/quote]

Если база не игрушечная, то архивы не годятся. Нужно иметь полный бэкап базы и промежуточные бэкапы журнала транзакций.
Такой набор позволит тебе восстановить базу на тот момент времени перед которым произошел сбой.
Цитата
Ms SQL хранит информацию о всех базах (в том числе и об их расположении)
в системной базе MSDB. А откуда SQL знает где находится сама MSDB ?
Это информация хранится где-то в реестре ?
[/quote]

MSDB тут не причем (там информация касательно агента). master хранит информацию о базах. А информация о размещении master храниется и в реестре и в самой базе master и эти данные сопоставляются сервером.
C уважением, Валерий

Администратор
Аватара пользователя
Сообщения: 2875
Зарегистрирован: 05 янв 2004, 17:21
Откуда: Москва

Сообщение GifteD » 16 апр 2005, 17:04

Valeriy
Цитата
то архивы не годятся
[/quote]
Не совсем понятно почему? Т.е. мы останавливаем SQL архивируем файлы. В чем неправильность такого пути?

Ситуация. SQL 2000 SP3 w2k 2000 sp4
Имеется база. К сожалениюсделанно так что на данный момент нет возможности использовать windows аунтификацию. Т.е. есть шелл через который заводятся пользователи для базы.
на SQL происходит следующее.
Пользователь с SQL авторизацией появляется на сервере + В секюрити у базы. Самая главная проблема.
Теряю SQL физически, пеезжаю на другой сервер... т.д. т.п.
Развертываю базу из стандартного бекапа, она востанавливается, но на "другом" SQL сервере нет пользователей. Они есть у базы которую развернули из бекапа, причем присутствуют объекты, где эти пользователи имеют права хозяев. Т.е. если даже руками перезаводить пользователя, то сначала нужно удалить объекты связанные с ним.

Пользователей много, ситуация возникала не чато, но было...
Отсбда вопросы, что я как администратор могу предпринять для резирвного копирования чтобы избежать подобной ситуации?
Т.е. имхо задача сводится к тому чтобы получить резервную еопию SQL c пользователями самого SQL server. Решения у меня нет.
Активный пользователь
Сообщения: 243
Зарегистрирован: 30 июн 2004, 16:18
Откуда: Кировоград (Украина)

Сообщение Valeriy » 18 апр 2005, 13:32

Цитата
Цитата
то архивы не годятся

Не совсем понятно почему? Т.е. мы останавливаем SQL архивируем файлы. В чем неправильность такого пути?
[/quote]


Неправильность в том, что на момент, когда ты останавливаешь SQL у тебя уже может быть частично разрушена база, нарушена целостность данных. Это можно легко своевременно не заметить, по крайне мере, до тех пор пока не произойдет обращения к потерянным или противоречивым данным. И все это ты можешь закатать в архив и считать его архивом нормальной базы.
Откатить базу назад можно при наличии полного бэкапа и бэкапа журнала транзакций.
Цитата
Развертываю базу из стандартного бекапа, она востанавливается, но на "другом" SQL сервере нет пользователей. Они есть у базы которую развернули из бекапа, причем присутствуют объекты, где эти пользователи имеют права хозяев. Т.е. если даже руками перезаводить пользователя, то сначала нужно удалить объекты связанные с ним.

Пользователей много, ситуация возникала не чато, но было...
Отсбда вопросы, что я как администратор могу предпринять для резирвного копирования чтобы избежать подобной ситуации?
Т.е. имхо задача сводится к тому чтобы получить резервную еопию SQL c пользователями самого SQL server. Решения у меня нет.
[/quote]


Решение простое — создавать на новом сервере пользователей с тем же значением SID, что и на старом.
sp_addlogin [ @loginame = ] 'login'
[ , [ @passwd = ] 'password' ]
[ , [ @defdb = ] 'database' ]
[ , [ @deflanguage = ] 'language' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] 'encryption_option' ]

Если же пользоаели созданы без выполнения этого требования - обновить им SID в sysxlogins. Для этого предварительно нужно в свойствах сервера выставить птицу для свойства Allow modifications to be made directly to the system catalogs.
Короче говоря нужно чтобы SID был одинаков в master в таблице sysxlogins и в пользовательской бд в таблице sysusers.
C уважением, Валерий

Вернуться в Серверы баз данных (SQL)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0