Oracle的数据库、实例、服务名、SID

Oracle服务server包含2个部分:
1.oracle数据库(database);
2.Oracle数据库实例(Instance):运行在oracle服务器端为接收用户请求并提供响应再存储到数据库的**独立进程(服务)和内存结构**。通过ORACLE_SID来引导(oracle标识),实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态,一个实例在生存期内只能装载一个数据库。
未命名图片.png


实例和数据库之间的关系是:
1.一个实例能够装载及打开仅仅一个数据库
2.一个数据库能够被多个实例装载并打开
3.实例与数据库的对应关系是一对一或多对一的关系。

数据库=重做文件+控制文件+数据文件+临时文件
Oracle实例(Instance)=进程+进程所使用的内存(SGA)
服务名:对外公布的名称,为网络监听服务。

什么是数据库实例名

数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名。实例名也被写入参数文件中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表。数据库名和实例名可以相同也可以不同。在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
数据库实例服务
命名规则:OracleserviceXXX 其中XXX是配置的数据名称(严格讲是SID名称)

数据库实例名与ORACLE_SID

虽然两者都表示oracle实例,但两者是有区别的。Instance_name是oracle数据库参数。而ORACLE_SID是操作系统的环境变量。 ORACLD_SID用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过ORACLE_SID。在winnt不台,ORACLE_SID还需存在于注册表中。且ORACLE_SID必须与instance_name的值一致,否则,你将会收到一个错误,在unix平台,是“ORACLE not available”,在winnt平台,是“TNS:协议适配器错误”。

监听程序
未命名图片1.png
运行在oracle服务器端用于侦听客户端请求的程序
一、orale的四个状态
1.shutdown()
2.nomount
3.mount
4.open
20180331221328390.jpg

什么是表空间

ORACLE数据库被划分成称作为表空间 的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。便于理解,把oracle数据库看作一个实在房间,表空间可以看作这个房间的空间,是可以自由分配,在这空间里面可以堆放多个箱子(箱子可以看作数据库文件),箱子里面再装物件(物件看作表)。用户指定表空间也就是你希望把属于这个用户的表放在那个房间(表空间)里面。