Как всё начиналось...
Сначала на десктопе было несколько убунт, потом, когда их глючность окончательно достала, Debian Squeeze, потом я купил новый Asus K73E и поставил туда уже Gentoo. Объединяла эти три системы, как ни странно, венда, установленная в VirtualBox, а ещё больше - установленные туда клиенты покеррумов и Holdem Manager. Собственно было создано два динамических виртуальных диска для венды - один системный на 12 Гб и для всяких там историй рук на 50 Гб.
В общем, занимался я покером, всё было хорошо, иногда не очень(особенно всякие Чёрные Тяпницы и навернувшийся в связи с этим Full Tilt), но в целом неплохо. Тем более, ноут как раз на эти деньги и куплен, на покерные. В какой-то момент случился
алярм с Holdem Manager'ом. Если в двух словах, PokerStars изменили названия столов с fast на Fast, и после этого перестала автоматически вылезать статистика после посадки за стол и отыгрыша первой руки. Приходилось каждый раз лезть в TableFinder.
Слава разрабам HM'а, они довольно оперативно пофиксили бяку, выпустив обновление. Тут то я и встрял по самые помидоры. После установки обновления HM решил, что ему надо обновить базы. И давай обновлять. Минут через двадцать выдаёт ошибку, что месту на диске хана. И не запускается!
Тут то и обнаружилось, что хоть HM и был установлен на большом диске, пострег один хрен был на C:/(или как там они у вас обозначаются в винде). И сожрал нахрен там всё место, разумеется...
Ай што делать што делать!!!
Первым делом полез
уменьшать размеры, да только вот уменьшилось всего на 1 Гб, может чуть больше. Затем вспомнил про совет в виде
вот этого мануала, и решил перенести базу в хост, то есть, в Gentoo.
И снова появились проблемы. В первую очередь, мануал не совсем подходил к моим целям. В нём описывается доступ с компа с вендой к postgresql на компе с linux-системой по локальной сети(или не по локальной, по внешнему IP). А мне то надо было не через
жопу локалку соединить VBox с Gentoo, а по-людски. Как я ни мудохался, порты какие-то пробрасывал, что-то где-то прописывал, ничего не получалось. Решение было найдено совершенно случайно.
А теперь за дело.
Для начала
поставим пострег. Тут западло вот в чём. Установить полностью по мануалу у меня не получилось, так что в принципе можно его не читать, но не помешает ввиду полезной информации(да и небольшой мануал то). Дело в том, что редактирование параметра
DATA_DIR="/var/lib/postgresql/9.0/data"
в
/etc/conf.d/postgresql-9.0 никак не влияло на последующие действия. То есть, при
emerge --config dev-db/postgresql-server:9.0
система всё равно пыталась задействовать как папку для хранения баз именно
/var/lib/postgresql/9.0/data, что меня ну никак не устраивало.
Так что алгоритм действий для установки пострега получился такой:
# emerge dev-db/postgresql-server
Затем я создал прямо в /home папку пострега и кинул на неё симлинк:
# mkdir /home/postreg
# ln -s /home/postreg /var/lib/postgresql
Вместо /home/postreg может быть в принципе что угодно. Плюс, симлинк добавляет гибкости. Например, можно куда-нибудь свободно перемещать эту инфу и затем снова кидать симлинк. Можно создать раздел xfs и кинуть это дело туда, как рекомендуется в оригинальном мануале, но мне это делать лень, и так всё отлично работает.
Теперь завершаем установку пострега:
# emerge --config dev-db/postgresql-server:9.0
Всё, пострег установлен. Запустим сервер:
# /etc/init.d/postgresql-9.0 start
Далее шаги снова частично из
исходного мануала. Но у нас поменьше действий. Создадим нового пользователя:
# su postgres
$ createuser -P -s -R -d ballzofsteel
Enter password for new role: boobs
Enter it again: boobs
$ exit
Теперь у нас есть новый пользователь с именем
ballzofsteel и паролем
boobs. На всякий случай перезапустим пострег:
# /etc/init.d/postgresql-9.0 restart
Теперь лезем в венду, запускаем там командную строку и перемещаемся куда надо(версия пострега может отличаться, у меня была 8.4:
cd "C:\Program Files\PostgreSQL\8.4\bin"
И делаем дамп всех баз:
pg_dumpall.exe --username=postgres > holdem.dump
Поскольку, как я уже говорил ранее, у меня диск C был под завязку забит, у меня команда выглядела чуть иначе:
pg_dumpall.exe --username=postgres > D:\holdem.dump
Собственно
holdem - это и есть имя HM'овской базы. Оно может быть и другим, если Вы его сделали не дефолтным. У меня было дефолтным и имя, и пароль. Пароль -
postgrespass почему-то надо было ввести аж четыре раза: два раза в начале дампа и два в конце. Это нормально, как оказалось. Хотя я из-за этого стремался и раз пять этот дамп переделывал.
Если одолел склероз и не помним ни названия базы, ни пароля, идём в папку HM'а и чуть дальше: "...\Holdem Manager\Config\HoldemManager.config" - в этом файле смотрим и видим третью строчку:
SERVER=10.0.2.2;PORT=5432;UID=holdem;PWD=holdem
Где
UID - название базы, а
PWD - пароль от неё же.
Теперь переместим
holdem.dump в хост-систему. Это уж описывать не буду, делается через "Общие папки". Затем развернём базу:
# su postgres
$ psql -f holdem.dump postgres
$ exit
Теперь делаем так: "Пуск >> Программы >> Postgresql >> Stop Server" или что-то типа того(а лучше сразу удаляем пострег в венде через "Панель управления"), после чего запускаем HM, который не сможет теперь соединиться с сервером и вылезет соответствующее окно. Либо можно просто напрямую его запустить, это DBControlPanel.exe в папке HM'a на диске. И там указываем:
Server Name: 10.0.2.2(вот она, главная хитрость!!!)
Port Name: 5432(оставляем прежним)
Login Name: ballzofsteel
Password: boobs
Затем жмём
Connect, указываем нашу базу базой по умолчанию(
Set as Default) и
Start Holdem Manager.
Готово! Теперь наши базы в гораздо большей безопасности, за пределами вражеской территории!