|
Как восстановить базу из архива на SQL сервере через консоль? | ☑ | ||
---|---|---|---|---|
0
Cerera
09.09.13
✎
09:15
|
Везде в интернете написано про Восстановление базы данных с архивных копий. При этом там не через консоль делается, а через среду MS SQL Management Studio. Это достаточно долго. Есть подозрение, что если заставить сервер делать это через командную строку, то будет куда быстрее, ведь резервные копии, которые делаются в последнем режиме, производятся в течении одной минуты, а когда через среду MS SQL делаешь,то затягивается на десятки минут.
|
|||
1
ptiz
09.09.13
✎
09:19
|
Рекомендую открыть любое пособие про MS SQL и почитать раздел "резервное копирование/восстановление".
|
|||
2
Cerera
09.09.13
✎
09:20
|
(1)дак там написано как в режиме пользователя восстанавливать.
|
|||
3
Галахад
гуру
09.09.13
✎
09:26
|
Линуксовые лазутчики добавили в код MS, хитрые консольные команды.
|
|||
4
Infsams654
09.09.13
✎
09:27
|
(2) еще раз (или несколько раз) прочитай. Может заметишь restore
|
|||
5
Chai Nic
09.09.13
✎
09:28
|
"Есть подозрение, что если заставить сервер делать это через командную строку, то будет куда быстрее"
Это вряд ли.. |
|||
6
shuhard
09.09.13
✎
09:41
|
(0)[Это достаточно долго. Есть подозрение, что если заставить сервер делать это через командную строку, то будет куда быстрее, ведь резервные копии, которые делаются в последнем режиме, производятся в течении одной минуты, а когда через среду MS SQL делаешь,то затягивается на десятки минут.]
ТС бредит |
|||
7
Sammo
09.09.13
✎
09:44
|
Что значит через командную строку на скуле? job-ы?
|
|||
8
Maxus43
09.09.13
✎
09:50
|
можно T-SQL послать скулю, restore, но быстрей явно не будет. Хватит заниматься ерундой
|
|||
9
Cerera
09.09.13
✎
09:50
|
(6)У нас так. база примерно минут 10 бекапится. если через Среду делать. а когда по регламентному заданию делаются ежечасно, то за 2 минуты все базы уже забекапливаются. но это средствами MS SQL
|
|||
10
Maxus43
09.09.13
✎
09:51
|
>>ведь резервные копии, которые делаются в последнем режиме, производятся в течении одной минуты
что? |
|||
11
Cerera
09.09.13
✎
09:51
|
(8)ну нет, так нет.Но то, в (9) - это факт. могу доказать.
|
|||
12
Maxus43
09.09.13
✎
09:52
|
(9) "ежечасно" - дак это дифы делаете поди, фулл конечно дольше
|
|||
13
Cerera
09.09.13
✎
09:54
|
(10)в (9) я объяснил всё как есть. через Cmd файл делается.
вот Cmd файл @echo off rem Важно !!! Кодировка DOS !!! rem ************************************************ rem * Backup.cmd - архивирование базы * rem * Последние изменения : 21.03.2006 г., 19:18 * rem * (с) 2003,2004,2006 Бочкарев Николай * rem ************************************************ set Database=%1 set Login=%2 set Password=%3 if '%Database%'=='' goto :Usage if '%Database%'=='/?' goto :Usage rem !!!! В случае длинных имен - указывать БЕЗ КАВЫЧЕК !!! rem Путь к каталогу бакапов на сервере set Backup=d:\bbackup rem set Backup=F:\BACKUP_BASE rem Microsoft SQL Server Command Line Tool set ISQL=c:\Program Files\Microsoft SQL Server\100\Tools\Binn\OSQL.EXE rem Имя SQL Server'a set SQLServer=dbserver02 set BackupUser=%Login% rem Утилита архивирования командной строки set RAR=c:\Program Files\WinRAR\Rar.exe rem Утилита forfiles - для запуска процедуры удаления дла старых бакапов set FORFILES=d:\sql_backup\forfiles.exe rem Удалять бакапы, старше этого количества дней set Days=30 rem Сетевые ресурсы для резервного копирования rem В случае, если копирование по сети не нужно, установите пути пустыми rem Set Path01=\\192.168.1.6\d$\backup_lenta\ rem Set Path02= rem Лог файл о результатах копирования, в случае, если копирование не ведется, не используется set Log=d:\sql_backup\backup_log.txt rem Проверки IF NOT EXIST "%ISQL%" (echo Microsoft SQL Server Command Line Tool "%ISQL%" не найден! echo Поправьте значение переменной ISQL в командном файле! goto :EOF) IF NOT EXIST "%RAR%" (echo Архиватор "%RAR%" не найден! echo Поправьте значение переменной RAR в командном файле! goto :EOF) IF NOT EXIST "%FORFILES%" (echo Утилита "%FORFILES%" не найдена! echo Поправьте значение переменной FORFILES в командном файле! goto :EOF) IF NOT EXIST "%backup%" (echo Каталог бакапов "%Backup%" не найден! echo Поправьте значение переменной BACKUP в командном файле! goto :EOF) if NOT '%Path01%'=='' (IF NOT EXIST "%Path01%" (echo Каталог бакапов "%Path01%" не найден! echo Поправьте значение переменной Path01 в командном файле! echo %date% %time% Поправьте значение переменной Path01 в командном файле! >> %log% set Path01=) ) if NOT '%Path02%'=='' (IF NOT EXIST "%Path02%" (echo Каталог бакапов "%Path02%" не найден! echo Поправьте значение переменной Path02 в командном файле! echo %date% %time% Поправьте значение переменной Path02 в командном файле! >> %log% set Path02=) ) for /f "tokens=1-4 delims=. " %%i in ('date /t') do set longdate=%%i%%j%%k set temp=d:\TEMP set FileName=%longdate:~0,2%_%longdate:~2,2%_%longdate:~4,4% rem дата в формате 2003_04_12 echo Дата: %Filename% echo SQL Server: %SQLServer% echo База данных: %Database% echo. echo 1. Снятие Backup... set ArcSQL=%temp%\arcsrv.sql echo USE master > %ArcSQL% echo EXEC sp_addumpdevice 'disk', '%Database%_Backup', '%BACKUP%\%Database%_%FileName%.bcp' >> %ArcSQL% echo BACKUP DATABASE %DataBase% TO %Database%_Backup >> %ArcSQL% echo exec sp_dropdevice '%Database%_Backup' >> %ArcSQL% "%ISQL%" -S %SQLServer% -d master -U %BackupUser% -P %Password% -i %ArcSQL% -n echo 2. Упаковка backup'а... cd "%BACKUP%" "%RAR%" a "%BACKUP%\%Database%_%FileName%" "%BACKUP%\*%Filename%.bcp" -rr -c -ep -av -idp -id -idc echo 2. Копирование резервных копий в сети... if not '%Path01%'=='' Call :CopyProc "%Path01%" if not '%Path02%'=='' Call :CopyProc "%Path02%" echo 3. Лог результата копирования set i=0 IF EXIST "%BACKUP%\%Database%_%FileName%.rar" (set /a i=%i%+1) IF EXIST "%Path01%\%Database%_%FileName%.rar" (set /a i=%i%+1) IF EXIST "%Path02%\%Database%_%FileName%.rar" (set /a i=%i%+1) echo %Date% %time% - Backup %Database% завершен! Готово архивов: %i% из 3 >> %log% echo. echo Backup complete if /i %i% NEQ 0 (Call :Delete) goto :EoF :Delete :удаляю все что старше... rem if not '%Path01%'=='' ("%forfiles%" /p "%Path01%" /s /m *.rar /d -90 /c "CMD /C del @PATH\@FILE") rem if not '%Path02%'=='' ("%forfiles%" /p "%Path02%" /s /m *.rar /d -90 /c "CMD /C del @PATH\@FILE") rem del "%backup%\*.bcp" del "%backup%\%Database%_%FileName%.bcp" rem %forfiles%" /p "%Backup%" /s /m *.rar /d -%Days% /c "CMD /C del @PATH" rem %forfiles% /P %BACKUP% /m *.rar /d -%Days% /c "CMD /C del @PATH\" goto :eof :CopyProc echo Копирование... %1 copy "%BACKUP%\%Database%_%FileName%.rar" %1 echo Удаления архива ... %1 del "%backup%\%Database%_%FileName%.rar" goto :eof :usage echo. echo Использование: echo BACKUP {Имя базы данных} {Логин} {Пароль} goto :eof :eof |
|||
14
Maxus43
09.09.13
✎
09:54
|
лезь в скуль, смотри какой вид бэкапов там подвешен в джобах "ежечасно", и таки прочитай (1)
|
|||
15
Sammo
09.09.13
✎
09:58
|
Кстати, какой скуль и зачем делаете архив раром?
|
|||
16
Cerera
09.09.13
✎
10:00
|
(14)ну я уже прочитал. буду экспериментировать теперь. сравнивать время работы.
(15)SQL 2008. Ну раром делаем. а чем ещё? |
|||
17
Sammo
09.09.13
✎
10:01
|
(16) В 2008 скуле есть возможность самим скулем делать архивированный бэк-ап.
|
|||
18
Maxus43
09.09.13
✎
10:02
|
хм, вроде фулл, не вижу я причин ускорения совершенно, это нелогично...
(16) 2008 сам сжимает. Т.е. с учетом сжатия ещё быстрей проходит? |
|||
19
Maxus43
09.09.13
✎
10:04
|
есть подозрение что когда вручную делаешь сразу и сжимает, это и есть разница во времени
|
|||
20
Maxus43
09.09.13
✎
10:08
|
зачем вобще кстати делаете не средствами скуля? Мэйнтенс план создай, со всеми регл операциями над БД (реиндексация, обновление статистики...) + бэкапы как раз, с отправкой почты и остальными плюшками
|
|||
21
Cerera
09.09.13
✎
10:12
|
(18)сжатие это отдельное время. его не считаю. у нас видимо 2008 без сжатия создает резернвые копии. потому что раз в 10 Рар сжимает файлы бекапа.
|
|||
22
Cerera
09.09.13
✎
10:14
|
просто всё это настраивал приходящий сис админ а я теперь сам пытаюсь разобраться во всём.
|
|||
23
Cerera
09.09.13
✎
10:14
|
замучался по 20 минут ждать пока из бекапа развернется база в копию.
|
|||
24
Галахад
гуру
09.09.13
✎
10:15
|
(20) Хе-хе.
"Последние изменения : 21.03.2006 г., 19:18" Фига себе, любители старины. |
|||
25
Maxus43
09.09.13
✎
10:17
|
(21) при ручном созданиии бэкапа галка "проверить бэкап" стоит ещё может? на это тоже времени много идёт. Много разных причин может быть
(23) это нормально. Вместо "пытаюсь разобраться" - убрал бы это творчество и сделал номрально по умным книжкам, весь подход этот выдаёт админа-ретрограда убелённого сединой. Не делают так сейчас |
|||
26
Галахад
гуру
09.09.13
✎
10:17
|
Да вообще, смешно ждать восстановление базы размером 10 Гб. по 20 минут.
|
|||
27
Cerera
09.09.13
✎
10:26
|
(25)благодаря тебе сделаю. просто у нас сис админ сам не разбирался в этом. он просто скрипты где то скачал - те CMD файлы. и наскоряк внедрил. потому что он приходящий админ.
теперь я уберу это творчество и настрою всё как положено и прокачаю тем самым экспиренс опять же благодаря тебе всё ) |
|||
28
Cerera
09.09.13
✎
10:26
|
(26)а сколько она должна восстанавливаться?
|
|||
29
Sorm
09.09.13
✎
10:29
|
(0) Дело в том, что "среда" MS MSSQL не более чем оболочка для удобного создания и подачи "консольных" команд серверу.
|
|||
30
Галахад
гуру
09.09.13
✎
10:32
|
(28) Пару минут.
|
|||
31
Chai Nic
09.09.13
✎
10:34
|
(30) Зависит от быстродействия дисковой подсистемы, в первую очередь. И от прочей нагрузки на сервер.
|
|||
32
Maxus43
09.09.13
✎
10:35
|
(29) "среда" - SQL management studio
|
|||
33
Cerera
09.09.13
✎
10:36
|
(30)ну вот значит мои подозрения правильны.
|
|||
34
Maxus43
09.09.13
✎
10:47
|
(33) не напрямую. Много факторов.
Со своего компа если подключишся к sql и файл бэкапа ещё если не на сервере с sql - тоже время. Если настройиьт бэкапирование в джобах - влияние интерактивности будет сведено к минимуму, служба сервера будет сама делать |
|||
35
Cerera
09.09.13
✎
11:01
|
(34)странно что нашь админ этого не учёл.
а вообще для специалиста 1с, знание хорошее SQL сервера на уровне администрирования, повышает его рыночную стоимость? Стоит его отдельно сейчас изучать по книге? |
|||
36
Maxus43
09.09.13
✎
11:04
|
(35) все знания повышают твоё ЧСВ, а со стороны работодателей - в процессе работы увидят, что умеешь решать проблемы.
Или в вакансиях пишут - знание SQL, администрирования. |
|||
37
Галахад
гуру
09.09.13
✎
11:06
|
Знания на уровне администрирования, это примерно 5 страничек с картинками прочитать.
|
|||
38
Maxus43
09.09.13
✎
11:07
|
(37) это только бэкапы? тогда да, всё остальное побольше будет)
|
|||
39
Cerera
09.09.13
✎
11:10
|
(37)я так не думаю. а как же поднятие SQL и вообще я видел толстенные книги про него.
|
|||
40
Галахад
гуру
09.09.13
✎
11:11
|
(39) А что там еще нужно для повседневного использования?
Обновить статистику и дефрагментировать индексы? |
|||
41
Cerera
09.09.13
✎
11:13
|
(40)не ко мне пожалуй вопрос. я же еще не специалист по SQL. но вообще как поднимать его. какие там права раздавать ит .п. как оптимизировать и чтото там с транз акцияи.
|
|||
42
Cerera
09.09.13
✎
11:13
|
(40)а вы нашли новые удаленки?
|
|||
43
Галахад
гуру
09.09.13
✎
11:14
|
(39) По 1С тоже толстенные книги есть. И чего? Народ как-то обходиться не читая их.
(42) Есть немного. Но неудаленок как-то больше нашлось. |
|||
44
Cerera
09.09.13
✎
11:23
|
(43)ну так по 1с с 5ти страниц мало чему научишься ) так же и с SQL. пусть не книга, но мануалы.
|
|||
45
Галахад
гуру
09.09.13
✎
11:31
|
(44) Программировать нет, а установить да. Даже клиент-сервер.
|
|||
46
Cerera
09.09.13
✎
12:14
|
(45)
|
|||
47
Cerera
09.09.13
✎
12:16
|
(45)мне казалось, что администрирование SQL неограничивается только установкой и созданием резервных копий. Наверняка опытный администратор SQL сервера должен уметь многое. В том числе и создание регламентных заданий, уметь команды SQL использовать зная их при этом.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |