Руководство Oracle Database Link и Synonym
View more Tutorials:
Database Link это объект в SCHEMA в Oracle, похож на мост для соединения с другой базой данных, помогающий вам иметь доступ к объектам другой базы данных.

Вы так же можете создать Database Link чтобы соединить Oracle к другому виду базы данных, как например MySQL, SQL Server, ... в данном случае вам нужно использовать сервис Oracle Heterogeneous (Oracle Heterogeneous Service)
Здесь я иллюстрирую соединение 2 систем баз данных Oracle находящихся на 2 разных компьютерах.
tnsname.ora
Для начала, вам нужно понять о файле tnsnames.ora в Oracle.
tnsname.ora это файл описывающие базу данных Oracle, вы можете найти этот файл в папке установки 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';
После того как у вас есть 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 .. ;
Synonym можно перевести как "Единообразный объект" для определенного объекта. Если вы не хотите добавлять @dblinkName при доступе в объект через Database link, вы можете создать Synonym для того объекта.

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