Oracle中实例(Instance)和数据库(database)的区别

时间:2022-09-06 05:19:21
好多人学了很长时间的数据库了,但实例(例程)和数据库经常搞昏.这个可能是学院教育的后遗症吧.
  首先说说,数据库是做什么?数据库是用来长久存储数据的,而我们大家都知道内存只能临时存储,磁盘等才能真正存储数据.那你说数据库会放那里呢?肯定是存放在磁盘上,其实数据库就是磁盘上的一个文件.
  从上面我们得出结论:数据库==磁盘上的文件.
 既然数据库可以看成磁盘上文件,我们怎么使用数据库呢?
如果说我们可以直接使用数据库,那就等价与直接使用磁盘上的文件.我们知道这样的一个常识:必须把磁盘上的文件读入内存才能使用.这就与我们以前所知道的一个常识相违背了.
那正确的流程是不是应该这样呢?把磁盘上文件先读入内存,然后再使用呢.
对了,这个才是使用数据库的正确流程.
数据库如何读入内存呢?
这个时候,就是我们要介绍的instance(实例)了.实例就是内存结构和一组后台进程.
实际上,正常的数据库读入内存的过程是,由实例中一组后台进程从磁盘上将数据文件读入到实例的内存中,然后经过在内存中对数据的操作再从实例的内存中经过一组后台进程写到数据库中.
那实例相对与数据库而言,应该就是数据库的运行环境(随不准确但也很贴切).
我们知道了instance和database的区别后.下面我们做一个Oracle的例子,一块深刻的理解下这两个概念.
在Oracle中打开一个数据库,这个时候我们要使用sqlplus了.sqlplus是oracle的一个连接工具,相当于sql server中的查询分析器.
使用
用户名:system
密码:manger(自己在装Oracle时设定的)
点登录进入sqlplus.
登录sqlplus以后,system这个用户是没有权限启动实例的,所以我们这时要更换登录用户.
使用sys用户连接
的命令如下 :
      conn sys as dba
      密码:
输入完后.可以再输入如下命令查看当前用户:
      show user;
一:下面就可以打开数据库了
1.启动实例(instance)
startup nomount
2.将数据库装载到实例(instance)中
alter database mount
3.打开数据库
alter database open
二:关闭数据库:
 1.shutdown immediate(包括三个步骤如下所述:)
   首先关闭数据库
   然后从实例上卸载数据库
   最后关闭实例
通过Oracle打开以及关闭一个数据库的例子我们可以清楚的区分.数据库(database)和实例(instance)的概念.