Oracle 中的所有数据库实例或服务是否都具有相同的侦听器端口?

Does all the database instances or services has same listener port in Oracle?

我正在尝试了解我办公室的oracle数据库环境。

在我办公室的 Oracle SQL 开发人员中,有多个连接具有相同的端口和主机,但具有不同的服务。

从 oracle 文档中,我读到了这个:

Port: This is the listener port for the database. The default port for Oracle Database is 1521. Service name: This is the network service name of the database. Select either SID or Service name.

这是否意味着 services/database 实例在不同的端口上运行,但对外部连接有一个公共的侦听器端口?

每个数据库都有一个不同的 SID(服务 ID)和服务名称。 SID 是较旧的、已弃用的命名方法,而服务名称现在是推荐的命名方法。

一个监听器和一个数据库是很常见的。侦听器有一个配置文件,告诉它它知道哪些数据库。

如果在您的客户端主机上使用本机 Oracle 客户端,您将有一个 TNSnames.ora 文件,其中列出了您可以连接到的每个数据库以及侦听数据库连接的侦听器。或者,您可以使用其他连接类型,例如JDBC,列出相同的详细信息;服务名称、主机和端口。

因此,要从您的客户端连接到数据库,您需要告诉连接软件(Oracle 客户端、您的定制应用程序等)通过侦听器连接到数据库。

建立从客户端到侦听器的连接,然后侦听器将该连接传递给数据库并为该连接指定端口号。但是只发布监听端口,只需要知道监听端口即可。