Oracle Database
Databaslänkar
Sök…
Skapa en databaslänk
CREATE DATABASE LINK dblink_name
CONNECT TO remote_username
IDENTIFIED BY remote_password
USING 'tns_service_name';
Fjärr-DB kommer sedan att vara tillgänglig på följande sätt:
SELECT * FROM MY_TABLE@dblink_name;
Om du vill testa en databaslänkanslutning utan att behöva känna något av objektnamnen i den länkade databasen använder du följande fråga:
SELECT * FROM DUAL@dblink_name;
För att specifikt ange en domän för den länkade databastjänsten läggs domännamnet till USING
uttalandet. Till exempel:
USING 'tns_service_name.WORLD'
Om inget domännamn uttryckligen anges använder Oracle domänen i databasen där länken skapas.
Oracle-dokumentation för skapande av databaslänkar:
- 10g: https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm
- 11g: https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm
- 12g: https://docs.oracle.com/database/121/SQLRF/statements_5006.htm#SQLRF01205
Skapa databaslänk
Låt oss anta att vi har två databaser "ORA1" och "ORA2". Vi kan komma åt objekten för "ORA2" från databasen "ORA1" med en databaslänk.
Förutsättningar: För att skapa en privat databaslänk behöver du ett CREATE DATABASE LINK
privilegium. För att skapa en privat databaslänk behöver du ett CREATE PUBLIC DATABASE LINK
privilegium.
* Oracle Net måste vara närvarande i båda fallen.
Hur man skapar en databaslänk:
Från ORA1:
SQL> create <public> database link ora2 connect to user1 identified by pass1 using <tns name of ora2>;
Databaslänk skapad.
Nu när vi har DB-länken konfigurerad kan vi bevisa det genom att köra följande från ORA1:
SQL> Select name from V$DATABASE@ORA2; -- should return ORA2
Du kan också komma åt DB-objekten från "ORA2" från "ORA1", med tanke på att användaren user1
har SELECT
behörigheten för de objekt på ORA2 (som TABELL1 nedan):
SELECT COUNT(*) FROM TABLE1@ORA2;
Pre-requistes:
- Båda databaserna måste vara igång (öppnas).
- Båda databas lyssnarna måste vara igång.
- TNS måste konfigureras korrekt.
- Användaranvändare1 måste finnas i ORA2-databasen, lösenord måste kontrolleras och verifieras.
- Användaranvändare1 måste ha åtminstone
SELECT
behörigheten eller något annat som krävs för att få åtkomst till objekten på ORA2.