betacode

Руководство Oracle Database Link и Synonym

Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

1- Что такое Database Link?

Database Link это объект в SCHEMA в Oracle, похож на мост для соединения с другой базой данных, помогающий вам иметь доступ к объектам другой базы данных.
Вы так же можете создать Database Link чтобы соединить Oracle к другому виду базы данных, как например MySQL, SQL Server, ... в данном случае вам нужно использовать сервис Oracle Heterogeneous (Oracle Heterogeneous Service)

2- Создать Database Link

Здесь я иллюстрирую соединение 2 систем баз данных Oracle находящихся на 2 разных компьютерах.

tnsname.ora

Для начала, вам нужно понять о файле tnsnames.ora в Oracle.

tnsname.ora это файл описывающие базу данных Oracle, вы можете найти этот файл в папке установки Oracle.
  • <ORACLE_HOME>\product\12.1.0\dbhome_1\NETWORK\ADMIN
Содержание файла tnsname.ora похож на изображение ниже.
Ниже является изображение иллюстрирующее две системы баз данных Oracle находящиеся на 2 разных компьютерах.
Создать Database Link с названием mydblink чтобы соединить из PROD1 к PROD2.
Create Database Link

-- On Prod1 schema.
-- Create a Database Link named mydblink
-- Connect to Prod2 schema on myserver2.

CREATE DATABASE LINK mydblink
CONNECT TO PROD2 IDENTIFIED BY "Prod2Password"
USING '(DESCRIPTION =
(ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = myserver2)(PORT = 1521))
)
(CONNECT_DATA =
  (SERVICE_NAME = db12c)
)
)';
На PROD1 вы можете тестировать Database Link командой:

Select * from Dual@mydblink;
Есть некоторые VIEW помогающие вам сделать запрос списка Database Link имеющиеся в базе данных:

-- All DB links defined in the database
Select * from DBA_DB_LINKS ;

-- All DB links the current user has access to
Select * from ALL_DB_LINKS ;

-- All DB links owned by current user
Select * from USER_DB_LINKS ;
Пример:

-- Format column length.

column OWNER format a10
column DB_LINK format a10
column USERNAME format a10
column HOST format a10
column CREATED format a10

-- Query view: ALL_DB_LINKS:

Select * from ALL_DB_LINKS;

Создать Database Link (Продолжение)

Если информация описания Database2 объявлена в файле tnsname.ora в  Database1, вы можете создать Database Link из Database1 в  Database2 с более кратким синтаксисом.

-- Create Database Link from prod1 schema of Database1 to prod2 schema of Database2.

create database link mydblink connect to
   prod2 identified by prod2password using 'PROD2_DB';

3- Доступ к объектам через Database Link

После того как у вас есть Database Link, вы можете получить доступ к объектам в Database2 через Database Link.

-- Query table of Database2:

Select * from My_Table@mydblink;

Select * from My_View@mydblink;

-- And Insert, Update, Delete,..

Insert into My_Table@mydblink .....;

Update My_Table@mydblink .. ;
 

4- Oracle Synonym

Synonym можно перевести как "Единообразный объект" для определенного объекта. Если вы не хотите добавлять @dblinkName при доступе в объект через Database link, вы можете создать Synonym для того объекта.

Создать Synonym:


-- Create Synonym:

create or replace Synonym  My_Table_Syn for My_Table@mydblink;
Примечание: Вы так же можете создать Synonym для функций, процедур.

5- Database Link к другим базам данных не-Oracle

  • TODO:
Maybe you are interested

Это онлайн курс вне вебсайта o7planning, который мы представляем, он включает бесплатные курсы или курсы со скидкой.