Перейти к основному содержимому

Устранение неполадок 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 для резервного копирования базы данных

  1. Откройте pgAdmin 4.

    Windows: Start > PostgreSQL > pgAdmin 4. macOS: /Applications/pgAdmin 4.

  2. Подключитесь к серверу.

    В дереве Browser разверните Servers > PostgreSQL и подключитесь. Если будет запрошен пароль, по умолчанию используется dbpass; другой часто используемый пароль — postgrespass.

  3. Разверните Databases и выберите свою базу данных.

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

    pgAdmin 4 database backup
  4. Выберите имя файла и расположение резервной копии.

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

    Оставьте все остальные поля со значениями по умолчанию.

    Backing up a PT4 Database in pgAdmin 4
  5. Нажмите кнопку Backup, чтобы начать.

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

    pgAdmin 4 database backup started and completed

Использование pgAdmin 4 для восстановления базы данных

  1. Создайте новую базу данных.

    В дереве Browser щелкните правой кнопкой мыши Databases и выберите Create > Database....

    pgAdmin 4 create database
  2. Введите имя базы данных, затем нажмите Save.

    pgAdmin 4 create database name
  3. Восстановите резервную копию в новую базу данных.

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

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

    pgAdmin 4 restore - select backup file
  5. Нажмите Restore.

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

    pgAdmin 4 restore started & completed

Добавление базы данных, восстановленной вручную

  1. Откройте окно Database Management (Database > Database Management) и нажмите New.

  2. Включите This database already exists, нажмите Browse Databases и выберите базу данных, которую вы только что восстановили.

    Configure a restored PT4 database

Проблемы

Решения наиболее распространенных ошибок 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.

Вам нужно отредактировать файл 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.

Проблемы при установке или запуске PostgreSQL

Проблемы с установкой, запуском или сетевым подключением PostgreSQL часто вызваны тем, что программное обеспечение безопасности блокирует доступ. Проверьте Руководство по устранению проблем с брандмауэром, чтобы убедиться, что PokerTracker 4 и PostgreSQL имеют полный доступ.

Не удается подключиться — неверный пользователь или пароль

Если PostgreSQL был установлен на вашем компьютере до PokerTracker 4, используйте пароль, заданный при его установке. Если вы ранее пробовали другой трекер, попробуйте postgrespass; если у вас ранее была другая версия PokerTracker, по умолчанию может использоваться dbpass.

Если вы не помните пароль и стандартные варианты не работают, можно настроить PostgreSQL так, чтобы для подключений с локального компьютера пароль не требовался:

Пароль по-прежнему будет требоваться для доступа к серверу с любого компьютера, кроме вашего локального.

Вам нужно отредактировать файл 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.

Не удается импортировать раздачу

Если вы видите такую ошибку:

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) — полная процедура описана в разделе Обслуживание базы данных. После обслуживания перестройте кэш, чтобы база данных работала корректно.

Reindex PT4 database

Вторая причина — неисправное оборудование. Хотя мы не рекомендуем этого делать, вы можете настроить PostgreSQL игнорировать эти ошибки, отредактировав файл postgresql.conf.

Файл postgresql.conf необходимо редактировать с правами администратора. Запустите Блокнот, щёлкнув его значок правой кнопкой мыши и выбрав Запуск от имени администратора. Нажмите Файл > Открыть и выберите файл postgresql.conf, который обычно находится по пути C:\Program Files\PostgreSQL\16\data\postgresql.conf.

Прокрутите вниз, создайте новую строку и добавьте текст zero_damaged_pages = on.

Сохраните файл и закройте Блокнот. Чтобы изменения вступили в силу, либо перезагрузите компьютер, либо нажмите Пуск > Программы > PostgreSQL > Reload Configuration.

warning

Если проблемы с жестким диском продолжаются, рассмотрите замену на диск 7200 RPM (или быстрее) либо SSD.

PostgreSQL на сетевом компьютере

Вы можете разместить PostgreSQL на другом компьютере в локальной сети. См. Сервер PostgreSQL, размещенный в локальной сети для инструкций по настройке.

Этот способ официально не поддерживается. Поскольку PokerTracker 4 не был рассчитан на удаленный доступ к базе данных, некоторые функции — Backup, Restore, настройка базы данных и обслуживание базы данных — работают только тогда, когда база данных находится на том же компьютере, что и PokerTracker 4.

PostgreSQL на отдельном диске

Чтобы запускать базу данных с другого диска, полностью удалите PostgreSQL с компьютера (см. ниже), затем установите его заново на выбранный диск. Подробнее см. сообщение на форуме о создании базы данных на отдельном диске.

PostgreSQL на съемном диске

Это руководство настраивает базу данных на съемном жестком диске, чтобы вы могли переносить её между компьютерами и использовать одну и ту же базу данных. Это позволяет избежать сетевых ограничений PostgreSQL и использовать базу данных вне локальной сети.

Предполагается, что PokerTracker 4 установлен на двух компьютерах с Windows и на каждом используется отдельная база данных. В настоящее время мы не рекомендуем этот вариант пользователям macOS.

Перед началом создайте резервную копию баз данных и сохраните её в надежном месте.

Подготовка съемного диска

  1. Откройте Пуск > Компьютер (окно «Мой компьютер» — вы будете возвращаться сюда часто).
  2. Щелкните правой кнопкой мыши по съемному диску, выберите Переименовать и задайте имя для вашей базы данных (например, pg_16).
  3. Снова щелкните правой кнопкой мыши по диску и выберите Форматировать. Установите файловую систему NTFS и размер кластера 4096, выберите Быстрое форматирование, затем нажмите Начать.
  4. Назначьте букву диска, которая доступна на обоих компьютерах. Откройте Пуск > щелкните правой кнопкой мыши Компьютер > Управление > Управление дисками. Щелкните правой кнопкой мыши по съемному диску, выберите Изменить букву диска или путь к диску > Изменить..., выберите Назначить следующую букву диска и укажите P (для PostgreSQL). Примите предупреждение, чтобы продолжить.

Удаление PostgreSQL

  1. Откройте Пуск > Панель управления > Программы и компоненты. Дождитесь загрузки списка, щелкните правой кнопкой мыши PostgreSQL и выберите Удалить. Запомните номер версии.
  2. Откройте командную строку с повышенными правами (щелкните правой кнопкой мыши Командная строка > Запуск от имени администратора) и выполните net user /delete postgres. Вы должны увидеть сообщение «Команда выполнена успешно». Если появляется сообщение «Отказано в доступе», значит вы не запустили командную строку от имени администратора. По завершении введите exit.
  3. Удалите оставшуюся папку C:\Program Files\PostgreSQL. Сначала убедитесь, что данные сохранены в резервной копии и надежно защищены.

Скачивание и установка PostgreSQL

Скачайте версию PostgreSQL от Enterprise DB, которую хотите установить — обычно последнюю в рамках той же основной версии, что и у вас была.

Запустите установщик и, когда будет предложено указать расположение установки, перейдите на диск P: в папку P:\PostgreSQL\16 (замените 16 на вашу версию; нажмите значок новой папки, чтобы создать папку).

Продолжайте установку. На экране пароля введите dbpass в оба поля. Нажимайте Далее, пока установка не завершится.

`dbpass` password for PokerTracker 4

Восстановление баз данных

Восстановите резервные копии баз данных, используя тот же способ, которым вы их сохраняли.

Завершение и запуск PostgreSQL

Теперь перейдите на другой компьютер и выполните синхронизацию с съемным диском.

warning

Вы ДОЛЖНЫ останавливать службу PostgreSQL каждый раз, когда переносите диск между компьютерами, иначе вы рискуете потерять сервер базы данных.

На основном компьютере:

  1. Закройте PokerTracker 4.
  2. Откройте Пуск > щелкните правой кнопкой мыши Компьютер > Управление > Службы.
  3. Найдите в списке PostgreSQL, щелкните по нему правой кнопкой мыши и выберите Остановить. Теперь диск можно безопасно извлечь.

Перед подключением диска к другому компьютеру убедитесь, что служба PostgreSQL там НЕ запущена. После подключения диска запустите службу: щелкните правой кнопкой мыши PostgreSQL > Запустить.

Второй компьютер

Если PostgreSQL установлен на этом компьютере, сначала удалите его.

  1. Подключите диск и назначьте ему букву P:, как вы сделали на первом компьютере (см. Подготовка съемного диска).
  2. Скачайте ту же версию PostgreSQL, которую использовали ранее, и запустите установщик, снова указав расположение P:\PostgreSQL\16.
  3. Позвольте установщику создать пароль службы, но на экране пароля снимите флажок Initialize Database. Завершите установку.
  4. Отредактируйте C:\Program Files\PokerTracker 4\Data\Config\PokerTracker.cfg, удалите всю информацию о базе данных и сохраните файл.
  5. Запустите PokerTracker 4. На экране настройки PostgreSQL введите пароль dbpass и нажмите Connect.
  6. Когда будет предложено создать базу данных, отметьте This Database Already Exists, нажмите Browse, выберите свою базу данных и нажмите Connect.

Теперь одна и та же база данных доступна на обоих компьютерах.

примечание

Не забывайте останавливать службу PostgreSQL перед переносом диска и запускать её снова после подключения к другому компьютеру (Start > Programs > PostgreSQL > Start Service).