如何为新的数据库连接写 sqlnet.ora 和 tnsnames.ora
How to write sqlnet.ora and tnsnames.ora for new database connection
我刚刚从名为 BATCHINSERT
的 Oracle SQL 开发人员创建了一个新的数据库连接。但是当我尝试 tnsping
它时,我收到以下错误。
TNS Ping Utility for 64-bit Windows: Version 11.2.0.2.0 - Production on 27-APR-2016 15:28:37
Copyright (c) 1997, 2014, Oracle. All rights reserved.
Used parameter files:
C:\oraclexe\app\oracle\product.2.0\server\network\admin\sqlnet.ora
TNS-03505: Failed to resolve name
这是我的 sqlnet.ora
# sqlnet.ora network configuration file in
# /opt/oracle/product/11.2.0/network/admin
NAMES.DIRECTORY_PATH=(TNSNAMES)
NAMES.DEFAULT_DOMAIN=WORLD
SQLNET.AUTHENTICATION_SERVICES = (NTS)
这是我的 tnsnames.ora
BatchInsert=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = XE)
))
如何为它编写条目以便我可以从 .bat
文件中 运行 它?
您的 sqlnet.ora
设置了默认域名 WORLD
,因此您的 tnsnames
条目也需要包含该域名:
BatchInsert.WORLD=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = XE)
))
然后您应该能够 tnsping
并使用 batchinsert
或 batchinsert.world
连接。
或者,您可以从 sqlnet.ora
中删除 NAMES.DEFAULT_DOMAIN=WORLD
行,但您可能已经有其他需要设置的内容。
这与 SQL 开发人员无关,除非您想在连接定义中使用该 TNS 别名,而不是使用 Basic
连接。如果您已经有 XE 的 TNS 条目,您可以直接使用它,而无需定义指向相同 service/SID.
的新条目
SQL 开发者默认不读取 SQLNet.ORA
轻松修复,在首选项中,指向您的 TNSNames 文件的目录。
如果您启用了 THICK 驱动程序连接并设置了 $ORACLE_HOME os var,那么 SQLDev 应该会看到并使用您的 SQLNet.ORA 文件来进行连接。
我刚刚从名为 BATCHINSERT
的 Oracle SQL 开发人员创建了一个新的数据库连接。但是当我尝试 tnsping
它时,我收到以下错误。
TNS Ping Utility for 64-bit Windows: Version 11.2.0.2.0 - Production on 27-APR-2016 15:28:37
Copyright (c) 1997, 2014, Oracle. All rights reserved.
Used parameter files:
C:\oraclexe\app\oracle\product.2.0\server\network\admin\sqlnet.ora
TNS-03505: Failed to resolve name
这是我的 sqlnet.ora
# sqlnet.ora network configuration file in
# /opt/oracle/product/11.2.0/network/admin
NAMES.DIRECTORY_PATH=(TNSNAMES)
NAMES.DEFAULT_DOMAIN=WORLD
SQLNET.AUTHENTICATION_SERVICES = (NTS)
这是我的 tnsnames.ora
BatchInsert=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = XE)
))
如何为它编写条目以便我可以从 .bat
文件中 运行 它?
您的 sqlnet.ora
设置了默认域名 WORLD
,因此您的 tnsnames
条目也需要包含该域名:
BatchInsert.WORLD=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = XE)
))
然后您应该能够 tnsping
并使用 batchinsert
或 batchinsert.world
连接。
或者,您可以从 sqlnet.ora
中删除 NAMES.DEFAULT_DOMAIN=WORLD
行,但您可能已经有其他需要设置的内容。
这与 SQL 开发人员无关,除非您想在连接定义中使用该 TNS 别名,而不是使用 Basic
连接。如果您已经有 XE 的 TNS 条目,您可以直接使用它,而无需定义指向相同 service/SID.
SQL 开发者默认不读取 SQLNet.ORA
轻松修复,在首选项中,指向您的 TNSNames 文件的目录。
如果您启用了 THICK 驱动程序连接并设置了 $ORACLE_HOME os var,那么 SQLDev 应该会看到并使用您的 SQLNet.ORA 文件来进行连接。