|
Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » [решено] Резервное копирование файлов баз данных через команды операционной системы |
|
[решено] Резервное копирование файлов баз данных через команды операционной системы
|
Новый участник Сообщения: 1 |
Профиль | Отправить 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 |
Ветеран Сообщения: 935
|
Профиль | Отправить PM | Цитировать А почему не делать резервное копирование средствами sql сервера?
|
Отправлено: 19:07, 05-10-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 362
|
Профиль | Отправить PM | Цитировать Надеюсь что поможет.. сам не пробовал.. так что ты отпиши о результатах пожалуста.
1.чтобы убить порцесс можно воспоьзоваться прогой taskKill.exe или tsKill.exe из WinDir/system32/ посмотри по /? что тебе нужно. 2.Потом, по идее чтоб снова запустить процесс нужно воспользоваться командой RanAs.exe |
------- Отправлено: 01:03, 06-10-2005 | #3 |
Vladimir Сообщения: 1070
|
Профиль | Отправить PM | Цитировать Цитата:
Регулярное резервное копирование реализуется средствами компонента-службы SQLServer Agent (который должен быть настроен на автозапуск). Цитата:
Подтверждение: Цитата:
Цитата:
sqlservr.exe - Это ваш сервер баз данных Microsoft SQL Server 2000 поэтому когда вы снимаете процессы эти - понятно что никтобольше блокировать базы не будет. Цитата:
напомню что снимаете вы не процессы, а работающие службы, поэтому для их управления есть специальные команды: и судя по всему у вас Агент не запускается автоматически (его запус можно настроить через свойства сервера в Enterprise manager,SQL Service Manager, или Start - Administrative Tools - Services - SQLSERVERAGENT) и тогда полные команды будут выглядеть так (на отключение): ( и на запуск) Удачи. |
|||||
------- Отправлено: 05:19, 06-10-2005 | #4 |
Старожил Сообщения: 204
|
Профиль | Отправить PM | Цитировать SkyF, и еще в дополнение хочется добавить, что при аварийном снятии задачи sql-сервера(а желаемое снятие задачи из консоли именно оно и есть) возможна потеря данных... А даже вероятная потеря данных в торговой базе данных критична.
|
|
Отправлено: 07:25, 06-10-2005 | #5 |
Новый участник Сообщения: 6
|
Профиль | Отправить 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 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - копирование данных с поврежденной системы на рабочую | 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 |
|