Oracle 数据库连接 - 我需要填写哪些字段?
-
13-09-2019 - |
题
我习惯使用 SQL Server,现在面临连接到 Oracle 的问题。对于我需要填写的所有字段,我可以获得一些完全明确的描述吗?
具体来说,我想了解这些是什么:
家
主机名
港口
安全识别码
服务名称
网络别名
连接标识符
我的基本理解是主机名是它所在的主机名,但这与 home 不同吗?端口是 TCP 端口,默认为 1521 - 这看起来很清楚。
我只需要提供 SID 或服务名称?有什么区别 - 为什么是其中一个或另一个?
如果我有 TNS 文件,网络别名和连接标识符是什么?如果我不使用 TNS 文件,这些字段是否与我拥有的其他字段相同?
抱歉,我是个菜鸟,但我对答案的初步搜索仍然让我感到非常困惑。
谢谢!
解决方案
Home: ORACLE_HOME, an environment variable that points to the location of the Oracle binaries (either location Instance runs from on server or client runs from on client) Hostname: name of the server Port: Port on which the Listener is listening for Oracle connections SID: **S**ervice **ID**entifier. The name of the the Database. This is one of the identifiers that the Listener will expose Service name: An alternate identifier that may be exposed by the Listener
在现有的,用于网站上找到这些细节是从从该连接可以向数据库进行客户端(或服务器)上的tnsnames.ora文件的最简单的方法。看看下面$ ORACLE(下划线)首页/网络/管理员。找到一组(Windows)或ENV(UNIX)命令ORACLE(下划线)主页。在tnsnames.ora也可能是在一个位置由变量$ TNS_ADMIN指向。
如果无法找到一个的tnsnames.ora和可以访问该服务器尝试下面的命令,通常为用户的Oracle
lsnrctl status
LSNRCTL是监听器。状态将显示SID和它知道的服务名称(和几个其它细节)
或者找到下$ ORACLE_HOME /网络/管理员或位置的文件listener.ora和sqlnet.ora中由环境变量$ TNS_ADMIN指向
通常会有每个主机一个监听器,因此每个主机一个端口(可以有更多,但它不是常见)
要连接到Oracle你必须在由主机名/端口组合中指定的位置来指向客户端监听器,并告诉它SID或服务于太连接的。
DCookie的约SID与服务名称注释是基本上是正确的。
在SID可与(取决于版本)
中找到select db_unique_name from v$database or select db_name from v$database
或者通过查看文件$ ORACLE_HOME / DBS / INIT(SID NAME).ORA或通过执行
ps -ef | grep pmon
和指出该方法的名称,例如的最后部分ORA(下划线)PMON(下划线)SID
其他提示
如果您正在使用 Oracle 10g
或以上,使用 Easy Connect
句法:
//servername/dbname
, ,如:
sqlplus scott/tiger@//servername/dbname
如果您需要使用 TNS
, ,这是一个例子 TNSNAMES.ORA
:
XE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = XE)
)
)
在 CONNECT_DATA
, ,您可以使用 SERVICE_NAME
(这是向侦听器注册的实例的标识符),或者 SID
(这是一个数据库标识符)。
简而言之:
SERVICE_NAME
是实例的标识符:一个跑步的Oracle
您将连接到的可执行文件SID
是数据库的标识符:存储您的数据的一组文件。
一个数据库可以被多个数据库使用 Oracle
实例。
当有疑问时使用 SERVICE_NAME
.
在这种情况下,请按以下方式连接:
sqlplus scott/tiger@XE