不同软件设计其配置文件里的信息时,所设计信息的格式(写法)是不一样的,没有统一的,各自软件知道自己的配置文件的读取规则即可了。
例如,sql*net( connect)软件,设计用于网络连接的信息(将之称为 the connection string)的格式,有好几种,如本地命名法(在tnsname.ora里),轻松命名法(如 sqlplus user/PASSWORD@ip地址:port/服务名)。
而在sql developer中,设计用于网络连接的信息的格式,有好几种,其中有一个连接类型叫BASIC:
主机:
端口:
SID:
或是
服务名:
这里与sql*net软件轻松命名法(如 sqlplus user/PASSWORD@ip地址:port/服务名)不同在于前者除了用服务名外也可以用SID(oracle_sid)来完成连接一个远程主机上的数据库的目的。
而OWB11.2里配置一个位置时,设计用于网络连接的信息的格式,有好几种,其中有一个连接类型叫host:port:service。这个连接类型与与sql*net软件轻松命名法(如 sqlplus user/PASSWORD@ip地址:port/服务名)在格式上的不同在于前者里port和service之间用冒号做分隔符,而sql*net软件轻松命名法是用斜杆做分隔符。
=============================================================================================================================
在TNS协议(软件)中,tnsname.ora文件里的一个整体单位为:
网络名=
连接字符串(或说连接标识符)
在oracle软件系统中,每个oracle的进程(程序)通过sid(oracle_sid)找到对应的一个数据库实例名(instance_name),或是通过服务名找到对应的一个数据库实例名(instance_name)。即sid(oracle_sid)这个环境变量对应一个数据库实例名(instance_name),一个服务名对应一个数据库实例名(instance_name)。
找到 服务名后 ,不用先由服务名找到sid(oracle_sid),由sid(oracle_sid)再找到一个数据库实例名(instance_name)。
==============================================================================================================================
select * from global_name;里所得的database global name不是(一定)对应于全局数据库名:db_name+db_domian的服务名形式。证明:
用alter database set rename global_name to new_name;后查看 lsnrctl status的结果里原本为全局数据库名:db_name+db_domian形式的服务名并没有变new_name。
===============================================================================================================================
oracle里的资料库到底是个什么实现形式?
像oem资料库,可以理解为数据库用户sysman下的数据库对象+操作系统级别的一些文件(指的是emctl -config dbcontrol db创建的两个操作系统下的目录里的文件)。
而owb资料库,在数据库用户owbsys下没有查看到数据库对象,在数据库用户owner_reps下也没有查看到数据库对象,而也貌似没有看到操作系统级别的一些文件,那它是什么实现形式?