- Установка Oracle Client на Windows
- FAQ по Oracle Client
- Что такое Oracle Client?
- Откуда скачать Oracle Client?
- Установка клиента Oracle 12c 32-bit не проходит после установки Oracle 12c 64-bit клиента (или наоборот)
- Как настроить подключение к СУБД Oracle в приложении, использующем Oracle Client?
- Что такое SERVICE_NAME и SID?
- Как адресовать таблицы в Oracle?
- Что такое схема и база данных в Oracle?
- Почему не удается определить OCI environment (например, в Attunity)?
- Как настроить символьную кодировку Oracle Client?
- [Инсталляция Oracle Client 12C (32 bit) в операционной системе Windows 7 (64 bit)]
- Подготовка среды
- Инсталляция Oracle Client
- Delphi Notes
- Страницы
- пятница, 17 февраля 2012 г.
- Oracle дома. Быстрый старт. Часть 3: установка и настройка oracle-клиента
- Прошу обратить внимание – Windows
- Настройка файла hosts (не обязательно)
- Уcтановка Oracle Instant Client
- Настройка Oracle Instant Client
- Настройка файла tnsnames.ora (не обязательно)
- Подключаемся к БД и выполняем запросы
- Постскриптум
Установка Oracle Client на Windows
Краткое руководство по установке Oracle Client на Windows-машину.
1. Скачать Oracle Client 11G win32_11gR1_client.zip (552,398,260 bytes). Для скачивания требуется регистрация, но не требуется отправка СМС .
2. Установить, запустив setup.exe после распаковки. Золотая середина (имхо) Runtime-набор клиента.
3. Прописать нужный TNS в tnsnames.ora (если вы не меняли пути при установке C:\app\admin\product\11.2.0\client_1\network\admin\tnsnames.ora) используя следующий синтаксис:
4. Протестировать коннект в cmd: tnsping db
Если с коннектом все удачно, вы увидите OK и миллисекунды пинга.
Такая быстрая установка, естественно, не подразумевает откидывания на спинку кресла в отличии от самой Windows.
Дополнение:
В Runtime-наборе клиента оракла есть средство разработки под названием SQL Developer. Этот товарищ работает без tnsnames.ora (хост/порт, логин/пароль указываются при создании соединения) и не зависит от языковых настроек сервера оракл. Тогда как при попытке коннекта к серверу PL/SQL Developer-ом можно увидеть сообщение:
В двух словах: не совпадают языковые настройки клиента и сервера. Смотрим что стоит на сервере:
Полученное значние вписываем в качестве значения ключа NLS_LANG ветки реестра HKLM/Software/Oracle и рестартим Windows. Теперь все ок.
- Ошибка ORA-12505: TNS: прослушиватель в данный момент не имеет данных о SID, заданном в дескрипторе соединения(ORA-12505: TNS: listener could not resolve SID given in connection description) говорит о том, что служба с именем указанном в SID не существует.
Запись опубликована 08.12.2010 в 3:19 пп и размещена в рубрике Вопрос-Ответ. Вы можете следить за обсуждением этой записи с помощью ленты RSS 2.0. Можно оставить комментарий или сделать обратную ссылку с вашего сайта.
FAQ по Oracle Client
За время работы с Oracle Database и Microsoft SQL Server Integration Services я собрал 2 FAQ-а. Первый — по Oracle Client — я публикую здесь, а второй — по коннекторам SSIS к Oracle, следующим постом.
Что такое Oracle Client?
Это промежуточное ПО, предназначенное для доступа к Oracle Database. Некоторые приложения имеют встроенного клиента. Встраиваемый клиент, предназначенный для разработчиков, называется Instant Client.
Откуда скачать Oracle Client?
С сайта www.oracle.com из раздела Downloads -> Databases -> Oracle Database, где выбрать вашу версию СУБД или выше.
Если Вы возьмете клиента от более старшей версии это будет плюсом, поскольку не придется его обновлять на работающей системе, когда потребуется соединяться со следующей СУБД Oracle.
Не перепутайте Oracle Client и Oracle Instant Client, предназначенный для разработчиков. Так же, не качайте Data Access Components, поскольку DAC, помимо Oracle Client, содержит много средств, нужных только для разработки приложений.
Установка клиента Oracle 12c 32-bit не проходит после установки Oracle 12c 64-bit клиента (или наоборот)
Если Вы только что установили одного из клиентов Oracle 12c и не перезагружались, перезагрузитесь.
Программа установки Oracle Client, называемая Oracle Universal Installer, создает службу OracleRemExecService, которая согласно неофициальному описанию нужна только для OUI и должна исчезнуть после перезагрузки. В реальности она не исчезает, но и не запускается при старте ПК. Является ли правильным остановить службу, я не знаю, но это тоже помогает.
Как настроить подключение к СУБД Oracle в приложении, использующем Oracle Client?
Со стороны прикладного программного обеспечения, работающего через Oracle Client, для указания БД может быть использовано имя сервиса TNS или строка конфигурации, содержащая часть объявления имени сервиса TNS.
В первом случае в папке Oracle Client в «\network\admin\tnsnames.ora» укажите:
При этом, в приложениях в поле TNS Service Name указывается имя подключения.
Следует иметь ввиду, что в приложении, запускаемом в 32-х битной среде, используется Oracle Client 32-bit, а в 64-х битной среде используется Oracle Client 64-bit, поэтому может потребоваться сделать «tnsnames.ora» в обоих клиентах.
Что такое SERVICE_NAME и SID?
Подключение к базе данных по сети со стороны сервера обслуживает промежуточное ПО, называемое Listener.
SID это уникальный идентификатор базы данных Oracle на машине, а SERVICE_NAME, это идентификатор базы данных, заданный в Listener. Таким образом, одна и та же база данных, может быть доступна под разными SERVICE_NAME, но только под одним SID. Вас, поскольку Вы находитесь снаружи Listener-а, волнует SERVICE_NAME.
Как адресовать таблицы в Oracle?
По-умолчанию пользователь Oracle обращается к таблицам в своей схеме. Для того, что бы запрос обращался к одним и тем же таблицам из под любого пользователя, нужно указывать имя схемы перед точкой. Например, BM9.BM_CUSTOMER_CONTACT адресует таблицу BM_CUSTOMER_CONTACT в схеме BM9.
Что такое схема и база данных в Oracle?
База данных в СУБД Oracle = отдельный набор процессов СУБД с общей памятью.
Схема содержится внутри базы данных и является контейнером для таблиц. Кроме того, схема = пользователь.
Таблицы с одинаковыми именами могут существовать одновременно в разных схемах.
Почему не удается определить OCI environment (например, в Attunity)?
Приложение использующее Oracle Client должно каким-то образом его найти. Путь установки Oracle Client добавляется в %PATH% Oracle Installer-ом при установке. Но следует иметь ввиду, что переменные окружения устанавливаются процессу при запуске и, к примеру, Visual Studio (BIDS, Data Tools) запущенная до установки клиента, требует перезапуска, что бы начать использовать новый %PATH%.
Эта ошибка может быть по разному сформулирована в других приложениях.
Как настроить символьную кодировку Oracle Client?
Неверно настроенная кодировка может влиять как на получаемые данные, так и на выполнение запросов. Это может проявляться в том, что REPLACE(table_column, ‘А’, ‘Б’) в одном инструменте работает, а в другом нет, потому, что литералы ‘А’ и ‘Б’, поступающие в БД, воспринимаются иначе в одном из инструментов.
Для 32-х разрядного клиента в реестре в [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE] установите параметр «NLS_LANG»=»RUSSIAN_CIS.CL8MSWIN1251» (типа REG_SZ).
Для 64-х разрядного клиента в реестре в [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE], аналогично, установите параметр «NLS_LANG»=»RUSSIAN_CIS.CL8MSWIN1251» (типа REG_SZ).
После настройки кодировки необходимо перезагрузиться, поскольку, уже запущенный Oracle Client её не перечитает.
[Инсталляция Oracle Client 12C (32 bit) в операционной системе Windows 7 (64 bit)]
В случае обнаружения ошибок, неточностей, опечаток или Вам известны лучшие способы, пишите в чат или на адрес эл. почты.
Oracle Clietn необходим для удаленного подключения к базе данных разного рода программ. Программы, написанные на Java — так называемые (тонкие клиенты), могут обходится и без клиента. Например, SQL Developer и JDeveloper. Это также относится и к web приложениям, которые запущены непосредственно на сервере, такие как APEX, Enterprise Manager, iSQLPLUS.
Для подключения остальных программ TOAD, PL/SQL Developer, SQL PLUS и большинства других, требуется библиотека oci.dll (oracle call interface), которая собственно и предоставляет такую возможность и разумеется она включена в набор всевозможных дополнительных программ, которые объединены под одним общим названием Oracle Client.
Скачать дистрибутив Oracle Client можно с rutracker или более позднюю версию с официального сайта. Если у Вас есть доступ к MetaLink, рекомендуется качать самую последнюю версию именно оттуда.
Oracle client для Windows
hxxp://rutracker.org/forum/viewtopic.php?t=4803357
Для инсталляции клиента достаточно 1 архива
winnt_12102_client32.zip
Устанавливать 64 битный клиент конечно можно и с ним замечательно будет работать sqlplus. Правда PL/SQL Developer пока умеет работать только с 32-х битным клиентом, поэтому ниже описывается именно он
UPD. Версия PL/SQL Developer 14.0.1 умеет работать с 64 битным клиентом.
Подготовка среды
Для начала, нужно установить 1 библиотеку в Windows 2008. Без нее установка 32-х битного клиента завершится ошибкой. При этом 64 битному клиенту эта библиотека не требуется.
hosts
Отредактируйте файл hosts, таким образом, чтобы не приходилось обращаться к серверу баз данных по его IP
Файл hosts нужно отредактировать, например в notepad запущенном от учетной записью с правами администратора.
Инсталляция Oracle Client
Вообще нужен только Oracle Call Interface. Но для удобства настройки и работы, лично я устанавливаю 3 компонента:
- SQL Plus
- Oracle Call Interface (OCI)
- Connection Manager
Delphi Notes
Заметки Delphi + Oracle программиста
Страницы
пятница, 17 февраля 2012 г.
Oracle дома. Быстрый старт. Часть 3: установка и настройка oracle-клиента
Предыдущие посты: Часть 1 и Часть 2.
В этой заметке я расскажу как установить и настроить oracle-клиент в ОС Windows. Плюс немного расскажу об инструменте, который можно использовать для работы с СУБД.
Прошу обратить внимание – Windows
Т.к. в конечном итоге у нас задача написать Windows приложение в Delphi, то далее описываемые мной действия относятся в основном к Windows 7. Если у Вас Windows XP, то отличия будут минимальны.
Описываемые далее действия Вы можете выполнить либо для хост-системы, либо для другой виртуальной машины с установленной ОС Windows. Версия и разрядность ОС принципиального значения не имеют.
Настройка файла hosts (не обязательно)
Для удобства можно дописать в файл hosts такую строку:
Это позволит использовать указанное имя oracle вместо указанного IP адреса при подключении к серверу. Например, вместо ping 192.168.56.101 можно будет писать ping oracle, результат будет одинаковым.
HINT: Для редактирования файла hosts понадобятся права администратора. Можно сделать так: Пуск \ Все программы \ Стандартные, правой кнопкой мыши на Блокнот, выбрать пункт Запуск от имени администратора:
И в блокноте уже меню Файл \ Открыть… –> C:\Windows\System32\drivers\etc\hosts
Уcтановка Oracle Instant Client
Для работы с СУБД Oracle на локальном компьютере должен быть установлен так называемый oracle-клиент. Oracle-клиент – это библиотека OCI.DLL плюс ещё несколько библиотек, необходимых для работы программ с СУБД. (Отмечу правда, что возможны случаи обхода этого правила, однако я настоятельно не рекомендую их использовать.)
HINT: Oracle-клиент – это отдельный продукт, развиваемый разработчиками Oracle параллельно развитию СУБД. Oracle-клиент, как и СУБД, имеет свою версию. Как правило с выходом новой версии СУБД Oracle, в свет появляется соответствующая версия oracle-клиента. Так например, на нашей Oracle Developer Days установлена СУБД Oracle 11g, так же доступна версия 11 для oracle-клиента. Oracle рекомендует поддерживать эту параллель и своим клиентам, однако Вы можете использовать и предыдущую версию oracle-клиента для подключения к текущей версии СУБД (и наоборот).
HINT: Кроме разных версий, oracle-клиент может входить в разные дистрибутивы. Если Вы установите на своём компьютере (на хосте) СУБД Oracle, то установщик автоматически установит и Oracle-клиент. Мы же СУБД запускаем в виртуальной машине, для хоста (либо другой виртуальной машины) нам понадобиться Oracle Instant Client.
Итак, скачиваем Instant Client – выбираем версию: так как мы будем запускать Win32 приложения, то и клиент должен быть Win32: Instant Client for Microsoft Windows (32-bit).
HINT: Даже если у вас ОС 64-битная, всё равно качаем 32-битную версию клиента; в будущем, если Вы будете делать сборки приложений под Win64, то можно также скачать и Win64 версию клиента.
Далее соглашаемся с лицензионным соглашением и выбираем версию *Instant Client Package — Basic Lite (18,4 Мб) – лайт версии нам вполне хватит. При желании можете скачать ещё *Instant Client Package — SQL*Plus – SQL Plus это консольная утилита для исполнения SQL-запросов, именно она чаще всего используется для иллюстрации примеров в книгах, документации и на форумах. Однако я буду использовать другую бесплатную утилиту, об этом чуть ниже.
Скачиваем zip-архив, однако из всего архива нам достаточно будет извлечь всего три файла (это легко выявляется экспериментальным путём):
Сохраняем их в отдельный каталог, например в C:\Oracle\InstantClient.
Настройка Oracle Instant Client
Для того, чтобы приложения смогли найти oci.dll, необходимо произвести одну настройку. На самом деле, можно поступить разными способами: есть приложения, у которых в настройках можно явно задать путь к oci.dll, но в основном приложения ищут библиотеку по некоторым правилам – сначала в реестре, затем в путях, указанных в переменной среды окружения Path. Сделаем именно это: жамкаем Win+Pause и далее находим слева пункт “Дополнительные параметры системы” (это для Windows 7, для Windows XP просто выбираем вкладку “Дополнительно”):
Жамкаем кнопку “Переменные среды…” и добавляем в переменную Path (через точку с запятой) путь к каталогу, куда мы распаковали архив (C:\Oracle\InstantClient). Сюда же добавляем переменную: TNS_ADMIN = C:\Oracle\InstantClient – это ссылка на каталог, где у нас будет лежать файл tnsnames.ora. Пусть это будет тот же каталог, где лежит oci.dll. У меня это всё выглядит так:
Здесь ещё можно указать NLS-параметры, подробнее о них можно почитать … мм, хотел вставить ссылку из своих закладок на хорошее описание, однако ресурс уже недоступен. На скорую руку нашёл такую интересную статью (ссылка). И ещё (ссылка).
Сохраняем изменения (ОК), для Windows XP Sp2 и ниже необходимо сделать выход из системы, чтобы эти переменные применились (ну или перезагрузить компьютер), для Windows XP Sp3 и Windows7 эти настройки применяются к текущему окружению сразу же (нужно лишь перезапустить файловый менеджер или проводник).
В принципе, на этом настройка Oracle Instant Client завершена, однако для удобства сделаем ещё одну вещь.
Настройка файла tnsnames.ora (не обязательно)
Создаём обычный текстовый файл под названием tnsnames.ora и сохраняем в каталог, на который ссылается переменная TNS_ADMIN. У нас этот файл будет содержать всего одну строку:
У меня приведён вариант с использованием упрощённого синтаксиса:
где alias – это имя, которое могут использовать приложения для подключения к БД (помните мы выбирали параметр Network Alias в предыдущей заметке, когда настраивали подключение к БД в Oracle SQL Developer?), host – IP-адрес сервера, я указал слово oracle, т.к. именно его мы прописали в файле hosts (а если не прописали, то здесь можно указать IP-адрес 192.168.56.101 явно), port – необязательный параметр, если не указать, то будет использован порт по-умолчанию 1521, sid – имя экземпляра БД, в нашем случае это orcl.
Более подробно об этом файле и как его конфигурировать – здесь.
Подключаемся к БД и выполняем запросы
Итак, Instant Client установлен и сконфигурирован. Скачиваем бесплатную утилиту SQLTools (сайт программы — http://www.sqltools.net/). Устанавливаем. Запускаем. При первом запуске программа предложит ввести пароль – это можно сделать, если Вы хотите, чтобы другие пользователи Вашего компьютера не смогли воспользоваться подключениями, которые будут сконфигурированы в SQL Tools, я же отказался от такой возможности. А далее мы увидим окно, в котором можно создавать подключения к базам данных. Здесь параметры аналогичны параметрам подключения программы Oracle SQL Developer (пароль – oracle):
Если же Вы не редактировали файл hosts и не создавали файл tnsnames.ora, то можно указать такие параметры:
Кнопка Test проверяет, можно ли подключиться к БД. Кнопка Save сохраняет введённые параметры в список слева. Кнопка Connect выполняет подключение к БД и закрывает диалог.
Выполняем простейший запрос:
И нажимаем F5, должно получиться примерно следующее:
Постскриптум
Вы наверное заметили, что “быстрый старт” – это мягко сказано: нам пришлось сделать как минимум три вещи. Если Вы не хотите заниматься всеми этими настройками, то можно поступить очень просто: скачать и установить дистрибутив СУБД Oralce для Windows, например бесплатную версию Oracle Database Express Edition 11g Release 2. При этом установщик автоматически за Вас сделает необходимую настройку Oracle-клиента. И Вам останется только запустить службу СУБД.
Однако я сознательно решил воспользоваться именно виртуальной машиной, чтобы показать на примере, с какими трудностями может столкнуться разработчик приложений под эту СУБД. Плюс, возможность использования виртуальных машин позволяет ставить СУБД (и другие виртуальные машины) на паузу, что происходит быстрее, чем остановка и запуск службы СУБД. Плюс это нам даёт такой “бонус” как перенос виртуальных машин с одной физической машины на другую. И ещё плюс – мы не “засоряем” хост-систему – “поигравшись” в разработчиков, достаточно удалить виртуальную машину и всё. Минус всей этой темы только один: СУБД в виртуальной машине работает чуть медленнее, чем на реальной физической машине, однако на сегодня, когда процессоры поддерживают виртуализацию на аппаратном уровне, это не существенно.