Что корректный URL JDBC должен подключить к базе данных RAC

import urlparse, urllib
def myquote(url):
    parts= urlparse.urlparse(url)
    return urlparse.urlunparse(parts[:2] + urllib.quote(parts[2]) + parts[3:])

Это заключает в кавычки только компонент контура.

Иначе, Вы могли сделать: urllib.quote(url, safe=":/")

9
задан Mark Rotteveel 16 December 2016 в 10:41
поделиться

3 ответа

URL-адрес должен выглядеть следующим образом:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)
(ADDRESS=(PROTOCOL=TCP)(HOST=tst-db1.myco.com)(PORT=1604))
(ADDRESS=(PROTOCOL=TCP)(HOST=tst-db2.myco.com)(PORT=1604)))
(CONNECT_DATA=(SERVICE_NAME=mydb1.myco.com)(SERVER=DEDICATED)))

На самом деле, просто скопируйте файлы из вашего tnsnames.ora .

17
ответ дан 4 December 2019 в 10:32
поделиться

Вы можете посмотреть драйверы OCI. Я считаю, что они должны работать лучше и лучше справляться с RAC.

из http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96590/adg01dev.htm#429762

OCI обеспечивает значительные преимущества по сравнению с другими методами доступа к базе данных Oracle:

  • Более детальный контроль над всеми аспектами разработки приложения.
  • Высокая степень контроля над выполнением программы.
  • Использование знакомых методов программирования 3GL. и инструменты разработки приложений, такие как браузеры и отладчики.
  • Поддержка динамического SQL, метод 4.
  • Доступность на самом широком диапазоне платформ из всех программных интерфейсов Oracle.
  • Динамическое связывание и определение с помощью обратных вызовов.
  • Описывать функциональные возможности для предоставления слоев метаданных сервера.
  • Уведомление об асинхронном событии для зарегистрированных клиентских приложений.
  • Расширенный язык обработки данных массива (DML) для вставок, обновлений и удалений массивов.
  • Возможность связывания запрос фиксации с исполнением для уменьшения количества циклов приема-передачи.
  • Оптимизация для запросов с использованием прозрачных буферов предварительной выборки для уменьшения количества циклов обработки.
  • Безопасность потоков, поэтому вам не нужно использовать взаимные исключительные блокировки (мьютекс) для дескрипторов OCI.
  • Соединение с сервером в неблокирующем режиме означает, что управление возвращается коду OCI, когда вызов все еще выполняется или не может быть завершен.
1
ответ дан 4 December 2019 в 10:32
поделиться

Смысл файла tnsnames, старого сервера Oracle Names и нового рекомендованного метода разрешения имен баз данных сервером каталогов LDAP состоит в том, чтобы избежать необходимости жестко указывать имена хостов, адреса, порты и т. Д. В строке подключения. Администраторы баз данных должны иметь возможность перемещать базу данных на новый хост или порт, ничего не нарушая.

Лучший способ задать URL-адрес тонкого подключения - использовать следующий синтаксис:

jdbc: oracle: thin: @ldap: // <имя сервера OID>: <порт OID> / <идентификатор безопасности базы данных или имя службы> , cn = OracleContext, dc =

Итак, в вашем случае, если бы «oid» было DNS-разрешимым именем сервера OID в вашей компании, и он использовал порт 5000, это было бы:

jdbc : oracle: thin: @ldap: // oid: 5000 / mydb1, cn = OracleContext, dc = myco, dc = com

Если ваши администраторы баз данных еще не настроили OID, они сильно отстают. Пора получить новых администраторов баз данных.

-squish

2
ответ дан 4 December 2019 в 10:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: