会计考友 发表于 2012-8-4 14:06:19

Oracle技术:Oracle数据库体系架构概要

Oracle数据库的体系很复杂,复杂的原因在于它最大限度的节约内存,从上图可以看出,它在整体上分实例和数据库文件两部分。   一、实例(Instance):指数据库服务器的内存及相关处理程序,它是Oracle的心脏。与Oracle性能关系最大的是SGA(System Global Area,即系统全局区活共享内存区),SGA包含三个部分:
  1、数据缓冲区,可避免重复读取常用的数据;
  2、日志缓冲区,提升了数据增删改的速度,减少磁盘的读写而加快速度;
  3、共享池,使相同的SQL语句不再编译,提升了SQL的执行速度。
  二、数据库文件,由操作系统内的各种文件组组成。
  1、Oracle数据库逻辑结构:
  1).表空间,数据库的基本逻辑结构,是一系列数据文件的集合;
  2).段,不同类型数据在数据库中占用的空间,有许多区组合而成;
  3).区,目的是为数据一次性预留一个较大的空间;
  4).块,最小的存储单位,在创建数据库时指定。
  2、Oracle数据库物理结构:
  1).数据文件(Data File),存储数据的文件;
  2).重做日志文件(Redo Log File),负责记录数据库内任何数据的处理情况,可用于数据的恢复;
  3).控制文件(Control File),控制和记录数据库的实体结构;
  4).初始化参数文件(Initialization Parameter File),配置内存空间的依据;
  5).口令文件(Password File),认证用户启动和关闭Oracle例程的权限。

会计考友 发表于 2012-8-4 14:06:20

Oracle技术:Oracle数据库体系架构概要

  我的atmp大前置机器上对oracle调整的时候,其使用的是unixware操作系统,在做链接数调整的时候,要先对核心参数进行调整。
  核心主要相关的参数的调整如下:
  SHMMAX 1000000000
  SHMMIN 1
  SHMMNI 200
  SHMSEG 15
  SEMMNI 1000
  SEMMSL 300
  SEMMNS 230
  SEMOPM 20
  其中semmni,semmns,semmsl要加大,至少要比processes大18 ;   SEMMNI(10,10000;150):指定在核心中信号识别的数量。这是可以在任意给定时间被激活的唯一信号设置数量。缺省值是150。最大值由系统自动调整产生。
  SEMMSL(25,300;150):指定每个信号识别中信号量的最大值。缺省值是25。
  SEMMNS 除最大db外的所有db 的PROCESSES之和+2*最大db的PROCESSES+10*
  实例数。如3个实例进程数分别为100、100、200,则=(100+100)+2*200+10*3=630
  tyle="LINE-HEIGHT: 150%;">SEMOPM(10,20;10):指定在每个系统调用semop中能够被执行的信号操作量的最大值。缺省值是10。
  SHMMAX(131072,1073741824;524288):指定了共享内存部分大小的最大值。等于0.5
  × 物理内存字节数
  SHMMNI(10,1000;100):指定了系统范围内共享内存标识的最大值。
  SHMSEG(6,15;6):指定了与每个进程相关连的共享内存块(或标识)的数量。缺省值是6。与每个进程相关连的共享内存块的最大值与进程拥有的未使用空间有关。因此,尽管一个进程拥有少于SHMSEG数值的共享内存块,它也有可能因为其有限的空间而不能与其它进程相联系。
  init.ora中调整为:
  processes = 50 # SMALL
  #processes = 100 # MEDIUM
  # processes = 200 # LARGE
  From:http://gerrywxy.spaces.live.com/blog/cns!10FE174F8521A5F!206.entry
  修改oracle 150 的最大连接数
  使用sys,以sysdba权限登录:
  c:"sqlplus /nolog
  SQL>conn / as sysdba
  SQL> show parameter processes;
  NAME TYPE VALUE
  ------------------------------------ ----------- ------------------------------
  aq_tm_processes integer 1
  db_writer_processes integer 1
  job_queue_processes integer 10
  log_archive_max_processes integer 1
  processes integer 150
  SQL> alter system set processes=300 scope = spfile;
  系统已更改。
  SQL> show parameter processes;
  NAME TYPE VALUE
  ------------------------------------ ----------- ------------------------------
  aq_tm_processes integer 1
  db_writer_processes integer 1
  job_queue_processes integer 10
  log_archive_max_processes integer 1
  processes integer 150
  SQL> create pfile from spfile;
  文件已创建。
  重启数据库,OK!
页: [1]
查看完整版本: Oracle技术:Oracle数据库体系架构概要