如何区分Oracle的数据库,实例,服务名,SID

校睿宝培训机构ERP,学员课时管理软件
实验预约管理软件,实验室管理软件,大学、高校实验预约平台
网站日志分析软件,网站访问日志在线分析
UpHub订单管理软件,进销存管理系统,SCRM管理系统

如何清楚的区分数据库、实例、服务名、SID?

在Oracle数据库中,一直有一些概念是Oracle DBA容易混淆的。比如:实例(Instance)、服务名(Service Name)、SID、数据库(Database)等。本文从官方文档描述中简要概述这些个名称的区别和相关关联。

 

一、数据库(Database)

数据库是位于磁盘上的一组文件,用于存储用户数据。这些数据文件可以独立于数据库实例而存在。从 Oracle Database 21c 开始,“数据库”特指多租户容器数据库 (CDB)、可插入数据库 (PDB) 或应用程序容器的数据文件。包括控制文件、数据文件、联机日志文件、参数文件、密码文件等。

 

二、实例(Instance或Database Instance)

实例是一组命名的内存结构,用于管理数据库文件。数据库实例由一个称为系统全局区域 (SGA) 的共享内存区域和一组后台进程组成。实例可以独立于数据库文件而存在。

Oracle 数据库实例简介
数据库实例是一组用于管理数据库文件的内存结构。

在物理级别,CDB 是由 CREATE DATABASE 语句创建的磁盘上的一组文件。CDB 包含一个或多个用户创建的 PDB。PDB 在属于 CDB 的整个数据文件集中包含自己的一组数据文件。数据库实例管理与 CDB 及其 PDB 关联的数据,并为其用户提供服务。

每个正在运行的 CDB 都与至少一个 Oracle 数据库实例相关联。由于实例存在于内存中,而数据库(从最狭义上讲)是磁盘上的一组文件,因此实例可以不带数据库而存在,数据库可以不带实例而存在。

数据库实例结构
启动实例时,Oracle 数据库会分配一个称为系统全局区域 (SGA) 的内存区域,并启动一个或多个后台进程。数据库实例配置
Oracle 数据库在单实例配置或 Oracle Real Application Clusters (Oracle RAC) 配置中运行。这些配置是互斥的。
读/写和只读实例
每个数据库实例要么是读/写的,要么是只读的。
数据库实例的持续时间
数据库实例在使用 STARTUP 命令创建时开始,在终止时结束。
数据库实例的标识
多个数据库实例可以驻留在单个主机上。因此,您必须有一种方法来指定要访问的实例。

启动实例后,Oracle 数据库会分配一个称为系统全局区域 (SGA) 的内存区域,并启动一个或多个后台进程。

SGA有多种用途,包括:

维护许多进程和线程同时访问的内部数据结构

缓存从磁盘读取的数据块

在将重做数据写入联机重做日志文件之前对其进行缓冲

存储 SQL 执行计划

在单台计算机上运行的 Oracle 进程共享 SGA。Oracle 进程与 SGA 关联的方式因操作系统而异。

数据库实例还包括后台进程和服务器进程。每个进程都有自己的专用内存,被视为实例的一部分。当服务器进程终止时,实例将继续运行。

下图显示了 Oracle 数据库实例的主要组件。

 

三、服务名(Service Name)

服务名 (Service Name)是一个逻辑 名 称,用于标识一个 Oracle 数据库的 服务 。

 

四、什么是SID(System Identifier)

SID 是一个数据库的唯一标识符。通常中是环境变量:ORACLE_SID。每个Oracle数据库实例都有一个唯一的SID,它用于在操作系统层面标识和区分不同的Oracle实例。通常用JDBC连接数据库时指定的SID即为此值。

      

五、Oracle实例和Oracle数据库的关系

1)一个实例只能打开一个对应的数据库;

2) 一个数据库可以打开多个实例;

3) 实例与数据库的一对一的,反之则是多对一的关系。

 

六、SQL查询

SELECT instance_name, service_name FROM v$instance;

可以查询SID和服务名,注意instance_name就是SID。

校睿宝培训机构ERP,学员课时管理软件
实验预约管理软件,实验室管理软件,大学、高校实验预约平台
网站日志分析软件,网站访问日志在线分析
UpHub订单管理软件,进销存管理系统,SCRM管理系统

上海哲涛网络科技有限公司版权所有 © 2005-2023       沪ICP备06058430号-1

沪公网安备 31011302000898号

点我咨询