oracle实例与数据库
㈠ oracle 数据库实例 和 数据库管理系统(DBMS,oracle就是一个dbms)的区别
dbms是指一个整个的数据库管理系统,而实例仅仅是指所有oracle加载在内存中的数据和进程,oracle shutdown 时 实例就不存在了
㈡ ORACLE实例与数据库有什么区别
简单来说有时候这两个名词有时可以互换使用、但是其概念还是不同的。
实例 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 , 通常没什么意义
㈢ oracle的实例名与ORACLE_SID关系和区别。
oracle的实例名与ORACLE_SID就是说数据库和操作系统之间的交互用的是数据库实例名。有以下不同:
1、列入的参数设置不一样:
oracle的实例名:instance_name是oracle数据库参数。
ORACLE_SID:ORACLE_SID是操作系统的环境变量。
2、交互性上不一样:
oracle的实例名:ORACLD_SID用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过ORACLE_SID。在winnt下,ORACLE_SID还需存在于注册表中。
ORACLE_SID:ORACLE_SID必须与instance_name的值一致。
(3)oracle实例与数据库扩展阅读:
oracle的文件结构:
数据库的物理存储结构是由一些多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告文件等。
控制文件:存储实例、数据文件及日志文件等信息的二进制文件。alter system set control_files=‘路径’。V$CONTROLFILE。
数据文件:存储数据,以.dbf做后缀。一句话:一个表空间对多个数据文件,一个数据文件只对一个表空间。dba_data_files/v$datafile。
日志文件:即Redo Log Files和Archivelog Files。记录数据库修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。
参数文件:记录基本参数。spfile和pfile。
警告文件:show parameter background_mp_dest---使用共享服务器连接。
跟踪文件:show parameter user_mp_dest---使用专用服务器连接。
㈣ 简述Oracle数据库中实例和数据库的概念以及它们之间的关系
实例 就是管理相关库的内存结构的名字(由SGA、PGA、服务器进程、用户进程、后台进程等组成)
数据库 就是实际的磁盘上的文件(数据文件、日志文件、控制文件等),负责保存数据,但由对应的实例来操作它的数据
其实,在我们传统的概念里,数据库是一个统称的名字,在Oracle中,你可以把“数据库”理解成一个大概念,也要把它理解成一个小概念
㈤ 什么是oracle实例,什么是oracle数据库,二者有什么区别
数据库(database):物理操作系统文件或磁盘( disk)的集合。使用Oracle 10g 的自动存储管理(Automatic Storage Management,ASM)或RAW 分区时,数据库可能不作为操作系统中单独的文件,但定义仍然不变。
实例(instance):一组Oracle 后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。这里可以维护易失的、非持久性内容(有些可以刷新输出到磁盘)。就算没有磁盘存储,数据库实例也能存在。也许实例不能算是世界上最有用的事物,不过你完全可以把它想成是最有用的事物,这有助于对实例和数据库划清界线。
这两个词有时可互换使用,不过二者的概念完全不同。实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。实际上,准确地讲,实例在其整个生存期中最多能装载和打开一个数据库!
一般来说,我们的一个数据库对应一个实例,但在集群RAC情况下,共享数据库文件时,一个数据库是可以被多个实例同时使用的。
同一时间,一个实例只能打开一个数据库,也就是一个实例只能操作或管理一个数据库;通常,同一时间,一个数据库只能被一个实例打开,但RAC情况除外。
安装oracle时,通常会安装一个实例——数据库对(当然可以装多对),而且他们的名字相同(也就是实例和数据库名字相同),他们的名字当然可以不同,不管相不相同,他们的联系是通过xxx/pfile/init.ora初始化文件联系的。因为xxx就是实例的名字,而xxx.ora中的db_name,则记录相应数据库的名字。
㈥ oracle中的instance实例和数据库的区别
Oracle数据库,实际上应该是说,我们使用的是Oracle服务server。
Oracle服务server包括有两个部分:
一个部分是Oracle数据库database
一个部分是数据库实例instance。
Oracle数据库database,包括有数据文件、控制文件、重做日志文件,都是一些物理上的文件。
数据库实例instance,包括有数据库后台进程(PMON、SMON、DBWR、LGWR、CKPT等)和内存区域SGA(包括shared pool、db buffer cache、redo log buffer等)。实例是一系列复杂的内存结构和操作系统进程
严格的说:一个Oracle服务,只包括一个Oracle实例和一个数据库(不考虑双机并行等这样的情况)。但是一个实例只能对应一个数据库,一个数据库有可能对应多个实例。除非使用并行O r a c l e服务器选项,否则每个O r a c l e数据库都有一个实例与之相关,一个数据库被唯一的一个实例装载。
数据库与实例之间是1对1/n的关系,在非并行的数据库系统中每个Oracle数据库与一个实例相对应;在并行的数据库系统中,一个数据库会对应多个实例,同一时间用户只与一个实例相联系,当某一个实例出现故障时,其他实例自动服务,保证数据库正常运行。在任何情况下,每个实例都只可以对应一个数据库。
在实际的开发应用中,关于Oracle数据库,经常听见有人说建立一个数据库,建立一个Instance,启动一个Instance之类的话。 其实问他们什么是数据库,什么是Instance,很可能他们给的答案就是数据库就是Instance,Instance就是数据库啊,没有什么区别。在这里,只能说虽然他们Oracle用了可能有了一定的经验,不过基础的概念还是不太清楚。
什么是数据库,其实很简单,数据库就是存储数据的一种媒介。比如常用的文件就是一种,在Oracle10G中,数据的存储有好几种。第一种是文件形式,也就是在你的磁盘中创建一批文件,然后在这些文件中存储信息。第二种就是磁盘阵列形式,这个是什么意思呢,这个就是说明数据库不是存放为某个文件,而是把一个或者多个磁盘格式化成Oracle的一种格式了,等于整个磁盘就是存放Oracle数据库的,不能作为别的用途。这样的优点是存储性能高,因为不再借助别的文件格式了,而是把整个磁盘都成为Oracle最适应的文件系统格式。当然还可能有别的形式,比如网络什么的。不过我们最常用的还是文件格式的,在文件格式中,数据库指的就是那些数据文件,控制文件以及REDO文件等等一系列文件。
而什么是Instance呢,Instance其实就是指的操作系统中一系列的进程以及为这些进程所分配的内存块。在Oracle中,我们可以新建一个Oracle的Instance,这个时候虽然有了进程还有SGA等一系列的内存快,但是这个时候并没有把数据库文件读取进来。所以只是一个实例,在后来,你可以通过命令手动或者自动地把数据库文件加载进我们的数据库Instance中,这个时候的数据库才可以让我们真正的开始访问操作。
所以说,数据库的应用如果想实现,数据库和数据库Instance是缺一不可的,如果只有数据库的那些文件,那么,只能代表数据在这个文件中,但是我们无法直接进行操作。而如果只有数据库Instance,那么我们虽然可以急性操作,但是也不知道操作哪些数据,操作生成的数据也无法保存等等。所以,当一个Oracle Instance真正Load了一个Oracle Database了以后,数据库才可以被我们使用。
在这里要注意一点的是,Oracle的实例在启动以后,只能load一次数据库,如果想把数据库与Instance断开,然后再重新挂在一个数据库Instance,那么就需要你首先把数据库Instance进程结束,然后重新建立这个instance的一个进程,再load另外一个数据库。否则肯定要抛除ORA-16169错误,说数据库已经被打开。因为一个数据库Instance在其生存期中最多只能load和打开一个instance。
㈦ oracle里实例和数据库之间的关系
简单说吧,书上的理论太绕。
数据库软件是一个数据库软件,就好像你的专word,你安装的word,你能说你有文档了么?明显不能,只是你能够建立文档了。数属据库软件就相当于word软件。
实例,指的是内存和具体的内容。还是用word举例,你利用word软件,新建立了一个word文档,这个word文档就是一个实例。有一部分内存被分配给这个word文档进行工作,就算你没有在上面写字,那么这个word文档也是一个实例,因为它存在。而后面的表空间(tablespace),数据文件(datafile),控制文件(controlfile),表(table)你可以认为都是数据这个实例的。
如果你在建立一个新word文档,那么这个新word文档,和上面你建立的这个word文档无关,因为两个文档确实没什么关系。当然不排除dblink,相当于word中的引用,不是完全一样,可是大概可以这样理解。
至于你的具体数据,就是你在word中书写的字。
一般情况下,这里这样理解,虽然有那么点不同,可是这么立即一般应用是没有问题的。
㈧ oracle实例和数据库的区别
实例由称为系统全局区(SGA)的共享内存以及若干后台进程组成。
生存期就是它在内存中存在的时间。数据库是由磁盘上的物理文件组成,可以永久存在。
实例与数据库可以是多对一的关系。在打开数据库的时候,nomount阶段就是创建并启动实例,即根据初始化参数文件分配内存,启动后台服务进程。
㈨ 什么是oracle的实例
oracle实例就是一些能支撑数据库运行的数据库程序。
它由操作系统的多个后台进程和一个共享的内存池所组成,共享的内存池可以被所有进程访问。
Oracle 用一个个实例来管理数据库访问。用户如果要存取数据库(也就是硬盘上的文件) 里的数据, 必须通过Oracle实例才能实现, 不能直接读取硬盘上的文件。
实际上, Oracle 实例就是平常所说的数据库服务(service) 。
在任何时刻一个实例只能与一个数据库关联,访问一个数据库;而同一个数据库可由多个实例访问(RAC)。
(9)oracle实例与数据库扩展阅读
oracle数据库的特点:
1、完整的数据管理功能:
1)数据的大量性
2)数据的保存的持久性
3)数据的共享性
4)数据的可靠性
2、完备关系的产品:
1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;
2)保证访问的准则
3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化
4)数据物理性和逻辑性独立准则
3、分布式处理功能:
ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。
4、用ORACLE能轻松的实现数据仓库的操作。
参考资料来源:网络—实例
参考资料来源:网络—Oracle数据库