連接到Oracle的幾種命名方式
從事Oracle相關(guān)工作的人,每天都會(huì)使用各種工具連接到Oracle數(shù)據(jù)庫,比如:SQL*Plus、PL/SQL、TOAD、SQLDeveloper等等,下面就列舉了幾種連接到Oracle的方式,本例中使用的是SQL*Plus為例。
1、Easy Connect命名方式
這種方式是一種很簡單的方式,它不需要去訪問tnsnames.ora文件,而去直接連接數(shù)據(jù)庫。
語法:
- CONNECT username@[//]host[:port][/[service_name][:server]][/instance_name]]
- Enter password: password
使用示例:
- [oracle@rhel6 admin]$ sqlplus /nolog
- SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 1 15:34:21 2017
- Copyright (c) 1982, 2009, Oracle. All rights reserved.
- idle>conn zx@192.168.56.2:1522/orcl
- ERROR:
- ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
- idle>conn zx@'192.168.56.2:1522/orcl'
- Enter password:
- Connected.
- zx@ORCL>conn zx/zx@'192.168.56.2:1522/orcl'
- Connected.
- zx@ORCL>conn zx/zx@192.168.56.2:1522/orcl
- Connected.
- zx@ORCL>conn zx@192.168.56.2:1522/orcl
- ERROR:
- ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
- Warning: You are no longer connected to ORACLE.
從上面的例子中可以看到在Linux平臺上使用Easy Connect連接時(shí),如果連接串中沒有密碼,則需要把連接串使用引號引起來,否則會(huì)報(bào)錯(cuò)ORA-12504。而連接串中包含密碼時(shí)則不需要使用引號引起來。
這是一種很簡單的連接數(shù)據(jù)庫的方法,不需要配置任何文件。
更詳細(xì)的信息參考:http://docs.oracle.com/cd/E11882_01/network.112/e41945/naming.htm#NETAG255
2、Local命名方式
Local命名方式需要把網(wǎng)絡(luò)服務(wù)名添加到tnsnames.ora文件中,每個(gè)網(wǎng)絡(luò)服務(wù)器對應(yīng)一個(gè)連接描述符。這種方法也是工作中最常會(huì)用到的方法。
下面是一個(gè)連接描述符的例子:
- orcl=
- (DESCRIPTION=
- (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.2)(PORT=1522))
- (CONNECT_DATA=
- (SERVICE_NAME=orcl)))
tnsnames.ora文件一般存放在$ORACLE_HOME/network/admin目錄下。
使用語法:
- CONNECT username@net_service_name
- Enter password: password
連接示例:
- [oracle@rhel6 admin]$ sqlplus /nolog
- SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 1 15:49:55 2017
- Copyright (c) 1982, 2009, Oracle. All rights reserved.
- idle>conn zx@orcl
- Enter password:
- Connected.
- zx@ORCL>
從上面的例子中可以看到,在連接串中只需要指定對應(yīng)的連接服務(wù)名就可以連接到對應(yīng)的數(shù)據(jù)庫。
可以使用OEM、netmgr、netca對tnsnames.ora進(jìn)行配置。
tnsnames.ora中各參數(shù)的含義詳細(xì)描述詳見:http://docs.oracle.com/cd/E11882_01/network.112/e10835/tnsnames.htm#NETRF007
3、Directory命名方式
詳細(xì)參考:http://docs.oracle.com/cd/E11882_01/network.112/e41945/naming.htm#NETAG265
4、External命名方式
詳細(xì)參考:http://docs.oracle.com/cd/E11882_01/network.112/e41945/naming.htm#NETAG277