Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » [решено] Резервное копирование файлов баз данных через команды операционной системы

Ответить
Настройки темы
[решено] Резервное копирование файлов баз данных через команды операционной системы

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ситуация такая. W2K3 сервер - 1шт. на нем AD и выход в Интернет по ADSL, компьютеров в сети - 8 шт, пользователей - 10 шт. На сервере хранятся - база данных 1С-бухгалтерия (сетевая), MS SQL - сервер и база, с которой работают менеджеры.

Задача такая - периодическое сохранение (ежесуточное) баз данных.

Решение - создать copy.bat - файл, копирующий базы данных, который можно будет запускать стандартными средствами, например в 3 часа ночи (без моего участия).
Вот, что у меня поучается (содержимое copy.bat):
set datetemp=%date%
xcopy/e/y/h/f d:\data d:\DATA_COPY\%datetemp%\
xcopy/e/y/h/f C:\PROGRA~1\MICROS~1\MSSQL\Data\master.mdf d:\DATA_COPY\%datetemp%\

Трудность - при копировании базы данных MS SQL, а именно файла master.mdf, выдается сообщение:
C:\PROGRA~1\MICROS~1\MSSQL\Data\master.mdf
Попытка доступа к ресурсу, занятому другим приложением

Замечено - что, если в Диспетчере задач Windows убить 2 прцесса - sqlmangr.exe и sqlservr.exe - доступ к файлу master.mdf возможен, команда xcopy выполняется "на ура". (ну это понятно)

Внимание вопрос
как из командной строки "убить" работющий процесс?
как потОм из командной строки "запустиь" только что убитый процесс

Отправлено: 17:03, 05-10-2005

 

Аватара для SergOst

Ветеран


Сообщения: 935
Благодарности: 50

Профиль | Отправить PM | Цитировать


А почему не делать резервное копирование средствами sql сервера?

Отправлено: 19:07, 05-10-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Loki3D

Старожил


Сообщения: 362
Благодарности: 11

Профиль | Отправить PM | Цитировать


Надеюсь что поможет.. сам не пробовал.. так что ты отпиши о результатах пожалуста.
1.чтобы убить порцесс можно воспоьзоваться прогой taskKill.exe или tsKill.exe из WinDir/system32/ посмотри по /? что тебе нужно.
2.Потом, по идее чтоб снова запустить процесс нужно воспользоваться командой RanAs.exe

-------
sory 4 my rus


Отправлено: 01:03, 06-10-2005 | #3


Аватара для SkyF

Vladimir


Сообщения: 1070
Благодарности: 17

Профиль | Отправить PM | Цитировать


Цитата:
Задача такая - периодическое сохранение (ежесуточное) баз данных.
Базырезервируются только средствами Microsoft SQL Server. Через SQL Server Enterprise Manager - вы можете настроить резервирование (Для обычного резервирования удобнее для начала настроить планобслуживания баз Managment - Database Maintance Plans.
Регулярное резервное копирование реализуется средствами компонента-службы SQLServer Agent (который должен быть настроен на автозапуск).
Цитата:
Решение - создать copy.bat - файл, копирующий базы данных, который можно будет запускать стандартными средствами, например в 3 часа ночи (без моего участия).
Вот, что у меня поучается (содержимое copy.bat):
set datetemp=%date%
xcopy/e/y/h/f d:\data d:\DATA_COPY\%datetemp%\
xcopy/e/y/h/f C:\PROGRA~1\MICROS~1\MSSQL\Data\master.mdf d:\DATA_COPY\%datetemp%\
Решение для резервирования баз неправильное, все базы находятся в монопольном использовании сервера SQL

Подтверждение:
Цитата:
Трудность - при копировании базы данных MS SQL, а именно файла master.mdf, выдается сообщение:
C:\PROGRA~1\MICROS~1\MSSQL\Data\master.mdf
Попытка доступа к ресурсу, занятому другим приложением
Цитата:
Замечено - что, если в Диспетчере задач Windows убить 2 прцесса - sqlmangr.exe и sqlservr.exe - доступ к файлу master.mdf возможен, команда xcopy выполняется "на ура". (ну это понятно)
sqlmangr.exe - это SQL Server Service Manager (из трея программа)
sqlservr.exe - Это ваш сервер баз данных Microsoft SQL Server 2000

поэтому когда вы снимаете процессы эти - понятно что никтобольше блокировать базы не будет.
Цитата:
Внимание вопрос
как из командной строки "убить" работющий процесс?
как потОм из командной строки "запустиь" только что убитый процесс
ответить я вам отвечу, но, делать так рекомендовать не буду. по резервированию баз лучше почитайте дополнительный материал (например есть мощный ресурс SQL.RU)

напомню что снимаете вы не процессы, а работающие службы, поэтому для их управления есть специальные команды:
Код: Выделить весь код
net stop mssqlserver /y
net start mssqlserver
и судя по всему у вас Агент не запускается автоматически (его запус можно настроить через свойства сервера в Enterprise manager,SQL Service Manager, или Start - Administrative Tools - Services - SQLSERVERAGENT)
и тогда полные команды будут выглядеть так (на отключение):
Код: Выделить весь код
net stop sqlserveragent
net stop mssqlserver
( и на запуск)
Код: Выделить весь код
net start mssqlserver
net start sqlserveragent
Удачи.

-------
любить!!!

Правила , FAQ и решенные темы раздела Windows Server 2003


Отправлено: 05:19, 06-10-2005 | #4


Старожил


Сообщения: 204
Благодарности: 3

Профиль | Отправить PM | Цитировать


SkyF, и еще в дополнение хочется добавить, что при аварийном снятии задачи sql-сервера(а желаемое снятие задачи из консоли именно оно и есть) возможна потеря данных... А даже вероятная потеря данных в торговой базе данных критична.

Отправлено: 07:25, 06-10-2005 | #5

vze vze вне форума

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Делаешь вот такой батник и запускаешь его из шедулера сколько хочешь, у меня каждые 2 часа это делается. Тут идет полный бакап, архивирование и перенос архива
в другое хранилище (с путями разберешься сам, удачи):

del \\sqlserv1\archiv\*.dat
del \\sqlserv1\archiv\*.bak
del \\sqlserv1\archiv\*.log

"C:\Program Files\Microsoft SQL Server\MSSQL\Binn\SQLMAINT" -D baza1 -Rpt D:\archiv\report.log -BkUpDB D:\archiv -BkUpMedia DISK -DelBkUps 1
"C:\Program Files\Microsoft SQL Server\MSSQL\Binn\SQLMAINT" -D baza2 -Rpt D:\archiv\report.log -BkUpDB D:\archiv -BkUpMedia DISK -DelBkUps 1
"C:\Program Files\Microsoft SQL Server\MSSQL\Binn\SQLMAINT" -D baza3 -Rpt D:\archiv\report.log -BkUpDB D:\archiv -BkUpMedia DISK -DelBkUps 1
rem SQLMAINT -D msdb -Rpt D:\archiv_opt\report.log -BkUpDB D:\archiv -BkUpMedia DISK -DelBkUps 1

d:
cd d:\archiv_opt
ren nicol_db_*.* baza1_db_dump.dat
ren master_db_*.* baza2_db_dump.dat
ren stat_db_*.* baza3_db_dump.dat
rem ren msdb_db_dump.* msdb_db_dump.dat

start /min /wait c:\util\zip\pkzip25.exe -add=update -lev=9 -recurse -dir=full -excl=*.zip d:\archiv\tmpsqlserv1\archiv.zip \\sqlserv1\sqlserv1_d\archiv\*_db_dump.dat
start /min /wait c:\util\zip\pkzip25.exe -add=freshen -lev=9 -recurse -dir=full -excl=*.zip d:\archiv\tmpsqlserv1\archiv.zip \\sqlserv1\sqlserv1_d\archiv\*_db_dump.dat

for /f "tokens=2,3,4 delims=. " %%i in ('date /t') do mkdir d:\archiv\sql_baza_reserv\%%k%%j%%i
for /f "tokens=2,3,4 delims=. " %%i in ('date /t') do xxcopy d:\archiv\tmpsqlserv1\ d:\archiv\sql_baza_reserv\%%k%%j%%i /y

rem Копирование архива на другой сервер

xxcopy d:\archiv\SQL_baza_RESERV \\SQLSERV\sqlserv_z\Archiv\baza /s /bx /y


exit

Отправлено: 08:41, 06-10-2005 | #6



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » [решено] Резервное копирование файлов баз данных через команды операционной системы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - копирование данных с поврежденной системы на рабочую Foma77 Microsoft Windows 2000/XP 15 04-09-2007 16:41
[решено] Резервное копирование и восстановление данных с сохранением прав пользователей xeel Microsoft Windows NT/2000/2003 11 12-12-2006 02:35
Резервное копирование базы данных Non-Stop Общий по Linux 8 02-12-2006 11:02
Резервное копирование открытых файлов Walentin Microsoft Windows NT/2000/2003 9 22-12-2004 14:16




 
Переход