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

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: