Pull to refresh

Comments 25

спасибо
1. За четкое, внятное и грамотное изложение алгоритма.
2. За то, что не страдаете убунтой головного мозга.
Спасибо за подробную инфу.

А под Windows, подскажите:
1) Для разработки стоит ли ставить на свою же машину Standard/Enterprise Edition или она требует много ресурсов и все будет тормозить? (Express не подходит, так как там нет поддержки Java)

2) Под Windows 7 64bit, если сталкивались, то подойдут ли драйвера Oracle 64 bit? А то я ставил и ничего не вышло, PHP не хотел коннектиться, пока не поставил 32 битные.
1. Разнице в потреблении ресурсов между Express и Stadndard/Enterprise Edition нет. В Express просто ограничения на кол-во используемых ресурсов для базы.

2. 32 битные приложения требуют 32 битных драйверов, 64 битные — 64 битных ;-)
1. То есть, S/E Edition позволит мне нормально работать на том же самом компьютере?

2. Уточните ответ, пожалуйста.
1. Да

2. www.viva64.com/ru/l/0002/ — тут подробнее.
А насчет PHP — в Windows обычно берут бинарные сборки, а в них библиотеки уже собраны под конкретную версию оракловой библиотеки, и с другими версиями оно работать не будет.
Для 64х битной оракловой библиотеки надо 64х битную версию PHP, а их готовых под Windows на официальном сайте я не видел. Ну и до кучи надо будет еще 64 битную версию Apache или другого веб-сервера.
UFO just landed and posted this here
UFO just landed and posted this here
Полностью согласен.

Я пока собирал, наткнулся на множество проблем в компиляции и еще много чего.

В общем я так психовал последний раз когда играл в денди
И это сделала одна из крупнейших IT-компаний в мире.
А «Почта России» — одно из крупнейших предприятий страны.
UFO just landed and posted this here
Да, Сбер хорошо апгрейднулся в лучшую сторону. Но мой пост был не об этом, а о том, что размер компании — это в первую очередь признак пропиаренности среди гос. контор и крупных заказчиков, но никак не признак качественного технического исполнения. Чем крупней заказчик, тем дальше находится человек, принимающий бизнес решения от технарей, которые «как-нибудь этот бампер да прикрутят».

Чем больше узнаю про оракл, тем больше он у меня начинает ассоциироваться с коболом и мэйнфреймами. Сугубо по области своего применения/популярности.
UFO just landed and posted this here
Про наличие RPM для instant client в посте указано, а вот что у Oracle есть RPM для расширений — я не знал.
Спасибо за информацию.
UFO just landed and posted this here
А при более внимательном изучении вашей ссылки обнаруживаем, что:
The PDO_OCI driver for the PDO extension is not currently included.

В итоге из этих RPM можно установить только instant client, про что я написал, и oci8. Жаль.
А вот для Zend Server есть все в сборке и с поддержкой:
If support is needed, use Zend Server.

Наверное Oracle не хватает мощностей, что бы сделать что-то безвозмездно, т.е. даром.
Уже не помню к сожалению точные описания всех переменных для чего, но они мне в свое время очень помогли при работе из php с oracle (прописываются в .bashrc или по аналогии):
# oracle
export NLS_LANG="RUSSIAN_RUSSIA.AL32UTF8"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export NLS_LENGTH_SEMANTICS=CHAR
export NLS_NUMERIC_CHARACTERS=".,"
Немного комментариев с моей стороны (правда, я джавист), т.к. я использую оракл на локальной машине уже довольно давно (около 4 лет).

У нас (под Windows XP x32) используют локальный оракл 10g / 11g Enterprise Edition (standard не подходит из-за отсутствия ряда нужных фич), проблем не наблюдается.

Типично он потребляет памяти где то 250-300 мегабайт (что меньше чем, например, Google Chrome c тремя десятками вкладок:))), при более интенсисной обработке данных — бывает до 500 метров. Нагрузка на процессор обычно вообще не заметна (может проявится только если у вас много сложной логике в хранимых процедурах, и самих данных много).

На машинах класса Core2Duo / Quad с 3-4 гигами памяти локальный оракл совершенно не обременителен. На этих же машинах локально еще работают JBoss, Eclipse (и Google Chrome, который по моему ест памяти больше чем все выше перечисленное вместе взятое).

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

Укажу только несколько мелочей, который имеет смысл помнить при работе с локальной базой (когда вы сами себе DBA), они в общем-то общеизвестны, но о них часто забывают. Итак:

— Если вы часто и много (миллионы записей и больше) вставляете и удаляете данных из какой-то таблицы (например, тестируете какие-то интеграционные интерфейсы для загрузки данных из CSV / XML или что-то такое), помните о таком понятии, как Table HWM (high water mark). Переодически не забываете делать не просто delete, а truncate. Кроме того, при очень частой вставке / удалении большого количества записей, следите за размером redo-логов и датафайла с UNDO тейблспейсом.

— Для таблиц, на которые есть активные ссылающиеся внешние ключи из других таблиц, перед тем как можно будет делать truncate, придется пройтись сначала по схеме и отключить все ссылающиеся на таблицу внешние ключи (даже если нет реальных записей, ссылающихся на какие-то данные, сам факт наличия active внешнего ключа не даст сделать truncate).

— Если не следить на местом на диске, то с течением времени оракл может легко отъесть 30-40 гигабайт на диске, даже если у вас нет схем с большим объемом данных. Для борьбы с этим, из простейших методов, не забывайте стирать старые ненужные схемы (т.е. юзеров), и следить за тейблспейсами. Иногда может потребоваться сделать shrink tablespace самому. Неожиданно много места может съедать UNDO tablespace.

Если еще какие то типичные вещи вспомню, напишу.
UFO just landed and posted this here
Ответил в личку. Да, по обычным и OTN лицензиям.
Спасибо за пост.
В закладки, потому что тоже на работе придется писать на PHP под Oracle.
А тут такая классная памятка под рукой!
Когда будете ставить PDO_OCI на php 5.3, может не сработать make. Будет что то такое
/tmp/pear/download/PDO_OCI-1.0/pdo_oci.c:34:1: error: unknown type name 'function_entry'

Решается просто, в pdo_oci.c на 34 строке — заменяем «function_entry» на «zend_function_entry»
UFO just landed and posted this here
Sign up to leave a comment.

Articles