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

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

Read more

Проблемы с кодировкой в MySQL 5

Столкнулся с проблемой кодировки при переходе из MySQL 4 в MySQL 5. Это вечная проблема, которая возникает при переходе из одной версии MySQL в другую и связана с поддерживаемыми кодовыми страницами. При переходе из MySQL 3 в MySQL 4 была проблема с кодировками, т.к. в MySQL 3 они не указывались, а в MySQL 4 стали указываться. При переходе же из версии MySQL 4 в MySQL 5 проблема связана с тем, что в 5-й версии уже используется универсальная кодировка utf-8.   В этом же форуме, я хочу подбить определённый результат, как эту проблему решить. 1. Прежде всего, нужно указать по умолчанию русские кодировки. 2. После вызова коннекта в PHP необходимо указать, что кодировка, например, cp1251 Так, например, в phpNuke я указал в файле mainfile.php после коннекта: // Rudjuk 24.06.2007 Change Error Code if ($db){ $db->sql_query(“set names ‘cp1251′”); } После этого должно работать. Кстати, при переносе данных из одного сервера, скажем MySQL 4 на другой с MySQL 5 следует обязательно после коннекта к базе (вначале дампа) указать: Код SET NAMES CP1251 Еще осталась проблема с автоматическим определением кодировки. Почему-то по умолчанию определяется на странице, что кодировка utf-8, хотя указано явно Код < meta http-equiv=”content-type” content=”text/html; charset=windows-1251″ /> В apache2 указывается кодировка по умолчанию в файле /etc/apache2/conf.d/charset, нужно просто вместо UTF-8 указать AddDefaultCharset windows-1251 Что и говорить проблемы с кодировкой – часто встречаемая проблема. Как её решить, прекрасно описано в статье: Решение проблем с кодировкой Какая кодировка настроена в MySQL вы можете узнать с помощью запроса: Код SHOW VARIABLES LIKE ‘character_set_client’; Кроме того, […]

Read more

Работа с Interbase (Firebird) в PHP

Если кто-нибудь пытался искать информацию, как работать с базами данных в PHP, то как правило, натыкалася на работу PHP с MySQL. По поводу же работы с Interbase информация достаточно скудная. Более того, как правило, поисковики выкидывают информацию не по работе PHP с Interbase, а по работе Delphi с Interbase :). Прежде всего, необходимо включить поддержку Interbase в PHP. Как это делается, скажем в Linux Ubuntu я писал: http://nerusoft.blogspot.com/2007/12/interbase-firebird-apache-2-php-5-linux.html Теперь рассмотрим основные операторы: // Подключение к базе данных Interbase $conn=ibase_connect($dbname,$dbuser,$dbpass); // Выполнение SQL-запроса и получение информации из него (аналогично, как в MySQL): $stmt = ‘select * from GET_ZAKAZID’; $sth = ibase_query($conn, $stmt); while ($row = ibase_fetch_object($sth)) { $zakazn=$row->DOCN_RETURN; } ibase_free_result($sth); // Освобождаем ресурсы, после получения необходимых данных // Выполнение простой вставки с помощью INSERT $stmt = ‘INSERT INTO ZAKAZ(ZAKAZID, ZAKAZNA, TYPEZAKAZID’ .’,EMAIL, KONT_TELEPHONE, MTELEPHONE, ICQ’ .’) VALUES (‘ .$zakazn.”,’”.trim(strip_tags(@$_POST[‘date_vipoln’])).”‘,”.@$_POST[‘type_cli’] .”,’”.trim(strip_tags(@$_POST[’email’])).”‘,’”.trim(strip_tags(@$_POST[‘telephone’])) .”‘,’”.trim(strip_tags(@$_POST[‘mtelephone’])).”‘,”.trim(strip_tags(@$_POST[‘icq’])) .”)”; $sth = ibase_query($conn, $stmt) or die(ibase_errmsg()); // Закрываем коннект, после работы с базой данных ibase_close($conn); Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Read more

Компиляция UDF-библиотеки rfunc в Linux Ubuntu 8 для Firebird 2

Для того, чтоб скомпилировать библиотеку rfunc для firebird 2, необходимо произвести ряд действий. 1. Установить firebird не из репозитария, а так, как написано было в предыдущем сообщении. 2. В файле rfunc.conf исправить: GDS_NAME = fbclient #GDS_NAME = gds32 3. Исправить в файле makefile.linux: #RFUNCIBUTILLIB = /usr/lib/libib_util.so RFUNCIBUTILLIB = /opt/firebird/lib/libib_util.so 4. Исправить в том же файле: #INCLUDE = -I/usr/include -I”$(IBASE)$(SDKDIR)/include” INCLUDE = -I/usr/include -I/opt/firebird/include 5. Установить: apt-get install uuid-dev 6. Прокомпилить: make -f makefile.linux rfunc 7. Появится файл библиотеки под названием rfunc в том же каталоге, где Вы компилировали. Можете его переименовать в rfunc.so – для соблюдения стандартов в названиях файлов. 8. Полученный файл переписать в /opt/firebird/UDF. После этого, перезагрузите сервер. Библиотека должна работать. Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

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