Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / NBACKUP с перенаправлением / 25 сообщений из 48, страница 1 из 2
14.11.2019, 10:08
    #39888923
pastor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
Господа!

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

Хочется на ходу иметь рабочую копию БД.
...
Рейтинг: 0 / 0
14.11.2019, 10:13
    #39888924
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
А чё ты задумал-то? Сколько уровней бэкапа?
Если тебе просто иметь рабочую базу на момент бэкапа, то всё равно этот файл надо на диске иметь
Всего три команды так-то
nbackup -L
(копирование файла)
nbackup -F на выполненной копии
...
Рейтинг: 0 / 0
14.11.2019, 10:24
    #39888932
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
o_v_a
А чё ты задумал-то? Сколько уровней бэкапа?
Если тебе просто иметь рабочую базу на момент бэкапа, то всё равно этот файл надо на диске иметь
Всего три команды так-то
nbackup -L
(копирование файла)
nbackup -F на выполненной копии

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

nbackup -L
(копирование файла)
nbackup -N
nbackup -F на выполненной копии
...
Рейтинг: 0 / 0
14.11.2019, 11:52
    #39888974
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
o_v_a,

две команды:
nbackup -b 0 база копия
nbackup -f копия
...
Рейтинг: 0 / 0
14.11.2019, 11:57
    #39888978
pastor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
kdv,

сыпасиба.
я таки должен был это знать.
...
Рейтинг: 0 / 0
14.11.2019, 12:17
    #39888988
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
Код: plaintext
1.
2.
 nbackup -b 0 псевдоним stdout|zstd -qo копия.nbk.zst
 zstd -qd копия.zst -o база.fdb
 nbackup -f псевдоним
Вместо zstd можно использовать и другой компрессор. Главное, чтобы не "тормоз с максимальной степенью сжатия".
...
Рейтинг: 0 / 0
14.11.2019, 13:04
    #39889030
pastor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
Basil A. Sidorov
Код: plaintext
1.
2.
 nbackup -b 0 псевдоним stdout|zstd -qo копия.nbk.zst
 zstd -qd копия.zst -o база.fdb
 nbackup -f псевдоним
Вместо zstd можно использовать и другой компрессор. Главное, чтобы не "тормоз с максимальной степенью сжатия".


вау. с перенаправлением и компрессором. в точности, как просил :)
...
Рейтинг: 0 / 0
14.11.2019, 13:05
    #39889033
pastor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
kdv,

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

почему финальная база меньше исходной?
исходная пустая 73 мб, копия поле F - 70 мб
...
Рейтинг: 0 / 0
14.11.2019, 13:10
    #39889038
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
pastor,

может потому что в БД есть свободные страницы?
...
Рейтинг: 0 / 0
14.11.2019, 13:14
    #39889042
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
kdv,
открыл мне глаза
пойду скрипты упрощать

Я почему-то считал, что -b 0 даст не базу, а таки бэкап, который надо потом восстанавливать.
...
Рейтинг: 0 / 0
14.11.2019, 13:23
    #39889052
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
Basil A. Sidorov
Код: plaintext
1.
2.
nbackup -b 0  псевдоним  stdout|zstd -qo копия.nbk.zst
 zstd -qd копия.zst -o база.fdb
 nbackup -f  псевдоним 
Уверен в последней строке ?
...
Рейтинг: 0 / 0
14.11.2019, 13:48
    #39889080
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
hvlad
Уверен в последней строке ?
Это псевдонимы на двух разных хостах :)
...
Рейтинг: 0 / 0
14.11.2019, 13:54
    #39889090
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
Basil A. Sidorov,

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

Это как бэкап с опцией -e
http://interbase.blogspot.com/2018/09/gbak-b-e.html
...
Рейтинг: 0 / 0
14.11.2019, 14:02
    #39889095
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
1. бекап с архивацией
2. пересылка на другой хост
3. восстановление на оном хосте.

экономит время и траффик.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.11.2019, 14:06
    #39889098
pastor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
o_v_a
kdv,
открыл мне глаза
пойду скрипты упрощать

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


не я один поезда под откос пускаю
...
Рейтинг: 0 / 0
14.11.2019, 14:07
    #39889099
pastor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
Мимопроходящий

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

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


хоть чем-то занимает оставшиеся 11 ядер
...
Рейтинг: 0 / 0
14.11.2019, 15:18
    #39889150
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
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", но если хочется в потоке - оно именно так и работает.
...
Рейтинг: 0 / 0
16.11.2019, 20:02
    #39890055
inoremap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
Basil A. Sidorov
Быстрый компрессор позволяет сократить время копирования. Это, в свою очередь заметно уменьшает время, на которое требуется лочить базу.

Время блокировки базы можно уменьшить если база данных расположена на файловой системе с поддержкой клонирования блоков (zfs, btrfs, xfs, ReFS) - копирование файла базы командой cp --reflink, между nbackup -lock и nbackup -unlock, будет почти мгновенным.
...
Рейтинг: 0 / 0
16.11.2019, 20:23
    #39890060
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
inoremap,

в этом случае после -unlock сразу начнутся тормоза?
...
Рейтинг: 0 / 0
16.11.2019, 22:38
    #39890085
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
kdv
inoremap,

в этом случае после -unlock сразу начнутся тормоза?
Тормоза начнутся сразу, как положишь базу на brtfs. Плавали знаем.
...
Рейтинг: 0 / 0
17.11.2019, 00:06
    #39890104
inoremap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
kdv
inoremap,

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

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

База для теста:
Код: sql
1.
2.
3.
4.
5.
6.
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 ^


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

результаты:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
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 скорость не падает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
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.
...
Рейтинг: 0 / 0
17.11.2019, 00:17
    #39890107
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
inoremap
быстротест подтвердил падение скорости записи примерно в 2 раза.
Ну так copy on write начинает работать ?

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

PS Не в 2 раза, а на 50% (40сек -> 60 сек), но не суть
...
Рейтинг: 0 / 0
17.11.2019, 00:50
    #39890114
inoremap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
hvlad
inoremap
интересно что при выключеном forced writes скорость не падает
Отложенная запись в файловый кеш амортизирует ?
Думаю, с другими объёмами БД оно было бы заметнее.

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

Если предположить что размеры страниц которые записывает firebird не совпадают с размерами блоков с которыми работает CoW, то при включенном forced writes CoW должен копировать весь блок при записи хотя бы одной страницы, но если forced writes выключен, то CoW может копировать блок только когда в него будут записаны все страницы, в этом случае скорость не будет сильно отличаться от скорости обычной записи.
...
Рейтинг: 0 / 0
19.11.2019, 08:29
    #39890882
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
Ivan_Pisarevsky
Тормоза начнутся сразу, как положишь базу на brtfs. Плавали знаем.

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

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

...
Рейтинг: 0 / 0
19.11.2019, 09:37
    #39890908
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NBACKUP с перенаправлением
Дегтярев Евгений
да *** такое "счастье"
Текст надо читать, а не только картинки разглядывать.
В исследование весь файловый ввод-вывод делается блоками по 4КБ с вызовом fsync() после каждой операции.
Если брать более типичные для FB 16КБ, то картина делается уже не такой страшной.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / NBACKUP с перенаправлением / 25 сообщений из 48, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]