oracle账号 下载Oracle体系结构理解(1)

数据库与实例

 

数据库(database):物理操作系统文件或者磁盘的集合。使用Oracle的ASM(自动存储管理)时,或者在使用RAW分区时,数据库可能不作为文件系统中单独的文件,但是定义仍然不变。

 

注:ASM在我第一次接触的时候,暂时被解释为和LVM具有相似功能的管理机制。

 

实例(instance):一组Oracle后台进程(Linux与Unix下)以及一个共享内存区(内存结构),就算没有磁盘存储,实例也可以存在。

 

注:数据库可以由多个实例装载和打开,而实例可以在任何时间点转载和打开仅仅一个数据库。也就是说,在同一个时间,通过当前实例仅仅可以访问一个数据库并进行交互。

 

当我们执行一个仅软件安装的数据库的操作,并不包括“启动”数据库的行为的时候,除软件之外什么都没有。

 

此时$ORACLE_HOME/dbs目录(oracle的工作目录)下没有任何文件,我们使用ls -l查看会发现一下信息:

 

Total 0

 

其中不存在init.ora文件(parameter file 参数文件),此时通过ps命令也不会发现任何关于oracle的进程(除了grep oracle操作出现的oracle关键字之外),如果建库执行dbca创建数据库后,执行sqlplus / as sysdba,作为sysdba不使用用户密码认证访问$ORACLE_SID所指定的实例名后,会生成init.ora的参数文件。oracle账号

 

   在访问数据库后,系统上执行ps aux就会发现许多进程,他们是以ora_开头的,包括smon(系统监控),ckpt(检查点),pmon(进程监控)等进程。

 

注:一个实例在其生存期中最多只能装载和打开一个实例,如果关闭数据库(alter close database;),那么则生存周期完毕(回收内存空间,结束相关进程),如果再想打开一个数据库,那么需要丢弃该实例,创建一个新的实例(尝试shutdown关闭实例后再startup再开启相当于重新建立实例,可以打开数据库)。

 

这里就是Oracle的instance与database概念的划分。

此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。