A
A
Alexey Kharchenko2017-02-01 21:11:03
firebird
Alexey Kharchenko, 2017-02-01 21:11:03

Gbak and strange backup/restor speed. What's the matter?

The question concerns the backup and subsequent verification of the copy (by restoring). Here is what is in the log:
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
The strange thing is that INFDATA.DAT is about 8 gigs, INFCRMDATA.DAT is about 2 gigs. If the first one is processed for a plausibly long time (about 50 minutes), then the second one takes 15 minutes (well, that's okay, it's approximately the same). And recovery: the first 1.5 hours, the second 1 minute.
The machine is an ordinary desktop, acting as a server, on which there are 4 bases, and 1-2 operators are connected. Winxp OS (I didn't set it all up, but sometimes you have to accompany it, as it is), C and D disks are on the same physical disk (something like ST500DMxxx). Even if INFCRMDATA.DAT is restored without delays from the processor side, then the average read and write speed will be 33MB / s. Could this be the result of some kind of file cache? There is one caveat - the same INFCRMDATA.DAT was recently restored from a backup made by gbak, and was planted to replace the broken one. The rest of the files have never changed.
Backup and verification is performed by the script:

@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

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question