Проблемы с PostgreSQL
Английский оригинал здесь
PostgreSQL - как сделать, чтобы ...
PostgreSQL работала быстрее
Для повышение производительности сервера PostgreSQL мы рекомендуем проапгрейдить оборудование, на котором СУБД будет работать. Обновление программной части и ее настройки дадут лишь небольшой прирост скорости, в то время, как улучшение технических характеристик компьютера позволит достичь лучших результатов, еслии вы озабочены быстродействием PostgreSQL.
1. Самое большое повышение производительности достигается переходом на отдельный твердотельный диск SSD. Шпиндельные диски со скоростью вращения 7200 об\мин приемлемы для использования, но диски со скоростью 5400 об\мин - не рекомендуются. До марта 2013 большинство компьютеров MAC выпускались со встроенными дисками 5400 об\мин, в большинстве новых MAC теперь имеется опция по установке SSD. Компьютеры Macbook Air и Retina Macbook Pro все имеют диск SSDпо умолчанию.
2. Изучите FAQ по рекомендуемой конфигурации для других составных частей компьютера. Мы рекомендуем новые многоядерные 64-битные процессоры i7 multi-core, минимум 4 гигабайта ОЗУ (RAM) и 64-битную операционную систему (Windows 7 64 или выше / Mac OS X Lion или выше).
3. Используйте 64-битную версию PostgreSQL 9.0.x
Обновите PostgreSQL - той же самой старшей версии
PostgreSQL - это стороняя система управления базами данных, которая регулярно обновляется. ПТ4 поддерживает версии 8.3.9 и новее, 8.4, и 9.0. Если у вас есть 64-битный процессор и операционная система хотя бы с четырьмя гигабайтами ОЗУ - мы рекомендуем обновиться до свежей64-битной версии PostgreSQL 9.0.x.
Замечание: PostgreSQL 9.1.x and 9.2.x в настоящее время НЕ поддерживаются в PokerTracker 4.
Когда PokerTracker 4 изначально создавался, в ходу была версия PostgreSQL 8.3.4. C тех времен в СУБД были исправлены многие проблемы и улучшено быстродействие. Если у вас версия 8.3.x, но ниже, чем 8.3.9 - вам следует обновить программу как минимум до самой последней из версий 8.3.x.
Это же относится к обновлению версии 8.4.x - на момент начала работы над ПТ4 текущей была 8.4.4, и она хорошо работала, но если у вас более ранняяя(старее, чем 8.4.2) - мы советуем ее обновление.
В данной инструкции рассказывается только, как делать обновление внутри "старших" версий 8.3.x до 8.3.y (или 8.4.x до 8.4.y) - обновление от 8.3.x до 8.4.y есть более сложный процесс, так что до того, как начинать подобное, проконсультируйтесь у саппорта PokerTracker. НЕ СЛЕДУЕТ обновляться с 8.3 до 8.4 (или с 8.4 до 9.0) по этим инструкциям - НЕ сработает!
1. Перед тем, как делать обновление PostgreSQL, создайте резервную копию своих баз данных, применив функцию backup в PokerTracker 4.
В случае возникновения проблем в ходе обновления PostgreSQL наличие бекапа жизненно важно для восстановления ваших баз данных. Резервные копии баз данных вообще следует делать регулярно, как и другой важной информации.
Также правильно будет иметь резервную копию папки архива оригиналов историй сыгранных раздач (processed), которая размещена в папке с рабочими файлами ПТ4. Пригодится, если вы не сможете восстановить базу данных из бекапа либо захотите создать новую.
2. Закройте PokerTracker 4.
3. Перейдите на страницу скачивания PostgreSQL, выберите свою операционную систему в разделе "Binaries". На следующей странице кликните по ссылке на скачивание.
Если у вас PostgreSQL 8.3, как установил PT4 - используйте PGInstaller. НЕ СЛЕДУЕТ применять One Click Installer. Для других версий PostgreSQL надо выбрать One Click Installer.
Нажмите на самую свежую подверсию (с наибольшим номером .x) той же версии, что у вас установлена (т.е. с самым большим номером 8.3.x - если у вас 8.3) и затем кликните по ссылке вашей операционной системы.
Кликните для скачивания установщика - имя файла будет типа "postgresql-8.3.11-1.zip". Сохраните файл на компьютере.
4. Если вы скачали PGInstaller для обновления версии 8.3.x - исполняйте шаг 5. Если вы скачали On Click Installer для версий 8.4.x или 9.0.x, тогда запустите инсталлятор и перейдите к шагу 8.
5. Разархивируйте скачанный файл в отдельную папку.
6. Перед продолжением убедитесь, что шаги 1 и 2 выполнены.
7. Сделайте дабл-клик по файлу "UPGRADE.BAT".
Это запустит как минимум два инсталлятора, каждый из которых потребует одного или двух кликов. Просто нажимайте "Next" или "Finished", пока процесс не завершится.
Если выполнение updgrade.bat не срабатывает по каким-то причинам, деинсталлируйте PostgreSQL, следуя инструкциям из FAQ. Это не приведет к потере данных, такое действие безопасно. Перейдите к шагу 9.
8. Перегрузите компьютер, если установщик PostgreSQL об этом запросит.
9. После перегрузки запустите PokerTracker 4. Если проблемы остались - свяжитесь с саппортом PokerTracker.
Выполнение Backup и Restore через pgAdmin III
PokerTracker 4 имеет встроенную функцию создания резервной копии БД (backup) и восстановления из нее (restore). Однако, в некоторых редких ситуациях они могут не сработать (например, если ПТ установлен на виртуальной машине, а PostgreSQL - на базовой операционке). В таком случае следует делать так:
Перед тем, как применять pgAdmin III, мы советуем изучить руководство по резервированию и восстановлению баз данных.
Использование pgAdmin III для создания резервной копии БД
1. Открыть pgAdmin III
Windows: Start -> Programs -> Postgres -> pgAdmin III
Mac OS X: \Applications\PostgreSQL x.x\pgAdmin III
2. Дабл-клик по "PostgreSQL Database Server" для соединения. Попросит пароль, по умолчанию он dbpass, другой часто применяемый пароль - postgrespass.
3. Открыть (кликом по значку + ) PostgreSQL Database Server, затем Databases.
4. Правый клик по нужной базе данных и выбор "Backup..." из контекстного меню.

5. В окне Backup Database выбрать\задать имя файла бекапа и путь, куда он будет сохранен.
Можно либо ввести путь и имя, либо нажать кнопку Обзор ( "..." ) справа.

6. Нажать "OK", чтобы использовать стандартные опции.
Бекап создан успешно, если в конце операции выйдет сообщение "Process returned exit code 0."

Использование pgAdminIII для восстановления БД
1. Сначала следует создать новую пустую базу данных.
В pgAdminIII сделать правый клик по "Databases" и выбрать "New Object", затем "New Database...".

2. В окне New Database ввести имя БД и задать Encoding = UTF8 (если у вас PostgreSQL 8.2 - тогда задать Encoding = "SQL_ASCII"). Нажать OK и база данных будет создана.

3. Теперь можно восстанавливать информацию из бекапа в эту новую БД.
Правый клик по новой базе данных, выбрать "Restore...".

4. В окне "Restore Database" ввести имя ранее созданного файла бекапа (или перейти к нему).

5. Нажать "OK" - БД будет восстановлена, никаких изменений больше не требуется.
Процесс восстановления завершился успешно, если в конце операции выйдет сообщение "Process returned exit code 0."

Добавление вручную восстановленной БД
1. Открыть в ПТ4 окно Database Management (Database > Database Management) и нажать "New".
2. Включить опцию "This database already exists" и нажать "Browse Databases", чтобы выбрать эту новую созданную и восстановленную БД.

Проблемы PostgreSQL
Невозможно подключиться к базе данных
Если вы получите сообщение об ошибке типа этого:
unable to login to database (PT4_xxxx_xx_xx_xxxxxx) - reason:could not connect to server:connection refused(0x0000274D/10061) Is the server running on host "localhost" and accepting TCPT/IP connection on port 5432?
Первым делом cktletn попробовать перестартовать сервис PostgreSQL. Простейший способ для этого - перегрузка компьютера. Некоторые пользователи Windows также могут попробовать вручную остановить сервис через Start -> Programs -> PostgreSQL -> Stop Service, но эта опция не всегда доступна. Если все же вам удалось таким образом остановить сервис PostgreSQL, можно попробовать найти файл postmaster.pid в папке /Program Files/PostgreSQL/X.X/data. Если этот файл имеется - его следует удалить и перегрузить компьютер. Это часто (но не всегда) проблему решает. Не пытайтесь удалить файл postmaster.pid, если сервис PostgreSQL не остановлен - не удалится.
Обозначение X.X в номере версии PostgreSQL - соответствует установленной у вас версии, обычно это 8.3, 8.4 или 9.0.
Если вы получили сообщение об ошибке типа такого:
unable to login to database (PT4 DB). Reason: FATAL: no pg_hba.conf entry for host "::1", user "postgres", database "PT4 DB", SSL off
Следует отредактировать файл pg_hba.conf.
Для Windows:
Для редактирования этого файла нужно использовать текстовый редактор, причем действовать следует как администратор. Для чего мы советуем запустить Notepad (Блокнот по правому клику на его иконку, затем выбрать Run As Administrator (запустить от администратора). Нажать File > Open (Файл - открыть), затем выбрать файл pg_hba.conf, который обычно находится здесь C:/Programs Files/PostgreSQL/X.X/data/pg_hba.conf.
Прокрутить файл до конца и добавить в точности вот такую строку:
host all all ::1/128 md5
Файл сохранить, Блокнот закрыть. Чтобы изменения применились, следует перегрузить компьютер, либо выполнить Start > Programs > PostgreSQL > Reload Configuration.
Для Mac OS X:
Запустить приложение Terminal, находящееся в /Applications/Utilities/Terminal.
Напечатать sudo nano /Library/PostgreSQL/X.X/data/pg_hba.conf. Ввести пароль администратора OS X, если будет предложено. Это запустит тектовый редактор Nano в окне Terminal.
Используя клавишу перемещения курсора вниз, перейти в конец файла и добавить в точности вот такую строку:
host all all ::1/128 md5
Нажать CTRL+O для сохранения файла, затем CTRL+X для закрытия текстового редактора.
Перегрузить компьютер для применения изменений.
Обозначение X.X в номере версии PostgreSQL - соответствует установленной у вас версии, обычно это 8.3, 8.4 или 9.0.
Проблемы при установке или запуске PostgreSQL
Прочие проблемы, возникающие при установке, запуске или работе PostgreSQL по сети обычно вызваны недостатком прав и причиняются программами безопасности - сверьтесь с инструкцией Firewall Troubleshooting Guide, чтобы убедиться, что все настроено правильно для предоставления PokerTracker 4 и PostgreSQL полного доступа.
Нет соединения - неверный пользователь или пароль
Если на компьютере уже установлена PostgreSQL еще до того, как на нем появился PokerTracker 4, следует использовать тот пароль доступа к PostgreSQL, который был задан при ее установке. Например, если вы пробовали работать с Holdem Manager - введите пароль postgrespass, если вы пользовались предыдущей версией PokerTracker, тогда пароль по умолчанию, скорее всего, 'dbpass'.
Если вы не помните пароль, а умолчания не срабатывают, можно сконфигурировать PostgreSQL вообще не требовать пароль при доступе к базам данных с локального компьютера, сделав следующее:
При доступе к серверу из любого места вне локального компьютера пароль все равно потребуется.
Windows:
Для редактирования этого файла нужно использовать текстовый редактор, причем действовать следует как администратор. Для чего мы советуем запустить Notepad (Блокнот по правому клику на его иконку, затем выбрать Run As Administrator (запустить от администратора). Нажать File > Open (Файл - открыть), затем выбрать файл pg_hba.conf, который обычно находится здесь C:/Programs Files/PostgreSQL/X.X/data/pg_hba.conf.
Прокрутить файл до конца и заменить все вхождения слова md5 на слово trust.
Файл сохранить, Блокнот закрыть. Чтобы изменения применились, следует перегрузить компьютер, либо выполнить Start > Programs > PostgreSQL > Reload Configuration.
Mac OS X:
Запустить приложение Terminal, находящееся в /Applications/Utilities/Terminal.
Напечатать sudo nano /Library/PostgreSQL/X.X/data/pg_hba.conf. Ввести пароль администратора OS X, если будет предложено. Это запустит тектовый редактор Nano в окне Terminal.
Используя клавишу перемещения курсора вниз, перейти в конец файла и заменить все вхождения слова md5 на слово trust.
Нажать CTRL+O для сохранения файла, затем CTRL+X для закрытия текстового редактора.
Перегрузить компьютер для применения изменений.
Обозначение X.X в номере версии PostgreSQL - соответствует установленной у вас версии, обычно это 8.3, 8.4 или 9.0.
Невозможно проимпортировать раздачу
Если вы получите сообщение об ошибке типа этого:
Unable to import hand (#18202934050). Reason: Unable to execute query: COPY tourney_holdem_hand_summary FROM STDIN;; Reason: Fatal Error (ERROR: could not read block 0 of relation 1663/16438/16742: Invalid argument CONTEXT: COPY tourney_holdem_hand_summary, line 1: "54551 100 736 3 971 18202934050 2008/06/17 20:55:42 2008/06/17 17:22:44 9 2 2 2 1500.00 1500.00 1500..." )
..или этого:
Unable to import hand (#7651813545). Reason: Unable to execute query: COPY holdem_hand_player_statistics FROM STDIN;; Reason: Fatal Error (ERROR: index "hhps:idx5-id_session" contains unexpected zero page at block 0 HINT: Please REINDEX it. CONTEXT: COPY holdem_hand_player_statistics, line 1: "70112 696 696 0 2 8819 2008/08/15 04:05:59 8 f f 0 f 0 f f f f f 0 f 0 t f f t f 0 f 0 t f t t f 0 f..." )
Возможны две причины появления подобного.
Первая причина - повреждение данных из-за аварии компьютера, что требует реиндексирования базы данных. Это можно проделать через Database > Database Management. Выберите поврежденную БД, затем нажмите Housekeeping > Reindex. После завершения техобслуживания мы советуем сделать также Rebuild the Cache (перестройку кеша базы данных), чтобы обеспечить ожидаемое быстродействие при работе с БД.

Вторая возможная причина - сбой оборудования.
Хотя мы этого и не советуем, можно настроить PostgreSQL игнорировать подобные ошибки, отредактировав файл postgresql.conf.
Windows:
Для редактирования этого файла нужно использовать текстовый редактор, причем действовать следует как администратор. Для чего мы советуем запустить Notepad (Блокнот по правому клику на его иконку, затем выбрать Run As Administrator (запустить от администратора). Нажать File > Open (Файл - открыть), затем выбрать файл postgresql.conf, который обычно находится здесь C:/Programs Files/PostgreSQL/X.X/data/postgresql.conf.
Прокрутить файл до конца и добавить новую строку с текстом
zero_damaged_pages = on
Файл сохранить, Блокнот закрыть. Чтобы изменения применились, следует перегрузить компьютер, либо выполнить Start > Programs > PostgreSQL > Reload Configuration.
Mac OS X:
Запустить приложение Terminal, находящееся в /Applications/Utilities/Terminal.
Напечатать sudo nano /Library/PostgreSQL/X.X/data/postgresql.conf. Ввести пароль администратора OS X, если будет предложено. Это запустит тектовый редактор Nano в окне Terminal.
Используя клавишу перемещения курсора вниз, перейти в конец файла и добавить новую строку с текстом
zero_damaged_pages = on
Нажать CTRL+O для сохранения файла, затем CTRL+X для закрытия текстового редактора.
Перегрузить компьютер для применения изменений.
Обозначение X.X в номере версии PostgreSQL - соответствует установленной у вас версии, обычно это 8.3, 8.4 или 9.0.
ВАЖНО: Если проблемы с диском будут продолжаться, следует его заменить на новый со скростью 7200 RPM, либо более быстрый, либо на SSD.
PostgreSQL на компьютере в сети
Изучите руководство Работа с PostgreSQL через локальную сеть, чтобы узнать, как организовать доступ к PostgreSQL через сеть.Имейте в виду, что этот метод официально не поддерживается, а поэтому мы не можем гарантировать помощь, если будут проблемы. Поскольку PokerTracker 4 не создавался для поддержки удаленного доступа к базам данных, некоторые функции могут не работать, когда база данных PostgreSQL размещена не на локальном компьютере (такие, как Backup, Restore, database tuning и database maintenance).
PostgreSQL на отдельном диске
Изучите этот пост в форуме, если требуется создать базу данных на отдельном диске.
В качестве альтернативы - можно установить PostgreSQL на другой диск. Перед этим следует полностью удалить PostgreSQL с компьютера, а затем устанавливать ее на другой диск.
PostgreSQL на заменяемом диске
Эта инструкция поможет разместить базы данных на сменном диске.
Исполнив ее, вы получите возможность переносить диск на другой компьютер и польоваться той же базой данных. Так можно обойти сетевые проблемы PostgreSQL, которые случаются у некоторых, и использовать свою БД вне локальной сети.
Предполагается, что у вас уже установлен PokerTracker 4 на двух компьютерах, но на них ПТ подключен к двум разным базам данных. Текcт изложен с точки зрения пользователя Vista, но для XP или Win7 все почти так же. Мы не рекомендуем проделывать подобное на Mac OS X.
Перед началом следует сделать бекап баз(ы) данных и сохранить его (их) в надежном месте.
Подготовка сменного диска
Открыть Start -> Computer.
В это окно вы будете возвращаться еще не раз (будем называть его "Мой компьютер").
Правый клик на сменном диске - выбрать Rename (Переименовать) и назвать его так, чтобы было понятно, что там база данных (в нашем примере имя диска = pg_8_3_4).
Вернуться в Мой компьютер, сделать правый клик на сменном диске и выбрать Format (Формат).
Убедиться, что задана файловая система NTFS и размер блока 4096.
Выбрать Quick Format (Быстрое форматирование) и нажать Старт.
Теперь нам надо задать этому диску букву, доступную и одинаковую на обоих компьютерах.
Надать Start (Пуск) -> правый клик на Computer -> Manage (Управление).
Нажать на “Disk Management” (Управление дисками).
Правый клик на сменном диске и выбрать Change Drive Letter and Paths (изменить букву диска и путь).
Клик по Change… (Изменить), затем по “Assign the following drive letter “ (Назначить букву) и выбрать “P” из списка (в данном случае выбрана P как первая буква от PostgreSQL). Игнорировать предупреждение (Да, желаем продолжить).
Деинсталляция PostgreSQL
Открыть Пуск -> Панель управления.
Выбрать Programs and Features (Программы и компоненты) - Добавление программ в случае XP.
Подождать, пока появится весь список.
Правый клик на PostgreSQL - выбрать Uninstall (Удалить).
Запомните номер версии.
Под Vista нажать Start -> All Programs -> Accessories (Пуск - Все программы - Стандартные) -> правый клик по Command Prompt (командная строка) -> Run as Administrator (запустить от администратора).
Под XP - просто кликнуть по Command Prompt (командная строка).
В открывшемся окне ввести (нажав после чего Enter)
net user postgres /delete
Если по завершению не выведется сообщение “The command completed successfully” (команда выполнена успешно) - значит, что-то сделано не так (а это важно).
Если система выведет нечто типа “user access denied”, под Vista это означает, что командная строка запускалась не от администратора - а это обязательно. Повторите процесс.
Под XP, скорее всего, вы используете аккаунт Виндовс с ограниченными правами. Следует залогиниться в систему под аккаунтом с правами администратора.
После успешного выполнения команды введите “exit”.
Теперь перейти в мой компьютер -> C: -> Program Files -> правый клик на папке PostgreSQL -> Delete (Удалить).
Перед этим убедитесь, что все ваши базы данных забекаплены и файлы надежно сохранены.
Скачать и установить PostgreSQL
Скачайте версию PostgreSQL, которую желаете установить - обычно следует брать самую последнюю подверсию с таким же "старшим" номером, как у вас и стояла. Например, была 8.3.4 - взять 8.3.23.
После скачивания, разархивируйте ВСЕ во временную папку, сделайте дабл-клик по файлу postgresql-x.x (x.x означает версию PostgreSQL, установленную на компьютере). Если получите ошибку “please use the main MSI file” - значит, вы сделали дабл-клик не по тому файлу. Попробуйте запустить другой из тех, что видите.
Когда увидите это окно, выберите browse и установите СУБД на диск P: в путь P:\PostgreSQL\x.x (для создания папки кликните по иконка "новая папка" справа вверху).
Нажать next, затем еще раз. Получите сообщение, что установщик сгенерировал случайный пароль.
Игнорируйте это, нажмите OK - попадете в это окно:

Задайте пароль dbpass в обоих выделенных полях. Продолжайте нажимать next до конца установки.
Восстановление баз данных
Восстановите все свои базы данных из бекапов тем же способом, каким они создавались.
Включение и выключение PostgreSQL
Настало время перейти на другой компьютер и синхронизировать его с нашим сменным диском.
Вы ДОЛЖНЫ делать это КАЖДЫЙ РАЗ, когда переносите сменный диск с одного компьютера на другой - иначе данные будут утеряны.
На главном\первом компьютере:
Выключить PokerTracker 4, нажать Start (Пуск) -> правый клик по Computer -> Manage (Управление).
Перейти в Applications and Services -> Services (Приложения и службы - Службы).
Найти в списке PostgreSQL, сделать правый клик -> Stop Service. Только теперь можно отключать сменный диск.
Когда вы переносите диск с одного компьютера на другой - всегда обязательно останавливать сервис PostgreSQL перед отстыковыванием диска.
Также слеует убедиться, что на втором компьютере сервис PostgreSQL еще НЕ работает перед подключением сменного диска. Когда вы диск подключили, только тогда запустите сервис. Это делается аналогично его остановке, только вместо Stop следует нажать Start Service.
Второй компьютер
Если на втором компьютере установлена PostgreSQL - деинсталлируйте, выполнив описанные выше шаги.
Теперь подключите сменный диск и задайте ему букву P: как уже делали на первом компьютере.
Скачайте еще раз установщик postgresql (ту же самую версию). Запустите инсталлятор на втором компьютере и точно так же задайте установить в путь P:\PostgreSQL\x.x (x.x все так же означает номер версии PostgreSQL).
Снова дойдите до создания пароля, примените все тот же “dbpass”, а дальше СНИМИТЕ ГАЛКУ "INITIALIZE DATABASE". Доведите установку до конца.
По завершению установки перейдите в папку C: -> Program Files -> Pokertracker 4 -> Data -> Config и откройте на редактирование файл Pokertracker.cfg (как и на первом компьютере).
Удалите всю информацию о базах данных и файл сохраните.
Запустите PokerTracker 4.
Когда увидите откно конфигурирования PostgreSQL, введите правильный пароль (“dbpass”). Нажмите "connect".
Теперь ПТ хочет создать базу данных.
Поставьте галку “This Database Already Exists”, нажмите Browse. Выберите БД, нажмите Connect.
Вы имеете одну и ту же базу данных на обоих компьютерах!
Замечание: Не забывайте выключать сервис PostgreSQL, когда отсоединяете сменный диск, иначе он повредится!!!
При подключении диска к новому компьютеру не забудьте включить сервис (click on Start -> Programs -> PostgreSQL -> Start Service).