tnsnames.ora里面有2个配置
STU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.xx.xx.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = stuorcl)
)
)
STU2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.xx.xx.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME= teaorcl)
)
)
1,两个都可以 sqlplus user/pwd@STU2; sqlplus user/pwd@STU ; 登录。
2,登录后查询的表结构和数据都一样。
3,rman备份中显示的db_unique_name 是 teaorcl。
4,超级管理员登录后,show parameter name; 中的是teaorcl
这到底是怎么回事呢?
------解决思路----------------------
这要看数据库里service_names的配置
这个参数是给监听用的,会注册到服务器的监听中。可以随意修改名称和个数,连接时,客户端的service_name可以指定前面配置的服务名中的一个即可
------解决思路----------------------
show parameter name查出的是名称里带name的所有参数,可以找到service_names
------解决思路----------------------
一个数据库可以有多个service_name,这是很正常的。
------解决思路----------------------
允许多个,如果有多个,这个参数值里面多个服务名之间以逗号隔开,但目前你的服务端里只有一个服务名,那么客户端只能指定这个才能连接
啃一下概念吧,要不实在很难讲明白
------解决思路----------------------
你的文件里,host名不同。连到的是两个机器。两个配置分别连接到不同的数据库
------解决思路----------------------
oracle数据库可以有多个service_name。再看看你的哪个服务名是注册在监听中的。
------解决思路----------------------
如果是这样的话,那么二者就是一个实例下的内容,不过是对外提供了多个service_name。
通过show parameters db_name 和 show parameters instance_name 查看结果。