Всем привет. С вами снова sandr1x. Сегодня я, как и планировал, собираюсь рассказать вам о трёх основных способах хранения и резервного копирования самого дорого, что у вас есть — базы раздач. Всеми тремя пользовался сам, поэтому и решил поделиться этим на примере собственного опыта, так сказать. Ну что ж, поехали.

Существует два типа людей:

те, кто делает бэкапы и те, кто уже их делает.

Три брата-акробата

Итак, сначала вкратце опишу каждый метод, а затем уже подробно остановлюсь на каждом из них. Первый — хранение истории рук в так называемом «сыром» виде, в виде текстовых файлов, генерируемых покер-румом. Этот способ будет удобен тем, кто периодически «чистит» свою текущую базу и время от времени скопом импортирует туда раздачи из архива. Второй способ заключается в полном резервном копировании базы и её конвертировании в специальный сжатый файл для последующего быстрого (особенно по сравнению с обычным импортом текстовых файлов) развёртывания на любой другой машине. Use-case данного сценария, думаю, объяснять не требуется. Третий способ — наиболее изощрённый и ресурсозатратный. Речь пойдёт об отдельном хостинге.

Dropbox

Начнём по порядку, с первого варианта. Суть его заключается в моментальном и непрерывном процессе копирования раздач, которые вы сыграли, что называется — «на лету». Прямиком в папку в виде обыкновенных текстовых файлов. Чтобы начать его применять, нужно проделать три несложных шага:

  1. Скачать и установить приложение сервиса Dropbox, завоевавшие огромную популярность и доверие пользователей за последние пару лет. Подробнее о том, что это за зверь и с чем его следует употреблять, можно прочитать здесь. При установке желательно указать для выборочной синхронизации в разделе Advanced папку Private, недоступную по внешним ссылкам, в которую мы и будем синхронизировать наши раздачи.

  1. Указать в настройках покерного клиента (в моём случае — это Pokerstars) полный путь к истории рук. Разумеется, в папке с Dropbox'ом. У меня этот путь выглядит так: D: Dropbox Private PokerBase HandHistory для кэша и D: Dropbox Private PokerBase TournSummary для турниров. Сама настройка находится в клиенте по адресу Options → Instant Hand History Options и Tournament Summary Options.

  1. Указать в настройках HoldemManager (я всё ещё использую олдскульную версию) путь к истории раздач и архиву всё в той же самой директории Dropbox'а. Опцию можно найти в разделе Import под кнопкой Click here to add auto-import folders. Там же рекомендуется удалить другие пути. То есть, нам нужно переназначить архивацию рук на Dropbox. Наконец, в свойствах импорта новых директорий необходимо выставить новый путь до архива HMArchive (с галочкой) по кнопке Edit.

SQL Dump

За этими, на первый взгляд, страшными словами стоят две простых, на самом-то деле, операции. Они называются pg_dump и pg_restore. Первая — для резервного копирования вашей базы. Вторая, соответственно, — для последующего её восстановления из сжатого архивного файла, который получится в результате выполнения pg_dump. Напомню, что выполнять их нужно в командной строке (Пуск → Выполнить → cmd, затем перейти в папку с исполняемыми файлами командой cd "C: Program Files PostgreSQL x bin" где x — версия, обычно девятка), а относятся они непосредственным образом к PostgreSQL, которая используется в HoldemManager в качестве базы данных. Синтаксис у команд следующий:

  1. Копирование. pg_dump -U postgres -Z x -f copyname dbname

    Где dbname — это имя базы данных, которую мы собираемся скопировать. В случае с HoldemManager это обычно и есть holdemmanager; copyname — это уже задаваемое пользователем имя нового файла, в котором и будет храниться эта копия. Например, MyBase; опция -U postgres здесь обозначает пользователя базы данных, из под которого выполняется само копирование, а x после -Z - это степень сжатия от 0 до 9 (9 — самый сжатый вид). В результате резервная сжатая копия вашей базы окажется в той же папке, где лежит сам pg_dump.exe (в папке bin директории PostgreSQL).

  1. Восстановление. Принцип тот же. pg_restore -U postgres -d holdemmanager MyBase. Postgres — имя пользователя базы (по умолчанию), holdemmanager — имя базы, с которой соединяемся для последующей выгрузки, MyBase — имя файла с архивом базы, из которой, собственно, и будет происходить восстановление.

Таким образом, можно быстро свернуть-развернуть готовую базу с историей рук на любой машине. Достаточно лишь иметь один файлик с архивом. Также к преимуществам способа стоит отнести возможность высокой компрессии, задаваемой параметром -Z, а также относительно небольшое время копирования-восстановления по сравнению с обычным экспортом-импортом раздач вручную. Иногда при копировании-восстановлении таким методом приходится указывать параметры типа -h (адрес хоста), -p (порт базы), а также пароль к базе данных. Подробнее с полным синтаксисом можно ознакомиться, если набрать в командной строке, находясь в директории с этими исполняемыми файлами, команды pg_dump --help и pg_restore --help соответственно. 

Для более ленивых товарищей существует и графическая, но немного менее гибкая в плане настройки «обёртка» в виде а) встроенной системы копирования HoldemManager (File → Backup & Restore) и б) штатных средств резервного копирования баз pgAdmin, который обычно идёт вместе с PostgreSQL при установке HoldemManager (Пуск → Программы → PostgreSQL → pgAdmin). Интерфейс там, в целом, интуитивно понятный, поэтому подробно расписывать, по-моему смысла нет. Скрины прилагаются:

Ну вот и подошёл черёд третьего способа для самых взыскательных господ.

Выделенный сервер

Здесь писать много не буду. Суть заключается в том, чтобы оттопырить себе где-нибудь сервер (можно даже без домена). И сразу начинать импорт раздач прямо туда. Делается это на начальном этапе запуска HoldemManager или в настройке обращения к базе данных через Options → Database Management, где в поле Server Name мы вписываем IP нашего собственного удалённого (или не очень) сервера, вбиваем соответствующие данные для входа. Предварительно, разумеется, нужно будет поднять серверную инсталляцию PostgreSQL на нашей удалённой машинке, но это уже тема для отдельного поста. Если интересно — пишите в комментариях, могу осветить (хотя ничего сверхъестественного там нет).

В итоге все ваши раздачи будут моментально попадать в «облако», причём храниться там будут, понятное дело, не в «сыром» виде, как это было в случае с Dropbox'ом, а сразу в формате HoldemManager, как если бы база лежала не удалённо, а прямо на жёстком диске вашего локального компьютера. Преимущество этого способа заключается в том, что вся ваша база целиком будет доступна вам из любой точки планеты, при этом вам не нужно будет таскать с собой никаких файлов или запоминать какие-нибудь команды. Всё, что вам понадобится для того, чтобы развернуть своё «рабочее место покериста» в данном случае — это ноутбук и высокоскоростное интернет-соединение. На всякий случай подчеркнул это слово, потому что для комфортной работы с удалённой базой необходима хорошая скорость доступа к ней для быстрого чтения/записи (во время гринда, особенно на большом количестве столов).

На этом можно считать мой краткий обзор завершённым. Надеюсь, что вам понравилось и хоть кому-нибудь да пригодится вся эта информация. Если вы знаете о каких-то более других способах резервного копирования — то буду рад услышать ваши голоса в комментариях. Спасибо за внимание.

P.S.: Прошу прощения за отсутствие слэшей в адресах примеров. Дело в том, что парсер Покероффа, судя по всему, экранирует эти символы, как потенциальное опасные. В любом случае, на скринах всё наглядно видно. Спасибо за понимание.

Всем PSOB'а и бэкапов.

- sandr1x