Задать вопрос

Gbak и странная скорость бэкапа/рестора. В чём дело?

Вопрос касается выполнения бэкапа и последующей проверки копии (путём восстановления). Вот что в логе:
2017-01-29 03:19:37 starting backup 1
2017-01-29 04:11:46 INFDATA.DAT 1 Backup OK
2017-01-29 04:11:51 INFINITYUSERS.DAT 1 Backup OK
2017-01-29 04:26:16 INFCRMDATA.DAT 1 Backup OK
2017-01-29 04:27:47 ADDRESS.DAT 1 Backup OK
2017-01-29 05:53:45 INFDATA.DAT 1 Recovery test OK
2017-01-29 05:53:54 INFINITYUSERS.DAT 1 Recovery test OK
2017-01-29 05:55:07 INFCRMDATA.DAT 1 Recovery test OK
2017-01-29 05:55:55 ADDRESS.DAT 1 Recovery test OK
Странность в том, что INFDATA.DAT около 8 гигов, INFCRMDATA.DAT около 2 гигов. Если первый обрабатывается правдоподобно долго (около 50 минут), то вот второй 15 минут (ну это ещё ладно, примерно похоже). А восстановление: первый 1,5 часа, второй 1 минуту.
Машина обыкновенная десктопная, выполняющая роль сервера, на котором 4 базы, и подключаются 1-2 оператора. ОС winxp (не я это всё ставил, но иногда приходится сопровождать, уж как есть), диск C и D - на одном физическом диске (что-то вроде ST500DMxxx). Даже если INFCRMDATA.DAT восстанавливается без задержек со стороны процессора, то средняя скорость чтения и записи будет 33МБ/с. Не может ли это быть результатом какого-нибудь файлового кэша? Есть один нюанс - тот самый INFCRMDATA.DAT недавно восстанавливался из резервной копии, сделанной gbak, и был подложен взамен битого. Остальные файлы ни разу так не подменялись.
Бэкап и проверку выполняет скрипт:
@echo off
SetLocal EnableExtensions
set db1="C:\Program Files\IntelTelecom\Infinity Contact-center\Servers\ServerBD\Data\INFDATA.DAT"
set db2="C:\Program Files\IntelTelecom\Infinity Contact-center\Servers\ServerUsers\Data\INFINITYUSERS.DAT"
set db3="C:\Program Files\IntelTelecom\Infinity Contact-center\Servers\ServerCRMSBL\Data\INFCRMDATA.DAT"
set db4="C:\Program Files\IntelTelecom\Infinity Contact-center\Servers\ServerCRMSBL\Data\ADDRESS.DAT"

SET gbak="C:\Program Files\Firebird\Firebird_1_5\bin\gbak.exe"
SET curl="D:\inf_backup\script\curl.exe"
SET backup_dir=D:\inf_backup\

set DW=%1
if exist "%backup_dir%INFDATA%DW%.log" del /F /Q "%backup_dir%INFDATA%DW%.log"
if exist "%backup_dir%INFINITYUSERS%DW%.log" del /F /Q "%backup_dir%INFINITYUSERS%DW%.log"
if exist "%backup_dir%INFCRMDATA%DW%.log" del /F  /Q "%backup_dir%INFCRMDATA%DW%.log"
if exist "%backup_dir%ADDRESS%DW%.log" del /F  /Q "%backup_dir%ADDRESS%DW%.log"
if exist "%backup_dir%INFDATA%DW%.BAK" del /F  /Q "%backup_dir%INFDATA%DW%.BAK"
if exist "%backup_dir%INFINITYUSERS%DW%.BAK" del /F  /Q "%backup_dir%INFINITYUSERS%DW%.BAK"
if exist "%backup_dir%INFCRMDATA%DW%.BAK" del /F  /Q "%backup_dir%INFCRMDATA%DW%.BAK"
if exist "%backup_dir%ADDRESS%DW%.BAK" del /F  /Q "%backup_dir%ADDRESS%DW%.BAK"

echo starting backup...
%curl% "http://******/index.php?start=1&dow=%DW%"  >NUL  2>NUL

%gbak%  -v -b -g %db1% "%backup_dir%INFDATA%DW%.BAK" -USER "sysdba" -PASS "masterke" -y "%backup_dir%INFDATA%DW%.log"
%curl% "http://******/index.php?fname=INFDATA.DAT&dow=%DW%&b=%ERRORLEVEL%"  >NUL  2>NUL

%gbak%  -v -b -g %db2% "%backup_dir%INFINITYUSERS%DW%.BAK" -USER "sysdba" -PASS "masterke" -y "%backup_dir%INFINITYUSERS%DW%.log"
%curl% "http://******/index.php?fname=INFINITYUSERS.DAT&dow=%DW%&b=%ERRORLEVEL%"  >NUL  2>NUL

%gbak%  -v -b -g %db3% "%backup_dir%INFCRMDATA%DW%.BAK" -USER "sysdba" -PASS "masterke" -y "%backup_dir%INFCRMDATA%DW%.log"
%curl% "http://******/index.php?fname=INFCRMDATA.DAT&dow=%DW%&b=%ERRORLEVEL%"  >NUL  2>NUL

%gbak%  -v -b -g %db4% "%backup_dir%ADDRESS%DW%.BAK" -USER "sysdba" -PASS "masterke" -y "%backup_dir%ADDRESS%DW%.log"
%curl% "http://******/index.php?fname=ADDRESS.DAT&dow=%DW%&b=%ERRORLEVEL%"  >NUL  2>NUL


echo starting restore...
if exist "%backup_dir%INFDATA%DW%.DAT" del /F  /Q "%backup_dir%INFDATA%DW%.DAT"
if exist "%backup_dir%INFINITYUSERS%DW%.DAT" del /F  /Q "%backup_dir%INFINITYUSERS%DW%.DAT"
if exist "%backup_dir%INFCRMDATA%DW%.DAT" del /F  /Q "%backup_dir%INFCRMDATA%DW%.DAT"
if exist "%backup_dir%ADDRESS%DW%.DAT" del /F  /Q "%backup_dir%ADDRESS%DW%.DAT"
if exist "%backup_dir%INFDATA%DW%r.log" del /F  /Q "%backup_dir%INFDATA%DW%r.log"
if exist "%backup_dir%INFINITYUSERS%DW%r.log" del /F  /Q "%backup_dir%INFINITYUSERS%DW%r.log"
if exist "%backup_dir%INFCRMDATA%DW%r.log" del /F  /Q "%backup_dir%INFCRMDATA%DW%r.log"
if exist "%backup_dir%ADDRESS%DW%r.log" del /F  /Q "%backup_dir%ADDRESS%DW%r.log"

%gbak%  -c "%backup_dir%INFDATA%DW%.BAK" "%backup_dir%INFDATA%DW%.DAT" -USER "sysdba" -PASS "masterke" -v -y "%backup_dir%INFDATA%DW%r.log"
%curl% "http://******/index.php?fname=INFDATA.DAT&dow=%DW%&r=%ERRORLEVEL%"  >NUL  2>NUL

%gbak%  -c "%backup_dir%INFINITYUSERS%DW%.BAK" "%backup_dir%INFINITYUSERS%DW%.DAT" -USER "sysdba" -PASS "masterke" -v -y "%backup_dir%INFINITYUSERS%DW%r.log"
%curl% "http://******/index.php?fname=INFINITYUSERS.DAT&dow=%DW%&r=%ERRORLEVEL%"  >NUL  2>NUL

%gbak%  -c "%backup_dir%INFCRMDATA%DW%.BAK" "%backup_dir%INFCRMDATA%DW%.DAT" -USER "sysdba" -PASS "masterke" -v -y "%backup_dir%INFCRMDATA%DW%r.log"
%curl% "http://******/index.php?fname=INFCRMDATA.DAT&dow=%DW%&r=%ERRORLEVEL%"  >NUL  2>NUL

%gbak%  -c "%backup_dir%ADDRESS%DW%.BAK" "%backup_dir%ADDRESS%DW%.DAT" -USER "sysdba" -PASS "masterke" -v -y "%backup_dir%ADDRESS%DW%r.log"
%curl% "http://******/index.php?fname=ADDRESS.DAT&dow=%DW%&r=%ERRORLEVEL%"  >NUL  2>NUL

:exit_arch
if exist "%backup_dir%INFDATA%DW%.BAK" del /F  /Q "%backup_dir%INFDATA%DW%.BAK"
if exist "%backup_dir%INFINITYUSERS%DW%.BAK" del /F  /Q "%backup_dir%INFINITYUSERS%DW%.BAK"
if exist "%backup_dir%INFCRMDATA%DW%.BAK" del /F  /Q "%backup_dir%INFCRMDATA%DW%.BAK"
if exist "%backup_dir%ADDRESS%DW%.BAK" del /F  /Q "%backup_dir%ADDRESS%DW%.BAK"

:script_exit

exit
  • Вопрос задан
  • 162 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы