Руководство 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.
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 для функций, процедур.
Руководства База данных Oracle
- Установите PL/SQL Developer в Windows
- Пример базы данных Oracle для обучения SQL
- Установите Oracle Database 11g в Windows
- Установите Oracle Database 12c в Windows
- Установить Oracle Client в Windows
- Создать Oracle SCOTT Schema
- Пример базы данных
- Структура базы данных и облачные функции в Oracle 12c
- Импорт и экспорт базы данных Oracle
- Строковые функции Oracle
- Разделить строку запятой и передать в пункт IN команды Select в Oracle
- Иерархические запросы в Oracle
- Руководство Oracle Database Link и Synonym
- Руководство Oracle PL/SQL
- XML-парсер для Oracle PL/SQL
- Стандартный аудит базы данных в Oracle
- Создание и управление Oracle Wallet
Show More