15.09.2014 08:53
OlegON
 
Иногда по разным причинам требуется соединить две базы линком. Как правило, это сопровождается записью в tnsnames на сервере, в итоге кончается тонной этих самых записей и постоянными пинками администратора, чтобы внести эти самые новые записи в tnsnames. Но есть более простой способ идентификации БД. Итак, как создавать:
Код:
create public database link
  mylink
connect to
  supermag
identified by
  qqq
using 'СЕРВЕР:1521/БАЗА'
только, что существенно, при этом должно быть выставлено в sqlnet.ora
Код:
NAMES.DIRECTORY_PATH= (HOSTNAME, TNSNAMES, EZCONNECT)
обращаю внимание, что использовать линки для выполнения сложных запросов не рекомендую, во-первых, именно по линку расползаются планы. Поэтому лучше перетаскивать все требуемые таблицы целиком в несколько потоков в общую аналитическую БД и уже работой с ними на месте. Во-вторых, такое распределение нагрузки и ошибки в основной БД - не то, за что вас поблагодарит администратор.
15.09.2014 15:38
bayan
 
Я в таких случаях предпочёл бы делать так:
Код:
CREATE PUBLIC DATABASE LINK "БАЗА" USING  '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ХОСТ)(PORT=1521))(CONNECT_DATA=(SID=БАЗА)))'
Не хотелось бы отдавать все права supermag'a в сеть. Хотя я мб и неправ :)
15.09.2014 15:59
OlegON
 
Ну, можно и не public делать, я не про это - про Easy Connect...
Часовой пояс GMT +3, время: 19:46.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.