![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
belousov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 317 Регистрация: 21.11.2006 Где: Москва Репутация: 1 Всего: 6 |
Создаю тему,
здесь собираем найденные ресурсы, ссылки, ссылки на книги и так далее. Надеюсь на поддержку моей инициативы Добавлено @ 23:26 Что такое PostgreSQL (материал из Википедии): PostgreSQL (произносится «Пост-Грес-Кью-Эл» или просто «постгрес») — свободная объектно-реляционная система управления базами данных (СУБД). Является свободной альтернативой коммерческим СУБД (таким как Oracle Database, Microsoft SQL Server, IBM DB2, Informix и СУБД производства Sybase) вместе с другими свободными СУБД (такими как MySQL и Firebird). Поддержка стандартов, возможности, особенности PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2003 (ISO/IEC 9075). На данный момент (версия 8.4.1), в PostgreSQL имеются следующие ограничения: Максимальный размер базы данных Нет ограничений Максимальный размер таблицы 32 ТБайт Максимальный размер записи 1,6 ТБайт Максимальный размер поля 1 ГБайт Максимум записей в таблице Нет ограничений Максимум полей в таблице 250—1600, в зависимости от типов полей Максимум индексов в таблице Нет ограничений Сильными сторонами PostgreSQL считаются: • поддержка БД практически неограниченного размера; • мощные и надёжные механизмы транзакций и репликации; • наследование. • легкая расширяемость. Главным слабым местом, происходящим из архитектуры самой СУБД, считается масштабируемость: в PostgreSQL имеются общие для всех соединений «узлы». Надёжность Согласно результатам автоматизированного исследования различного ПО на предмет ошибок, в исходном коде PostgreSQL было найдено 20 проблемных мест на 775 000 строк исходного кода (в среднем, одна ошибка на 39 000 строк кода). Для сравнения: MySQL — 97 проблем, одна ошибка на 4 000 строк кода; FreeBSD (целиком) — 306 проблем, одна ошибка на 4 000 строк кода; Linux (только ядро) — 950 проблем, одна ошибка на 10 000 строк кода. На версию 8.5.* запланировано введение в состав СУБД следующих возможностей: * подключения к внешним источникам данных SQL/MED (Management of External Data) * доступ только к индексам при некоторых выборках * анонимные блоки на любом доступном языке хранимых процедур * отложенные ограничения уникальности * Более удобоваримый синтаксис для секционированных таблиц * Горячий резерв * Планы запросов в виде JSON и XML * Триггеры, срабатывающие при обновлении определённых колонок таблицы Более подробно можно прочитать здесь: http://ru.wikipedia.org/wiki/PostgreSQL Добавлено @ 23:28 Ресурсы: Официальный сайт: http://www.postgresql.org/ Официальная документация (на английском): http://www.postgresql.org/docs/ Каталог ресурсов PostgreSQL и специализированный поиск по ним http://www.pgsql.ru/db/pgsearch/ Русский сайт о PostgreSQL http://postgresql.ru.net/ Частично переведенная документация на русском http://postgresql.ru.net/docs.shtml Поддержка PostgreSQL в России http://postgresmen.ru/ Официальный русский FAQ http://www.postgresql.org/docs/faqs.FAQ_russian.html Это сообщение отредактировал(а) belousov - 1.12.2009, 15:14 -------------------- NIHIL VERUM EST LICET OMNIA |
|||
|
||||
belousov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 317 Регистрация: 21.11.2006 Где: Москва Репутация: 1 Всего: 6 |
Как заставить PostgreSQL работать с 1С
Этот пример установки для Fedora Core 9 32-bit Скачиваем с сайта 1С rpm пакеты postges. Перед тем как ставить постгрес инеобходимо поставить следующие библиотеки libtermcap-2.0.8-47.i386.rpm readline-compat-4.3-307.i586.rpm tcl-8.4.17-1.fc8.i386.rpm Библиотека ICU 32-bit Первые три в виде rpm пакетов, найти их не составит труда. Ввести в гугле название и первая же ссылка. Установка библиотек rpm -ivh --nodeps libtermcap-2.0.8-47.i386.rpm rpm -ivh readline-compat-4.3-307.i586.rpm tcl-8.4.17-1.fc8.i386.rpm 64-bit PostgreSQL Библиотеки readline-4.3-5.x86_64 libtermcap-2.0.8-47.x86_64 rpm –ivh --force readline-4.3-5.x86_64 rpm –ivh --nodeps libtermcap-2.0.8-47.x86_64 Далее установка аналогична для обоих вариантов. Библиотека icu ставиться так: сначала распаковываем архив, а затем переходим в папку icu/source cd icu/source пишем права chmod +x runConfigureICU configure install-sh Конфигурируем ./configure Компилируем gmake и, наконец, инсталлируем gmake install Если не поставить эту библиотеку, то информационная база создаваться не будет!! Именно этого я не нашел ни на одном форуме, ни в одной статье! Если СУБД поставлена до этой библиотеки, то можно ее поставить после, но базу придется инициализировать заново. Теперь ставим PostgreSQL Ставим в следующем порядке rpm -ivh postgresql-libs-8.3.3-2.1C.i386.rpm rpm -ivh postgresql-8.3.3-2.1C.i386.rpm rpm -ivh postgresql-server-8.3.3-2.1C.i386.rpm rpm -ivh postgresql-contrib-8.3.3-2.1C.i386.rpm Далее инициализируем PostgreSQL командой su - postgres -c ‘initdb –locale=ru_RU.utf8 -D /var/lib/pgsql/data/’ Отключаем пароли на подключение к PostgresSQL, заменяя в файле /var/lib/pgsql/data/pg_hba.conf строку host all all 0.0.0.0/0 md5 на host all all 0.0.0.0/0 trust Запускаем PostgresSQL /sbin/service postgresql start Подключаемся к PostgresSQL psql -h localhost postgres postgres меняем пароль пользователя postgres ALTER USER postgres PASSWORD ‘new_password’; И выходим \q Включаем пароли на подключение к PostgresSQL, заменяя в файле /var/lib/pgsql/data/pg_hba.conf строку host all all 0.0.0.0/0 trust на host all all 0.0.0.0/0 md5 Перезапускаем PostgresSQL /sbin/service postgresql restart Собственно на этом все. надо еще посмотреть на счет фаервола в линуксе, т.к. он блокирует доступ. Отключается он так /etc/init.d/iptables stop Базу данных для информационной базы создавать только средствами 1С:Предприятие, т.к. если создавать базу данных средствами PostgreSQL, то база будет не пригодна. PS: Странная это вещь PostgreSQL и 1С. После того как вы проделаете все вышесказанное и если не заработает, то надо заново переставить библиотеку ICU и снова инициализировать базу. После этого база будет запускаться только под пользователем postgres, командой postgres -D /var/lib/pgsql/data это все странно, но это работает. Запуск в фоновом режиме su –l postgres –c 'pg_ctl start' Это сообщение отредактировал(а) belousov - 26.12.2008, 16:07 -------------------- NIHIL VERUM EST LICET OMNIA |
|||
|
||||
belousov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 317 Регистрация: 21.11.2006 Где: Москва Репутация: 1 Всего: 6 |
Интересное наблюдение.
В постгресе пишется лог баз данных. Что это такое думаю объяснять не надо, туда пишуться транзакции и нужен он для восстановления. Но в постгресе он не такой как, например, в mssql - файл базы данных плюс файл лога. Здесь лог пишется для всего кластера баз данных. Следовательно, восстановить только одну БД, например, из нескольких не получиться, восстановяться сразу все. Этот случай относится не к краху сервера, а если вы, например, испортили базу. Думаю это можно назвать откатом. Так вот, чтобы восстановить (откатить) только одну базу данных нужно, либо восстанавливать весь кластер сервера на другой машине, а оттуда сделать дамп нужной базы и скопировать его. Либо на сервере устанавливать несколько серверов постгрес и на каждом сервере держать по одной базе. Что кому удобнее, решает каждый для себя -------------------- NIHIL VERUM EST LICET OMNIA |
|||
|
||||
belousov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 317 Регистрация: 21.11.2006 Где: Москва Репутация: 1 Всего: 6 |
Настройка Online Backup в PostgreSQL (непрерывное резервное копирование)
Надо ведь ещё и базу сохранять, чтобы можно было восстановить, если вдруг что случится, не дай Бог конечно… Здесь расскажу как настроить онлайн бэкап или Continuous Archiving как написано в документации. Есть англоязычная статейка на эту тему Online Backup & Recovery я расскажу по русски. Скачиваем отсюда скриптик pg_hotbackup. Для правильной работы сего скрипта необходимо поставить библиотеки perl-DBI и perl-DBD-Pg У вас должно работать архивирование WAL. Как включить архивирование журнала транзакций. В файле postgresql.conf установить параметр archive_mode = on и убрать знак комментария # В параметр archive_command вписать путь куда будет сохранятся журнал например, /usr/bin/scp %p /mnt/server/archivedir/%f </dev/null После этого сервер надо перезапустить. Подробнее здесь Действия необходимо производить от пользователя postgres Запускаем скрипт pg_hotbackup --backupdir=/var/lib/pgsql/backups --datadir=/var/lib/pgsql/data где --backupdir - путь КУДА будет сохраняться дамп. --datadir - путь ОТКУДА делается дамп На этом процесс бэкапа заканчивается. После выполнения дампа продолжается архивирование WAL, т.к. с его помощью можно восстановить базу на более позднее время. Это сообщение отредактировал(а) belousov - 27.10.2008, 16:05 -------------------- NIHIL VERUM EST LICET OMNIA |
|||
|
||||
belousov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 317 Регистрация: 21.11.2006 Где: Москва Репутация: 1 Всего: 6 |
Пример файла cron для резервного копирования. Средства описаны выше
Тут написано. что каждые понедельник, вторник, среду, четверг и пятницу в 23:00 весь кластер сервера будет копироваться в --backupdir -------------------- NIHIL VERUM EST LICET OMNIA |
|||
|
||||
belousov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 317 Регистрация: 21.11.2006 Где: Москва Репутация: 1 Всего: 6 |
Восстановление
ВАЖНО!!!!!!!!! Восстановление кластера БД откатит все базы данных находящиеся на сервере. Т.е. кроме нужной базы затрутся и не нужные. Необходимо либо перед восстановлением на рабочем сервере сделать дамп остальных баз через pg_dump (su - postgres -c 'pg_dump -Fc имя_базы > имя_базы.dump'). Либо производить восстановление на другом сервере БД и переносить восстановленную базу на рабочий сервер так же через pg_dump. Так же необходимо учесть, что если рабочий сервер имеет разрядность 64-bit то восстанавливать его нужно тоже на 64-битном сервере. Имеются файлы бэкапа кластера pg_hotbackup*.tar.gz и архивы журнала WAL сделанные после архива pg_hotbackup. Действия выполнять под пользователем postgres Остановить сервер postgresql: su – postgres –c ‘pg_ctl stop’ Полностью удалить директорию кластера БД – это папка data по адресу /var/lib/pgsql/data Снова создать директорию кластера. Важно выполнить эти действия от пользователя postgres, чтобы папке были присвоены правильные права. su – postgres –c ‘mkdir –p /var/lib/pgsql/data’ su – postgres –c ‘mkdir –p /var/lib/pgsql/data/pg_xlog’ su – postgres –c ‘mkdir –p /var/lib/pgsql/data/pg_xlog/archive_status’ Скопировать файл полного бэкапа в папку /var/lib/pgsql/backups Распаковать файл дампа в директорию кластера, это уже можно выполнить от root. Переходим в папку кластера сервера cd /var/lib/pgsql/data Распаковываем gzip -dc /var/lib/pgsql/backups/pg_hotbackup_20070103_223518.tar.gz |tar xpf – Эта команда означает, что архив находящийся по адресу /var/lib/pgsql/backups будет расположен в текущую папку, в которой мы находимся, т.е. /var/lib/pgsql/data Создать в папке кластера (/var/lib/pgsql/data) файл recovery.conf В нем записать команду restore_command=’/usr/bin/scp <recovery data>/%f %p’ Где <recovery data> адрес куда копируется журнал WAL. Так же можно ввести параметр recovery_target_time и указать время, до какого момента после выполнения дампа восстановить базу. Если этот параметр не указан, то база восстановиться до последнего момента журнала. Пример. recovery_target_time = ‘2009-01-16 14:00:00 MSK’ Запустить сервер su – postgres –c ‘pg_ctl start’ после запуска сервера необходимо подождать некоторое время пока будет производится восстановление. Этот процесс можно отследить командой ps aux Если сервер запуститься и восстановление пройдет успешно, файл recovery.conf будет переименован в файл recovery.done. Это сообщение отредактировал(а) belousov - 1.12.2009, 15:18 -------------------- NIHIL VERUM EST LICET OMNIA |
|||
|
||||
mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: нет Всего: 109 |
Нашёл. http://v8.1c.ru/overview/postgres_patches_notes.htm Здесь явно говориться, что ICU нужно ставить... Причём, я ICU ставил по-другому. из под рута подал команду yum install icu Всё отлично встало и работало. |
|||
|
||||
belousov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 317 Регистрация: 21.11.2006 Где: Москва Репутация: 1 Всего: 6 |
mihanik, ну это хорошо раз заработало. А у меня после компиляции тоже работало вполне нормально.
Между прочим, на сайте у 1С-ников то написано, что она нужна. Но как это все заставить работать у них не написано, а надо бы. И я думаю, что это потому, что PgSQL СУБД бесплатная, и поэтому не все так с ней просто. Но обсуждение 1С тема другого раздела Это сообщение отредактировал(а) belousov - 1.12.2009, 15:20 -------------------- NIHIL VERUM EST LICET OMNIA |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PostgreSQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |