codestory

Die Anleitung zu Oracle Database Link und Synonym

  1. Was ist Database Link?
  2. Database Link erstellen
  3. Der Zugang zum Objekt durch Database Link
  4. Oracle Synonym
  5. Database Link zur anderen Nicht-Oracle Database

1. Was ist Database Link?

Database Link ist ein Objekt im SCHEMA vom Oracle, Es ist wie eine Brücke zur Verbindung mit einer anderen Database, damit Sie in die Objekte von Database zugreifen können
Sie können eine Database Link um Oracle mit einer anderen Database zu verbinden, z.B MySQL, SQL Server, ... in diesem Fall sollen Sie die Dienstleistung Oracle Heterogeneous (Oracle Heterogeneous Service)

2. Database Link erstellen

Hier bezeichne ich die Verbindung zwischen 2 System der Database Oracle auf 2 unterschiedlichen PC
tnsname.ora
Zuerst brauchen Sie die File tnsnames.ora vom Oracle kennen

tnsname.oraist eine File zur Bezeichnung einer Database Oracle. Sie können diese File im Verzeichnis der Installation vom Oracle
  • <ORACLE_HOME>\product\12.1.0\dbhome_1\NETWORK\ADMIN
Die Inhalte von der File tnsname.ora ist so gleich wie das folgende Beispiel
Unten ist das Foto zur Bezeichnung der 2 Database-system Oracle auf 2 unterschiedlichen PC
Erstellen Sie ein Database Link mit dem Name von mydblink um vom PROD1 zum PROD2 zu verbinden.
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)
)
)';
Auf PROD1 können Sie Database Link durch den Befehl von .... prüfen
Select * from Dual@mydblink;
Es gibt einige VIEW, damit Sie die Liste von Database Link auf die Database abfragen können
-- 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 ;
Zum Beispiel
-- 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 erstellen (weiter)
Wenn die Bezeichnungsinformation vom Database2 in die File tnsname.ora von Database1 gemeldet wird, können Sie Database Link aus Database1 in Database2 mit der kurzen Syntax erstellen
-- 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. Der Zugang zum Objekt durch Database Link

Nach der Schaffung von Database Link können Sie in die Objekte in der Database2 durch Database Link zugreifen.
-- 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

Wenn Sie @dblinkName bei dem Zugang durch das Objekt Database link einfügen möchten,können Sie ein Synonym für das Objekt erstellen
Das Synonym erstellen
-- Create Synonym:

create or replace Synonym  My_Table_Syn for My_Table@mydblink;
Beachten Sie: Sie können Synonym für die Funktion, und die Verfahren erstellen

5. Database Link zur anderen Nicht-Oracle Database

  • TODO: