ITPub博客

首页 > 数据库 > Oracle > 理解Database和Instance

理解Database和Instance

原创 Oracle 作者:macxue 时间:2014-01-20 22:09:23 0 删除 编辑

    学习Oracle的关键是熟悉Oracle体系结构。今天开始了Oracle体系结构之旅,顺带记录学习笔记,写写博客,防止忘记。

    1.Oracle体系结构基础

       1.1数据库database和实例instance

            1.1.1数据库database

                    这里的数据库指的是存放在磁盘中的数据库文件,比如数据文件、控制文  

                  件、日志文件等。                  

[oracle@ENMOEDU ENMOEDU]$ pwd
/u01/app/oracle/oradata/ENMOEDU
[oracle@ENMOEDU ENMOEDU]$ ls -lh
total 2.3G
-rw-r----- 1 oracle oinstall 9.3M Jan 20 12:19 control01.ctl
-rw-r----- 1 oracle oinstall 101M Jan 20 12:19 example01.dbf
-rw-r----- 1 oracle oinstall 51M Jan 20 12:18 redo01.log
-rw-r----- 1 oracle oinstall 51M Jan 20 12:19 redo02.log
-rw-r----- 1 oracle oinstall 51M Jan 20 12:18 redo03.log
-rw-r----- 1 oracle oinstall 601M Jan 20 12:19 sysaux01.dbf
-rw-r----- 1 oracle oinstall 721M Jan 20 12:19 system01.dbf
-rw-r----- 1 oracle oinstall 61M Jan 20 12:18 temp01.dbf
-rw-r----- 1 oracle oinstall 611M Jan 20 12:19 undotbs01.dbf
-rw-r----- 1 oracle oinstall 74M Jan 20 12:19 users01.dbf

                     如上,控制文件为.ctl;日志文件为.log;数据文件为.dbf。 

              1.1.2实例instance

                     这里的实例指的是进程和内存区域。

                     1.1.2.1查看系统内存分配及信号量:                                     

[oracle@ENMOEDU ~]$ ipcs

------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 3604481 root 644 52 2
0x00000000 3637251 root 644 16384 2
0x00000000 3670020 root 644 268 2

------ Semaphore Arrays --------
key semid owner perms nsems

------ Message Queues --------
key msqid owner perms used-bytes messages                    

                    如上,此为实例运行前,系统内存分配及信号量状况。

[oracle@ENMOEDU ~]$ ipcs

------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 3604481 root 644 52 2
0x00000000 3637251 root 644 16384 2
0x00000000 3670020 root 644 268 2
0x00000000 3899398 oracle 640 4096 0
0x00000000 3932167 oracle 640 4096 0
0x6265bc50 3964936 oracle 640 4096 0

------ Semaphore Arrays --------
key semid owner perms nsems
0x10b08078 262145 oracle 640 154

------ Message Queues --------
key msqid owner perms used-bytes messages

                    运行sqlplus并启动instance后,对比之后可以看到,Shared Memory  

                 Segments增加了3个Oracle相关的段。Semaphore Arrays也增加了一个。

                 这些增加的即是instance在内存中的分配表现。

                    1.1.2.2查看系统进程状况                     

[oracle@ENMOEDU ~]$ ps -ef|grep ora_
oracle 5418 5319 0 21:23 pts/3 00:00:00 grep ora_

                      实例运行前,ps命令没有查到oracle相关服务进程。

[oracle@ENMOEDU ~]$ ps -ef|grep ora_
oracle 5525 1 0 21:28 ? 00:00:00 ora_pmon_ENMOEDU
oracle 5527 1 0 21:28 ? 00:00:00 ora_psp0_ENMOEDU
oracle 5530 1 0 21:28 ? 00:00:00 ora_vktm_ENMOEDU
oracle 5534 1 0 21:28 ? 00:00:00 ora_gen0_ENMOEDU
oracle 5536 1 0 21:28 ? 00:00:00 ora_diag_ENMOEDU
oracle 5538 1 0 21:28 ? 00:00:00 ora_dbrm_ENMOEDU
oracle 5540 1 0 21:28 ? 00:00:00 ora_dia0_ENMOEDU
oracle 5542 1 0 21:28 ? 00:00:00 ora_mman_ENMOEDU
oracle 5544 1 0 21:28 ? 00:00:00 ora_dbw0_ENMOEDU
oracle 5546 1 0 21:28 ? 00:00:00 ora_lgwr_ENMOEDU
oracle 5548 1 0 21:28 ? 00:00:00 ora_ckpt_ENMOEDU
oracle 5550 1 0 21:28 ? 00:00:00 ora_smon_ENMOEDU
oracle 5552 1 0 21:28 ? 00:00:00 ora_reco_ENMOEDU
oracle 5554 1 0 21:28 ? 00:00:00 ora_mmon_ENMOEDU
oracle 5556 1 0 21:28 ? 00:00:00 ora_mmnl_ENMOEDU
oracle 5558 1 0 21:28 ? 00:00:00 ora_d000_ENMOEDU
oracle 5560 1 0 21:28 ? 00:00:00 ora_s000_ENMOEDU
oracle 5575 1 0 21:28 ? 00:00:00 ora_qmnc_ENMOEDU
oracle 5589 1 0 21:28 ? 00:00:00 ora_cjq0_ENMOEDU
oracle 5601 1 0 21:28 ? 00:00:00 ora_q000_ENMOEDU
oracle 5603 1 0 21:28 ? 00:00:00 ora_q001_ENMOEDU
oracle 5659 1 0 21:32 ? 00:00:00 ora_j000_ENMOEDU
oracle 5661 1 0 21:32 ? 00:00:00 ora_j001_ENMOEDU
oracle 5666 5319 0 21:32 pts/3 00:00:00 grep ora_

                        实例运行后,再次对比之前ps命令结果,多出了23个ora_开头的进程,

                      这些进程即是实例的一部分。

                         关闭实例后(shutdown),再次运行ipcs和ps命令,结果又回到了实例

                      运行前的状况。

                          从这里可以通过验证,体会到instance即为内存和进程组成。

              1.1.3总结

                      Oracle体系结构中Database和instance概念容易混淆,不过通过区别分析,加以实机命令输出验证,可以较为清晰理解。

                      如下是Oracle体系结构的简单概要图,后续文章将继续分享学习笔记。谢谢关注此博客!!!

                      NewImage

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/493318/viewspace-1073290/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-01-10

  • 博文量
    9
  • 访问量
    71819