|
|
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
Всем доброго дня. Вышла такая ситуация, что на сервере должны быть два экземпляра Oracle. На 11 крутится одна база base1, на 12 другая база. Сервер W2012R2. Проблема с доступом к базе на 11 Oracle. Дело обстоит так. Если на самом сервере из командной строки попытаться плюсом присоединиться, то выдается следующее: C:\Users\Администратор>sqlplus user/password@base1 SQL*Plus: Release 12.1.0.2.0 Production on Thu Jun 23 12:40:10 2016 Copyright (c) 1982, 2014, Oracle. All rights reserved. ERROR: ORA-12154: TNS:could not resolve the connect identifier specified Enter user-name: user Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options SQL> То есть подключается, но со второго раза. Снаружи не подключается вообще (видимо там второго раза не предлагается). Причем, при обоих включенных листнерах ошибка для каждого разная: для 1521 это ora-12518, для 1527 - ora-12514. Если запустить на сервере sqlplus из папки 11 оракла, то ситуация не меняется. Были созданы два листнера. Один для 12 оракла на порту 1521, другой для 11 на 1527 порту. Попытка соединиться выдает тот же ora-12154. В tnsnames.ora менял порт для проверки на 1527 и на 1521 - ничего не меняется, ошибка та же. Для эксперимента отключал листнеры по очереди - ничего не меняется, что по одному, что по другому коннект со второго раза. Единственое, что нашел на форуме это http://www.sql.ru/forum/16795/dva-ekzemplyara-na-odnom-servere но оно древнее и не совсем про то, что надо. Прошу помочь, кто знает как это все починить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 13:12:55 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
Переменные окружения смешались/попутались напрочь. В том числе - path. Изучать oraenv ну или руками все аккуратно разводить по домам (oracle_homes). И да - листенер таки можно оставить один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 13:29:26 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
ekzarh, А $ORACLE_HOME один или для каждой базы свой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 13:32:28 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
ekzarhБыли созданы два листнера. Один для 12 оракла на порту 1521, другой для 11 на 1527 порту. а зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 13:59:05 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
ekzarh... Были созданы два листнера. Один для 12 оракла на порту 1521, другой для 11 на 1527 порту. Попытка соединиться выдает тот же ora-12154. В tnsnames.ora менял порт для проверки на 1527 и на 1521 - ничего не меняется, ошибка та же. ... А на 11 параметр local_listener тоже менял? Код: plsql 1. 2. Ну или настроить статическую регистрацию p.s. 11.2.0.3 не сертифицирована для W2012R2 Как создавал для нее службу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 17:24:06 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
авторА $ORACLE_HOME один или для каждой базы свой? Да. В реестре две ветки. В переменных такой нет вообще. Но для винды это, вроде бы, нормально. У нас много серверов на винде и нигде в переменных среды она не указана. авторПеременные окружения смешались/попутались напрочь. В том числе - path. Изучать oraenv ну или руками все аккуратно разводить по домам (oracle_homes). И да - листенер таки можно оставить один. В path прописано так: C:\app\orcl12\product\12.1.0\dbhome_1\bin;C:\app\orcl\product\12.1.0\dbhome_1\bin;c:\oracle\product\11.2.0\dbhome_1\OPatch;c:\oracle\product\11.2.0\dbhome_1\bin; Что отсюда надо убрать? авторekzarh Были созданы два листнера. Один для 12 оракла на порту 1521, другой для 11 на 1527 порту. а зачем? Мы никогда не ставили два экземпляра оракла на один сервер. Это казалось логично, однако я сейчас понимаю, что это не так. Как правильно сделать? авторА на 11 параметр local_listener тоже менял? lsnrctl status <LISTENER NAME1> lsnrctl status <LISTENER NAME2> Ну или настроить статическую регистрацию p.s. 11.2.0.3 не сертифицирована для W2012R2 Как создавал для нее службу Параметр, вроде, такой не трогал. Ответ на команды приложил. Со службой все было просто. Установили оба оракла. Через NetConfigurationAssistant оракла 11 создали листнер и службу для инстанции. А потом просто перетащили файлы базы на этот сервер и прицепили к инстанции. Наверное это все пляски с бубном и шаманство, но оно всегда работало до этого случая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 10:28:00 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
ekzarhЧто отсюда надо убрать? Не убрать. Разделить. По переменным дело такое: в win они также работают, как и в nix. Но в win есть доп. вариант указания необходимых значений - реестр. Но тут есть ньюанс. Экземпляру, чтобы правильно работать, надо знать свой oracle_home и еще несколько параметров. Клиенту, кстати, тоже. В реестре win есть ключик, определяющий активный oracle_home. Пока на сервере один home - вопросов нет. Когда homes становится много - возникает вопрос... Короче, что надо: 1. убедиться, что каждый из экземпляров стартует со своим oracle_home. 2. убедиться, что каждый из экземпляров стартует со своим path. 3. Порешать вопрос с tnsnames.ora, проще всего - положив в каталог, указанный переменной TNS_ADMIN. Иначе придется вести два файла, что неудобно. 4. Клиента сделать дефолтным home (утилитка была вроде - Oracle Home Selector, но можно и руками в реестре), путь к бинарникам клиента - первый или единственный в path, иначе будут нежданчики. 5. Листенер оставить от 12, 11 база в нем зарегистрируется если, как, полагаю, раньше работали по дефолту - имя листенера LISTENER, порт tcp:1251 Либо придется править local_listener Ну дальше - по фактической погоде, есть еще ньюансы с dbname/dbid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 13:11:46 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
ekzarhC:\Users\Администратор>sqlplus user/password@base1 ERROR: ORA-12154: TNS:could not resolve the connect identifier specified Enter user-name: user Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production То есть подключается, но со второго раза. И, кстати, не "со второго раза" он подключается. Попытка подцепить по tnsnames проваливается - скорее всего по той причине, что в tnsnames активного home просто нет записи о base1 Вторая попытка - это локальное подключение мимо листенера, чтобы подключиться "с первой попытки" - попробуйте: sqlplus user/password То, что при этом попадаете в 11 версию, а не в 12 - определяется переменной окружения (или аналогом в реестре) oracle_sid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 13:18:36 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
ekzarh, зря ты это затеял, на linuxe несколько home - обычное дело, и все работает, а на винде обязательно нежданчик какой-нибудь будет, лучше разнеси по серверам, или мигрируй 11 в 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 13:40:45 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, авторНе убрать. Разделить. Это в каждой ветке реестра нужно сделать что-то типа переменной PATH ? Или в самой винде прописать PATH1 и PATH2 ? авторВ реестре win есть ключик, определяющий активный oracle_home. Это в ветке реестра, я так понимаю? Как он должен называться? автор1. убедиться, что каждый из экземпляров стартует со своим oracle_home. 2. убедиться, что каждый из экземпляров стартует со своим path. Это где-то в логах надо смотреть? Я вот думаю - наверное есть какие-то мануалы на такой случай? Или это вообще не рекомендуется делать и каждый на свой страх и риск получает такой сказочный геморрой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 14:19:38 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
авторИ, кстати, не "со второго раза" он подключается. Попытка подцепить по tnsnames проваливается - скорее всего по той причине, что в tnsnames активного home просто нет записи о base1 Вторая попытка - это локальное подключение мимо листенера, чтобы подключиться "с первой попытки" - попробуйте: sqlplus user/password То, что при этом попадаете в 11 версию, а не в 12 - определяется переменной окружения (или аналогом в реестре) oracle_sid Чистая правда. sqlplus user/password сразу подключился. SQLPlus выдал, что это 12 версия, но инстанция точно правильная. Однако в tnsnames база прописана. Даже в обоих tnsnames. Сам лично через NetConfigurationAssistant прописал. BASE1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = CDW)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = BASE1) ) ) Что ему не хватает? Надо что-то добавить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 14:27:27 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
sinitsaekzarh, зря ты это затеял, на linuxe несколько home - обычное дело, и все работает, а на винде обязательно нежданчик какой-нибудь будет, лучше разнеси по серверам, или мигрируй 11 в 12. Если б это от меня зависело. Партия сказала надо, комсомол ответил есть. По своей воле я б никогда такой гимор не разводил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 14:28:47 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
sinitsaekzarh, зря ты это затеял, на linuxe несколько home - обычное дело, и все работает, а на винде обязательно нежданчик какой-нибудь будет, лучше разнеси по серверам, или мигрируй 11 в 12. Не говорите ерунды Все прекрасно работает если понимать что и как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 14:55:24 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
ekzarhЧто ему не хватает? Надо что-то добавить? а что говорит tnsping BASE1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 14:58:28 |
|
||
|
Oracle 11.2.0.3 и 12.1.0.2 на одном севрере
|
|||
|---|---|---|---|
|
#18+
Q.Tarantinoа что говорит tnsping BASE1? C:\Users\Администратор>tnsping base1 TNS Ping Utility for 64-bit Windows: Version 12.1.0.2.0 - Production on 24-JUN-2 016 17:39:22 Copyright (c) 1997, 2014, Oracle. All rights reserved. Used parameter files: C:\app\orcl12\product\12.1.0\dbhome_1\network\admin\sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = CDW)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = base1))) OK (0 msec) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 17:43:00 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=215&tid=1888014]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 326ms |

| 0 / 0 |
