Настройка производительности Postgresql – pgTune

Все, кто использовал Postgresql, знают, что его производительность очень сильно зависит от конфигурационных файлов. Чтоб их отладить, порой приходится экспериментировать не один вечер. Но, к счастью, есть скрипты, которые позволяют сформировать первичные настройки параметров. Причем, данные скрипты с открытым исходным кодом, позволяют посмотреть исходные коды и подправить под свои задачи. Итак: – Онлайн-сервис для расчета параметров Postgresql. – Исходные коды pgTune. – Исходные коды pgTune (продолжение разработки). По материалам: http://habrahabr.ru/post/217073/ Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Read more

Интересный способ сравнения одинаковости баз в двух таблицах на разных серверах

Для сравнения двух таблиц в двух базах данных на разных серверах можно воспользоваться формированием значения по md5. Например: select md5(array_send(array(select B from A order by 1))) as md5; Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Read more

Настройка Postgresql для работы с “1С:Підприємство”

Как показывает практика, не настроенная база данных Postgresql очень медленно работает в “1С:Підприємство”. Поэтому, когда говорят, что MsSQL быстрей работает, чем Postgresql с “1С:Підприємство” – не верьте. Тут вероятней всего причина кроется в настройках по умолчанию. Т.к. Postgresql по умолчанию настроен таким образом, чтоб работать на любом компьютере. И для того, чтоб использовать всю мощь Вашего сервера – немного нужно его поднастроить. За настройку Postgresql отвечает файл: postgresql.conf Если у Вас работает много пользователей (более 100-200), то рекомендую настроить Вам работу Postgresql через pgBouncer. Но, мы не ставим цель данной статьи описывать данную настройку… Поэтому, опишем те параметры, которые сказываются на производительности Вашего сервера: # Если *, то слушать со всех ip-адресов. По умолчанию, слушается только localhost. Впрочем, этого Вам может хватить. listen_addresses = ‘*’        # Номер порта. port = 5432                # (change requires restart) # Максимальное количество подключений max_connections = 100            # (change requires restart) # shared_buffers: напомним, это НЕ вся память, которая нужна для работы PostgreSQL, это. #только размер разделяемой между процессами PostgreSQL памяти, которая нужна для выполнения. #активных операций. Она должна занимать меньшую часть оперативной памяти вашего. #компьютера, так как PostgreSQL использует также дисковый кэш операционной системы.. #К сожалению, чтобы знать точное число shared buffers, нужно учесть количество. #оперативной памяти компьютера, размер базы данных, число соединений и сложность запросов,. #так что лучше воспользуемся несколькими простыми правилами настройки. #На выделенных серверах полезным объемом будет значение от 8 МБ до 2 ГБ. Объем может. #быть выше, если у вас большие активные порции базы […]

Read more

Настройка доступной оперативной памяти в Linux Ubuntu для PostgreSQL

При добавлении оперативной памяти на сервере до 10 Гб, возникла необходимость, чтоб эта память реально использовалась Postgresql, т.к. по умолчанию использовалась только малая часть памяти. Это делается таким образом: echo 8589934592 >/proc/sys/kernel/shmall echo 8589934592 >/proc/sys/kernel/shmmax или в файле /etc/sysctl.conf прописываются строки: kernel.shmall = 8589934592 kernel.shmmax = 8589934592 Так же, если у Вас много оперативной памяти, можно уменьшить использование виртуальной памяти. Для этого, допишите параметр: vm.swappiness=10 swappiness имеет значение от 0 до 100 и представляет собой процент использования виртуальной памяти. Для того, чтоб применить изменения, не забудьте выполнить команду: sudo /sbin/sysctl -p В данном случае, выделяется приложениям 8 Гб, остальная часть идет на нужны операуионной системы. Полезные статьи по теме: http://sysdba.org.ua/ustanovka/oracle/ustanovka-oracle-10g-redaktsii-express-i-enterprise-v-ubuntu-8.04.html http://postgrestips.blogspot.com/ Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Read more

Восстановление базы данных Postgresql

Автор: Рудюк С . А. https://corp2.net E-Mail: rs@corp2.net Любая база данных выходит из строя… Пользователи забывают делать бекапы и как результат, программистам приходится возиться с восстановлением данных. Ранее, я не однократно описывал восстановление баз данных Firebird (Interbase), но уже давно работаю с другими базами данных, поэтому, сталкиваюсь с “новыми задачами” по восстановлению информации. Сегодня, ко мне обратился один старый клиент, у которого много лет работает база данных на Postgresql со вчерашнего дня у них стали выдаваться ошибки Page Error при входе в систему. Как результат – не возможность работы. Зашел в PgAdmin, попробывал сделать бекап – вывались ошибки. Начал “передвигаться” по списку баз данных – вываливается огромное количество ошибок Page Error. Решили восстановить из бекапа. Как оказалось, последний бекап – за декабрь 2013 года. Пол-года пропало! И тут меня осенило! Решил попробывать выполнить select. Проходит успешно, данные показывает без ошибки. Ура! Подумал я себе. Итак, как мне удалось восстановить базу без потери информации: 1. Создаю новую базу данных (с другим названием) из найденного бекапа (в данном случае, декабрь 2013г.). Проверяю входить в систему – всё отлично. 2. Сохраняю данные из каждой интересующей меня таблицы, подобными запросами: copy (select * from zrp_zakaz ) to ‘d:\tmp\zrp_zakaz’; 3. Удаляю данные из необходимых таблиц в базе данных, которую восстановили. Например: delete from zrp_zakaz; 4. Закачиваю данные из сохраненного файла в другой базе данных. Например: copy zrp_zakaz from ‘d:\tmp\zrp_zakaz’; Как результат – база восстановилась полностью, без потери данных. Клиент счастлив, чего и следовало добиться… Автор: Рудюк С . А. https://corp2.net Разработка и создание сайтов, интернет-магазинов, […]

Read more

Установка Postgresql и указание пароля

PostgreSQL – это объектно-реляционная система баз данных, которая обладает признаками традиционной коммерческой базы данных, с расширениями, которые будут доступны следующему поколению СУБД (систем управления базами данных). Установка Для установки PostgreSQL выполните следующую команду в терминале:

Сразу после установки вы можете настроить сервер PostgreSQL по вашим потребностям, хотя стандартная настройка вполне жизнеспособна. Настройка По умолчанию соединения через TCP/IP заблокированы. PostgreSQL поддерживает множество методов аутентификации. Метод аутентификации IDENT используется для postgres и локальных пользователей пока не настроено что-то еще. Обратитесь к PostgreSQL Administrator’s Guide, если вы собираетесь использовать какую-либо альтернативу типа Kerberos. Дальнейшее обсуждение предполагает, что вы собираетесь разрешить соединения по TCP/IP и используете аутентификацию клиентов на основе метода MD5. Файлы настроек PostgreSQL хранятся в каталоге /etc/postgresql/<version>/main. Например, если вы установили PostgreSQL 8.4, файлы настроек сохранятся в каталоге /etc/postgresql/8.4/main. Для настройки аутентификации ident добавьте записи в файл /etc/postgresql/8.4/main/pg_ident.conf. В файле содержатся подробные комментарии чтобы направлять вас. Чтобы разрешить соединения по TCP/IP, отредактируйте файл /etc/postgresql/8.4/main/postgresql.conf. Найдите строку

и замените ее на:

Чтобы разрешить другим компьютерам соединяться с вашим PostgreSQL сервером, замените ‘localhost’ на IP адрес вашего сервера или в качестве альтернативы на 0.0.0.0, чтобы подключить все интерфейсы. Вы можете также редактировать любые другие параметры, если знаете что вы делаете! Для подробностей смотрите комментарии файла настроек или документацию по PostgreSQL. Теперь, поскольку мы можем подключиться к нашему серверу PostgreSQL, следующим шагом будет установка пароля для пользователя postgres. Выполните следующую команду в терминале для соединения со стандартной базой шаблонов PostgreSQL:

Эта команда подключится к PostgreSQL базе данных template1 как пользователь postgres. […]

Read more

Настройка доступной оперативной памяти в Linux Ubuntu для PostgreSQL

При добавлении оперативной памяти на сервере до 10 Гб, возникла необходимость, чтоб эта память реально использовалась Postgresql, т.к. по умолчанию использовалась только малая часть памяти. Это делается таким образом: echo 8589934592 >/proc/sys/kernel/shmall echo 8589934592 >/proc/sys/kernel/shmmax или в файле /etc/sysctl.conf прописываются строки: kernel.shmall = 8589934592 kernel.shmmax = 8589934592 Так же, если у Вас много оперативной памяти, можно уменьшить использование виртуальной памяти. Для этого, допишите параметр: vm.swappiness=10 swappiness имеет значение от 0 до 100 и представляет собой процент использования виртуальной памяти. Для того, чтоб применить изменения, не забудьте выполнить команду: sudo /sbin/sysctl -p В данном случае, выделяется приложениям 8 Гб, остальная часть идет на нужны операуионной системы. Полезные статьи по теме: http://sysdba.org.ua/ustanovka/oracle/ustanovka-oracle-10g-redaktsii-express-i-enterprise-v-ubuntu-8.04.html Источник: http://postgrestips.blogspot.com/ Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Read more