programmera.net -> oracledba -> normal för utskrift | info@programmera.net |
Steg5: TNS-namn för distansanrop
1. Kontakta databasen från en klient 2. Vad är TNS? 3. Hur fungerar Local Naming? 4. Exempel 5. TNSPING |
1. Kontakta databasen från en klient
I Steg4 skapade vi en lyssnare för databasen, vilket gör att databasen kan anropas från klienter på andra maskiner. En klient kan vara SQL*Plus, Toad, SQL Developer eller t.ex. en Javaapplikation. För att kontakta en Oracleinstans krävs följande:
I Oracle 10g finns 5 metoder för hur ett Net Service Name kan konfigureras:
"Local Naming" är defaultmetoden. Vi kommer på denna sida att använda metoden "Local Naming".
2. Vad är TNS?
TNS står för "Transparent Network Substrate" och är en nätversteknologi som används av Oracle för att prata med databaser över nätverket. Applikationer kan öppna TNS-anslutningar mot varandra och på så sätt utbyta data. Fördelen med TNS är att TNS erbjuder ett gemensamt gränssnitt mot andra nätverksprotokoll, så att vi helt kan bortse från de underliggande protokollen.
3. Hur fungerar Local Naming?
För att förklara Local Naming tänker vi oss följande scenario: Du vill kontakta en databas och har följande information:
Hur gör vi då? Jo, man ska skapa en fil tnsnames.ora, som per default har följande sökväg $ORACLE_HOME/network/admin/tnsnames.ora.
Filen tnsnames.ora ska innehålla följande kod:
För att sedan kontakta databasen använder vi det just definierade TNS-namnet:
tns_namn1 = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = dator1.company1.se)(Port = 1521)))
(CONNECT_DATA = (SID = db_namn1)))
[olle@dev1]$ sqlplus x/y@tns_namn1
SQL*Plus: Release 10.2.0.1.0 - Production on To Dec 8 10:46:36 2005
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Ansluten till:
Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.5.0 - Production
4. Exempel
Vi testar detta för vår nya installation. Jag skapar en fil $ORACLE_HOME/network/admin/tnsnames.ora med följande innehåll:
För att testa detta måste instansen och lyssnaren vara startade. Om så är fallet ska du utföra följande anrop från klientdatorn:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = okullberg-pc)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
Funkar bra.
[olle@dev1]$ sqlplus system/oracle@ORCL
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jul 25 13:14:20 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
5. TNSPING
Om du har problem med ett TNS-namn och vill kolla om TNS-namnet funkar kan du använda TNSPING:
Ett annat exempel från en större miljö:
[olle@dev1]$ tnsping ORCL
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 25-JUL-2006 14:16:26
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
)SERVICE_NAME = orcl)= TCP)(HOST = okullberg-pc)(PORT = 1521))
OK (20 msec)
Utskriften visar nyttig information. Här ser vi bl.a. vilken parameterfil (sqlnet.ora) som används.
[olle@dev1]$ tnsping t163.xcompany.net
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 02-JUN-2005 10:48:52
Copyright (c) 1997 Oracle Corporation. All rights reserved.
Used parameter files:
\\xcompany.net\dfs\config\net8\TCP\sqlnet.ora
Used LDAP adapter to resolve the alias
Attempting to contact (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
(HOST=db13.xcompany.net)(PORT=10002)))(CONNECT_DATA=(SERVICE_NAME=T163)))
OK (60 msec)