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

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

实例

实例就是一组 *** 作系统进程(或者是一个多线程的进程)以及一些内存。这些进程可以 *** 作数据库实例 就是治理相关库的内存结构的名字(由SGA、PGA、服务器进程、用户进程、后台进程等组成)

数据库

数据库只是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件)。在任何时刻,一个实例只能有一组相关的文件(与一个数据库关联)。数据库 就是实际的磁盘上的文件(数据文件、日志文件、控制文件等),负责保存数据,但由对应的实例来 *** 作它的数据

3.服务名

服务名 就是对外公布的名称,为网络监听服务

4.SID

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

简单来说有时候这两个名词有时可以互换使用、但是其概念还是不同的。

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

数据库 database=物理 *** 作系统文件或磁盘(disk)的集合(redo文件+control文件+data文件+临时文件)

数据库实例也称作服务器, 是用来访问数据库文件集的存储结构及后台进程的集合.

1、一个数据库可以被多个实例访问(称为真正的应用群集选项).

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

3、Oracle的实例在启动以后,只能load一次数据库,如果想把数据库与Instance断开,然后再重新挂在一个数据库Instance,那么就需要你首先把数据库Instance进程结束,然后重新建立这个instance的一个进程,再load另外一个数据库。否则肯定要抛除ORA-16169错误,说数据库已经被打开。因为一个数据库Instance在其生存期中最多只能load和打开一个instance。.

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存