如果我设置了oracle 11g数据库,以便我可以使用
访问它sqlplus user/pass@localhost:1521/ora11
但是,我想知道是否可以通过以下方式设置别名来访问它:
sqlplus user/pass@ora11
我可以设置oracle SID并通过
连接export ORACLE_SID=ora11
sqlplus user/pass
但是,如果我有多个数据库,即ORA10 - > oracle 10和ORA11 - > oracle 11,然后我更喜欢以
连接sqlplus user/pass@ORA10
sqlplus user/pass@ORA11
而不是每次都输入localhost或设置ORACLE_SID。
如果我尝试访问远程oracle数据库并且不希望每次我想连接时都记住IP / PORT / SID,那么这样做也很有用。
答案 0 :(得分:4)
为要连接的每个数据库添加$ORACLE_HOME/network/admin/tnsnames.ora
条目:
ORA11 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORA11) ) )
您现在可以使用sqlplus user/pass@ORA11
连接到此数据库。
答案 1 :(得分:0)
在客户端,您可以使用TNSNANES.ORA执行此操作。但与ODBC设置类似,它仅为一个客户端定义名称。不同的客户端可以使用不同的名称。
答案 2 :(得分:0)
我建议使用此条目
SERVICE11 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SID = INSTANCE11)
)
)
将实例和服务命名为模仿概念会更好。因此,名称SERVICE11代表服务的概念,而INSTANCE11代表实例的概念。对于与Oracle 10g相关的服务,您可以:
SERVICE10 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1520))
)
(CONNECT_DATA =
(SID = INSTANCE10)
)
)
您必须设置两个侦听器,每个侦听器侦听不同的端口值。在我看来,你想要使用几个DBMS。如您所见,tnsnames.ora中没有涉及数据库。因此,“连接数据库”这个短语是错误的。
在设置了两个侦听器和相关的listener-config文件之后,将两个服务的条目放在客户端主机中的tnsnames.ora中。那么你可以
sqlplus用户名/密码@ service10 sqlplus用户名/密码@ service11