FAQ

Для одной базы данных создайте логическую резервную копию с помощью pg_dump и восстановите её, используя psql или pg_restore. Чтобы включить роли и абсолютно все базы данных, используйте pg_dumpall, а если вам требуется восстановление на определенный момент времени (PITR), выберите физическое резервное копирование (base backup). Всегда тестируйте процесс восстановления на отдельном инстансе, прежде чем полагаться на него. SQL Manager для PostgreSQL выполняет резервное копирование и восстановление с помощью пошагового мастера, позволяя восстановить данные на выбранный сервер всего в несколько кликов.

EMS SQL Manager for PostgreSQL - это мощнейший графический инструмент для разработки и администрирования баз данных PostgreSQL. Он позволит легко и быстро создавать и редактировать объекты баз данных PostgreSQL, выполнять сценарии SQL, управлять пользователями и их привилегиями, визуально строить SQL запросы, просматривать статистику базы данных, извлекать и распечатывать метаданные, экспортировать/импортировать данные, просматривать и редактировать BLOB-поля, и многое другое.

Во-первых, Вы должны иметь возможность подключиться к локальному или удаленному серверу PostgreSQL. Во-вторых, Ваш компьютер должен соответствовать системным требованиям EMS SQL Manager for PostgreSQL.

Эти версии отличаются своей функциональностью. Поскольку SQL Manager Freeware – это бесплатное приложение, оно имеет ряд функциональных ограничений, например, максимальное количество зарегистрированных баз данных не может превышать 5, а также некоторые другие. Подробный список отличий вы можете найти на нашем сайте в Таблице характеристик программы.

Утилиты Data Export/Import for PostgreSQL включают в себя ряд дополнительных функций, не поддерживаемых SQL Manager for PostgreSQL, например:
  • экспорт/импорт данных из/в нескольких таблиц сразу;
  • экспорт/импорт данных из/в таблиц, выбранных из различных баз данных на одном хосте;
  • консольная утилита для экспорта/импорта с использованием файла конфигурации, содержащего все настройки.

 

В первую очередь, SQL Query for PostgreSQL работает быстрее, так как это более легкий продукт. Также SQL Query for PostgreSQL обладает рядом дополнительных функций для построения запросов, например:
  • "избранные/favorite" запросы для поиска и быстрого запуска наиболее часто исполняемых запросов;
  • хранение истории запросов, позволяющей совершить "откат" к любому отредактированному запросу;
  • различные улучшения интерфейса программы для более продуктивной и удобной работы.

DB Extract for PostgreSQL включает в себя некоторые дополнительные функции, которые недоступны в SQL Manager for PostgreSQL, например:

  • извлечение метаданных из различных баз данных, расположенных на одном сервере;
  • консольное приложение для упрощения процесса извлечения;
  • большая скорость работы.
Закладки DDL в Редакторе Таблиц и Редакторе UDF имеют параметры "только чтение/read only". Они отображают SQL-текст операций, которые Вы переносите из таблиц в закладки "Поля", "Индексы" или через UDF. Чтобы модифицировать этот текст необходимо скопировать его в буфер обмена, а затем изменять его, используя Редактор запросов.

 

SSH (Secure Shell Host) протокол используется для повышения компьютерной безопасности при работе с Unix-системами в Internet. SSH использует несколько алгоритмов шифрования разной степени надежности. Распространенность SSH связана еще и с тем, что многие Linux-подобные ОС (например, FreeBSD) включают в стандартную комплектацию SSH сервер. Для получения дополнительной информации вы можете посетить https://www.openssh.com. Опция SHH туннель в SQL Manager представляет собой средство организации безопасного доступа к PostgreSQL серверам при работе по небезопасным каналам связи. Также вы можете использовать SSH туннель для доступа к удаленным PostgreSQL серверам, если по каким-либо причинам порт 5432 закрыт для внешних подключений. Соединение через SSH туннель выглядит следующим образом. Сначала устанавливается соединение и производится процедура аутентификации между встроенным в SQL Manager SSH клиентом и удаленным SSH сервером, затем вся исходящая и входящая информация между программой и PostgreSQL сервером передается через SSH сервер с использованием коммуникационного порта (обычно 22), а SSH сервер транслирует информацию уже непосредственно PostgreSQL серверу. Чтобы зарегистрировать базу данных, соединение с которой должно выполняться с использованием SSH туннеля, вы должны задать следующие параметры при регистрации базы данных в SQL Manager for PostgreSQL.
На первом шаге:
- Хост - имя хоста, где расположен сервер PostgreSQL с точки зрения сервера SSH. Если SSH и PostgreSQL сервера установлены на одной машине, то он совпадает с хостом SSH, или он может быть 'localhost'.
- Порт - порт сервера PostgreSQL, его значение по умолчанию 5432.
- Пользователь - имя пользователя сервера PostgreSQL.
- Пароль - пароль пользователя PostgreSQL.
Имейте в виду, что имя хоста PostgreSQL должно быть задано относительно сервера SSH. Например, если PostgreSQL и SSH сервера установлены на одном компьютере, Вы должны указать localhost в качестве имени хоста вместо имени внешнего хоста или IP адреса. Далее выберите опцию Использовать туннелирование и SSH туннель.
На втором шаге:
- SSH хост - хост, где активирован сервер SSH.
- SSH порт - порт, где активирован сервер SSH.
- SSH пользователь - пользователь Linux машины. (Это пользователь Linux'a. Это не пользователь сервера PostgreSQL.)
- SSH пароль - пароль пользователя Linux'a.

Нужно ввести следующее:
На закладке "Туннелирование SSH":
- SSH хост - это хост, на котором активирован сервер SSH.
- SSH порт - порт, на котором запушен сервер SSH.
- SSH пользователь - это имя пользователя на сервере. (Пользователь сервера Linux. Это не имя пользователя сервера PostgreSQL).
- SSH пароль - пароль пользователя сервера Linux.
На закладке "Соединение":
- Хост - это хост, на котором расположен сервер PostgreSQL с точки зрения сервера SSH. Если сервер SSH расположен на том же компьютере, что и сервер PostgreSQL, то он приравнивается к Хосту SSH, или же к 'localhost'.
- Порт - это порт сервера PostgreSQL на Удаленном Хосте, по умолчанию его значение 5432.
- Пользователь - имя пользователя на сервере PostgreSQL.
- Пароль - это пароль пользователя на сервере PostgreSQL.

HTTP туннелирование - это способ, при котором соединение и передача данных между программой и PostgreSQL сервером происходит через протоколы HTTP/HTTPS, используя порт 80, через который работает обычный веб-браузер. Этот способ подходит для соединения с PostgreSQL, расположенном на удаленном сервере хостинг провайдера, когда прямое соединение невозможно из соображений безопасности. Соединение через HTTP туннель выглядит следующим образом: все исходящие запросы и команды с клиентских программ кодируются и передаются по протоколу HTTP/HTTPS, используя порт 80, специальному скрипту, который декодирует их, передает PostgreSQL серверу на обработку и возвращает обратно результат. Для использования этого способа на удаленном сервере должен быть установлен HTTP сервер (например, Apache) и PHP с подключенным расширением PostgreSQL. Как правило, это программное обеспечение предлагают все хостинг-провайдеры, предоставляющие услуги хостинга на Linux платформах. Кроме того, вы должны разместить наш emsproxy.php скрипт на вашем веб-сервере так, чтобы иметь к нему доступ извне (например, поместить его в каталог, где находятся ваши остальные PHP скрипты). Если ваш веб-сервер удовлетворяет данным требованиям и скрипт установлен правильно, то при открытии страницы https://<yourwebservername>/emsproxy.php в веб-браузере вы увидите страницу с сообщением 'The ‘emsproxy.php script is installed correctly'. Чтобы зарегистрировать базу данных, соединение к которой должно выполняться с использованием HTTP туннеля, вы должны задать следующие параметры в Мастере Регистрации Баз Данных в SQL Manager for PostgreSQL.
На первом шаге:
- Хост - это хост, где расположен PostgreSQL сервер с точки зрения HTTP сервера. Обычно HTTP и PostgreSQL сервер расположены на одной машине и являются 'localhost'.
- Порт - это порт PostgreSQL сервера на удаленном узле, по умолчанию он 5432.
- Пользователь - это имя пользователя на PostgreSQL сервере.
- Пароль - это пароль пользователя на PostgreSQL сервере.
Далее выберите опцию "Использовать туннелирование" и "SSH туннель".
На втором шаге:
- URL - это адрес, где находится скрипт emsproxy.php (например, https://mywebserver/emsproxy.php).
Вам нужно отключить параметр "Конвертировать имена создаваемых объектов к нижнему регистру" в диалоге "Настройки окружения" на закладке Инструменты/Редакторы объектов.

Чтобы получить источник данных в отчете, Вам нужно добавить диалоговую форму в отчет (меню 'Редактировать/Edit' 'Добавить форму диалога/Add dialog form' Конструктора Отчетов), затем поместить в нее базу данных и компоненты запроса из левой панели конструктора и установить связь и параметры запроса. После этого, запрос должен появиться в списках источников данных.

В целях повышения скорости работы и удобства Сетка Данных позволяет производить гибкую настройку многих параметров отображения данных. Ниже приведены наиболее важные из них (пункт меню "Настройки | Настройки окружения"). На закладке Сетка:
- Ограничения в редакторах. При включении опции "Выбирать все записи из таблицы" вы будете иметь возможность видеть все записи таблицы без дополнительных запросов к серверу, однако для больших таблиц или при низкоскоростном канале связи возможны значительные задержки при получении данных, также входящий трафик может быть большим. Режим рекомендуется при работе с базами данных, расположенными локально либо в частной сети. Режим "Выбирать только" ограничивает максимальное число записей, возвращаемых в результате запроса. Режим обусловлен тем, что человек не способен осмысленно просмотреть огромный объем информации за один раз. Для запроса и отображения следующей порции данных служит кнопка "Далее" в панели инструментов "Сетка Данных". Данный режим значительно ускоряет просмотр данных таблицы, предотвращает зависание и разрыв соединения при таймауте. Рекомендуется для работы с большими таблицами, при низкоскоростных каналах связи и когда объем трафика имеет значение. Данный режим включен по умолчанию. При данном режиме очень полезны опции "Использовать сортировку SQL" и "Использовать фильтр SQL".
На странице "Сетка | Настройки данных":
- Режим сетки по умолчанию. Данная опция определяет, будут ли все строки запроса загружаться в Сетку сразу ("Загружать все строки"), либо по мере необходимости ("Загружать видимые строки"), т.е. когда пользователь пролистывает данные в таблице. Первый режим увеличивает время открытия результата запроса, но уменьшает задержки при пролистывании. При втором режиме время открытия результата запроса минимально, но возникают задержки при навигации по сетке.
- Использовать сортировку SQL при просмотре данных. При включенной опции при задании пользователем сортировки данных на сервер отправляется новый запрос, результат которого заново отображается в сетке. Опция очень полезна при включенном режиме - "Выбирать только", но она увеличивает трафик. При отключенной опции сортировка выполняется на клиенте без участия сервера, но только в уже загруженных данных. Т.е. если указано "Выбирать только 1000 записей", то отсортируются только эти записи.
- Использовать фильтр SQL при просмотре данных. При включенной опции фильтрация данных будет производиться на сервере, куда отправляется новый запрос, результат которого заново отображается в сетке. Также очень полезная опция при включенном режиме - "Выбирать только", но она увеличивает трафик. При отключенной опции фильтрация выполняется на клиенте без участия сервера, но только в уже загруженных данных. Т.е. если указано "Выбирать только 1000 записей", то фильтр будет выбирать только из этих записей.
Для максимальной производительности при работе с большими таблицами мы рекомендуем установить следующие значения для опций:
- Выбирать только - Включено
- Загружать все строки - Включено
- Использовать сортировку SQL - Включено
- Использовать фильтр SQL - Включено

Вам необходимо включить опцию "Загрузить все записи". Щелкните правой кнопкой мыши на таблице и выберите опцию "Режим сетки/Загрузить все записи".

Предоставьте доступ к существующим таблицам командой GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO your_user и добавьте GRANT USAGE ON SCHEMA public, чтобы роль могла видеть схему. Это распространяется только на таблицы, существующие в данный момент, поэтому используйте ALTER DEFAULT PRIVILEGES, чтобы применить те же права к таблицам, которые будут созданы позже. SQL Manager for PostgreSQL позволяет управлять ролями, привилегиями на схемы и таблицы, а также привилегиями по умолчанию в визуальном редакторе, так что вы можете проверять и изменять доступ, не прописывая операторы GRANT вручную.

Диалог "Регистрационная информация базы данных" содержит закладку "Журналы", в которой Вы можете разрешить протоколирование всех изменений метаданных в базе данных, а также протоколирование выражений SQL, выполняемых в Редакторе SQL.

На сервере задайте параметр listen_addresses в postgresql.conf, чтобы PostgreSQL принимал внешние подключения, добавьте в pg_hba.conf соответствующее правило host для IP-адреса клиента и метода аутентификации, затем откройте порт 5432 в файрволе и перезагрузите конфигурацию. С клиента вы подключаетесь, указав хост, порт, базу данных, пользователя и пароль, желательно по SSL. SQL Manager for PostgreSQL хранит все эти данные в менеджере подключений, так что вы можете сохранять, упорядочивать удалённые серверы и повторно подключаться к ним, не вводя параметры заново.

Начните с запуска EXPLAIN ANALYZE для запроса, чтобы увидеть реальный план выполнения и найти последовательные сканирования, дорогостоящие сортировки или строки, количество которых планировщик оценил неверно. Большинство медленных запросов удаётся исправить добавлением целевого индекса, переписыванием соединения или обновлением статистики с помощью ANALYZE, а pg_stat_statements помогает найти самые проблемные запросы по всему серверу. EMS SQL Manager for PostgreSQL наглядно отображает план выполнения со стоимостью каждого элемента, позволяя диагностировать и исправлять медленные запросы без необходимости анализировать исходный текст плана. Полученный план можно экспортировать и использовать для последующего сравнения.

Поля типов TEXT, BYTEA, OID, а также VARCHAR больших размеров или без определенного размера по умолчанию не экспортируются. Необходимо вручную выбрать поля для экспорта в закладке "Поля".

Функция "Экспорт в SQL-скрипт" предназначена для экспорта табличных данных, которые будут вставлены в другую базу данных, отличную от сервера PostgreSQL. Функция "Извлечение базы данных" используется для копирования данных в таблицы сервера PostgreSQL.
Для смены директории выполните следующие действия:
- Щелкните правой клавишей мыши на необходимой базе данных в Проводнике БД и левой клавишей на "Регистрационная информация базы данных" во всплывающем меню (этот пункт Вы можете найти также в основном меню "База данных"). Откроется форма с параметрами базы данных.
- Щелкните левой клавишей на закладке "Каталоги".
- В секции "Каталог для экспорта данных" Вы можете выбрать директорию для экспорта файла.

Вам нужно увеличить значения задержек в закладке "Инструменты | Таймауты" диалога "Настройки окружения", или установить их равными нулю, то есть неограниченными.

Пожалуйста, убедитесь, что файл libpq.dll находится в директории SQL Manager for PostgreSQL. Переустановка приложения может решить эту проблему.

Настроить все отображаемые форматы (integer, float, date, time и date/time) можно в окне "Настрйоки окружения | Сетка | Форматы".

Да, это возможно. Главное - это то, что сам SQL Manager работает исключительно под управлением MS WINDOWS. Однако, под какой ОС работает PostgreSQL сервер, не имеет никакого значения.

Если из-за политики безопасности, принятой у вас в корпоративной сети или хостинг провайдером, вы не можете соединиться с вашим PostgreSQL сервером напрямую через TCP/IP (например, этому мешает файервол), то для этой цели вы можете использовать опцию SSH или HTTP туннель в SQL Manager.

1. Убедитесь, что в файле pg_hba.conf PostgreSQL сервера (находится в папке данных кластера базы данных) имеется запись для вашего клиентского компьютера.
2. Если вы соединяетесь с удаленным сервером, то на удаленном сервере должны быть разрешены TCP/IP соединения. Для этого необходимо отредактировать файл postgresql.conf на сервере: в список listen_addresses надо добавить имя или TCP/IP адрес клиентского компьютера. Либо можно указать в этом параметре звездочку - тогда будет разрешен коннект с любого хоста. То же самое можно сделать, запустив сервер с опцией -i, что эквивалентно listen_addresses = '*'.
3. Убедитесь, что вы вводите корректный логин/пароль.
4. Вы используете аутентификацию по паролю, но она не поддерживается в SQL Manager'e.
 

SQL Manager хранит все свои настройки в реестре Windows. Это означает, что единственный способ перенести их – получить доступ к реестру Windows. Сделать это можно, загрузив ОС со старого HDD (если это возможно) либо открыв файл реестра специальной программой-редактором. Если это удалось, то можно выгрузить ветку ‘HKEY_CURRENT_USER\Software\EMS\PostgreSQL Manager’ в *.REG файл, перенести этот файл на новую систему и добавить информацию в реестр с помощью двойного щелчка мыши по файлу.

Определите таблицу с помощью CREATE TABLE, указав её столбцы, типы данных, первичный ключ, а также внешние ключи и ограничения, затем ускорьте поиск с помощью CREATE INDEX, который по умолчанию строит B-tree индекс. Выбирайте порядок столбцов и тип индекса (B-tree, GIN, GiST), исходя из того, как вы на самом деле запрашиваете данные. SQL Manager for PostgreSQL включает визуальный дизайнер таблиц и индексов, так что вы можете моделировать столбцы, ключи, ограничения и индексы в графическом интерфейсе и применять сгенерированный DDL, не прописывая SQL вручную.