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

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

数据库(database):物理 *** 作系统文件或磁盘(disk)的集合。使用Oracle 10g的自动存储管理(Automatic Storage Management,ASM)或RAW分区时,数据库可能不作为 *** 作系统中单独的文件,但定义仍然不变。

实例(instance):一组Oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。

service_names是对外的服务名,是服务器端使用的,一个库可以设置多个对外服

务名,以实现不同的目的

sid用于实例区分各个数据库,service name用于外部链接。

这个问题如果回答得形象点就是:

一个数据库可以包含一个或者多个实例

实例的定义:由 *** 作系统后台进程和分配的内存区域构成。说

得简单点就是oracle在nomount状态就分配了内存区域,一个实

例也就差不多快形成了。

1、每个DATABASE--可包含多个INSTANCE--每个INSTANCE可包含多个TABLESPACE和USER等(授予USER读写TABLESPACE的权限)--每个TABLESPACE可包含多个DBF文件--常用的TABLE或VIEW等都存储在TABLESPACE里。

2、要oracle使用

先安装DATABASE,再创建INSTANCE,用sysdba创建TABLESPACE,添加USER指定TABLESPACE,给USER授权,用USER登录,创建table等

3、oracle实例启动后,会有多个进程提供不同的服务。

Oracle数据库的体系结构

Oracle数据库包括Oracle数据库服务器和客户端。

Oracle数据库服务器:

Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。每个Server由一个 Oracle DB和一个 Oracle Server实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,以此可实现数据存储透明性。每个 Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务,包括启动和关闭数据库;Sys,它是一个 DBA用户名,具有最大的数据库 *** 作权限;System,它也是一个 DBA用户名,权限仅次于 Sys用户。

客户端:

为数据库用户 *** 作端,由应用、工具、SQL NET组成,用户 *** 作数据库时,必须连接到一服务器,该数据库称为本地数据库(Local DB)。在网络环境下其它服务器上的 DB称为远程数据库(Remote DB)。用户要存取远程 DB上的数据时,必须建立数据库链。

Oracle数据库的体系结构包括物理存储结构和逻辑存储结构。由于它们是相分离的,所以在管理数据的物理存储结构时并不会影响对逻辑存储结构的存取。

1逻辑存储结构

它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同一词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。而其中的模式对象和关系形成了数据库的关系设计。

数据块(Block):是数据库进行UO *** 作的最小单位,它与 *** 作系统的块不是一个概念。oracle数据库不是以 *** 作系统的块为单位来请求数据,而是以多个Oracle数据库块为单位。

段(Segment):是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。

其中包括:

数据段:用来存放表数据;.

索引段:用来存放表索引;

临时段:用来存放中间结果;

回滚段:用于出现异常时,恢复事务。

范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依此分配的,分配的第一个范围称为初始范围,以后分配的范围称为增量范围。

优点有:

■ 可用性强

■ 可扩展性强

■ 数据安全性强

■ 稳定性强

ORACLE实例与数据库的区别

ORACLE实例 = 进程 + 进程所使用的内存(SGA)

实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态!

数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件

数据库是永久的,是一个文件的集合。

ORACLE实例和数据库之间的关系

1

临时性和永久性

2

实例可以在没有数据文件的情况下单独启动 startup nomount , 通常没什么意义

3

一个实例在其生存期内只能装载(alter database mount)和打开(alter database open)一个数据库

4

一个数据库可被许多实例同时装载和打开(即RAC),RAC环境中实例的作用能够得到充分的体现!

下面对实例和数据库做详细的诠释:

在Oracle领域中有两个词很容易混淆,这就是“实例”(instance)和“数据库”(database)。作为Oracle术语,这两个词的定义如下:

数据库(database):物理 *** 作系统文件或磁盘(disk)的集合。使用Oracle 10g的自动存储管理(Automatic Storage Management,ASM)或RAW分区时,数据库可能不作为 *** 作系统中单独的文件,但定义仍然不变。

实例(instance):一组Oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。这里可以维护易失的、非持久性内容(有些可以刷新输出到磁盘)。就算没有磁盘存储,数据库实例也能存在。也许实例不能算是世界上最有用的事物,不过你完全可以把它想成是最有用的事物,这有助于对实例和数据库划清界线。

这两个词有时可互换使用,不过二者的概念完全不同。实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。实际上,准确地讲,实例在其整个生存期中最多能装载和打开一个数据库!稍后就会介绍这样的一个例子。

是不是更糊涂了?我们还会做进一步的解释,应该能帮助你搞清楚这些概念。实例就是一组 *** 作系统进程(或者是一个多线程的进程)以及一些内存。这些进程可以 *** 作数据库;而数据库只是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件)。在任何时刻,一个实例只能有一组相关的文件(与一个数据库关联)。大多数情况下,反过来也成立:一个数据库上只有一个实例对其进行 *** 作。不过,Oracle的真正应用集群(Real Application Clusters,RAC)是一个例外,这是Oracle提供的一个选项,允许在集群环境中的多台计算机上 *** 作,这样就可以有多台实例同时装载并打开一个数据库(位于一组共享物理磁盘上)。由此,我们可以同时从多台不同的计算机访问这个数据库。Oracle RAC能支持高度可用的系统,可用于构建可扩缩性极好的解决方案。

一个实例在其生存期中最多只能装载和打开一个数据库。要想再打开这个(或其他)数据库,必须先丢弃这个实例,并创建一个新的实例。

重申一遍:

实例是一组后台进程和共享内存。

数据库是磁盘上存储的数据集合。

实例“一生”只能装载并打开一个数据库。

数据库可以由一个或多个实例(使用RAC)装载和打开。

前面提到过,大多数情况下,实例和数据库之间存在一种一对一的关系。可能正因如此,才导致人们很容易将二者混淆。从大多数人的经验看来,数据库就是实例,实例就是数据库。

不过,在许多测试环境中,情况并非如此。在我的磁盘上,可以有5个不同的数据库。测试主机上任意时间点只会运行一个Oracle实例,但是它访问的数据库每天都可能不同(甚至每小时都不同),这取决于我的需求。只需有不同的配置文件,我就能装载并打开其中任意一个数据库。在这种情况下,任何时刻我都只有一个“实例”,但有多个数据库,在任意时间点上只能访问其中的一个数据库。

所以,你现在应该知道,如果有人谈到实例,他指的就是Oracle的进程和内存。提到数据库时,则是说保存数据的物理文件。可以从多个实例访问一个数据库,但是一个实例一次只能访问一个数据库。

Q1:

1

多次安装,才会出现多实例,就是出现多个Oracle_home的情况

2

一次安装是一个实例,一个实例可以建立多个数据库

Q2:

1

如上2可以使用一个实例多个数据来实现。

2

SqlServer同样可以建立1个实例多个数据库,或者多个实例

以上就是关于如何区分Oracle的数据库,实例,服务名,SID全部的内容,包括:如何区分Oracle的数据库,实例,服务名,SID、什么是oracle实例,什么是oracle数据库,二者有什么区别、oracle 数据库、表空间、实例、服务究竟有什么区别联系等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9706867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存