Команды SQL. Документация pgadmin


pgAdmin 4 (Подключение и настройка для 1С

Приветствую, Друзья!

В этой части статьи мы продолжим разбирать настройки pgAdmin 4 для 1С Предприятия. Вы узнаете, как при помощи консоли pgAdmin 4 делать «бэкапы» и восстановления информационных баз 1С.

Рассмотрим создание пользователей и баз данных, а также (уже в третий заключительной части статьи) не пройдем мимо обслуживания баз на PostgreSQL.Ведь как и в MS SQL информационные базы 1С на PostgreSQL, также нуждаются в обслуживании.

В прошлый раз мы закончили с базовыми настройками, подключились к серверу СУБД. А это значит, что теперь можно создавать пользователя и базы для работы в 1С.

Зачем нам еще один пользователь, ведь у нас же есть наш root «postgres» ? Создавая еще одного пользователя от имени, которого, мы будем подключать базы на сервере 1С (Кластер серверов) мы тем самым немного повысим безопасность подключения.

Почему немного ?

Дело в том, что для подключения, создания и работы в 1С, необходимы привилегии, так сказать права «суперпользователя» в pgAdmin 4. (Роль суперпользователя наделяет «учетку» большими полномочиями, но увы 1С это требует ).

Давайте создавать такого.

Правый клик мышкой на «Роли входа/группы» — «Создать» — «Роль входа/группы…»

Затем придумаем имя для нашего пользователя, например: «user_1s» и в комментарии стоит прописать, что это за пользователь.

Перейдем на вкладку «Определение» и укажем пароль для пользователя «user_1s».

Также на этой вкладке мы можем указать срок действия роли («Роль активна до»), что будет особо актуально для теста.

Часто взломы как раз и происходят на таких брошенных «учетках» слабые пароли делают свое дело.

Если Вам протестировать, тогда совет!  — Сразу ставьте срок действия!

И еще одна полезная опция, это «Максимальное число подключений».

Здесь также стоит ограничиться числом подключений к базе 1С. (Небольшой плюс в сторону безопасности).

И наконец, права. (Вкладка)

К сожалению, для нормальной работы в 1С, нам потребуются права «Суперпользователя».

А также обязательно установим переключатель «Вход разрешен?».

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

Сохраним «роль».

Вот теперь уже можно приступать к созданию ИБ в PostgreSQL.

ВНИМАНИЕ!

Создавать новую базу для работы в 1С,  следует только с помощью утилиты администрирования кластера серверов (Сервера 1С).

Допускается также и ее создание на «Тонком» или «Толстом клиенте».

Как это сделать, можно посмотреть вот здесь >>.

Теперь поговорим о создании баз средствами pgAdmin 4.

Казалось бы зачем нам это нужно если базы следует создавать только средствами утилиты или клиента 1С?

А ответ кроется в восстановлении баз данных на СУБД PostgreSQL.

Нам будет нужна «новая база» для последующего восстановления.

Но к этому вопросу мы еще вернемся и разберем все подробно.

И так «Как создать новую базу при помощи pgAdmin 4» ?

Правый клик мышкой по «Базы данных»- «Создать» — «База данных…»

Теперь на вкладке «Общие» зададим имя, любое на Ваше усмотрение.

Укажем владельца обязательно наш рут «postgres» и оставим комментарий.

Главное чтоб Вам было понятно, что это за база и для чего она предназначена.

В нашем случаи имя базы  «replica» будет служить для нас «обложкой» для будущих восстановлений из бэкапа если такие потребуются.

(Сменить имя базы можно будет в любой момент.)

Другими словами мы ее создадим и оставим в покое до нужного случая. (Потом это существенно ускорит процесс восстановления из резервной копии).

Теперь идем на вкладку  «Определение» и выполним некоторые настройки.

Укажем кодировку.

Кодировка: UTF-8.

Таблично пространство: «pg_default».

Правило сортировки: «Russia_Russia.1251».

Тип символов: «Russia_Russia.1251».

Также мы можем ограничить число подключений к базе данных, указав соответствующее значение в строке — «Макс. число подключений».

Также хочу обратить Ваше внимание на поле: Шаблон.

Выбрав соответствующий шаблон, мы сможем быстро создать копию базы из него!

Теперь кликнув по кнопке «Сохранить» мы создадим новую информационную базу так сказать шаблон или «обложку» для будущих восстановлений.

Если Вы выполнили все те действия что описаны выше, тогда отлично! мы можем приступить к следующему шагу

-Резервное копирование («бэкап» базы на PostgreSQL) с использованием pgAdmin 4.

Обычно, резервное копирование баз данных в PostgreSQL выполняется при помощи консольных утилит pg_dump и pg_dumpall.

Они будут установлены вместе с PostgreSQL и Вы всегда найдете их в каталоге Bin (Пример: C:\Program Files\PostgresPro 1C\9.6\bin).

Утилиты консольные! и запустив их на выполнение, Вы не увидите интерфейса.

Работать с ними нужно только передав параметры (Выполнив определенный скрипт).

Пример командного файла:

"C:\Program Files\PostgreSQL\9.6.2-1.1C\bin\pg_dump.exe" --host localhost --port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --section pre-data --section data --section post-data --encoding UTF8 --verbose --file "d:\1s_base.backup" "1s_base"

"C:\Program Files\PostgreSQL\9.6.2-1.1C\bin\pg_dump.exe" --host localhost --port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --section pre-data --section data --section post-data --encoding UTF8 --verbose --file "d:\1s_base.backup" "1s_base"

 

Подобный код будет выполнять за Вас pgAdmin 4, для создания резервной копии на СУБД PostgreSQL.

То-есть pgAdmin 4 обращается к утилите pg_dump.exe (конечно в зависимости от выбранного формата) передает ей нужные указания (параметры) и делает копию.

Что и будет для многих новичков весьма кстати!

Так как писать руками ничего не приходится, и все сводится до нескольких кликов мышкой.

 

Прежде чем мы приступим к практике создания бэкапов при помощи pgAdmin 4, расскажу в двух словах еще об утилитах pg_dump.exe и pg_dumpall.exe.

pg_dump — это утилита позволяющая делать бэкап базы данных из postgresql. Она сохраняет в файл набор SQL команд которые полностью воссоздают структуру исходной базы данных.

При этом в один момент времени выполняется бэкап только одной базы данных и во многих случаях даже «на горячую».

То-есть когда в базе работают пользователи!

pg_dumpall — используется для бэкапа всего кластера, утилита создает резервную копию всех баз данных, а также сохраняет данные уровня кластера, такие как роли и определения табличных пространств, одним словом все.

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

Только базовые вещи реализованы в pgAdmin 4, которых к слову новичку будет достаточно, а вот специалисту  желающему получить более гибкие настройки придется поработать с командной строкой.

 

 

Как создать резервную копию базы 1С используя pgAdmin 4 ?

Правый клик мышкой по базе которую хотим «забэкапить» и «Резервная копия…»

«Имя файла» укажем путь к файлу, в который будет упакован наш «бэкап».

Рекомендую указать путь, где будет создан наш «бэкап», + имя файла указать в формате даты и базы которую резервируем. (Как на картинке ниже).

Так мы будем точно знать когда и какой «бэкап» сделали.

В поле «Имя файла»  — можно также указать и уже ранее созданный «бэкап» файла который будет в таком случаи просто перезаписан.

Далее формат! его нужно указать обязательно!

В pgAdmin 4 есть несколько форматов выгрузки базы в дамп.

1. Специальный — этот формат архива рекомендуется для средних и больших баз данных, поскольку он по умолчанию сжимается.

2. Tar — этот формат рекомендую выбирать для малых баз и + надежность!

(Коэффициент сжатия в таком случаи оставляем пустое значение , так как Tar не поддерживает сжатие).

(Tar — это файл архива).

3. «Простой» формат нужен, чтоб создать файл сценария с открытым текстом. Будет создан файл сценария с открытым текстом, который содержит инструкции и команды SQL. Файл резервной копии в  «Простом» формате можно отредактировать в текстовом редакторе при необходимости. (Не рекомендую этот формат для «бэкапа» баз 1С!!!).

4. Каталог, этот формат предназначен, чтобы создать архив в формате каталога.

Этот формат файла создает каталог с одним файлом для каждой таблицы и сбрасывается blob! (blob — крупные объекты в резервной копии.) а также файл оглавления, описывающий сбрасываемые объекты в машиночитаемом формате, который может читать pg_restore (Утилита восстановления из резервной копии). Этот формат сжимается по умолчанию. (Не рекомендую его для «бэкапа» баз 1С!!!).

Коэффициент сжатия — здесь можно указать значение коэффициента от 0..до..9, или оставить поле пустым (Кроме Tar).

Кодировку  — указывать не нужно.

Число заданий — указывать не нужно

Число заданий — настройка позволяет указать количество таблиц, которые будут сбрасываться одновременно в параллельной резервной копии. (Оставим пустое).

Имя роли нужно указать рута «postgres».

Настройки на вкладке «Параметры выгрузки» трогать не стоит. (Оставляем их по умолчанию так как у нас база 1С).

«Параметры выгрузки» позволяют лишь ограничить «бэкап», сделать его не полным, что конечно недопустимо в 1С.

После того как все нужные поля заполнены, выполним клик по кнопке «Резервная копия».

И pgAdmin 4 начнет работу по созданию резервной копии нашей базы 1С «buh_3».

Если кликнуть по ссылке «Щёлкните здесь для подробностей», то можно увидеть процесс создания резервной копии онлайн, а также скрипт, что отрабатывает в дынный момент в pg_dump.

Вот и все! резервная копия успешно создана!

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

Восстановление баз 1С из «бэкапа» при помощи pgAdmin 4 ничуть не сложнее чем его создание.

Вот и пришло время обратится к нашей чистой базе «обложке»  «replica».

На нее мы накатим наш «бэкап» базы «buh_3».

Правый клик мышкой по базе «replica» и «Восстановить…».

Формат оставляем по умолчанию «tar или специальный» собственно который и рекомендуется для баз 1С Предприятия.

Имя файла — путь к файлу резервной копии.

Число заданий — оставим пустое.

Имя роли — наш рут «postgres».

Затем клик по кнопке «Восстановить».

Восстановление баз данных в PostgreSQL (в основном, если не текстовый формат «бэкапа») выполняется при помощи утилиты pg_restore.exe.

Утилита pg_restore предназначена для восстановления базы данных PostgreSQL из архива, созданного утилитой pg_dump в любом из не текстовых форматов. Она выполняет команды, необходимые для восстановления того состояния базы данных, в котором база была сохранена. При наличии файлов архивов, pg_restore может восстанавливать данные избирательно или даже переупорядочить объекты перед восстановлением. Примечательно, что разработанный для файлов архива формат не привязан к архитектуре.

Как и создание «бэкапа», так и его восстановление можно подробно отслеживать в онлайне.

Процесс восстановления базы в PostgreSQL не быстрый. И даже чтоб восстановить базу размером всего на ~600 mb ушло (как видите на картинке ниже) — 106 секунд.

Теперь дело за малым.

Удалим старую базу «buh_3» и переименуем «replica» на «buh_3«.

Учтите, что удалить или переименовать базу, в которой продолжают работать пользователи невозможно!

Затем после удаления старой базы «buh_3», сменим имя «replica» на «buh_3» через «Свойства» базы.

Вот и все!

Мы успешно восстановили базу из ранее созданной резервной копии.

В некоторых случаях (и для малых баз 1С), допускается выполнять такие операции руками, но помните, что так Вы рискуете забыть сделать актуальную резервную копию, существует риск, что сработает обычный «человеческий фактор»! 

Конечно для организации «правильных бэкапов»,  процесс создания резервной копии должен быть автоматизирован.

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

Увы никакого подобия «планировщика» в pgAdmin 4 нет (, и чтоб поставить этот процесс на автомат, нам нужно воспользоваться сторонним инструментом.

Если мы говорим о Windows и новичках администраторах 1С, тогда несомненно лучшим выбором будет программа  «PostgresBackup».

Это бесплатный софт (Две базы бесплатно) со встроенным планировщиком, который запросто можно настроить для автоматического резервного копирования баз 1С на PostgreSQL.

В следующей заключительной статье, подробно разберем обслуживание баз данных в PostgreSQL, используя pgAdmin 4.

kuharbogdan.com

PostgreSQL : Документация: 10: 1.2. Основы архитектуры : Компания Postgres Professional

1.2. Основы архитектуры

Прежде чем продолжить, вы должны разобраться в основах архитектуры системы PostgreSQL. Составив картину взаимодействия частей PostgreSQL, вы сможете лучше понять материал этой главы.

Говоря техническим языком, PostgreSQL реализован в архитектуре клиент-сервер. Рабочий сеанс PostgreSQL включает следующие взаимодействующие процессы (программы):

  • Главный серверный процесс, управляющий файлами баз данных, принимающий подключения клиентских приложений и выполняющий различные запросы клиентов к базам данных. Эта программа сервера БД называется postgres.

  • Клиентское приложение пользователя, желающее выполнять операции в базе данных. Клиентские приложения могут быть очень разнообразными: это может быть текстовая утилита, графическое приложение, веб-сервер, использующий базу данных для отображения веб-страниц, или специализированный инструмент для обслуживания БД. Некоторые клиентские приложения поставляются в составе дистрибутива PostgreSQL, однако большинство создают сторонние разработчики.

Как и в других типичных клиент-серверных приложениях, клиент и сервер могут располагаться на разных компьютерах. В этом случае они взаимодействуют по сети TCP/IP. Важно не забывать это и понимать, что файлы, доступные на клиентском компьютере, могут быть недоступны (или доступны только под другим именем) на компьютере-сервере.

Сервер PostgreSQL может обслуживать одновременно несколько подключений клиентов. Для этого он запускает («порождает») отдельный процесс для каждого подключения. Можно сказать, что клиент и серверный процесс общаются, не затрагивая главный процесс postgres. Таким образом, главный серверный процесс всегда работает и ожидает подключения клиентов, принимая которые, он организует взаимодействие клиента и отдельного серверного процесса. (Конечно всё это происходит незаметно для пользователя, а эта схема рассматривается здесь только для понимания.)

postgrespro.ru

PostgreSQL : Документация: 9.6: F.1. adminpack : Компания Postgres Professional

Модуль adminpack предоставляет несколько вспомогательных функций, которыми могут пользоваться pgAdmin и другие средства администрирования и управления базами данных, например, для удалённого управления файлами журналов сервера. Использовать все эти функции разрешено только суперпользователям.

Функции, приведённые в Таблице F.1, дают доступ на запись к файлам на компьютере, где работает сервер. (См. также функции в Таблице 9.86, которые дают доступ только на чтение.) С их помощью можно обращаться только к файлам в каталоге кластера баз данных, но путь может задаваться и как относительный, и как абсолютный.

Таблица F.1. Функции модуля adminpack

ИмяТип результатаОписание
pg_catalog.pg_file_write(filename text, data text, append boolean)bigintЗаписать или дописать в текстовый файл
pg_catalog.pg_file_rename(oldname text, newname text [, archivename text])booleanПереименовать файл
pg_catalog.pg_file_unlink(filename text)booleanУдалить файл
pg_catalog.pg_logdir_ls()setof recordПолучить список файлов журналов в каталоге log_directory

Функция pg_file_write записывает данные (data) в файл с именем filename. Если флаг append сброшен, этот файл не должен существовать. Если же флаг append установлен, существование файла допускается и в этом случае данные будут дописаны в него. Возвращает число записанных байтов.

Функция pg_file_rename переименовывает файл. Если параметр archivename опущен или равен NULL, она просто переименовывает файл oldname в newname (файл с новым именем не должен существовать). Если параметр archivename задан, она сначала переименовывает newname в archivename (такой файл не должен существовать), а затем переименовывает oldname в newname. В случае ошибки на втором этапе переименования она попытается переименовать archivename назад в newname, прежде чем выдать ошибку. Возвращает true в случае успеха и false, если исходные файлы отсутствуют или их невозможно изменить; в других случаях выдаются ошибки.

Функция pg_file_unlink удаляет заданный файл. Возвращает true в случае успеха, false в случае отсутствия указанного файла либо при сбое в вызове unlink(); в других случаях выдаются ошибки.

Функция pg_logdir_ls возвращает время создания и пути всех файлов журналов в каталоге log_directory. Чтобы эта функция работала, параметр log_filename должен иметь значение по умолчанию (postgresql-%Y-%m-%d_%H%M%S.log).

Функции, перечисленные в Таблице F.2, являются устаревшими и не должны использоваться в новых приложениях; вместо них следует использовать функции, описанные в Таблице 9.77 и Таблице 9.86. Эти функции включены в adminpack только для совместимости со старыми версиями pgAdmin.

Таблица F.2. Устаревшие функции модуля adminpack

ИмяТип результатаОписание
pg_catalog.pg_file_read(filename text, offset bigint, nbytes bigint)textАльтернативный вариант функции pg_read_file()
pg_catalog.pg_file_length(filename text)bigintВыдаёт то же значение, что содержится в столбце size результата pg_stat_file()
pg_catalog.pg_logfile_rotate()integerАльтернативный вариант pg_rotate_logfile(), возвращает целое (0 или 1), а не булевское значение

postgrespro.ru

PostgreSQL : Документация: 9.6: psql : Компания Postgres Professional

-a--echo-all

Отправляет на стандартный вывод все непустые входные строки по мере их чтения. (Это не относится к строкам, считанным в интерактивном режиме.) Эквивалентно установке переменной ECHO в значение all.

-A--no-align

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

-b--echo-errors

Посылает все команды SQL с ошибками на стандартный вывод. Равнозначно присвоению переменной ECHO значения errors.

-c команда--command=команда

Передаёт psql команду для выполнения. Этот ключ можно повторять и комбинировать в любом порядке с ключом -f. Когда указывается -c или -f, psql не читает команды со стандартного ввода; вместо этого она завершается сразу после обработки всех ключей -c и -f по порядку.

Заданная команда должна быть либо командной строкой, которая полностью интерпретируется сервером (т. е. не использует специфические функции psql), либо одиночной командой с обратной косой чертой. Таким образом, используя -c, нельзя смешивать метакоманды SQL и psql. Но это можно сделать, передав несколько ключей -c или передав строку в psql через канал:

psql -c '\x' -c 'SELECT * FROM foo;'

или

echo '\x \\ SELECT * FROM foo;' | psql

(\\ — разделитель метакоманд.)

Каждая строка SQL-команд, заданная ключом -c, передаётся на сервер как один запрос. Поэтому сервер выполняет её в одной транзакции, даже когда эта строка содержит несколько команд SQL, если только в ней не содержатся явные команды BEGIN/COMMIT, разделяющие её на несколько транзакций. Кроме того, psql печатает результат только последней SQL-команды в строке. Это отличается от поведения, когда та же строка считывается из файла или подаётся на стандартный ввод psql, так как в последнем случае psql передаёт каждую команду SQL отдельно.

Из-за такого поведения указание нескольких команд в одной строке -c часто приводит к неожиданным результатам. Поэтому лучше использовать несколько ключей -c или подавать команды на стандартный ввод psql, применяя либо echo, как показано выше, либо создаваемый прямо в оболочке документ, например:

psql <<EOF \x SELECT * FROM foo; EOF-d имя_бд--dbname=имя_бд

Указывает имя базы данных для подключения. Эквивалентно указанию dbname в качестве первого аргумента, не являющегося параметром в командной строке.

Если этот параметр содержит знак = или начинается с допустимого префикса URI (postgresql:// или postgres://), он воспринимается как строка conninfo. За дополнительными сведениями обратитесь к Подразделу 32.1.1.

-e--echo-queries

Посылает все команды SQL, отправленные на сервер, ещё и на стандартный вывод. Эквивалентно установке переменной ECHO в значение queries.

-E--echo-hidden

Отображает фактические запросы, генерируемые \d и другими командами, начинающимися с \. Это можно использовать для изучения внутренних операций в psql. Эквивалентно установке переменной ECHO_HIDDEN значения on.

-f имя_файла--file=имя_файла

Читает команды из файла имя_файла, а не из стандартного ввода. Этот ключ можно повторять и комбинировать в любом порядке с ключом -c. Если указан ключ -c или -f, программа psql не читает команды со стандартного ввода; вместо этого она завершается после обработки всех ключей -c и -f по очереди. Не считая этого, данный ключ по большому счёту равнозначен метакоманде \i.

Если имя_файла задано символом - (минус), считывается стандартный ввод до признака конца файла или до метакоманды \q. Это позволяет перемежать интерактивный ввод с вводом из файлов. Однако заметьте, что Readline в этом случае не применяется (так же, как и с ключом -n).

Использование этого параметра немного отличается от psql < filename. В основном, оба варианта будут делать то, что вы ожидаете, но с -f доступны некоторые полезные свойства, такие как сообщения об ошибках с номерами строк. Также есть небольшая вероятность, что запуск в таком режиме будет быстрее. С другой стороны, вариант с перенаправлением ввода из командного интерпретатора (в теории) гарантирует получение точно такого же вывода, какой вы получили бы, если бы ввели всё вручную.

-F separator--field-separator=separator

Использование separator в качестве разделителя полей при невыровненном режиме вывода. Эквивалентно \pset fieldsep или \f.

-h компьютер--host=компьютер

Указывает имя компьютера, на котором работает сервер. Если значение начинается с косой черты, оно определяет каталог Unix-сокета.

-H--html

Включает табличный вывод в формате HTML. Эквивалентно \pset format html или команде \H.

-l--list

Выводит список всех доступных баз данных и завершает работу. Другие параметры, не связанные с соединением, игнорируются. Это похоже на метакоманду \list.

-L имя_файла--log-file=имя_файла

В дополнение к обычному выводу, записывает вывод результатов всех запросов в файл filename.

-n--no-readline

Отключает использование Readline для редактирования командной строки и использования истории команд. Может быть полезно для выключения расширенных действий клавиши табуляции при вырезании и вставке.

-o имя_файла--output=имя_файла

Записывает вывод результатов всех запросов в файл filename. Эквивалентно команде \o.

-p порт--port=порт

Указывает TCP-порт или расширение файла локального Unix-сокета, через который сервер принимает подключения. Значение по умолчанию определяется переменной среды PGPORT, если она установлена, либо числом, заданным при компиляции, обычно 5432.

-P assignment--pset=assignment

Задаёт параметры печати, в стиле команды \pset. Обратите внимание, что имя параметра и значение разделяются знаком равенства, а не пробела. Например, чтобы установить формат вывода в LaTeX, нужно написать -P format=latex.

-q--quiet

Указывает, что psql должен работать без вывода дополнительных сообщений. По умолчанию, выводятся приветствия и различные информационные сообщения. Этого не произойдёт с использованием данного параметра. Полезно вместе с параметром -c. Этот же эффект можно получить, установив для переменной QUIET значение on.

-R separator--record-separator=separator

Использует separator как разделитель записей при невыровненном режиме вывода. Эквивалентно команде \pset recordsep.

-s--single-step

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

-S--single-line

Запуск в однострочном режиме, при котором символ новой строки завершает SQL-команды, также как это делает точка с запятой.

Примечание

Этот режим реализован для тех, кому он нужен, но это не обязательно означает, что и вам нужно его использовать. В частности, если смешивать в одной строке команды SQL и метакоманды, порядок их выполнения может быть не всегда понятен для неопытного пользователя.

-t--tuples-only

Отключает вывод имён столбцов и результирующей строки с количеством выбранных записей. Эквивалентно команде \t.

-T table_options--table-attr=table_options

Задаёт атрибуты, которые будут вставлены в тег HTML table. За подробностями обратитесь к описанию \pset.

-U имя_пользователя--username=имя_пользователя

Подключение к базе данных под пользователем username вместо используемого по умолчанию. (Разумеется, при наличии прав на это.)

-v assignment--set=assignment--variable=assignment

Выполняет присвоение значения переменной, как метакоманда \set. Обратите внимание на то, что необходимо разделить имя переменной и значение (при наличии) знаком равенства в командной строке. Чтобы сбросить переменную, опустите знак равенства. Чтобы установить пустое значение, поставьте знак равенства, но опустите значение. Присваивания выполняются на очень ранней стадии запуска, поэтому если переменные зарезервированы для внутренних целей, то позже они могут быть перезаписаны.

-V--version

Выводит версию psql и завершает работу.

-w--no-password

Не выдавать запрос на ввод пароля. Если сервер требует аутентификацию по паролю и пароль не доступен с помощью других средств, таких как файл .pgpass, попытка соединения не удастся. Этот параметр может быть полезен в пакетных заданиях и скриптах, где нет пользователя, который вводит пароль.

Обратите внимание, что этот параметр действует на протяжении всей сессии и, таким образом, влияет на метакоманду \connect, также как и на первую попытку соединения.

-W--password

Принудительно запрашивать пароль перед подключением к базе данных.

Это несущественный параметр, так как psql запрашивает пароль автоматически, если сервер проверяет подлинность по паролю. Однако, чтобы понять это, psql лишний раз подключается к серверу. Поэтому иногда имеет смысл ввести -W, чтобы исключить эту ненужную попытку подключения.

Обратите внимание, что этот параметр действует на протяжении всей сессии и, таким образом, влияет на метакоманду \connect, также как и на первую попытку соединения.

-x--expanded

Включает режим развёрнутого вывода таблицы. Эквивалентно команде \x.

-X,--no-psqlrc

Не читать стартовые файлы (ни общесистемный файл psqlrc, ни пользовательский файл ~/.psqlrc).

-z--field-separator-zero

Установить нулевой байт в качестве разделителя полей для невыровненного режима вывода.

-0--record-separator-zero

Установить нулевой байт в качестве разделителя записей для невыровненного режима вывода. Это полезно при взаимодействии с другими программами, например, с xargs -0.

-1--single-transaction

Этот параметр может применяться только в сочетании с одним или несколькими параметрами -c и/или -f. С ним psql выполняет команду BEGIN перед обработкой первого такого параметра и COMMIT после последнего, заворачивая таким образом все команды в одну транзакцию. Это гарантирует, что либо все команды завершатся успешно, либо никакие изменения не сохранятся.

Если в самих этих командах содержатся операторы BEGIN, COMMIT или ROLLBACK, этот параметр не даст желаемого эффекта. Кроме того, если какая-либо отдельная команда не может выполняться внутри блока транзакции, с этим параметром вся транзакция прервётся с ошибкой.

-?--help[=тема]

Показать справку по psql и завершиться. Необязательный параметр тема (по умолчанию options) выбирает описание интересующей части psql: commands описывает команды psql с обратной косой чертой; options описывает параметры командной строки, которые можно передать psql; а variables выдаёт справку по переменным конфигурации psql.

postgrespro.ru

pgAdmin

[ Скачать с сервера ]

Мощная утилита для создания баз данных в PostgreSQL. 

Лицензия: Artistic.

Примечание к загрузке:

после перехода по ссылке выберете слева вашу ОС.

pgAdmin имеет огромный спектр возможностей и безусловно лучший способ проверить это скачать и установить программу 

pgAdmin

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

Мультиплатформенный

  • Microsoft Windows ™ 2000 и выше
  • Linux
  • FreeBSD
  • Mac OSX
  • Solaris

Предназначен для нескольких версий PostgreSQL и производных финансовых инструментов

  • PostgreSQL 7.3 и выше
  • Postgres Plus Advanced Server
  • Greenplum базы данных

Обширная документация

  • pgAdmin Документация
  • Гуру подсказки, чтобы помочь менее опытным пользователям
  • PostgreSQL документации (он-лайн и оф-лайн)
  • Slony-I документации

Многоязычный интерфейс

  • Более десятка поддержке переводов и более 25 частичного перевода. Подробный список поддерживаемых Языки доступно на статус перевода страницы.

Доступ к данным

  • Родные PostgreSQL acccess (без слоя ODBC необходимо)
  • Мощный инструмент для запроса с цветной подсветкой синтаксиса
  • Очень быстро DataGrid для отображения / ввода данных

Плановое техническое обслуживание

  • Файл конфигурации редактирования
  • Авто-вакуум управления (PostgreSQL 8.1 и выше)
  • Logfile браузера
  • Блокировка просмотра
  • Статус сервера / процесс просмотра
  • SQL / корпуса / партии планирования заданий агент

Доступ ко всем объектам PostgreSQL

Зависимая, и зависимость объекты могут быть просмотрены, и объект статистики рассматривать в случае необходимости.

  • Агрегаты
  • Слепки
  • Колонны
  • Ограничения
  • Преобразование
  • Базы данных
  • Домены
  • Функции
  • Группы
  • Индексы России
  • Оператор классов
  • Операторы
  • PostgreSQL серверов
  • Роли
  • Правила
  • Схемы
  • Последовательности
  • Серверные Языки (например, PL / PgSQL, PL / Perl, PL / Python и т.д.)
  • Slony-I предметы (например, узлов кластеров т.д.)
  • Таблицы
  • Табличные
  • Триггер функций
  • Типы
  • Пользователь
  • Просмотров

Мультибайтовых поддержки

pgAdmin PostgreSQL поддерживает большинство серверных кодировок:

  • SQL_ASCII
  • EUC_JP, EUC_CN, EUC_KR, EUC_TW
  • JOHAB
  • Latin1, латиница 2, латиница 3, latin4, latin5, латиница 6, LATIN7, LATIN8, Перевести из кодировки latin9, LATIN10
  • ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8
  • Unicode/UTF-8
  • MULE_INTERNAL
  • KOI8
  • WIN
  • ALT
  • WIN1256
  • TCVN
  • WIN874
30.04.2008 Базы данных

open-club.net

PostgreSQL : Документация: 10: Команды SQL : Компания Postgres Professional

Эта часть документации содержит справочную информацию по командам SQL, поддерживаемым PostgreSQL. Под «SQL» здесь понимается язык вообще; сведения о соответствии стандартам и совместимости всех команд приведены на соответствующих страниц справочника.

Содержание

ABORT — прервать текущую транзакциюALTER AGGREGATE — изменить определение агрегатной функцииALTER COLLATION — изменить определение правила сортировкиALTER CONVERSION — изменить определение перекодировкиALTER DATABASE — изменить атрибуты базы данныхALTER DEFAULT PRIVILEGES — определить права доступа по умолчаниюALTER DOMAIN — изменить определение доменаALTER EVENT TRIGGER — изменить определение событийного триггераALTER EXTENSION — изменить определение расширенияALTER FOREIGN DATA WRAPPER — изменить определение обёртки сторонних данныхALTER FOREIGN TABLE — изменить определение сторонней таблицыALTER FUNCTION — изменить определение функцииALTER GROUP — изменить имя роли или членствоALTER INDEX — изменить определение индексаALTER LANGUAGE — изменить определение процедурного языкаALTER LARGE OBJECT — изменить определение большого объектаALTER MATERIALIZED VIEW — изменить определение материализованного представленияALTER OPERATOR — изменить определение оператораALTER OPERATOR CLASS — изменить определение класса операторовALTER OPERATOR FAMILY — изменить определение семейства операторовALTER POLICY — изменить определение политики защиты на уровне строкALTER PUBLICATION — изменить определение публикацииALTER ROLE — изменить роль в базе данныхALTER RULE — изменить определение правилаALTER SCHEMA — изменить определение схемыALTER SEQUENCE — изменить определение генератора последовательностиALTER SERVER — изменить определение стороннего сервераALTER STATISTICS — изменить определение объекта расширенной статистикиALTER SUBSCRIPTION — изменить определение подпискиALTER SYSTEM — изменить параметр конфигурации сервераALTER TABLE — изменить определение таблицыALTER TABLESPACE — изменить определение табличного пространстваALTER TEXT SEARCH CONFIGURATION — изменить определение конфигурации текстового поискаALTER TEXT SEARCH DICTIONARY — изменить определение словаря текстового поискаALTER TEXT SEARCH PARSER — изменить определение анализатора текстового поискаALTER TEXT SEARCH TEMPLATE — изменить определение шаблона текстового поискаALTER TRIGGER — изменить определение триггераALTER TYPE — изменить определение типаALTER USER — изменить роль в базе данныхALTER USER MAPPING — изменить определение сопоставления пользователейALTER VIEW — изменить определение представленияANALYZE — собрать статистику по базе данныхBEGIN — начать блок транзакцииCHECKPOINT — произвести контрольную точку в журнале предзаписиCLOSE — закрыть курсорCLUSTER — кластеризовать таблицу согласно индексуCOMMENT — задать или изменить комментарий объектаCOMMIT — зафиксировать текущую транзакциюCOMMIT PREPARED — зафиксировать транзакцию, которая ранее была подготовлена для двухфазной фиксацииCOPY — копировать данные между файлом и таблицейCREATE ACCESS METHOD — создать новый метод доступаCREATE AGGREGATE — создать агрегатную функциюCREATE CAST — создать приведениеCREATE COLLATION — создать правило сортировкиCREATE CONVERSION — создать перекодировкуCREATE DATABASE — создать базу данныхCREATE DOMAIN — создать доменCREATE EVENT TRIGGER — создать событийный триггерCREATE EXTENSION — установить расширениеCREATE FOREIGN DATA WRAPPER — создать новую обёртку сторонних данныхCREATE FOREIGN TABLE — создать стороннюю таблицуCREATE FUNCTION — создать функциюCREATE GROUP — создать роль в базе данныхCREATE INDEX — создать индексCREATE LANGUAGE — создать процедурный языкCREATE MATERIALIZED VIEW — создать материализованное представлениеCREATE OPERATOR — создать операторCREATE OPERATOR CLASS — создать класс операторовCREATE OPERATOR FAMILY — создать семейство операторовCREATE POLICY — создать новую политику защиты на уровне строк для таблицыCREATE PUBLICATION — создать публикациюCREATE ROLE — создать роль в базе данныхCREATE RULE — создать правило перезаписиCREATE SCHEMA — создать схемуCREATE SEQUENCE — создать генератор последовательностиCREATE SERVER — создать сторонний серверCREATE STATISTICS — создать расширенную статистикуCREATE SUBSCRIPTION — создать подпискуCREATE TABLE — создать таблицуCREATE TABLE AS — создать таблицу из результатов запросаCREATE TABLESPACE — создать табличное пространствоCREATE TEXT SEARCH CONFIGURATION — создать конфигурацию текстового поискаCREATE TEXT SEARCH DICTIONARY — создать словарь текстового поискаCREATE TEXT SEARCH PARSER — создать анализатор текстового поискаCREATE TEXT SEARCH TEMPLATE — создать шаблон текстового поискаCREATE TRANSFORM — создать трансформациюCREATE TRIGGER — создать триггерCREATE TYPE — создать новый тип данныхCREATE USER — создать роль в базе данныхCREATE USER MAPPING — создать сопоставление пользователя для стороннего сервераCREATE VIEW — создать представлениеDEALLOCATE — освободить подготовленный операторDECLARE — определить курсорDELETE — удалить записи таблицыDISCARD — очистить состояние сеансаDO — выполнить анонимный блок кодаDROP ACCESS METHOD — удалить метод доступаDROP AGGREGATE — удалить агрегатную функциюDROP CAST — удалить приведение типаDROP COLLATION — удалить правило сортировкиDROP CONVERSION — удалить преобразованиеDROP DATABASE — удалить базу данныхDROP DOMAIN — удалить доменDROP EVENT TRIGGER — удалить событийный триггерDROP EXTENSION — удалить расширениеDROP FOREIGN DATA WRAPPER — удалить обёртку сторонних данныхDROP FOREIGN TABLE — удалить стороннюю таблицуDROP FUNCTION — удалить функциюDROP GROUP — удалить роль в базе данныхDROP INDEX — удалить индексDROP LANGUAGE — удалить процедурный языкDROP MATERIALIZED VIEW — удалить материализованное представлениеDROP OPERATOR — удалить операторDROP OPERATOR CLASS — удалить класс операторовDROP OPERATOR FAMILY — удалить семейство операторовDROP OWNED — удалить объекты базы данных, принадлежащие ролиDROP POLICY — удалить политику защиты на уровне строк для таблицыDROP PUBLICATION — удалить публикациюDROP ROLE — удалить роль в базе данныхDROP RULE — удалить правило перезаписиDROP SCHEMA — удалить схемуDROP SEQUENCE — удалить последовательностьDROP SERVER — удалить описание стороннего сервераDROP STATISTICS — удалить расширенную статистикуDROP SUBSCRIPTION — удалить подпискуDROP TABLE — удалить таблицуDROP TABLESPACE — удалить табличное пространствоDROP TEXT SEARCH CONFIGURATION — удалить конфигурацию текстового поискаDROP TEXT SEARCH DICTIONARY — удалить словарь текстового поискаDROP TEXT SEARCH PARSER — удалить анализатор текстового поискаDROP TEXT SEARCH TEMPLATE — удалить шаблон текстового поискаDROP TRANSFORM — удалить трансформациюDROP TRIGGER — удалить триггерDROP TYPE — удалить тип данныхDROP USER — удалить роль в базе данныхDROP USER MAPPING — удалить сопоставление пользователя для стороннего сервераDROP VIEW — удалить представлениеEND — зафиксировать текущую транзакциюEXECUTE — выполнить подготовленный операторEXPLAIN — показать план выполнения оператораFETCH — получить результат запроса через курсорGRANT — определить права доступаIMPORT FOREIGN SCHEMA — импортировать определения таблиц со стороннего сервераINSERT — добавить строки в таблицуLISTEN — ожидать уведомленияLOAD — загрузить файл разделяемой библиотекиLOCK — заблокировать таблицуMOVE — переместить курсорNOTIFY — сгенерировать уведомлениеPREPARE — подготовить оператор к выполнениюPREPARE TRANSACTION — подготовить текущую транзакцию для двухфазной фиксацииREASSIGN OWNED — сменить владельца объектов базы данных, принадлежащих заданной ролиREFRESH MATERIALIZED VIEW — заменить содержимое материализованного представленияREINDEX — перестроить индексыRELEASE SAVEPOINT — высвободить ранее определённую точку сохраненияRESET — восстановить значение по умолчанию заданного параметра времени выполненияREVOKE — отозвать права доступаROLLBACK — прервать текущую транзакциюROLLBACK PREPARED — отменить транзакцию, которая ранее была подготовлена для двухфазной фиксацииROLLBACK TO SAVEPOINT — откатиться к точке сохраненияSAVEPOINT — определить новую точку сохранения в текущей транзакцииSECURITY LABEL — определить или изменить метку безопасности, применённую к объектуSELECT — получить строки из таблицы или представленияSELECT INTO — создать таблицу из результатов запросаSET — изменить параметр времени выполненияSET CONSTRAINTS — установить время проверки ограничений для текущей транзакцииSET ROLE — установить идентификатор текущего пользователя в рамках сеансаSET SESSION AUTHORIZATION — установить идентификатор пользователя сеанса и идентификатор текущего пользователя в рамках сеансаSET TRANSACTION — установить характеристики текущей транзакцииSHOW — показать значение параметра времени выполненияSTART TRANSACTION — начать блок транзакцииTRUNCATE — опустошить таблицу или набор таблицUNLISTEN — прекратить ожидание уведомленияUPDATE — изменить строки таблицыVACUUM — провести сборку мусора и, возможно, проанализировать базу данныхVALUES — вычислить набор строк

postgrespro.ru

PostgreSQL : Документация: 10: 1.3. Создание базы данных : Компания Postgres Professional

1.3. Создание базы данных

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

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

Для создания базы данных, в этом примере названной mydb, выполните следующую команду:

$ createdb mydb

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

Если вы видите сообщение типа:

createdb: command not found

значит PostgreSQL не был установлен правильно. Либо он не установлен вообще, либо в путь поиска команд оболочки не включён его каталог. Попробуйте вызвать ту же команду, указав абсолютный путь:

$ /usr/local/pgsql/bin/createdb mydb

У вас этот путь может быть другим. Свяжитесь с вашим администратором или проверьте, как были выполнены инструкции по установке, чтобы исправить ситуацию.

Ещё один возможный ответ:

createdb: не удалось подключиться к базе postgres: не удалось подключиться к серверу: No such file or directory Он действительно работает локально и принимает соединения через Unix-сокет "/tmp/.s.PGSQL.5432"?

Это означает, что сервер не работает или createdb не может к нему подключиться. И в этом случае пересмотрите инструкции по установке или обратитесь к администратору.

Также вы можете получить сообщение:

createdb: не удалось подключиться к базе postgres: ВАЖНО: роль "joe" не существует

где фигурирует ваше имя пользователя. Это говорит о том, что администратор не создал учётную запись PostgreSQL для вас. (Учётные записи PostgreSQL отличаются от учётных записей пользователей операционной системы.) Если вы сами являетесь администратором, прочитайте Главу 21, где написано, как создавать учётные записи. Для создания нового пользователя вы должны стать пользователем операционной системы, под именем которого был установлен PostgreSQL (обычно это postgres). Также возможно, что вам назначено имя пользователя PostgreSQL, не совпадающее с вашим именем в ОС; в этом случае вам нужно явно указать ваше имя пользователя PostgreSQL, используя ключ -U или установив переменную окружения PGUSER.

Если у вас есть учётная запись пользователя, но нет прав на создание базы данных, вы увидите сообщение:

createdb: создать базу данных не удалось: ОШИБКА: нет прав на создание базы данных

Создавать базы данных разрешено не всем пользователям. Если PostgreSQL отказывается создавать базы данных для вас, значит вам необходимо соответствующее разрешение. В этом случае обратитесь к вашему администратору. Если вы устанавливали PostgreSQL сами, то для целей этого введения вы должны войти в систему с именем пользователя, запускающего сервер БД.

Вы также можете создавать базы данных с другими именами. PostgreSQL позволяет создавать сколько угодно баз данных. Имена баз данных должны начинаться с буквы и быть не длиннее 63 символов. В качестве имени базы данных удобно использовать ваше текущее имя пользователя. Многие утилиты предполагают такое имя по умолчанию, так что вы сможете упростить ввод команд. Чтобы создать базу данных с таким именем, просто введите:

$ createdb

Если вы больше не хотите использовать вашу базу данных, вы можете удалить её. Например, если вы владелец (создатель) базы данных mydb, вы можете уничтожить её, выполнив следующую команду:

$ dropdb mydb

(Эта команда не считает именем БД по умолчанию имя текущего пользователя, вы должны явно указать его.) В результате будут физически удалены все файлы, связанные с базой данных, и так как отменить это действие нельзя, не выполняйте его, не подумав о последствиях.

Узнать о командах createdb и dropdb больше можно в справке createdb и dropdb.

postgrespro.ru