Zarejestruj się na BitBay.net
Home > Uncategorized > Oracle database link

Oracle database link

Wyobraźmy sobie sytuację w której mamy dwie bazy. Niech to będą baza A i baza B. Będąc zalogowani do bazy A potrzebujemy jednak czasami zrobić jakiegoś selekta (i nie tylko) na tabelach z bazy B. Tutaj z pomocą przychodzi nam mechanizm Oracle database link. Powiązanie z bazą danych (ang. database link) – jest to zapisana w bazie danych ścieżka sieciowa do odległej bazy danych. Istnieje kilka rodzajów data linków (szczegóły w dokumentacji):

  • Connected User Link
  • Current User Link
  • Fixed User Link
  • Shared Link
  • Public Link

Jak stworzyć link bazodanowy?

Do tego musimy stworzyć użytkownika na bazie produkcyjnej. Najlepiej żeby miał on jak najmniejsze uprawnienia. Przy tworzeniu linku będziemy bowiem zmuszeni podać hasło użytkownika.

Składnia tworzenia powiązania z bazą danych (powiązania bazodanowego) jest następująca:

CREATE DATABASE LINK nazwa_linku
CONNECT TO użytkownik IDENTIFIED BY hasło
USING 'nazwa_usługi';

gdzie:
użytkownik/hasło – dotyczą konta, na które ma zostać dokonane logowanie w odległej bazie danych, jeśli ich brak – używana jest nazwa użytkownika i hasło z lokalnej bazy danych;
nazwa_usługi – nazwa usługi (aliasu bazy danych) Oracle Net np. zdefiniowanej w lokalnym pliku konfiguracyjnym TNSNAMES.ORA. Przykład:

A =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = kamil)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bazaa)
)
)

B =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bazab)
)
)

Tworzymy link:

CREATE DATABASE LINK B
CONNECT TO użytkownik IDENTIFIED BY hasło
USING 'B';

Sprawdzamy czy link istnieje:

select * from user_db_links

Pierwszy  selekcik:

SELECT table_name, tablespace_name FROM user_tables@B;

Zamykanie linku:

ALTER SESSION CLOSE DATABASE LINK nazwa_linku;

Kasowanie linku:

DROP DATABASE LINK nazwa_linku;
DROP PUBLIC DATABASE LINK nazwa_linku;
  1. Brak komentarzy
  1. Brak jeszcze trackbacków

*