Установка/переустановка PostgreSQL

Тема в разделе "Покерный софт", создана пользователем Lexa_kartavii, 26 сен 2013.

  1. Lexa_kartavii

    Lexa_kartavii стаж 20 лет

    0
    52
    +6 / -0
    Настоящий текст является изложением на русском инструкций с сайта Holdem Manager (далее по тексту — ХМ), которые там лежат на английском и с картинками. Но действия при установке Postgre в связке с PokerTracker практически точно такие же. Ссылки на оригиналы — по ходу дела. Сведения, относящиеся эксклюзивно к ПТ/ХМ, оговорены в тексте особо.

    Сначала немного теории:
    Сама по себе PostgreSQL - просто менеджер баз данных, система управления ими. Она на компе одна. А вот собственно баз данных, которыми она управляет, может быть сколько хочешь: и от ХМ, и от ПТ, и от еще чего, и даже не по одной каждого вида. Причем все они, базы от разных программ - разные. Как ее спроектировали программеры, такая и есть. И базы ПТ отличаются от баз ХМ. Для ХМ1 \ ПТ базы физически расположены в папке Data. Для ХМ2 там - только часть информации, но об этом см FAQ по ХМ2.
    Доступная аналогия: вот есть подъемный кран на стройплощадке. Он менеджирует перемещение и прочие действия со стройматериалами. Это PostgreSQL. А вот что можно построить из тех кирпичей и бетона - дело архитектора. Хоть баню, хоть стадион. А крану все равно, что поднимать.

    Важные замечания
    1. Для работы программ покерной статистики требуется установить не только саму эту программу, но также систему управления (менеджер) базами данных PostgreSQL. Это бесплатная система, сделанная по принципу так называемого «открытого кода». (Это значит, что каждый желающий может посмотреть, как она сделана «внутри», если, конечно, знает, куда и как смотреть — в отличие от, скажем, программ Майкрософта).
    1а. Минимальная версия Postgre, с которой работают все вышеупомянутые програмы, = 8.3.10. В частности, ХМ раньше поставлялся с 8.4.7 (в версиях начиная с 2.7697 скачивается самый свежий установщик 8.4.x с сайта postgres), ПТ3 — вообще без Постгри в дистрибутиве (типа "скачай сам").
    Взять дистрибутив Postgre можно или на сайтах производителей программ статистики, или собственно на сайте Постгри (английском) или русском.
    И еще: не надо гоняться за "новизной". Posgres версии 9.1 и более свежие полномасштабно для работы с ХМ\ПТ не тестировались. Более того, разработчики ПТ вообще заявили, что 9.1 и 9.2 - не поддерживаются. И, кстати, повышения быстродействия по сравнению с более старыми на обычных компьютерах, которые есть у пользователей, практически не заметно. Даже так: на 32-битных системах 8.4 быстрее, чем все девятые.
    Так что максимальный номер версии postgres, с которой не должно быть проблем = 9.0. Кроме того: попытка перейти на другую версию postgres (в варианте "было 8.4 - поставлю 9") автоматически означает создание новой базы данных, потому что базу от старой версии новая не увидит.Если вы все же соберетесь поставить postgres 9.х - то на 64-битную Виндовс надо ставить именно 64-битную postgres 9. "Восьмых" версий это уточнение не касается (просто потому что они все 32-битные).
    2. Оптимально сначала ставить Postgre, а потом уже — ХМ/ПТ.
    3. Для работы базы данных обязательно нужно, чтобы т.н. «кластер базы» располагался на диске с файловой системой NTFS. А собственно программным файлам — это всё равно, их и FAT32 устроит. Если вы планируете «рассредоточить» установку по разным дискам (логическим или физическим), то имейте это в виду. Вин7\8 как раз таковую NTFS и имеет.
    Изменить файловую систему с FAT32 на NTFS достаточно просто штатными средствами Windows (см в конце статьи).
    4. Если по каким-то причинам предыдущая установка Postgre на компьютере вас не устраивает, инструкция по корректной ее деинсталляции — чуть ниже.
    5. Пользователям Win7\Vista\Win8: Для работы Postgresql и, соответственно, ХМ/ПТ требуется отключить UAC (User Access Control) — инструкция в конце статьи - и запускать программы по правому клику на файл "от администратора". Даже если пользователь Вин7\Висты имеет права админа, этого факта мало. И полностью отключить (а лучше вообще временно деинсталлировать) антивирусы и файерволлы. Потом вернете, соответственно настроив (чтобы разрешали нашим программам работать).
    6. Для корректной установки программ требуется, чтобы пути к папкам, где они (программы и/или данные) будут находиться, не содержали неанглийских символов. И имя компьютера/домена тоже. Если что не так - обязательно переименовать, иначе Posgres не установится.
    6a) И обязательно - имя пользователя Виндовс должно содержать только английские сивмолы (или цифры). Подробности см. ниже.
    7. Перед установкой PostgreSQL нужно запустить службу Secondary Logon (в русской версии "Вторичный вход в систему"), если она еще не запущена. Для этого (в любой версии Виндовс) нужно зайти в Панель управления > Администрирование > Службы, найти в списке нужную службу, правый клик мышью на ней, пункт меню "Свойства". . Тип запуска ставим "Авто", после чего жмем "Запустить".
    8. Установка Postgres на компе — одна, проги пользуются ею каждая сама по себе, и другим не мешают. В принципе, можно даже все их запустить одновременно — вот только не каждый компутер такое выдержит (зато потом может отомстить за издевательство). Базы данных у каждой программы, естественно, свои. И они взаимонепонимаемы — у них и структура разная (таблицы и прочее).
     
  2. Lexa_kartavii

    Lexa_kartavii стаж 20 лет

    0
    52
    +6 / -0
    Установка PostgreSQL
    Текст на английском здесь
    Далее описан процесс установки версии 8.3.х. Для 8.4 - почти то же самое, но экранов поменьше и управления ими - тоже.
    1. Развернуть скачанный архив (если он был отдельный) в удобное место и запустить файл setup.bat (для версии 8.3). В случае ПТ такого файла нету, запускать надо файл postgresql-8.3.msi из папки ПТ. Для версии 8.4.х - просто запустить установщик.
    2. На первом экране выбрать язык (наверное, русский...), на котором будет вестись установка (и только она, остальные языковые опции — потом) и нажать Старт.
    3. Выполнить просьбу закрыть все работающие программы и нажать Далее
    4. Не читая Заметки о версии, нажать Дальше.
    5. А вот на экране Опции установки как раз можно поуправлять размещением программных файлов (смысла менять дефолтное нету, хотя — решение за вами) и кластера базы данных (папка Data directory). База, кстати, по размерам достаточно быстро увеличивается. И не забыть про NTFS. Подробности про кластер — когда будем обсуждать ПЕРЕустановку.
    6. Также можно установить русский язык интерфейса PGAdmin и хелпа (включить National language support, а потом выставить в программе).
    7. Жмем Далее и видим окно Конфигурация сервера. В верхних полях ничего не меняем (в том числе оставляем имя домена (главное, чтобы оно было нерусское!) и имя юзера ”postgres”), а в поле пароля (и его подтверждения, естественно) вводим по вкусу (можно ставить дефолтный). Это еще не пароль к базам данных, это пароль к сервису, и пользуется им только Винда. В версии 8.4 етого окна нету, там сразу см п. 11.
    Пароль для ХМ по умолчанию = «postgrespass» (без кавычек) — и смысла его менять, вообще говоря, никакого.
    При установке ПТ3 дефолтный пароль В ЕТОЙ ФОРМЕ = «svcpass», но ето они, по-моему, перестарались (см п. 11), и удобнее вводить тот же самый пароль, который будет потом еще в одной форме = dbpass (если потом ставится ПТ).
    Жмем Далее
    8. Если вылезет (редко, но бывает) сообщение об ошибке «account could not be created» (аккаунт не может быть создан), измените Account Name на postgresuser (или holdemmanager, или что захотите, но — запомните). Как правило, такое происходит при предшествовавшем некорректном удалении Постгри.
    9. Дальше выскакивает сообщение типа «...User not found» (юзер не найден) и предложение его создать. Придется согласиться.
    10. А вот потом внимание! Появится сообщение, что «вы придумали слабозащищеный пароль» (weak) и система предложит сгенерировать крутой пароль. Отвечаете решительнным НЕТ! Нас и этот устроит.
    11. Дальше будет окно конфигурирования кластера базы данных. Там нужно выставить следующее:
    Encoding (Server) = Win1251
    Encoding (Client) = Win1251
    Locale = ставим Russian
    И вводим все тот же пароль (из предыдущего экрана) куда следует. Игнорируя (!) сообщение справа от пароля. А вот ето уже пароль доступа к базам данных!
    Еще раз: дефолтный пароль = postgrespass (или dbpass). Который потом надо будет вводить в самом ХМ/ПТ. Причем, если вы планируете иметь на компе несколько программ статистики, то юзер и пароль во всех случаях используются те, какие вы вводили здесь.
    12. На этом же экране есть флаг «инициализировать кластер базы данных». Если вы устанавливаете Postgre в первый раз, то у вас никаких старых данных нету, и флаг надо взвести. А вот если у вас данные есть, и они вам таки нужны, и вы даже помните к ним пароль — флаг снять. Предварительно установив все по п. 11 и указав на предыдущем экране (п. 5) местоположение имеющейся папки Data. Но об этом случае подробнее - ниже.
    11. На всех остальных экранах ничего не менять и жать Далее. По окончании установки появится экран, где надо снять галку ”Launch Stack Builder at Exit” (нам он не нужен) и нажать Финиш.
    12. Если получите ошибку типа access denied, и у вас Виста\вин7\вин8, то вспомите, что UAC должен быть теперь выключеным навсегда. Иначе ни PostgreSQL, ни ХМ/ПТ работать корректно не будут.
    13. В некоторых случаях установка Postgres до конца не доводится с выдачей сообщения об ошибке чтения файла конфигурации (или ошибке инициализации кластера базы данных). Обычно выглядит так:
    "problem running post-install step. installation may not complete correctly.Error reading file F:/Program Files/PostgreSQL/data/postgresql.conf"
    Тогда делаем так:
    13.1. Вариант универсальный:
    деинсталлировать postgres (если она есть в списке установленных программ)
    НЕ удалять пользователя
    Для папки C:\postgresql задать полный доступ (Full access) для пользователя postgres (а еще лучше - для пользователя Everyone, в русской виндовс он зовется "Все" - без кавычек) - как на этих картинках
    [​IMG]
    [​IMG]
    [​IMG]

    английская инструкция здесь
    Запустить установку и указать как цель именно эту папку

    13.2. Вариант для "продвинутых юзеров" (а раз так, то без комментариев, сами разберетесь):
    13.2.а) Запустить командную строку от имени пользователя postgres. Сделать это можно или так: "Пуск - Выполнить", или так: комбинация клавиш "Win + R".
    В открывшемся окне вводим команду:
    runas /user:postgres cmd
    и нажимаем ОК.
    13.2.б) При открытии командной строки система запросит пароль пользователя postgres, который соответственно нужно ввести (тот что указывали при установке, умолчальный = postgrespass).
    При правильном вводе пароля командная строка должна запуститься от имени postgres.
    Далее в командной строке нужно перейти в каталог "bin" установленного PostgreSQL, например:
    cd C:\PostgreSQL\9.0\bin
    13.2.в) Произвести инициализацию базы данных,
    initdb -D <Путь к каталогу данных>
    Пример:
    initdb -D D:\PostgreSQL\9.0\data
    (Примечание: папка Data переж этой операцией должна быть абсолютно пуста, что собственно, и имеет место после вышеупомянутой ошибки установки).
    13.2.г). Теперь нужно открыть оснастку управления службами и запустить службу postgresql. А "на потом" - задать ей тип запуска "автоматически".
     
    Последнее редактирование модератором: 13 ноя 2018
  3. Lexa_kartavii

    Lexa_kartavii стаж 20 лет

    0
    52
    +6 / -0
    Повторная установка PostgreSQL

    Если возникла (по любой причине) необходимость повторно установить систему управления базами данных PostgreSQL, то в некоторых случаях сначала надо ее правильно удалить имеющуюся по этой инструкции . Папка с данными при этом не удаляется, остается на месте. Впрочем, если нужно будет задавать права доступа к папкам (см инструкцию по установке) - удалять юзера как раз не надо - а то для кого же задавать.
    А дальше — в зависимости от того, есть у вас нужные в дальнейшем данные в базах, или ну их. Если «все это старьё» вам не нужно — просто удалите вручную папку Data из той папки, где раньше был Постгри (или оттуда, куда вы ее вручную «нестандартно» положили).
    Затем просто инсталлируйте Postgre согласно первой части статьи.
    А вот если вам захочется (вполне обоснованно, кстати) теперь держать папку Data не в «стандартном» месте (то есть, как подпапку в собственно папке Постгри), тогда надо немного поработать руками.
    Так вот, дальнейшие действия — есть расширение упомянутого видео (в котором все правильно, толково и понятно изложено, но — частный случай) - до обобщения. Итак:
    0. Если вы собираетесь менять Постгри с 8.3.х на 8.4, то новая версия старую базу не поймет. И нормальных средств миграции нету - только создание новой пустой базы и импорт в нее историй.
    1. Удаляем имеющуюся Постгри по инструкции (ссылка выше).
    2. Перемещаем (неудаленную автоматически) папку Data в нужное нам местоположение. Можем даже переименовать по вкусу. Для примера, кладем ее на диск F и (и путь к ней, соответственно, русть будет F:\MyGames\PGData ).
    3. Удаляем из корня етой папки несколько файликов:
    postmaster.opts
    postmaster.pid (если есть)
    и postgresql.bak
    4. А файл postgresql.conf открываем в Блокноте (Notepad) – он текстовый, и находим (недалеко от начала) такой текст (это если вы ничего раньше не меняли, а если меняли, то вы уже всё знаете...)
    code:

    вместо етого ConfigDir вписываем наше местоположение папки Data
    'f:/MyGames/PGData'
    Внимание: кавычки (одинарные) должны остаться, а вот слеши надо поставить не те, что мы привыкли, а обратные! И буква диска — в нижнем регистре. А путь — точно так, как он есть. Хотя спокойнее было бы изначально все буквы в том пути задавать в нижнем регистре еще на этапе переименования папки.
    И снимаем «решетку» (ето символ комментария) в первой позиции строки. Получается
    code:


    5. Сохраняем файл в то же место, где он был, и ставим Postgre как описано ранее.
    Но когда дойдем до опции выбора места установки, ставим курсор на строку «База данных» и, нажав кнопку выбора, меняем умолчательное на нужное нам местоположение папки Data.
    6. А на следующем экране сначала вводим пароль (старый) и выставляем все, что указано в пункте 11 первой части статьи. А потом СНИМАЕМ верхний флажок (птицу) «Инициализировать кластер базы данных». От какового действия все, что мы видим ниже флага, станет серым и недоступным.
    7. Продолжаем установку. Если вы ставите ту же самую версию Постгри, что у вас и была ранее (а так оно обычно и есть), то появится сообщение, что в той папке, которую вы вручную указали двумя экранами ранее, уже есть какие-то данные, совместимые с Постгри. Собственно, вот мы и получили нужный результат. Доведите установку до конца, запустите программу статистики — и можете ностальгировать, глядя на сыгранные давным-давно руки.
    8. Честно говоря, если нужно просто передвинуть отдельно взятую папку Data на другой диск, то можно и не сносить Постгри. Но там сложнее, есть нюансы и нужно ковыряться в реестре, а ето опасно. Так что — как-нибудь в другой раз.
     
  4. Lexa_kartavii

    Lexa_kartavii стаж 20 лет

    0
    52
    +6 / -0
    Приложение 1. Файловая система диска
    1. Открыть Мой компутер и смотреть свойства диска - там написано, какая у него файловая система.
    2. Чтобы перевести FAT32 в NTFS, надо в окне ДОС («командная строка») написать
    CONVERT D: /FS:NTFS /V
    вместо D поставить букву нужного диска. Внимательно со слешами и пробелами!
    Параметр V означает «верификация» - будет дольше, но спокойнее. Но можно убрать (вместе со слешем).
    и нажать Enter - будет выполнено при следующей перезагрузке (если диск системный), или сразу.
    Вполне безопасно, но придется подождать. Обратно вернуть FAT32 так легко не получится.
     
  5. Lexa_kartavii

    Lexa_kartavii стаж 20 лет

    0
    52
    +6 / -0
  6. Lexa_kartavii

    Lexa_kartavii стаж 20 лет

    0
    52
    +6 / -0
    Внимание! Эта инструкция касается только ХМ1. Если у вас ХМ2, то помимо всего нижеописанного надо иметь в виду, что есть и другая папка с данными, игнорировать которую нельзя. Подробнее здесь

    Инструкция по переносу папки Data.
    1) Пуск - программы - администрирование - службы. Останавливаем сервис Postgresql.
    2) Папку с базой C:\Program Files\PostgreSQL\8.3\data копируем в нужное нам место, например D:\pgdata
    3) Даем "Полный доступ" на эту новую папку пользователю postgres. Действуя согласно п. 13 здесь.
    4) Пуск - выполнить - Regedit (если виста\вин7\вин8 - обязательно по правому клику от админа)
    Ищем ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pgsql-8.3
    Параметр ImagePath меняем
    c
    "C:\Program Files\PostgreSQL\8.3\bin\pg_ctl.exe" runservice -w -N "pgsql-8.3" -D "D:\Program Files\PostgreSQL\8.3\data\"
    на
    "C:\Program Files\PostgreSQL\8.3\bin\pg_ctl.exe" runservice -w -N "pgsql-8.3" -D "D:\pgdata"
    (или как там у нас новая папка и полный путь к ней называется)
    5) Запускаем сервис Postgres.
    6) Когда убедимся, что все нормально работает, удаляем старую папку data, чем освобождаем место на диске C.

    Предупреждение: Если что-нибудь сделать не так, можно сломать и то, что есть! Людям, не уверенным в своих отношениях с компутерами вообще, с Виндовс, ее реестром и базами данных в частности - настоятельно рекомендуется даже и не пробовать.
     
  7. Lexa_kartavii

    Lexa_kartavii стаж 20 лет

    0
    52
    +6 / -0
    Альтернативный способ переноса папки (под WinXP не сработает!):
    - остановить сервис Postgresql (Панель управления - Администрирование - Службы)
    - переместить на другой диск папку
    C:\PostgreSQL\Х.Х\data, а на старом месте создать с ней логическую связь при помощи команды (запускать через Пуск - выполнить)

    mklink.exe /J C:\PostgreSQL\9.0\data\ D:\PostgreSQL\data\

    где (для примера) C:\PostgreSQL\9.0\data\ - старый путь к папке, место где будет связь
    D:\PostgreSQL\data - новое место куда мы переместили папку data.

    - После чего запустить сервис Постгри обратно

    Теперь Постгри будет думать что папка на старом месте.
    Чтобы вернуть все на место, нужно остановить сервер, удалить связь как обычную папку, а потом вернуть папку data на место.
     
  8. Lexa_kartavii

    Lexa_kartavii стаж 20 лет

    0
    52
    +6 / -0
    если на Вин7 или Висту (в том числе 64-разрядные) Постгри с параметрами по умолчанию не ставится, то можно попробовать устанавливать ее в специально созданную перед етим папку, находящуюся вне папки Programm Files (или как оно там в разных версиях винды называется). и дать на ету новую папочку все права.

    И по-любому Постгер версий 8 и новее на Вин7 не установится, если имя юзера компа содержит кириллицу. Надо создать нового юзера с "нормальными" символами в имени, дать ему все права администратора, загрузить комп под ним и установить Постгри. А потом можно вернуться к загрузке под своим виндовым профилем - работать Постгри уже будет.