Chapter 16. Установка на Windows из исходных текстов. Установка postgresql на windows


Установка на Windows из исходных текстов

В большинстве случаев просто рекомендуется загрузить дистрибутив для Windows с сайта PostgreSQL. Компиляция из исходных текстов предназначена только для разработчиков PostgreSQL или расширений к СУБД.

Существует несколько других способов сборки PostgreSQL для Windows. Наиболее простой способ сборки - это воспользоваться инструментами Microsoft для чего установить поддерживаемую версию Microsoft Platform SDK и использовать входящий в её состав копилятор. Также возможна сборка с помощью полной версии Microsoft Visual C++ 2005 or 2008. В некоторых случаях, в дополнение к копилятору, требуется установка Platform SDK.

Также возможно собрать PostgreSQL с помощью инструментов компиляции GNU, предоставляемых MinGW или с помощью Cygwin для более старых версий Windows.

Наконец, библиотеку клиентского доступа (libpq) можно собрать с помощью Visual C++ 7.1 или Borland C++ для совместимости со статически скомпилированными приложениями, использующими данные иснтрументы.

Компиляция, с помощью MinGW или Cygwin использует нормальный процесс сборки, см. Chapter 15 и специальные замечания в Section 15.7.5 и Section 15.7.2. Чтобы получить "родные" 64-битные двоичные файлы в этих окружениях, используйте инструменты из MinGW-w64. Данные инструменты могут также быть использованы для кросс-компиляции для 32-битного и 64-битного Windows на других системах, таких как Linux и Darwin. Cygwin не рекомендуется к запуску на продуктивном сервере и он должен использоваться только для запуска на старых версиях Windows, где "родные" сборки не работают, таких как Windows 98. Официальные двоичные файлы собраны с использованием Visual Studio.

"Родные" сборки psql не поддерживают редактирование командной строки. Сборка Cygwin поддерживает редактирование командной строки, так что её можно использовать, когда есть необходимость в интерактивной работе в Windows.

postgresql.ru.net

Установка PostgreSQL 9.4 на CentOS 7.1 – делаем сервер СУБД | Info-Comp.ru

Как видно из названия материала сегодня мы будем реализовывать сервер баз данных на операционной системе CentOS 7.1, в качестве СУБД у нас будет выступать PostgreSQL 9.4, в итоге сейчас мы подробно рассмотрим установку и настройку PostgreSQL, а также выполним дополнительные настройки самой операционной системы CentOS.

Итак, для начала давайте рассмотрим сценарий реализации нашего сервера баз данных.

Примечание! Подразумевается, что у Вас уже установлена операционная система CentOS 7.1, если нет, то об этом мы подробно разговаривали в материале - Установка Linux CentOS 7.1.

Допустим, наш сервер подключен к локальной сети и на него только что установили CentOS 7.1 (без графической оболочки) в связи с этим первое, что мы сделаем, это выполним настройку сетевого интерфейса на операционной системе, с учетом того, что в сети есть DHCP сервер. Затем мы установим и настроим PostgreSQL 9.4 таким образом, чтобы пользователи могли подключаться к базе данных по сети с предоставлением логина и пароля, также для этого нам нужно будет открыть соответствующий порт на фаерволе. Помимо всего прочего, для того чтобы PostgreSQL автоматически запускался, после перезагрузки сервера, мы поместим его в автозагрузку.

А теперь подробней по каждому пункту.

Примечание! Еще раз повторю, что CentOS 7.1 установлен у нас без среды рабочего стола и дополнительных приложений, т.е. «Минимальная установка».

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

Настраиваем сетевой интерфейс в CentOS 7.1

Так как по умолчанию у нас отсутствует команда ifconfig (в связи с отсутствием пакета net-tools), мы будем настраивать сетевой интерфейс путем редактирования конфигурационного файла. И делать мы это будем с помощью встроенного по умолчанию текстового редактора vi.

Для начала посмотрим название нашего сетевого интерфейса

ip a

Теперь редактируем конфигурационный файл этого сетевого интерфейса, лежит он в каталоге /etc/sysconfig/network-scripts/ и название данного файла начинается с ifcfg-, в нем нам всего лишь нужно прописать активацию интерфейса при старте системы, параметр ONBOOT=yes, так как по умолчанию интерфейс уже настроен на работу с DHCP сервером

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Жмем клавишу i и вносим изменения, затем для выхода из режима жмем Esc, а для сохранения файла нажимаем Shift: затем вводим wq и подтверждаем по «Enter»

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

/etc/init.d/network restart

или

systemctl restart network

Теперь давайте узнаем ip адрес нашего сервера СУБД все той же командой ip a

Запомним что ip адрес нашего сервера это 192.168.0.6

Примечание! Так как для установки программного обеспечения, которое мы будем устанавливать ниже, нам будет необходим выход в Интернет, в связи с этим учтем, что после применения настроек сети, которые мы получим от DHCP сервера, доступ к Интернету у нас появится.

Установка текстового редактора Nano и пакета net-tools

Для удобства предлагаю установить текстовый редактор nano так как, редактировать различные конфигурационные файлы в операционной системе Linux приходиться достаточно часто. Также, для того чтобы в будущем мы могли использовать замечательную команду ifconfig, для более быстрой и удобной настройки сетевых интерфейсов, дополнительно давайте еще установим пакет net-tools.

yum –y install nano net-tools

После выполнения этой команды у нас появится и редактор nano и команда ifconfig.

Установка PostgreSQL 9.4

Начнем мы с проверки, какая версия PostgreSQL есть в стандартных репозиториях CentOS 7.1

yum list | grep postgresql

Мы видим, что там присутствует только версия 9.2, поэтому давайте подключим дополнительный репозиторий

rpm -Uvh http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm

И еще раз проверим, появилась ли нужная нам версия

yum list | grep postgresql

Как видим, она появилась.

Переходим непосредственно к установке, выполняем команду

yum -y install postgresql94-server postgresql94

Для инициализации базы данных выполним

/usr/pgsql-9.4/bin/postgresql94-setup initdb

Запускаем и помещаем в автозагрузку PostgreSQL 9.4

Помещаем в авто загрузку

systemctl enable postgresql-9.4

и запускаем

systemctl start postgresql-9.4

Создание и настройка пользователей в PostgreSQL 9.4

И для начала давайте зададим пароль для пользователя postgres, так как по умолчанию он создается без пароля, для этого переключимся на пользователя postgres и запустим утилиту psql

su - postgres psql

Меняем пароль пользователя postgres

\password postgres

Теперь давайте создадим нового пользователя, пишем команду (просто, для того чтобы уметь это делать)

CREATE ROLE testuser WITH PASSWORD '123456' LOGIN;

Где, testuser это логин пользователя, а 123456 его пароль.

Для выхода из psql и переключения обратно под root нажимаем два раза сочетание клавиш CTRL+D.

Перезапускаем PostgreSQL

systemctl restart postgresql-9.4

Настраиваем PostgreSQL 9.4

По сценарию к базе должны подключаться пользователи, по локальной сети используя логин и пароль, поэтому давайте, разрешим подключения по сети (к примеру, моя сеть это 192.168.0.0/24) и настроим аутентификацию. Сначала открываем файл конфигурации pg_hba.conf

nano /var/lib/pgsql/9.4/data/pg_hba.conf

Ищем следующие строки

и вносим изменения (IPv6 мы не будем использовать, закомментируем эту строку знаком #)

Другими словами мы изменили метод аутентификации с ident на md5 и соответственно разрешили подключение из сети 192.168.0.0/24.

Сохраняем сочетанием клавиш CTRL+O с подтверждением по enter, затем просто закрываем файл CTRL+X

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

nano /var/lib/pgsql/9.4/data/postgresql.conf

Ищем строку

#listen_addresses = 'localhost'

и заменяем на

listen_addresses = '*'

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

Перезапускаем PostgreSQL

systemctl restart postgresql-9.4

Настройка фаервола на CentOS 7.1 (открытие порта)

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

firewall-cmd —permanent —add-port=5432/tcp

Для того чтобы изменения вступили в силу, перезапустим файрвол

firewall-cmd —reload

На этом все, установка и настройка PostgreSQL на CentOS 7.1 закончена, для проверки можете с любого компьютера в сети, попробовать подключится к серверу, например, используя pgAdmin, но учтите, что с версией PostgreSQL 9.4 умеет работать pgAdmin, начиная с версии 1.20, удачи!

Похожие статьи:

info-comp.ru

GIS-Lab: Установка PostgreSQL/PostGIS для Windows

Руководство по установке комплекта пространственной базы данных готового к работе

Обсудить в форуме Комментариев — 18

PostGIS является расширением объектно-реляционной СУБД PostgreSQL, предназначенным для хранения в базе данных географической информации. PostGIS включает поддержку пространственных индексов R-Tree/GiST, а также функции обработки геоданных. PostGIS и PostgreSQL являются свободным ПО с открытым исходным кодом. В данной статье будет рассмотрен процесс установки PostgreSQL/PostGIS для Windows.

Оглавление

  1. Установка PostgreSQL
  2. Установка PostGIS
  3. Создание пространственной базы данных

Установка PostgreSQL

Последнюю версию PostgreSQL можно скачать на сайте http://www.postgresql.org. На момент написания статьи последней версией является PostgreSQL 8.4. Для того, чтобы скачать дистрибутив, перейдите на страницу загрузки, выберите операционную систему и загрузите дистрибутив. После этого запустите установщик.

Ход установки:

1. Запускаем файл postgresql-8.4.0-1-windows.exe. Первым делом устанавливается Microsoft Visual C++ 2005 Redistributable – рабочие модули библиотек Visual C++, необходимые для запуска созданных при помощи этого языка программирования приложений.

2. Выбираем куда устанавливать программу и расположение данных:

3. Указываем администраторский пароль для базы данных

4. Выбираем порт подключения:

5. Выбираем локаль

3. Мастер установки PostgreSQL сообщает о прогрессе установки.

Жмем «Завершить». На этом установка PostgreSQL на ваш компьютер завершена!

Если вы хотите установить PostGIS сразу после завершения установки PostgreSQL, поставьте галку на запуске Stack Builder.

Установка PostGIS

Установку PostGIS можно осуществить полуавтоматически через Stack Builder и непосредственно скачав пакет PostGIS. Способы установки отличаются лишь методом получения установщика PostGIS. В первом случае Stack Builder запустится сам: «Пуск/PostgreSQL 8.4/Приложение Stack Builder».

1. Выберите установленный сервер:

2. Из пункта Spatial Extensions выберите PostGIS 1.4:

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

Если вы решили скачать установщик PostGIS самостоятельно, то последнюю версию PostGIS можно скачать на сайте http://postgis.refractions.net. Скачиваем последнюю на момент написания статьи  версию PostGIS для работы с PostgreSQL 8.4 – PostGIS -1.4 с pgfoundry.

Ход установки:

1. Запускаем файл postgis-pg84-setup-1.4.0-2.exe или более свежий:

2. Снимаем отметку с пункта «Create spatial database». «Create spatial database» позволяет создать пространственную базу данных автоматически. Далее мы будем рассматривать процесс создания такой базы данных вручную, не прибегая к услугам установщика PostGIS, поэтому на данном этапе мы отметку с этого пункта снимем.

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

4. Заполняем представленные поля:

В поле Password вводим пароль указанный выше и жмем «Next» для завершения установки. На этом установка PostGIS завершена!

Создание пространственной базы данных

Существует два способа создания пространственной базы данных: с использованием шаблона и без. В данном разделе мы рассмотрим оба этих способа.

Создание базы данных с использованием шаблона:

1. В меню Пуск находим PostgreSQL 3 и запускаем pgAdmin III.

2. В браузере объектов дважды щелкаем на «PostgreSQL Database Server 8.3». Будет предложено ввести пароль суперпользователя для подключения к выбранному серверу, что мы и делаем.

3. В браузере объектов выбираем «Базы» и открываем «Правка/Новый объект/Новая база данных…». Устанавливаем имя новой базы данных – «postgis», владелец – «postgres», шаблон – «template_postgis». Используя шаблон базы данных «template_postgis», мы тем самым создаем базу данных с пространственным расширением.

4. Открываем список таблиц созданной базы данных: «postgis/схемы/public/Таблицы». Вы должны увидеть две стандартные таблицы: «geometry_columns» и «spatial_ref_sys», созданные PostGIS.

На этом процесс создания пространственной базы данных с использованием шаблона закончен.

Создание базы данных без использования шаблона:

Если ваша база данных не содержит шаблон «template_postgis», то вы можете загрузить PostGIS вручную, вызвав два скрипта SQL, которые установят функции и типы PostGIS.

1. В pgAdmin откройте окно запросов SQL (щелкнув на кнопку с изображением карандаша):

2. Выберите «Файл/Открыть...» и откройте файл:

C:\Program Files\PostgreSQL\8.4\share\contrib\postgis.sql

3. Нажмите кнопку «Выполнить запрос» (кнопка с изображением зеленого треугольника). Файл lwpostgis.sql будет исполнен - функции и объекты PostGIS будут загружены в базу данных.

4. Выберите «Файл/Открыть...» и откройте файл:

C:\Program Files\PostgreSQL\8.4\share\contrib\spatial_ref_sys.sql

5. Нажмите кнопку «Выполнить запрос» (кнопка с изображением зеленого треугольника). Файл spatial_ref_sys.sql будет исполнен, загрузив параметры систем координат в формате EPSG в таблицу базы данных.

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

Обсудить в форуме Комментариев — 18

Ссылки по теме

Последнее обновление: March 01 2011

Дата создания: 06.10.2008 Автор(ы): Денис Рыков

gis-lab.info

Поднимаем сервер 1C 8.x (Windows 2008 R2 + PostgreSQL)

Вариант использования в качестве сервера баз данных PostgreSQL на windows платформе не очень популярен, но имеет место быть как правило, когда необходимо хоть как-то сэкономить на продуктах от MS. Так же существуют специализированные приложения, которые наилучшим образом работают с PostgreSQL. Для 1с существует модифицированная сборка PostgreSQL дающая как уверяют разработчики сопоставимый с MSSQL уровень производительности и отказоустойчивости. Так ли это на самом деле, проверим на практике :)

1. Установка  PostgreSQL

Качаем с сайта 1с последнюю сборку PostgreSQL 64-bit 9.1.2-1.1C, распаковываем архив, запускаем msi-пакет, тот что без int, имеет не большой размер файла.

Нажимаем Start.Опции установки оставляем по умолчанию.

Задаем пароль пользователю postgres от которого будет стартовать сервис. Нажимаем Далее. Если установка  PostgreSQL производится впервые, то мастер предложит создать пользователя postgres.

На этапе инициализации БД, выбираем кодировку UTF8. Задаем логин и пароль внутреннему пользователю postgres. Внимание! Пароли пользователя сервиса PostgreSQL  и пароль внутреннего пользователя БД PostgreSQL не должны совпадать. Пароль должен состоять как минимум из четырех символов. Если сервер 1C и  PostgreSQL планируется запускать на разных машинах, то необходимо поставить галочку «Поддерживать соединения с любых IP, а не только с localhost». Нажимаем Далее и еще раз Далее. :)

Нажимаем еще два раза Далее и дожидаемся окончания установки.

Затем идем в Start\All Programs\PostgreSQL 9.1.2-1.1C(x64). Запускаем утилиту администрирования pgAdmin III. Пробуем подключится к БД. Вводим пароль, который указывали во время установки.И получаем следующую ошибку: Error connecting to the server: FATAL: password authentication failed for user «postgres».

Довольно неожиданно, с учетом того, что пароль был набран верно. Решил поковырять pg_hba.conf, но на первый взгляд там все хорошо.

# TYPE   DATABASE     USER                   ADDRESS               METHOD # IPv4 local connections: host                   all             postgres               ::1/128                  md5 host                   all             postgres               127.0.0.1/32             md5 host                   all             postgres               192.168.1.0/24         md5

Решил, поменять метод авторизации с md5 на trust. Перезапускаю сервис и снова пробую подключится к БД. На этот раз получаю такое сообщение.  Действительно на сайте pgAdmin доступна уже более новая версия. После чего подключение к БД завершается успехом!!?!! Помнится, ранее md5 не вызывал подобных проблем, видимо данный глюк действительно связан со старой версией pgAdmin’a. Теперь можем создать базу для нужд 1С, либо сделать это при помощи самой 1С :)

2. Установка 1C предприятие 8.2.

Для установки отметим, следующие компоненты: 1С:Предприятие, Сервер 1С:Предприятия, Модули расширения веб-сервера, Администрирование сервера 1С:Предприятия. На этапе, установки «Установить 1С Предприятие как сервис», задаем пароль пользователю USR1C82. Нажимаем далее, следим за ходом установки :)  Пользователю USR1CV82  при установке должны быть назначены следующие права:

Вход в систему как сервис (Log on as a service), Вход в систему как пакетное задание (Log on as a batch job). Посмотреть можно в Local Computer Policy\Computer Configuration\Windows Setings\Security Setings\Local Policies\User Right Assigments.

Переходим в оснастку Администрирование серверов 1С Предприятие, смотрим что кластер поднялся, и висит на 1541 порту. На вкладке «Рабочие серверы» так же присутствует наш сервер.Теперь, можно добавить базу на сервер 1С. Для этого переходим на вкладку «Информационные базы» щелкаемся правой кнопкой и выбираем New — Информационная база. Задаем необходимые параметры для подключения к серверу PostgreSQL. Нажимаем ОК.Запускаем 1С: Предприятие. Выбираем, добавить существующую информационную базу на сервере. Далее, задаем параметры для подключения. Нажимаем «Далее» и наконец «Готово».Операцию по созданию базы, можно проделать напрямую из 1С: Предприятия. Для этого при запуске, выбираем пункт «Создание новой информационной базы».

Для подключения клиентов 1С к серверу извне и работы сервера баз данных, на файрволе, должны быть открыты следующие порты:

Агент сервера (ragent) — tcp:1540 Главный менеджер кластера (rmngr) — tcp:1541 Диапазон сетевых портов, для динамического распределения рабочих процессов — tcp:1560-1591, tcp:5432 — Postgresql.  Создадим правило через стандартный интерфейс, либо с помощью команды:

[bash]netsh advfirewall firewall add rule name=»1Cv8-Server» dir=in action=allow protocol=TCP localport=1540,1541,5432,1560-1590 enable=yes profile=ANY remoteip=ANY interfacetype=LAN[/bash]

Теперь с другого компьютера мы спокойно запускаем клиент 1С:Предприятия, добавляем существующую информационную базу newdb. Не забываем про лицензии, программной / аппаратной защиты. Теперь, можем загрузить тест Гилева и померить производительность нашей системы.

На VirtualBox с 1Гб памяти, Dual-Core 2.6 GHz, 319-релиз 1с, тест Гилева выдает — 11.42 баллов, примерно так же как на CentOS. На 16.362 чуть больше 11.60 баллов. Оптимизация настроек при помощи EnterpriseDB Tuning Wizard ощутимого прироста (11.66 и 11.62) не дала, хотя возможно в целом польза от него имеется. :)

3. Регламентные работы на сервере PostgreSQL. 

Резервное копирование.

Запускаем утилиту администрирования pgAdmin III, щелкаемся правой кнопкой по нужной базе данных. Выбираем »Резервное копирование». Выбираем формат (Настраиваемый (степень сжатия от 0 до 9), Tar, Простой, Каталог). По степени сжатия, лучше всего сжимает  «настраиваемый формат» любой степени сжатия, затем «каталог», потом «простой» и наконец «tar». Кодировку указываем UTF8, имя роли postgresql. Все дополнительные опции оставляем по умолчанию. Нажимаем кнопку «Резервная копия». В поле «Сообщения» отображается список всех произведенных операций с кодом завершения. Если 0, то успех. Здесь же можно подсмотреть, как запустить подобную операцию из командной строки.

F)\pgAdmin III\1.16\pg_dump.exe" --host 192.168.1.200 --port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --compress 9 --encoding UTF8 --verbose --file "G:\Backups\gilev_dump.backup" "newdb"

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

"C:\Program Files (x86)\pgAdmin III\1.16\pg_dump.exe" --host 192.168.1.200 --port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --compress 9 --encoding UTF8 --verbose --file "G:\Backups\gilev_dump_%date:~0,2%_%date:~3,2%_%date:~6,4%.backup" "newdb"

Восстановление.

Для восстановления, выбираем базу, в которую хотим восстановить данные из резервной копии, желательно в пустую. Щелкаемся правой кнопкой и выбираем «Восстановление». Задаем файл бэкапа, имя роли: postgres, нажимаем «Восстановить» С помощью командной строки:

"C:\Program Files (x86)\pgAdmin III\1.16\pg_restore.exe" --host 192.168.1.200 --port 5432 --username "postgres" --dbname "testdb" --role "postgres" --no-password --verbose "G:\Backups\gilev_dump_26_09_2012.backup"

где,  testdb — пустая база, в которую восстанавливается архив резервной копии.

Операции по обслуживанию:

Команда VACUUM (Сжатие):

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

VACUUM — помечает место, занимаемое старыми версиями записей, как свободное. Использование этого варианта команды, как правило, не уменьшает размер файла, содержащего таблицу, но позволяет не дать ему бесконтрольно расти, зафиксировав на некотором приемлемом уровне. При работе VACUUM возможен параллельный доступ к обрабатываемой таблице. Существует несколько дополнительных опций использования VACUUM : VACUUM FULL,  VACUUM FREEZE,  VACUUM ANALYZE.

VACUUM FULL — пытается удалить все старые версии записей и, соответственно, уменьшить размер файла, содержащего таблицу. Этот вариант команды полностью блокирует обрабатываемую таблицу.

VACUUM FREEZE — Если  VACUUM  FULL удаляет «мусор» из таблиц и перемещает записи так, чтобы таблицы располагались на диске компактно и состояли из наименьшего числа фрагментов, при этом сжатие выполняется долго и блокирует записи,  то VACUUM FREEZE просто удаляет «мусор» из таблиц, но сами записи не перемещает, поэтому выполняется быстрее и не блокирует записи. В настоящий момент эту опцию заменяет autovacuum  — автоматическая сборка мусора в postgresql.conf плюс несколько дополнительных опций расширяющих функциональность:

autovacuum = on # Включает автоматическую сборку мусора.log_autovacuum_min_duration = -1 # Установка равная нулю регистрирует все действия autovacuum. Минус один (по умолчанию) запрещает вывод в лог. Например, если вы установите значениеравное 250 мс, то все действия autovacuum и analyzes, которые работают 250 мс и более, будут заноситься в журнал. Включение этого параметра может быть полезно для отслеживания autovacuum.Этот параметр может быть установлен только в файле postgresql.conf или в командной строке сервера.autovacuum_naptime = 10min # Время в секундах через которое база данных проверяется на необходимость в сборке мусора. По умолчанию это происходит раз в минуту.autovacuum_vacuum_threshold = 1800 # Порог на число удалённых и изменённых записей в любой таблице по превышению которого происходит сборка мусора (VACUUM).autovacuum_analyze_threshold = 900 # Порог на число вставленных, удалённых и изменённых записей в любой таблице по превышению которого запускается процесс анализа (ANALYZE).autovacuum_vacuum_scale_factor = 0.2 # Процент изменённых и удалённых записей по отношению к таблице по превышению которого запускается сборка мусора.autovacuum_analyze_scale_factor = 0.1 # То же, что и предыдущая переменная, но по отношению к анализу. VACUUM ANALYZE —  Если в базе есть таблицы, данные в которых не изменяются и не удаляются, а лишь добавляются, то для таких таблиц можно использовать отдельную команду ANALYZE. Также стоит использовать эту команду для отдельной таблицы после добавления в неё большого количества записей.

Команда ANALYZE (Анализ):

Служит для обновления информации о распределении данных в таблице. Эта информация используется оптимизатором для выбора наиболее быстрого плана выполнения запроса. Обычно команда используется в связке с VACUUM ANALYZE.

Команда REINDEX (переиндексация): 

Используется для перестройки существующих индексов. Использовать её имеет смысл в случае

— порчи индекса;

— постоянного увеличения его размера.

Второй случай требует пояснений. Индекс, как и таблица, содержит блоки со старыми версиями записей. PostgreSQL не всегда может заново использовать эти блоки , и поэтому файл с индексом постепенно увеличивается в размерах. Если данные в таблице часто меняются, то расти он может весьма быстро. Если вы заметили подобное поведение какого-то индекса, то стоит настроить для него периодическое выполнение команды REINDEX. Учтите: команда REINDEX, как и VACUUM FULL, полностью блокирует таблицу, поэтому выполнять её надо тогда, когда загрузка сервера минимальна.

sanotes.ru

Установка PostgreSQL 8.3 на Windows XP

Маленькое предисловие

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

Честно говоря, поднадоело отвечать на одни и те же вопросы. Проблема в том, что надо хотя бы обладать какими-то базовыми знаниями в администрировании PostgreSQL, чтобы устанавливать сервер PostgreSQL. Да, конечно, может повезти и установка прокатит "на ура", но что делать, если нет? Как уже не раз говорилось: "Если ничего не получается - прочтите наконец документацию". Но согласно другой поговорке "доки читают только ламеры", поэтому одни и те же вопросы задают и снова и снова. Мало того, не разобравшись начинают кричать, что продукт плох, что не работает!

Ещё хочется заметить, что для PostgreSQL есть прекрасная платформа - Linux. В большинстве дистрибутивов, PostgreSQL устанавливается одной единственной командой, а также производится его автоматическая начальная настройка и запуск. Но почему-то многие стремятся работать именно в Windows.

Итак! Страдальцами Windows посвящается....
Файловые системы Windows

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

Общая часть

Берём архив с установкой PostgreSQL. Я взял версию 8.3 прямо с этой странички. Распаковываем во временный каталог. Запускаем файл setup.bat. Далее картинки:

Как и нарисовано, выбираем Russian (русский язык установки) и тыкаем "Start"

Тыкаем "Далее"

Как видите, даже по-русски написано где что читать в случае возникновения проблем. Но как уже и говорилось ранее "доки у нас читают только ламеры". Тыкаем "Далее"

Я выбрал к установке то, что отмечено на рисунке. Возможно вы захотите, что-то дополнить или изменить. Тыкаем "Далее"

Там где поле ввода "Домен" на самом деле никакой не домен, а имя моей машины, так что не пугайтесь. Также отмечаю, что пользователь postgres в этой форме ввода - это учётная запись пользователя в операционной системе Windows. Именно от этого пользователя (с его правами) будет производится запуск сервера PostgreSQL. Там это всё написано в форме. Читайте. Тыкаем "Далее".

Размеется хотим. Тыкаем "Да".

Я не знаю какими критериями руководствуется инсталлятор при определении сложности введённого пароля. Да мне в принципе и чихать на это. Поэтому просто жму "Нет" и продолжаем. Вот собственно мы и добрались до окончания общей части.

Установка на NTFS

Для NTFS вообще всё элементарно.

Вот здесь мы вводим пароль для пользователя postgres в базе данных. Это не учётная запись postgres в операционной системе Windows - это пользователь базы данных. К тому же пользователь, имеющий привелегии суперпользователя в PostgreSQL. Не путайте их. Делаем как на рисунке (со своим паролем естественно) и тыкаем "Далее". Кстати подумайте - может вам целесообразней выбрать не кодировку Windows - 1251, а например UTF-8? Решать, конечно, вам.

Получаем предупреждающее сообщение

Вы всё поняли? Вопросов типа "Почему у меня не коннектится с другого компа по сети?" надеюсь теперь не будет? Жмём "ОК". Получаем следующее окно:

Если не знаете что это - оставьте как на данной картинке. Жмём "Далее"

Если вы точно не знаете какие расширения вам нужны, отметьте всё как на картинке. Места займёт немного, зато будете уверены, что ничего не забыли. Жмём "Далее":

Итак, всё готов к установке, жмём "Далее". На экране ползёт индикатор прогресса установки и всякие сообщения по ходу установки и наконец появляется финальное сообщение:

Решите сами, хотите ли вы запускать "Stack Builder" и жмите "Завершить", Это ВСЁ!!!!

Можете зайти в ваше меню Пуск->Программы, отыскать там меню PostgreSQL и запустить pgAdminIII для работы с вашим сервером PostgreSQL

.
Установка на FAT32

При установке на FAT32, инсталлятор далее матерно выругается:

Внимательно почитайте и запомните что оно там написало. Впрочем, вы всегда можете посмотреть эту картинку здесь и освежить память. А у нас как у Чернышевского встаёт вопрос "Что делать?" В смысле дальше? А делать нужно следующее. Возвращаемся кнопкой "Назад" на предыдущую форму и приводим её вот в такой вид:

После чего тыкаем "Далее" и получаем такое сообщение:

Особо поблагодарим переводчиков за слово "Директория". Мало того, что Билл-дебил придумал термин "Папка" вместо "Каталог", так некоторые ещё употребляют слово "Директория". И ладно бы в своём разговоре, но вот и до переводов дошли.

Итак, конечно, мы уверены, ведь по другому нам не поставится. Жмём "Да"

Нам радостно сообщили, что всё готово к установке. Жмём "Далее"

На экране ползёт индикатор прогресса установки и всякие сообщения по ходу установки и наконец появляется финальное сообщение:

Снимаем галочку про "Stack Builder", нам сейчас не до него и жмём "Завершить"

Что мы сейчас имеем? Сервер стоит, но он неработоспособен, потому что база данных не инициализирована. Как нам и писало на одной из предыдущих картинок, необходимо вручную выполнить эту инициализацию. Для этого тыкаете в меню и ищите где там у вас PostgreSQL. Среди пунктов меню будет "Командная строка". Тыкаете. В появившемся чёрном окне набираете:

initdb -D "C:\Program Files\PostgreSQL\8.3\Data"

Разумеется, если вы устанавливали PostgreSQL в другой каталог, то нужно указать его.

Далее вы увидите на экране такие строки:

В общем-то теперь база данных инициализирована и как написано в конце, вы можете запустить её одной из означенных команд. Более того, сервер действительно запустится. Вроде бы можно работать? А вот и нет!

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

Итак, идём в "Панель управления", далее "Администрирование", далее "Службы". В открывшемся окне находим PostgreSQL. У меня оно выгдят так:

Как видите, там где состояние должно быть "работает" у нас пусто - служба (сервис) не запущена

Щёлкаем по строке и в появившемся диалоговом окне пытаемся запустить данную службу, нажав "Запуск". Видим, что система пытается запуститься:

но в итоге ничего не выходит и мы получаем такое сообщение:

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

Для тех, кто знаком с администрированием PostgreSQL уже начинает брезжить догадка. Тем не менее, мы теперь оставим эту догадку вылёживаться и вернёмся к ручному запуску сервера, как нам советовали в чёрном окошке. Итак, запускаем командную строку из меню PostgreSQL и набираем:

pg_ctl -D "C:\Program Files\PostgreSQL\8.3\Data" -l logfile start И получаем server started

Вроде бы сервер работает, что ещё надо? Обрадовано запускаем pgAdminIII из меню PostgreSQL и пытаемся коннектится к базе. Нам выдаёт запрос пароля пользователя postgres, мы вводим тот, что вводили ранее и обламываемся с сообщением, угадайте каким? Правильно:

role 'postgres' does not exists

Теперь наша догадка превращается в уверенность. Просто напросто, инсталлятор не создал суперпользователя postgres в базе данных. Заходим с командной строки:

psql -d template1

Вход получается, ведь мы заходим от системной учётной записи postgres, а не от пользователя postgres в базе данных!

Далее набираем:

# CREATE USER postgres WITH SUPERUSER ENCRYPTED PASSWORD 'пароль';

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

И вот! Мы получаем сообщение:

CREATED ROLE

Как говорится - тут и сказки конец! Можете попробовать запустить pgAdminIII из меню PostgreSQL и подключится к базе с только что введённым паролем - РАБОТАЕТ!!!!!!!!!!!!

Выходим из psql:

# \q

В командой строке набираем команду останова сервера:

pg_ctl -D "C:\Program Files\PostgreSQL\8.3\Data" -l logfile stop

А теперь преспокойно идёте в "Панель управления", "Администрирование", "Службы", находите там PostgreSQL и запускаете эту службу! И всё работает и будет работать и после перезагрузки! Делов-то!

В заключение

Как оказалось, в данной статье рассмотрены не все так сказать "грабли", на которые можно наступить при установке. Поэтому не забудьте прочитать раздел "Проблемы при установке" в моём специальном FAQ: http://postgresql.ru.net/docs/extented_FAQ.html.

Авторские права

Автором данного документа является: Виктор ВислобоковПервоначальное местоположение данного документа: http://postgresql.ru.net/docs/win_inst.htmlРазрешается свободное использование данного документа в электронном виде, копирование, распространение, размещение на web-сайтах при условии обязательного сохранения данного раздела об авторских правах, а также при условии открытого и бесплатного доступа к этому документу. Любое коммерческое использование материалов данного документа, а также использование в печатных изданиях разрешается только с письменного согласия автора.

ВложениеРазмер
pgi1.jpg33.95 kb
pgi2.jpg25.09 kb
pgi3.jpg48.86 kb
pgi4.jpg45.78 kb
pgi5.jpg38.4 kb
pgi6.jpg10.79 kb
pgi7.jpg10.31 kb
pgi8.jpg21.72 kb
pgi9.jpg36.88 kb
pgi10.jpg25.14 kb
pgi11.jpg18.76 kb
pgi12.jpg37.86 kb
pgi13.jpg77.5 kb
pgi14.jpg8.08 kb
pgi15.jpg38.88 kb
pgi16.jpg17.97 kb
pgi17.jpg25.64 kb
pgi18.jpg39.27 kb
pgi19.jpg25.12 kb
pgi20.jpg25.17 kb
pgi21.jpg48.74 kb

postgresql.ru.net