GetInfo.Ru – Компьютерная библиотека
Последние поступления
Как выбрать систему управления базы данных
Базы данных03/09/14
Этапы загрузки UNIX (в схеме)
Unix27/03/12
Gatewall Antispam: тотальный контроль электронной почты
Спам21/04/11
Мастер-класс: создаем Интернет-магазин (Часть 1)
Обзоры ПО20/04/11
CorelDRAW Graphics Suite X5: Что нового?
Обзоры ПО20/07/10
Добавить статью
Самые читаемые материалы
Дерево каталогов NESTED SETS (вложенные множества) и управление им(139709)
Дерево каталогов NESTED SETS (вложенные множества) и управление им. Часть 2(24359)
SQL сервер PostgreSQL(22855)
Теоретические основы реляционных баз данных(21502)
Введение в Базы данных(17391)
Всего статей: 793Всего авторов: 364Подразделов: 47Добавлено за сутки: 0
Статьи  СТАТЬИ Форум  ФОРУМ Рейтинг  РЕЙТИНГ Поиск  ПОИСК Контакты  КОНТАКТЫ
» Главная » Базы данных » SQL сервер PostgreSQL

SQL сервер PostgreSQL


Виктор Вислобоков
victor_v@permonline.ru

Страницы: [ 1 ] [ 2 ]

PostgreSQL - это бесплатный и вместе с тем достаточно быстрый и мощный SQL сервер. Так как PostgreSQL распостраняется по лицензии General Public License (GPL) версии 2, то вам также предоставляются исходные тексты этой в вышей степени замечательной программы.

Многие современные дистрибутивы Linux включают в себя PostgreSQL, например, такой дистрибутив как Debian. Ниже пойдет речь как раз о PostgreSQL для Debian Linux, хотя подавляющее большинство описываемых аспектов вполне подойдет как к другим дистрибутивам Linux, так и к дистрибутивам UNIX систем вообще, где есть PostgreSQL.

Содержание

  • Обзор по составу пакета PosgreSQL для Debian Linux.
  • Microsoft Windows и PostgreSQL, ODBC драйвера и их установка.
  • Доступ к PostgreSQL из программ на языке Tcl.
  • Ограничения в PostgreSQL.

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

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

Пакеты в Debian как они есть
Начнем с того, что пакетов, посвященных PostgreSQL в Debian Linux не один. В то же время, это вполне закономерно и удобно. Действительно, если вам нужна только серверная часть, то зачем ставить все остальное?

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

Итак, перечисляю пакеты:

Название пакета Описание
postgresql Сам PostgreSQL и набор прилагаемых к нему программ
libpgsql Клиентская утилита psql и разделяемые (shared) библиотеки к ней
postgresql-doc Документация по PostgreSQL
postgresql-dev include файлы для разработчиков
libpgtcl Программа pgaccess на tcl и библиотека для разработчиков на tcl
libpgperl Библиотека для разработчиков на Perl

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

Пройдемся по составу этого пакета

Каталог /etc/postgresql содержит следующие файлы:

postmaster.init Этот файл вызывается через postgresql.env и обеспечивает запуск демона PostgreSQL, а также установку некоторых важных параметров.
postmaster.env Этот файл вызыватеся через /etc/init.d/postgresql и устанавливает необходимые переменные окружения.
pg_hba.conf В этом файле описываются клиентские компьютеры сети, с которых разрешен доступ к SQL серверу, а также методы идентификации клиентов.
pg_ident.conf Этот файл используется при установке способа идентификации клиентов через ident сервер.
Каталог /etc/init.d содержит следующие файлы:
postgresql Этот файл используется в Debian Linux для запуска, перезапуска и останова PostgreSQL в стиле System V. Если этот файл есть, то он автоматически выполняется при загрузке системы.
Каталог /etc/cron.d содержит следующие файлы:
postgresql Этот файл используется в Debian Linux для запуска, программы do.maintenance в 4 часа ночи каждый день. Разумеется, что время можно изменить.
Каталог /usr/bin содержит следующие файлы:
pg_wrapper Специальная программа, которая выполняет некоторые служебные функции и не может быть вызывана под своим именем, а только как символьная ссылка на другую программу с реальным именем.
createdb Файл содежит сценарий для создания новой базы данных.
createuser Файл содержит сценарий для создания нового пользователя.
destroydb Файл содержит сценарий для удаления существующей базы данных.
destroyuser Файл содержит сценарий для удаления существующего пользователя.
pg_dump Символьняа ссылка на pg_wrapper. С помощью этой команды можно получить SQL запрос, которые создаст структуру БД заново со всеми установленным в данным момент правами, ограничениями и индексами.
Каталог /usr/lib/postgresql/bin содержит следующие файлы:
postgres Сам SQL сервер
postmaster Символьная ссылка на postgres. Выполняет специфическую функцию связи frontend и backend процессов (см. схему в документации на PostgreSQL).
pg_id Показывает ID текущего пользователя.
pg_version Создает файл PG_VERSION в заданном каталоге.
pg_dump См. выше.
pg_dumpall То же, что и pg_dump, только для всех существующих баз данных.
pg_upgrade Позволяет производить обновление баз данных с предыдующих версий без разрушения данных.
pg_passwd Управляет файлом с паролями для PostgreSQL.
cleardbdir Полное уничтожение всех баз данных.
createdb См. выше.
createlang Установка процедурного языка в базу данных.
createuser См. выше.
destroydb См. выше.
destroylang Удаление процедурного языка из базы данных.
destroyuser См. выше.
initdb Создает новую струкртуру базы данных для PostgreSQL с нуля. Используется при начальной устновке PostgreSQL.
vacuumdb Уплотняет базу данных.
initlocation Создает новое дерево каталогов для размещения в нем баз данных PostgreSQL с нуля.
ipclean Очищает распределенную память и семафоры для прекративших свое существования соединений.
postgresql-startup Утилита, которая используется при запуске PostgreSQL и которая производит диагностику во время запуска.
do.maintenance Вызывается из /etc/cron.d/postgresql для того, чтобы во время отсутствия обращений к базам данных выполнить команду vacuum.
postgresql-dump Утилита для снятия дампа с базы данных и уничтожения этой базы, если ее предыдующая версия не совместима с текущей.

В каталоге /var/postgres/data находится некоторое количество служебных файлов для PostgreSQL, а в каталоге /var/postgres/data/base размещаются базы данных, каждая в своем отдельном каталоге.

После установки этого пакета в /var/postgres/data/base будет автоматически создана база данных template1, а также выполнены практически все действия, которые необходимы для начала работы. Однако есть ряд настроек, которые вам просто наверняка понадобиться изменить. Остановимся на этом поподробнее.

Все эти настройки связаны с двумя файлами: /etc/postgresql/pg_hba.conf и /etc/postgresql/postmaster.init.

Начнем с postmaster.init.
Убедитесь, что вы root и откройте этот файл в любом текстовом редакторе.

Если вам нужно протоколирование и вывод отладочной информации, уберите комментарий со строки с переменной

	POSTGRES_LOG /var/log/postgres.log

Установить нужный уровень отладочной информации вам поможет переменная

	PGDEBUG

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

	PGECHO

Стиль даты вам поможет установить переменная

	PGDATESTYLE

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

	PGALLOWTCPIP

Если вы хотите дать доступ к своему SQL серверу по сети через TCP/IP, то вам необходимо установить ее в "yes" иначе ничего не получиться. Кроме того, не забывайте после этого проверить как предоставлены права доступа с других компьютеров в файле pg_hba.conf.

Теперь поговорим о pg_hba.conf
Этот файл может содержать два вида записей:
  1. Запись вида "host".
  2. Запись типа "local".

Запись вида "host" выглядит следующим образом:

	host <имя базы данных>  <маска адреса>
	    <способ авторизации доступа> [аргумент для авторизации]

Здесь IP_адрес и маска_адреса это адрес компьютера в сети с его сетевой маской в виде "A.B.C.D". Используя маску адреса можно задать не один компьютер, а группу компьютеров. Например, при значениях 192.168.10.88 и 255.255.255.0 для IP-адреса и маски адреса соответственно, мы определяем весь диапазон адресов от 192.168.10.1 до 192.168.10.254 (учитывая, что 192.168.10.255 - это широковещательный адрес).

Параметр Способ авторизации доступа может принимать следующие значения:

ident Авторизация доступа осуществляется через ident сервер, расположенный на удаленном компьютере через ident (RFC 1413) протокол. Если при этом задан Аргумент для авторизации, то он представляет собой имя карты, которое должно присутствовать в файле pg_ident.conf. (см. документацию для подробностей).
trust В этом режиме авторизации доступа не производится. Соединение считается доверительным.
reject Попытки соединений с этого адреса будут отвергаться.
password Авторизация доступа через пароль. Файл с паролями создается утилитой pg_password. Если задан Аргумент для авторизации, то пароль ищется в файле, который имеет имя этого аргумента, и который находится в каталоге, заданном в переменной PGDATA. Если аргумент опущен, то пароль берется из таблицы pg_shadow.
crypt Авторизация доступа осуществляется путем сравнения зашифрованного пароля, пришедшего от компьюетра, который запрашивает соедиенение с паролем из таблицы pg_shadow.
krb4 и krb5 Идентификация по протоколу Цербер версий 4 и 5 соответственно.

Запись вида "local" выглядит следующим образом:

	local <имя базы данных> <способ авторизации доступа>
	     [аргумент для авторизации]

Эта запись определяет авторизацю доступа к базе данных локальных пользователей. Здесь практически все тоже самое, что и для "host", за исключением того, что IP-адрес и маска адреса опущены за ненадобностью.

На этом позвольте обзор пакета postgresql закончить.

Пакет libpgsql
Пакет содержит разделяемые (shared) библиотеки, которые использует клиентская утилита пользователя psql, а также саму эту утилиту.

Если вы планируете работать с PostgreSQL как с сервером с других машин, то утилита psql вам не нужна. Однако ее присутствие может оказаться полезным для выполнения некоторых функций администрирования пользователей и (или) баз данных.

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

Пакет postgresql-doc
В этом пакете собрана вся имеющаяся документация по PostgreSQL. Начинающим пользователям она просто необходима. В документации можно найти ответы практически на все вопросы. Хотя, к сожалению, я должен заметить, что мне не нравится как задокументирован системный каталог. Для российского пользователя определенным недостатком является то, что документация на английском языке.

Документация представленна как в формает Postscript (.ps файлы) так и в формате HTML.

Пакет libpgtcl
Этот пакет вызывает у меня наибольшее умиление, как у человека, которому очень нравится язык Tcl.

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

Пока же отмечу наличие в этом пакете программы pgaccess, которая целиком написана на Tcl с использованием подгружаемой библиотеки libpgtcl.

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

Замечание: Если вы планируете пользоваться программой pgaccess, то вы должны разрешить доступ к SQL-серверу по TCP/IP (см. postmaster.init выше)

Пакет libpgperl
Пакет содержит библиотеки для языка Perl, которые позволяют работать с PostgreSQL из программ Perl.

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

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

 
28.05.2003
Версия для печати Версия для печати Запомнить ссылку Запомнить ссылку
Ваша оценка:  1   2   3   4   5     

 О проектеПерепечаткаАвторамПартнерыО нас пишут
Наверх
©2003—2007. GETINFO.RU. ВСЕ ПРАВА ЗАЩИЩЕНЫ.