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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

в этом случае после -unlock сразу начнутся тормоза?
Тормоза начнутся сразу, как положишь базу на brtfs. Плавали знаем.
...
Рейтинг: 0 / 0
NBACKUP с перенаправлением
    #39890104
inoremap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
NBACKUP с перенаправлением
    #39890107
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inoremap
быстротест подтвердил падение скорости записи примерно в 2 раза.
Ну так copy on write начинает работать ?

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

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

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

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

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

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

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


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