日期:2014-05-16  浏览次数:20538 次

database和instance的区别
database:数据库,一组相关的物理文件,比如数据文件、日志文件和控制文件等等,是物理上实实在在存在的,即使关闭数据库仍然存在。
instance:实例。内存和一些进程,比如SGA、后台进程(windows系统是线程),当关闭数据库后实例消失。
两者是相辅相成的,经常在一起使用。我们以常见的数据库启动和关闭举例如下:
1、启动,先启动实例,在mount数据库,直至open数据库
2、关闭,先close数据库,在nomount数据库,直至关闭实例
实例服务:以windows为例,就是一个windows服务,比如OracleService<sid>,它对应着一个进程,可以说这个服务是最基础的,如果这个服务没有启动,何谈启动实例和数据库;另外可以启动多个实例服务,但是不能启动多个实例(可以在一种特殊方式下实现)
备注:关于启动和关闭具体细节详见eygle所著作品《DBA入门、进阶与诊断案例》
举个例子,实例好比一座通往数据库的桥梁,而数据库就是一个岛屿。出入岛屿的交通流量都必须通过桥,如果桥关闭了,岛屿虽然仍然存在,但我们却无法出入岛屿。对应到oracle术语来说,如果实例正在运行,那么数据就可以出入数据库。同时,数据库的物流状态也改变。如果实例挂起,虽然数据库仍然确实存在,用户却无法对他进行访问。此时的数据库是静态的,其数据不会改变。当实例重新服务时,数据库中的数据则随时做好准备,即可以对它进行访问。---《oracle精髓》