重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
数据库:是一个集合,主要是存储和处理、提供数据的地方。就算你停止了一个数据库的运行,但是客观上他还是存在,只要你重新启动,那么它将继续运行。可以理解为
创新互联建站2013年开创至今,是专业互联网技术服务公司,拥有项目成都网站制作、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元三山做网站,已为上家服务,为三山各地企业和个人服务,联系电话:028-86922220
数据库软件+数据库文件+数据
实例:数据库启动后在内存中的部分就叫做实例。简单点说实例=内存+进程,也就是说当一个oracle数据库启动的时候,存在一个oracle实例,当一个数据库没有启动,那么也就不存在实例,但是数据库还是存在的,除非你删掉了数据库(所谓删掉数据库就是删掉数据库文件,比如控制文件,初始文件,数据文件等等。在你删除数据库的时候,这些文件都会被删除)。
服务名:这个是数据库listening的名字,这个是任意定义的,只要不重复就行。
sid:是实例和数据库对应的唯一标识,比如某台机器上你安装了两个数据库,一个的sid是orcl那么另外一个就不能是orcl,不然你启动一个orcl,机器不知道要启动哪一个。
还是这个场景,你两个数据库都启动了,那么机器怎么知道这部分内存分给哪个数据库呢?依靠的就是sid.
数据库实例(instance_name)是用于和操作系统进行联系的标识,也就是说数据库和操作系统之间的交互使用的是数据库实例。
数据库名和实例名可以相同也可以不同。在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
用系统sysdba权限登录后:查询oracle实例的方法:
方法一:sql”select instance_name from v$instance“;
方法二:使用show命令”show parameter instance“。
实例名,也就是当前数据库的实例名
那么v$instance视图中的instance_name就是当前实例的实例名
其实还有其他方式,比如在系统层面查询实例名的方式(linux的用户参数也可以),但是因为可能同时启动两个数据库实例,而你当前的数据库,可能并不是系统层面显示的实例名,所以这种方式还是不那么靠谱的。所以instance个人认为是最好的方式。
不对。
首先你要理解什么是数据库。
数据库就是数据本身,包括DATAFILE等物理文件、磁盘的集合,包括你说的表空间都属数据库的一部分。
而数据库实例则是数据库在操作系统中的实例化,具体体现为各种进程、线程、内存等等...
如果数据库不启动,那这个操作系统中就不存在数据库实例。
这么说不知道你能不能理解呢?
在你这个例子中,你建立了两个数据库。在数据库启动的情况下,分别进行了实例化。
实例是oracle使用到的内存和进程的总称。
一个oracle数据库可以有多个实例,不过这个属于rac的应用了;单机中是一个实例对应一个数据库的。
oracle的数据库存放在硬盘上的有数据文件、日志文件、控制文件。
你安装oracle时候
如果同时建立一个orcl的数据库的话;那么sid就是orcl,这是一个数据库,有一个实例与它对应;如果你又通过dbca建立了另外一个db_test,这是就有两个sid;需要两个实例分别打开各自的数据库。
就是一个表空间里面有N个用户表,系统表,N个存储过程和N个视图这样子? 一个数据库实例就相当于一个sql server(下面简称mss)的一个服务,
假设你的机器叫做AA,安装mss后,和默认建立一个服务名叫做aa,如果再安装一次mss,会提示你是否使用现有的服务名。Oracle的一个实例可以认为是一个服务。
表空间是一个虚拟概念,是一组文件的简称,例如我的Oracle有一个表空间myspace,用来存放临时的数据,我可以给temp指定三个文件,c:myspace.ora d:myspace1.ora e:myspace2.ora 我见一个表,设置这个表的数据存放在myspace上,如果我向表中插入1000行数据,可能会被均匀的存放到myspace*.ora中。