我想为我的JDBC 连接形成 oracle 数据库 URL ,很少有网站说SID
应该是 URL 的一部分,很少有人说模式名称。
请schema, service name and SID
在ORACLE中进行比较?以及它们是如何相关的?
是不是就像SID:schema
一个1:n
SID可以指向 n 个模式一样?
请说明它们之间的关系。
我想为我的JDBC 连接形成 oracle 数据库 URL ,很少有网站说SID
应该是 URL 的一部分,很少有人说模式名称。
请schema, service name and SID
在ORACLE中进行比较?以及它们是如何相关的?
是不是就像SID:schema
一个1:n
SID可以指向 n 个模式一样?
请说明它们之间的关系。
SID 是数据库的唯一标识符,或者它是数据库实例的 RAC 系统。
服务是数据库提供的服务的标识符,数据库应配置为诸如“BILLING_APP”或“CUST_WEBSITE”之类的服务。http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams217.htm
顺便说一句,不要混淆数据库和实例。数据库是一组数据和控制(等)文件,实例是访问它的内存区域和进程。RAC 每个数据库有多个实例,每个实例都可以向侦听器注册,以提供数据库提供的全部服务或其中的一部分。
架构实际上是拥有对象的用户名,并且数据库中可以有多个架构。
因此,应用程序应该通过某个主机和端口上的侦听器来引用要连接的服务。侦听器将此解析为数据库(可能是许多注册提供该服务的数据库之一)。以可能是也可能不是模式所有者的用户身份与数据库建立连接。通常,出于安全原因,连接不是作为模式所有者进行的——事实上,最好的安全级别是作为 User_A 连接,调用 User_B 模式中的代码,它引用其他用户模式中的表。
SID 是一个服务 ID,指的是单个 Oracle 数据库实例
服务名称与 SID 非常相似,但一个服务名称可以引用多个 SID
例如,在 Dataguard 场景中,主实例可能是 SID_01 和 ORA_SRV。SID_02 和 SID_03 正在网络上的某处运行并接收和应用日志文件。SID_01 失败,SID_02 启动(安装和打开),现在在网络上公开为 ORA_SRV。
与 RAC 类似,多个 SID 构成一个服务。
架构实际上是用户。
JDBC 连接将采用某种形式的“HOST:PORT:(SID or Service name)”。您必须连接到数据库,并使用用户名和密码进行连接。用户名将(几乎总是)将您连接到该名称的架构。您可以在 sql 中使用点符号引用另一个模式中的对象,例如 SCHEMA.OBJECT_NAME