Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 NBACKUP с перенаправлением  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1071
Господа!

Нет ли у кого-нибудь батника с nbackup(backup) nbackup(restore) без промежуточного файла (с перенаправлением потоков)?
для 2.5

Хочется на ходу иметь рабочую копию БД.
14 ноя 19, 10:08    [22015903]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
o_v_a
Member

Откуда: Тула
Сообщений: 1087
А чё ты задумал-то? Сколько уровней бэкапа?
Если тебе просто иметь рабочую базу на момент бэкапа, то всё равно этот файл надо на диске иметь
Всего три команды так-то
nbackup -L
(копирование файла)
nbackup -F на выполненной копии

Сообщение было отредактировано: 14 ноя 19, 10:13
14 ноя 19, 10:13    [22015905]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
o_v_a
Member

Откуда: Тула
Сообщений: 1087
o_v_a
А чё ты задумал-то? Сколько уровней бэкапа?
Если тебе просто иметь рабочую базу на момент бэкапа, то всё равно этот файл надо на диске иметь
Всего три команды так-то
nbackup -L
(копирование файла)
nbackup -F на выполненной копии

Упс - четыре же. Разблокировку базы забыл.

nbackup -L
(копирование файла)
nbackup -N
nbackup -F на выполненной копии
14 ноя 19, 10:24    [22015918]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28427
o_v_a,

две команды:
nbackup -b 0 база копия
nbackup -f копия
14 ноя 19, 11:52    [22016039]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1071
kdv,

сыпасиба.
я таки должен был это знать.
14 ноя 19, 11:57    [22016049]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9625
 nbackup -b 0 псевдоним stdout|zstd -qo копия.nbk.zst
zstd -qd копия.zst -o база.fdb
nbackup -f псевдоним
Вместо zstd можно использовать и другой компрессор. Главное, чтобы не "тормоз с максимальной степенью сжатия".

Сообщение было отредактировано: 14 ноя 19, 12:18
14 ноя 19, 12:17    [22016068]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1071
Basil A. Sidorov
 nbackup -b 0 псевдоним stdout|zstd -qo копия.nbk.zst
zstd -qd копия.zst -o база.fdb
nbackup -f псевдоним
Вместо zstd можно использовать и другой компрессор. Главное, чтобы не "тормоз с максимальной степенью сжатия".


вау. с перенаправлением и компрессором. в точности, как просил :)
14 ноя 19, 13:04    [22016134]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1071
kdv,

ну и раз все тут такие умные.

почему финальная база меньше исходной?
исходная пустая 73 мб, копия поле F - 70 мб
14 ноя 19, 13:05    [22016137]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10228
pastor,

может потому что в БД есть свободные страницы?
14 ноя 19, 13:10    [22016143]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
o_v_a
Member

Откуда: Тула
Сообщений: 1087
kdv,
открыл мне глаза
пойду скрипты упрощать

Я почему-то считал, что -b 0 даст не базу, а таки бэкап, который надо потом восстанавливать.
14 ноя 19, 13:14    [22016150]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
hvlad
Member

Откуда:
Сообщений: 10697
Basil A. Sidorov
nbackup -b 0 псевдоним stdout|zstd -qo копия.nbk.zst
zstd -qd копия.zst -o база.fdb
nbackup -f псевдоним
Уверен в последней строке ?
14 ноя 19, 13:23    [22016166]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9625
hvlad
Уверен в последней строке ?
Это псевдонимы на двух разных хостах :)
14 ноя 19, 13:48    [22016217]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28427
Basil A. Sidorov,

я не очень понимаю смысла сначала потоком архивировать копию БД, а потом ее разархивировать и переводить в RW.
По мне это лишняя загрузка процессора. Хотя, эффект будет, если диски медленные, а процессор быстрый, и база хоть как-то упаковывается.

Это как бэкап с опцией -e
http://interbase.blogspot.com/2018/09/gbak-b-e.html
14 ноя 19, 13:54    [22016232]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30789

1. бекап с архивацией
2. пересылка на другой хост
3. восстановление на оном хосте.

экономит время и траффик.

Posted via ActualForum NNTP Server 1.5

14 ноя 19, 14:02    [22016240]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1071
o_v_a
kdv,
открыл мне глаза
пойду скрипты упрощать

Я почему-то считал, что -b 0 даст не базу, а таки бэкап, который надо потом восстанавливать.


не я один поезда под откос пускаю
14 ноя 19, 14:06    [22016246]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1071
Мимопроходящий

1. бекап с архивацией
2. пересылка на другой хост
3. восстановление на оном хосте.

экономит время и траффик.


хоть чем-то занимает оставшиеся 11 ядер
14 ноя 19, 14:07    [22016248]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9625
kdv
я не очень понимаю смысла сначала потоком архивировать копию БД, а потом ее разархивировать и переводить в RW.
Типичная ситуация, в которой делается "nbackup -b 0" - передача копии базы на другой хост. Быстрый компрессор позволяет сократить время копирования. Это, в свою очередь заметно уменьшает время, на которое требуется лочить базу.
zstd даёт весьма приличную степень сжатия и упаковку со скоростью до сотен мегабайт в секунду. Даже в гигабитной сети время для "упаковать, scp/nfs и распаковать" будет заметно меньше, чем "просто копировать".
Если на источнике нет места, а приёмник доступен по nfs/smb, то получить в гигабитной сети копирование на скорости 200-300 МБ/сек - вполне реально. Если на приёмнике есть http/ftp, то добавив в конвеейр curl, можно получить такую же скорость.

P.S.
Именно "nbackup -b 0 stdout|компрессор" нужен редко - достаточно "nbackup -lock, упаковать файл, nbackup -unlock", но если хочется в потоке - оно именно так и работает.
14 ноя 19, 15:18    [22016353]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
inoremap
Member

Откуда:
Сообщений: 53
Basil A. Sidorov
Быстрый компрессор позволяет сократить время копирования. Это, в свою очередь заметно уменьшает время, на которое требуется лочить базу.

Время блокировки базы можно уменьшить если база данных расположена на файловой системе с поддержкой клонирования блоков (zfs, btrfs, xfs, ReFS) - копирование файла базы командой cp --reflink, между nbackup -lock и nbackup -unlock, будет почти мгновенным.
16 ноя 19, 20:02    [22017929]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28427
inoremap,

в этом случае после -unlock сразу начнутся тормоза?
16 ноя 19, 20:23    [22017937]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8437
kdv
inoremap,

в этом случае после -unlock сразу начнутся тормоза?
Тормоза начнутся сразу, как положишь базу на brtfs. Плавали знаем.
16 ноя 19, 22:38    [22017975]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
inoremap
Member

Откуда:
Сообщений: 53
kdv
inoremap,

в этом случае после -unlock сразу начнутся тормоза?

Хороший вопрос, быстротест подтвердил падение скорости записи примерно в 2 раза.

База для теста:
create database '/var/tmp/test.fdb' page_size 8192 user 'SYSDBA' password 'm';
create table test(id integer not null primary key, val double precision);
set term ^ ;
execute block as declare variable i integer; begin delete from test; i = 0; while (i < 1000000) do begin i = i + 1; insert into test values(:i, rand()); end end^
commit ^
exit ^

тест записи:
time (echo 'update test set val = rand(); commit;' | isql-fb -u SYSDBA -p m localhost:/var/tmp/test.fdb)

результаты:

0m15,801s
0m35,838s
0m37,781s
time cp --reflink=always test.fdb test-r0.fdb # 0m0,007s
0m55,574s
0m39,688s
0m39,192s
time rm -f test-r0.fdb # 0m0,006s
0m39,255s
0m38,928s
0m38,400s
time cp --reflink=always test.fdb test-r0.fdb # 0m0,024s
1m0,041s
0m40,366s
0m39,914s

интересно что при выключеном forced writes скорость не падает:

0m10,044s
0m17,530s
0m17,517s
time cp --reflink=always test.fdb test-r0.fdb # 0m0,170s
0m17,510s
0m17,566s
0m17,563s
time rm -f test-r0.fdb # 0m0,007s
0m17,554s
0m17,610s
0m17,584s
time cp --reflink=always test.fdb test-r0.fdb # 0m0,170s
0m17,555s
0m17,562s
0m17,561s
time sync # 0m0,139s

файловая система - xfs.
17 ноя 19, 00:06    [22018017]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
hvlad
Member

Откуда:
Сообщений: 10697
inoremap
быстротест подтвердил падение скорости записи примерно в 2 раза.
Ну так copy on write начинает работать ?

inoremap
интересно что при выключеном forced writes скорость не падает
Отложенная запись в файловый кеш амортизирует ?
Думаю, с другими объёмами БД оно было бы заметнее.

PS Не в 2 раза, а на 50% (40сек -> 60 сек), но не суть
17 ноя 19, 00:17    [22018021]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
inoremap
Member

Откуда:
Сообщений: 53
hvlad
inoremap
интересно что при выключеном forced writes скорость не падает
Отложенная запись в файловый кеш амортизирует ?
Думаю, с другими объёмами БД оно было бы заметнее.

Тогда sync выполнялся бы дольше.

Если предположить что размеры страниц которые записывает firebird не совпадают с размерами блоков с которыми работает CoW, то при включенном forced writes CoW должен копировать весь блок при записи хотя бы одной страницы, но если forced writes выключен, то CoW может копировать блок только когда в него будут записаны все страницы, в этом случае скорость не будет сильно отличаться от скорости обычной записи.
17 ноя 19, 00:50    [22018030]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1721
Ivan_Pisarevsky
Тормоза начнутся сразу, как положишь базу на brtfs. Плавали знаем.

да *** такое "счастье"

https://arxiv.org/pdf/1707.08514.pdf

Картинка с другого сайта.

Сообщение было отредактировано: 19 ноя 19, 09:15
19 ноя 19, 08:29    [22019303]     Ответить | Цитировать Сообщить модератору
 Re: NBACKUP с перенаправлением  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9625
Дегтярев Евгений
да *** такое "счастье"
Текст надо читать, а не только картинки разглядывать.
В исследование весь файловый ввод-вывод делается блоками по 4КБ с вызовом fsync() после каждой операции.
Если брать более типичные для FB 16КБ, то картина делается уже не такой страшной.

К сообщению приложен файл. Размер - 8Kb
19 ноя 19, 09:37    [22019337]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Firebird, InterBase Ответить