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

Откуда:
Сообщений: 6
Ситуация следующая
MS SQL 2005.
Маленькая БД, я делаю резервную копию файла БД (не средствами сервера, а через обычный bat-файл).
Останавливаю сервер и просто копирую файлы *.mdf и *.ldf.

После этого хочу подключить скопированную БД через SQL Server Management Studio.
Она подключается, но при этом с ней работать нельзя, написано, что она "Только для чтения".

При чем, если файлы *.mdf и *.ldf не скопировать, а просто перенести в другое место, то подключаются они потом без проблем.

Вопрос
Что я неправильно делаю?
Можно ли вообще таким образом обращаться с файлами БД, или нужно обязательно делать backup средствами сервера, а потом восстанавливать БД из backup-а?
5 окт 09, 18:59    [7744888]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36826
Все. Все не так делаете. Настройте уже бэкап, там не сложно.
5 окт 09, 19:14    [7744948]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
vino
Member

Откуда:
Сообщений: 1191
IVP_
Ситуация следующая
MS SQL 2005.
Маленькая БД, я делаю резервную копию файла БД (не средствами сервера, а через обычный bat-файл).
Останавливаю сервер и просто копирую файлы *.mdf и *.ldf.

После этого хочу подключить скопированную БД через SQL Server Management Studio.
Она подключается, но при этом с ней работать нельзя, написано, что она "Только для чтения".

При чем, если файлы *.mdf и *.ldf не скопировать, а просто перенести в другое место, то подключаются они потом без проблем.

Вопрос
Что я неправильно делаю?
Можно ли вообще таким образом обращаться с файлами БД, или нужно обязательно делать backup средствами сервера, а потом восстанавливать БД из backup-а?
вообще мало понятно, зачем вам серверная СУБД?????
вы, похоже, не подключаете эти файлы, как новую БД, а подключаете старые файлы на том же сервере, лежащие на том же месте, как вторичную БД (она только для чтения и может быть)
какая у вас модель восстановления БД?
5 окт 09, 19:15    [7744950]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
IVP_
Member

Откуда:
Сообщений: 6
Увидев, коментарии в ответах, хочу пояснить, зачем я это резервное копирование хочу сделать именно таким "нестандартным" способом.
У меня настроено автоматическое резервное копирование разных данных (документы и т.п.) с помощью bat файлов. Сейчас возникла необходимость в установке новой программы, которая данные хранит в MS SQL.
Логически данные, которые хранятся в БД MS SQL - относятся к тем же данным, что и документы. Именно по этому я хочу, чтобы они лежали все вместе. С администрированием MS SQL практически не знаком, поэтому и такие дикие вопросы.
Не взыщите, но мне не понятно и я буду спрашивать дальше :)
Буду признателен, если будут ответы :).

Гавриленко Сергей Алексеевич
Все. Все не так делаете. Настройте уже бэкап, там не сложно.


А подробней можно, что именно не так?
И все таки, можно ли просто копировать файл?

vino

вообще мало понятно, зачем вам серверная СУБД?????

MS SQL достался вместе с программой. Для меня самого была загадка, зачем разработчики его поставили. БД весит 5Мб и вряд-ли когда-нибудь серьезно увеличится. Это не мой выбор.

vino

вы, похоже, не подключаете эти файлы, как новую БД, а подключаете старые файлы на том же сервере, лежащие на том же месте, как вторичную БД (она только для чтения и может быть)

Не до конца понял комментарий, опишу что именно делал, возможно это поможет:

Когда я подключал скопированную БД из архива - я проверял, смогу ли я нормально восстановиться из резервной копии.
Мои действия были следующие:
- я отключил рабочую БД - на сервере она уже не зарегистрирована
- Попытался подключить БД из архива (при чем не важно, где она лежит, на том же месте где рабочая или где-то в другой папке), все это происходило на том же самом сервере.
- результат подключенная БД "только для чтения".

vino

какая у вас модель восстановления БД?

Посмотрел модель восстановления - Полная.
5 окт 09, 21:07    [7745242]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
Мои действия были следующие:
- я отключил рабочую БД - на сервере она уже не зарегистрирована
- Попытался подключить БД из архива (при чем не важно, где она лежит, на том же месте где рабочая или где-то в другой папке), все это происходило на том же самом сервере.
- результат подключенная БД "только для чтения".


IMHO, "проблема" с правами на файлы: Securing Data and Log Files
6 окт 09, 08:19    [7745898]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
IVP_
Member

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

IMHO, "проблема" с правами на файлы: Securing Data and Log Files


Спасибо, судя по всему так и было..
Если честно, не знаю, насколько это правильно..
Но я переустановил MS SQL не как сетевую, а как локальную службу - теперь без проблем.
12 окт 09, 09:58    [7771415]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
somebody
Member

Откуда: Москва
Сообщений: 708
Вдогонку:

IVP_
Останавливаю сервер и просто копирую файлы *.mdf и *.ldf.
После этого хочу подключить скопированную БД через SQL Server Management Studio.
Что я неправильно делаю?


Лучше на всякий случай detach, копирование, attach. Хотя это не всегда можно сделать...
13 окт 09, 10:10    [7776570]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
IVP_
Member

Откуда:
Сообщений: 6
somebody
Вдогонку:

IVP_
Останавливаю сервер и просто копирую файлы *.mdf и *.ldf.
После этого хочу подключить скопированную БД через SQL Server Management Studio.
Что я неправильно делаю?


Лучше на всякий случай detach, копирование, attach. Хотя это не всегда можно сделать...


А как это можно сделать из командной строки bat-файла?
13 окт 09, 11:09    [7777088]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
vino
Member

Откуда:
Сообщений: 1191
IVP_,
если до сих пор вам не надоело извращаться и бизнес позволяет делать паузы в обслуживании, то
тут смотрите и про коммандный интерфейс тут
13 окт 09, 11:19    [7777209]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
ALeXeY_15
Member

Откуда: Московская область
Сообщений: 202
Вот такая команда в батнике
CD   C:\Program files\Microsoft SQL Server\90\Tools\Binn\
osql -E -S <полное имя экземпляра SQL> -Q "BACKUP DATABASE <имя базы> TO DISK = '<путь, куда бэкапить>'WITH INIT"
будет создавать полную резервную копию БД с затиранием предыдущей копии.
Для её выполнения не надо останавливать сервер.

Учётка, от имени которой будет запускаться батник с этой командой, должна иметь соответствующие права на резервное копирование в SQL Server + права на папку, куда будет производиться копирование.

В случае использования планировщика Windows задание с батником рекомендуется запускать от имени учётной записи SYSTEM

Это самый простой и поэтому не самый надёжный вариант, т.к. на диске в каждый момент времени будет храниться только один (и возможно битый) бэкап.

С помощью BACKUP DATABASE, а также команд DEL, REN командной строки можно реализовать в батнике свой алгоритм для создания-затирания бэкапов
13 окт 09, 14:44    [7778950]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
ALeXeY_15
Member

Откуда: Московская область
Сообщений: 202
Батник стоит конструировать в случае, если у вас MS SQL Express, в котором отсутствуют шедулеры для бэкапа.

В случае полной версии MS SQL автоматизировать бэкап можно непосредственно в Management Studio
13 окт 09, 14:48    [7778985]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
IVP_
Member

Откуда:
Сообщений: 6
ALeXeY_15,
Спасибо, за пример вызова в bat файле.

Всем, спасибо.
У меня все заработало, как я хотел.
Думаю, что тему можно закрыть.
13 окт 09, 15:01    [7779092]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
ALeXeY_15
Member

Откуда: Московская область
Сообщений: 202
ALeXeY_15
<путь, куда бэкапить>
например E:\BACKUPS\baza_db.bak

ЗЫ копию лучше делать на другой физический диск
13 окт 09, 15:03    [7779103]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
ALeXeY_15
Member

Откуда: Московская область
Сообщений: 202
ALeXeY_15

Учётка, от имени которой будет запускаться батник с этой командой, должна иметь соответствующие права на резервное копирование в SQL Server + права на папку, куда будет производиться копирование.

В простейшем случае достаточно, если права на папку, куда будет производиться копирование, будет иметь учётка, под которой работает служба SQL Server.
Для учётки, запускающей батник, содержащий только приведённую выше команду, эти права не нужны.
13 окт 09, 15:33    [7779365]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
mukpo66
Member

Откуда:
Сообщений: 17
Помимо полного бекапа стоит сохранять также скрипт на создание логинов, а также бекапить джобы(если есть).

Копирование mdf,ldf файлов при остановленном сервисе работает но только в пределах одной и той же версии ОС, MSSQL, разрядности. Если что то изменится, то я бы уже не пользовался данным методом.
14 окт 09, 06:52    [7782166]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
mukpo66
Member

Откуда:
Сообщений: 17
Да и копировал бы я не только файлы рабочей базы, а еще обязательно msdb и master.
14 окт 09, 06:53    [7782168]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
Glory
Member

Откуда:
Сообщений: 104760
mukpo66


Копирование mdf,ldf файлов при остановленном сервисе работает но только в пределах одной и той же версии ОС, MSSQL, разрядности. Если что то изменится, то я бы уже не пользовался данным методом.

Использование баз не завиисит от версии ОС и разрядности MSSQL. Только от версии MSSQL
14 окт 09, 10:30    [7782761]     Ответить | Цитировать Сообщить модератору
 Re: Отключение/подключение файла БД *.mdf, после его копирования  [new]
IVP_
Member

Откуда:
Сообщений: 6
Glory
mukpo66


Копирование mdf,ldf файлов при остановленном сервисе работает но только в пределах одной и той же версии ОС, MSSQL, разрядности. Если что то изменится, то я бы уже не пользовался данным методом.

Использование баз не завиисит от версии ОС и разрядности MSSQL. Только от версии MSSQL


Спасибо, учту.
15 окт 09, 10:05    [7788794]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить