Устранение неполадок PostgreSQL
How To... по PostgreSQL
Распространенные задачи PostgreSQL и где найти полные инструкции.
Как ускорить PostgreSQL
На производительность PostgreSQL больше всего влияют скорость диска и объем доступной RAM. Самое заметное улучшение дает твердотельный накопитель (SSD); диск 7200 RPM приемлем, но диски 5400 RPM не рекомендуются.
- Настройте PostgreSQL на использование большего объема RAM — см. PostgreSQL Performance Tuning.
- Поддерживайте базу данных в оптимальном состоянии по мере ее роста — см. Database Housekeeping.
- Рекомендации по оборудованию см. в Recommended Hardware FAQ.
Обновление PostgreSQL
PokerTracker 4 поддерживает PostgreSQL 9.6 или выше (мы рекомендуем PostgreSQL 16). Чтобы перейти на более новую версию, следуйте отдельным руководствам:
Всегда создавайте резервную копию баз данных перед обновлением.
Резервное копирование и восстановление в pgAdmin 4
В PokerTracker 4 уже встроены резервное копирование и восстановление — по возможности используйте именно их. Внешний метод через pgAdmin 4 ниже предназначен только для редких случаев, когда встроенные инструменты не могут получить доступ к вашей базе данных, например когда PokerTracker 4 работает в виртуальной машине, а PostgreSQL установлен в основной ОС. (См. networking guide для такого сценария.)
Скриншоты ниже показывают более старую версию pgAdmin. Шаги аналогичны в pgAdmin 4.
Использование pgAdmin 4 для резервного копирования базы данных
-
Откройте pgAdmin 4.
Windows: Start > PostgreSQL > pgAdmin 4. macOS: /Applications/pgAdmin 4.
-
Подключитесь к серверу.
В дереве Browser разверните Servers > PostgreSQL и подключитесь. Если будет запрошен пароль, по умолчанию используется dbpass; другой часто используемый пароль — postgrespass.
-
Разверните Databases и выберите свою базу данных.
Щелкните правой кнопкой мыши по базе данных, которую хотите сохранить, и выберите Backup....

-
Выберите имя файла и расположение резервной копии.
Введите путь и имя файла или нажмите кнопку обзора ( "..." ) справа, чтобы выбрать расположение и имя файла резервной копии.
Оставьте все остальные поля со значениями по умолчанию.

-
Нажмите кнопку Backup, чтобы начать.
В правом нижнем углу pgAdmin появится всплывающее уведомление, когда процесс резервного копирования начнется и когда он завершится.

Использование pgAdmin 4 для восстановления базы данных
-
Создайте новую базу данных.
В дереве Browser щелкните правой кнопкой мыши Databases и выберите Create > Database....

-
Введите имя базы данных, затем нажмите Save.

-
Восстановите резервную копию в новую базу данных.
Щелкните правой кнопкой мыши новую базу данных и выберите Restore....

-
Выберите файл резервной копии, который вы создали ранее.

-
Нажмите Restore.
Другие изменения не требуются. pgAdmin покажет всплывающее уведомление в правом нижнем углу экрана, когда процесс восстановления начнется и когда он завершится.

Добавление базы данных, восстановленной вручную
-
Откройте окно Database Management (Database > Database Management) и нажмите New.
-
Включите This database already exists, нажмите Browse Databases и выберите базу данных, которую вы только что восстановили.

Проблемы
Решения наиболее распространенных ошибок PostgreSQL.
Не удается войти в базу данных
Ошибка: could not connect to server / connection refused
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 TCP/IP connections on port 5432?
Обычно это означает, что служба PostgreSQL не запущена. Перезапустите её — см. Перезапуск сервера PostgreSQL.
Если перезапуск не помогает, причиной запуска может быть устаревший файл postmaster.pid, блокирующий запуск. При остановленной службе PostgreSQL найдите postmaster.pid в папке данных (Windows: C:\Program Files\PostgreSQL\16\data; macOS: /Library/PostgreSQL/16/data) и удалите его, затем перезагрузите компьютер. Замените 16 на установленную у вас версию. Не удаляйте postmaster.pid, если служба PostgreSQL не остановлена.
Ошибка: отсутствует запись pg_hba.conf
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
- macOS
Вам нужно отредактировать файл pg_hba.conf с правами администратора. Запустите Notepad, щёлкнув правой кнопкой мыши по его значку и выбрав Run As Administrator. Нажмите File > Open и выберите файл pg_hba.conf, который обычно находится по адресу C:\Program Files\PostgreSQL\16\data\pg_hba.conf.
Прокрутите в самый низ и добавьте эту строку в точности так, как она показана здесь:
host all all ::1/128 md5
Сохраните файл и закройте Notepad. Чтобы изменения вступили в силу, либо перезагрузите компьютер, либо нажмите Start > Programs > PostgreSQL > Reload Configuration.
-
Откройте приложение Terminal, расположенное в /Applications/Utilities/Terminal.
-
Откройте файл pg_hba.conf в редакторе Nano.
Введите
sudo nano /Library/PostgreSQL/16/data/pg_hba.confи нажмите Return. При необходимости введите пароль администратора macOS. -
Прокрутите в самый низ файла клавишей со стрелкой вниз и добавьте эту строку в точности так, как она показана здесь:
host all all ::1/128 md5 -
Нажмите CTRL+O, чтобы сохранить, затем CTRL+X, чтобы выйти.
-
Перезагрузите компьютер, чтобы изменения вступили в силу.
Замените 16 на установленную у вас версию PostgreSQL.
Проблемы при установке или запуске PostgreSQL
Проблемы с установкой, запуском или сетевым подключением PostgreSQL часто вызваны тем, что программное обеспечение безопасности блокирует доступ. Проверьте Руководство по устранению проблем с брандмауэром, чтобы убедиться, что PokerTracker 4 и PostgreSQL имеют полный доступ.
Не удается подключиться — неверный пользователь или пароль
Если PostgreSQL был установлен на вашем компьютере до PokerTracker 4, используйте пароль, заданный при его установке. Если вы ранее пробовали другой трекер, попробуйте postgrespass; если у вас ранее была другая версия PokerTracker, по умолчанию может использоваться dbpass.
Если вы не помните пароль и стандартные варианты не работают, можно настроить PostgreSQL так, чтобы для подключений с локального компьютера пароль не требовался:
Пароль по-прежнему будет требоваться для доступа к серверу с любого компьютера, кроме вашего локального.- Windows
- macOS
Вам нужно отредактировать файл pg_hba.conf с правами администратора. Запустите Notepad, щёлкнув правой кнопкой мыши по его значку и выбрав Run As Administrator. Нажмите File > Open и выберите файл pg_hba.conf, который обычно находится по адресу C:\Program Files\PostgreSQL\16\data\pg_hba.conf.
Прокрутите в самый низ и замените все вхождения md5 или scram-sha-256 на слово trust.
Сохраните файл и закройте Notepad. Чтобы изменения вступили в силу, либо перезагрузите компьютер, либо нажмите Start > Programs > PostgreSQL > Reload Configuration.
-
Откройте приложение Terminal, расположенное в /Applications/Utilities/Terminal.
-
Откройте файл pg_hba.conf в редакторе Nano.
Введите
sudo nano /Library/PostgreSQL/16/data/pg_hba.confи нажмите Return. При необходимости введите пароль администратора macOS. -
Прокрутите файл до конца с помощью клавиши со стрелкой вниз и замените все вхождения md5 или scram-sha-256 словом trust.
-
Нажмите CTRL+O, чтобы сохранить, затем CTRL+X, чтобы выйти.
-
Перезагрузите компьютер, чтобы изменения вступили в силу.
Замените 16 на установленную у вас версию PostgreSQL.
Не удается импортировать раздачу
Если вы видите такую ошибку:
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) — полная процедура описана в разделе Обслуживание базы данных. После обслуживания перестройте кэш, чтобы база данных работала корректно.

Вторая причина — неисправное оборудование. Хотя мы не рекомендуем этого делать, вы можете настроить PostgreSQL игнорировать эти ошибки, отредактировав файл postgresql.conf.
- Windows
- macOS
Файл postgresql.conf необходимо редактировать с правами администратора. Запустите Блокнот, щёлкнув его значок правой кнопкой мыши и выбрав Запуск от имени администратора. Нажмите Файл > Открыть и выберите файл postgresql.conf, который обычно находится по пути C:\Program Files\PostgreSQL\16\data\postgresql.conf.
Прокрутите вниз, создайте новую строку и добавьте текст zero_damaged_pages = on.
Сохраните файл и закройте Блокнот. Чтобы изменения вступили в силу, либо перезагрузите компьютер, либо нажмите Пуск > Программы > PostgreSQL > Reload Configuration.
-
Откройте приложение Terminal по пути /Applications/Utilities/Terminal.
-
Откройте файл postgresql.conf в редакторе Nano.
Введите
sudo nano /Library/PostgreSQL/16/data/postgresql.confи нажмите Return. При необходимости введите пароль администратора macOS. -
Прокрутите файл до конца, создайте новую строку и добавьте текст
zero_damaged_pages = on. -
Нажмите CTRL+O, чтобы сохранить, затем CTRL+X, чтобы выйти.
-
Перезагрузите компьютер, чтобы изменения вступили в силу.
Замените 16 на установленную у вас версию PostgreSQL.
Если проблемы с жестким диском продолжаются, рассмотрите замену на диск 7200 RPM (или быстрее) либо SSD.
PostgreSQL на сетевом компьютере
Вы можете разместить PostgreSQL на другом компьютере в локальной сети. См. Сервер PostgreSQL, размещенный в локальной сети для инструкций по настройке.
Этот способ официально не поддерживается. Поскольку PokerTracker 4 не был рассчитан на удаленный доступ к базе данных, некоторые функции — Backup, Restore, настройка базы данных и обслуживание базы данных — работают только тогда, когда база данных находится на том же компьютере, что и PokerTracker 4.
PostgreSQL на отдельном диске
Чтобы запускать базу данных с другого диска, полностью удалите PostgreSQL с компьютера (см. ниже), затем установите его заново на выбранный диск. Подробнее см. сообщение на форуме о создании базы данных на отдельном диске.
PostgreSQL на съемном диске
Это руководство настраивает базу данных на съемном жестком диске, чтобы вы могли переносить её между компьютерами и использовать одну и ту же базу данных. Это позволяет избежать сетевых ограничений PostgreSQL и использовать базу данных вне локальной сети.
Предполагается, что PokerTracker 4 установлен на двух компьютерах с Windows и на каждом используется отдельная база данных. В настоящее время мы не рекомендуем этот вариант пользователям macOS.
Перед началом создайте резервную копию баз данных и сохраните её в надежном месте.
Подготовка съемного диска
- Откройте Пуск > Компьютер (окно «Мой компьютер» — вы будете возвращаться сюда часто).
- Щелкните правой кнопкой мыши по съемному диску, выберите Переименовать и задайте имя для вашей базы данных (например,
pg_16). - Снова щелкните правой кнопкой мыши по диску и выберите Форматировать. Установите файловую систему NTFS и размер кластера 4096, выберите Быстрое форматирование, затем нажмите Начать.
- Назначьте букву диска, которая доступна на обоих компьютерах. Откройте Пуск > щелкните правой кнопкой мыши Компьютер > Управление > Управление дисками. Щелкните правой кнопкой мыши по съемному диску, выберите Изменить букву диска или путь к диску > Изменить..., выберите Назначить следующую букву диска и укажите P (для PostgreSQL). Примите предупреждение, чтобы продолжить.
Удаление PostgreSQL
- Откройте Пуск > Панель управления > Программы и компоненты. Дождитесь загрузки списка, щелкните правой кнопкой мыши PostgreSQL и выберите Удалить. Запомните номер версии.
- Откройте командную строку с повышенными правами (щелкните правой кнопкой мыши Командная строка > Запуск от имени администратора) и выполните
net user /delete postgres. Вы должны увидеть сообщение «Команда выполнена успешно». Если появляется сообщение «Отказано в доступе», значит вы не запустили командную строку от имени администратора. По завершении введитеexit. - Удалите оставшуюся папку C:\Program Files\PostgreSQL. Сначала убедитесь, что данные сохранены в резервной копии и надежно защищены.
Скачивание и установка PostgreSQL
Скачайте версию PostgreSQL от Enterprise DB, которую хотите установить — обычно последнюю в рамках той же основной версии, что и у вас была.
Запустите установщик и, когда будет предложено указать расположение установки, перейдите на диск P: в папку P:\PostgreSQL\16 (замените 16 на вашу версию; нажмите значок новой папки, чтобы создать папку).
Продолжайте установку. На экране пароля введите dbpass в оба поля. Нажимайте Далее, пока установка не завершится.

Восстановление баз данных
Восстановите резервные копии баз данных, используя тот же способ, которым вы их сохраняли.
Завершение и запуск PostgreSQL
Теперь перейдите на другой компьютер и выполните синхронизацию с съемным диском.
Вы ДОЛЖНЫ останавливать службу PostgreSQL каждый раз, когда переносите диск между компьютерами, иначе вы рискуете потерять сервер базы данных.
На основном компьютере:
- Закройте PokerTracker 4.
- Откройте Пуск > щелкните правой кнопкой мыши Компьютер > Управление > Службы.
- Найдите в списке PostgreSQL, щелкните по нему правой кнопкой мыши и выберите Остановить. Теперь диск можно безопасно извлечь.
Перед подключением диска к другому компьютеру убедитесь, что служба PostgreSQL там НЕ запущена. После подключения диска запустите службу: щелкните правой кнопкой мыши PostgreSQL > Запустить.
Второй компьютер
Если PostgreSQL установлен на этом компьютере, сначала удалите его.
- Подключите диск и назначьте ему букву P:, как вы сделали на первом компьютере (см. Подготовка съемного диска).
- Скачайте ту же версию PostgreSQL, которую использовали ранее, и запустите установщик, снова указав расположение P:\PostgreSQL\16.
- Позвольте установщику создать пароль службы, но на экране пароля снимите флажок Initialize Database. Завершите установку.
- Отредактируйте C:\Program Files\PokerTracker 4\Data\Config\PokerTracker.cfg, удалите всю информацию о базе данных и сохраните файл.
- Запустите PokerTracker 4. На экране настройки PostgreSQL введите пароль dbpass и нажмите Connect.
- Когда будет предложено создать базу данных, отметьте This Database Already Exists, нажмите Browse, выберите свою базу данных и нажмите Connect.
Теперь одна и та же база данных доступна на обоих компьютерах.
Не забывайте останавливать службу PostgreSQL перед переносом диска и запускать её снова после подключения к другому компьютеру (Start > Programs > PostgreSQL > Start Service).