我的oracle 9i学习笔记:oracle体系结构组件 (1)

 Oralce 体系结构包括两部分:

1.Instance

2.Database

Oracle Server:

是一个最大的概念。可以是物理上的服务器。也可以是一整套软件。

是一个数据库管理系统,提一个开放的 广泛的 完整的 管理信息的方法。(Is a database management system that provides an open comprehensive  integrated approach to information management)

包含Instance和DataBase两个部分。

Oracle Instance:

访问Oracle Database的一个中介,一个手段。

一个Instance仅仅只能打开一个databses。但一个database可以被多个Instance打开。

由内存和后台进程组成的

Connection & Session

tcp  连接

    process: 1.后台进程(Oracle prosess) 2.服务器进程(Server process) 3.用户进程(User process).

    1注重于数据 2则注重于提供用户连接

 

Oracle Database 有逻辑结构和物理结构。物理结构是指在操作系统上的一系列文件,

说白了就是一堆文件

被当作一个单位的数据的集合。 Is a collection of data that is treated as a unit

包括三种文件类型:

Data files :存储实际的数据包括数据字典。

Control files :包含必要的维护和验证数据库完整性的信息。

RedoLog files :记录数据库的改变信息,是数据库能在出错时恢复到原状态

 other key files:不属于database的一部分,主要有三种类型的文件:

parameter file:规定了oracle instance的参数,如:SGA以及SGA内各组件分配内存的大小。

password file:包含了用户的认证和特权信

archived redo log files:是一份离线的online redo log files的拷贝。

[root@oracle9i oradata]# pwd 

/u01/oradata

[root@oracle9i oradata]# ll

total 4

drwxr-xr-x  3 oracle oinstall 4096 Jul 15 14:52 leixianp

[root@oracle9i oradata]# cd leixianp/

[root@oracle9i leixianp]# ll

total 1195260

drwxr-xr-x  2 oracle oinstall      4096 Jul 16 19:56 archive

-rw-r-----  1 oracle oinstall   1871872 Jul 16 20:32 control01.ctl

-rw-r-----  1 oracle oinstall   1871872 Jul 16 20:32 control02.ctl

-rw-r-----  1 oracle oinstall   1871872 Jul 16 20:32 control03.ctl

-rw-r--r--  1 oracle oinstall  20975616 Jul 16 20:32 drsys01.dbf

-rw-r--r--  1 oracle oinstall 152702976 Jul 16 20:32 example01.dbf

-rw-r--r--  1 oracle oinstall  26218496 Jul 16 20:32 indx01.dbf

-rw-r--r--  1 oracle oinstall  20975616 Jul 16 20:32 odm01.dbf

-rw-r-----  1 oracle oinstall 104858112 Jul 16 20:32 redo01.log

-rw-r-----  1 oracle oinstall 104858112 Jul 16 19:56 redo02.log

-rw-r-----  1 oracle oinstall 104858112 Jul 16 19:56 redo03.log

-rw-r--r--  1 oracle oinstall 346034176 Jul 16 20:32 system01.dbf

-rw-r--r--  1 oracle oinstall  41947136 Jul 15 14:55 temp01.dbf

-rw-r--r--  1 oracle oinstall  10489856 Jul 16 20:32 tools01.dbf

-rw-r--r--  1 oracle oinstall 209719296 Jul 16 20:32 undotbs01.dbf

-rw-r--r--  1 oracle oinstall  26218496 Jul 16 20:32 users01.dbf

-rw-r--r--  1 oracle oinstall  47190016 Jul 16 20:32 xdb01.dbf

[root@oracle9i leixianp]# ps -ef |grep oracle

root      6652  6611  0 11:16 pts/0    00:00:00 grep oracle

[root@oracle9i ~]# su - oracle

[oracle@oracle9i ~]$ sqlplus /nolog

SQL*Plus: Release 9.2.0.4.0 - Production on Wed Jul 27 11:16:33 2011

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn /as sysdba

Connected to an idle instance.

SQL> startup

ORACLE instance started.

Total System Global Area  236000356 bytes

Fixed Size                   451684 bytes

Variable Size             201326592 bytes

Database Buffers           33554432 bytes

Redo Buffers                 667648 bytes

Database mounted.

Database opened.

[root@oracle9i leixianp]# ps -ef |grep oracle

root      6652  6611  0 11:16 pts/0    00:00:00 grep oracle

[root@oracle9i leixianp]# ps -ef |grep oracle

root      6685  6653  0 11:16 pts/1    00:00:00 su - oracle

oracle    6686  6685  0 11:16 pts/1    00:00:00 -bash

oracle    6713  6686  0 11:16 pts/1    00:00:00 rlwrap sqlplus /nolog

oracle    6714  6713  0 11:16 pts/2    00:00:00 sqlplus       

oracle    6717     1  0 11:17 ?        00:00:00 ora_pmon_leixianp

oracle    6719     1  0 11:17 ?        00:00:00 ora_dbw0_leixianp

oracle    6721     1  0 11:17 ?        00:00:00 ora_lgwr_leixianp

oracle    6723     1  0 11:17 ?        00:00:00 ora_ckpt_leixianp

oracle    6725     1  0 11:17 ?        00:00:00 ora_smon_leixianp

oracle    6727     1  0 11:17 ?        00:00:00 ora_reco_leixianp

oracle    6729     1  0 11:17 ?        00:00:00 ora_cjq0_leixianp

oracle    6731     1  0 11:17 ?        00:00:00 ora_qmn0_leixianp

oracle    6733     1  0 11:17 ?        00:00:00 ora_s000_leixianp

oracle    6735     1  0 11:17 ?        00:00:00 ora_d000_leixianp

oracle    6737     1  0 11:17 ?        00:00:00 ora_arc0_leixianp

oracle    6739     1  0 11:17 ?        00:00:00 ora_arc1_leixianp

oracle    6741  6714  1 11:17 ?        00:00:00 oracleleixianp (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

root      6743  6611  0 11:17 pts/0    00:00:00 grep oracle

Memory Structure

 包含两块: 1.SGA(System Global Area):

            Instance的一个基本组件。帮助Instance启动用的。 一个Instance一个SGA。

Allocated at instance start up,and is a fundamental component of an Oracle instance.

            2.PGA(Program Global Area):

Allocated when the server process is started.

[oracle@oracle9i ~]$ ipcs

------ Shared Memory Segments --------

key        shmid      owner      perms      bytes      nattch     status      

0x2b2c972c 0          oracle    640        255852544  65                      

------ Semaphore Arrays --------

key        semid      owner      perms      nsems     

0x5b642e3c 98304      oracle    640        154       

------ Message Queues --------

key        msqid      owner      perms      used-bytes   messages    

[oracle@oracle9i ~]$ exit

exit

SQL> show sga

Total System Global Area  236000356 bytes

Fixed Size                   451684 bytes

Variable Size             201326592 bytes

Database Buffers           33554432 bytes

Redo Buffers                 667648 bytes

SGA有叫共享全局区域(shared global area)。在instance启动时被分配,用来存储数据库进程共享信息

,包括数据和控制信息。主要组成包括:

       – Shared Pool 

       – Database Buffer Cache 

       – Redo Log Buffer 

       – Other structures (for example, lock and latch management, statistical data)

还有两个可选项: Large Pool, Java Pool。

SGA 在9i以后可以动态调整大小,参数为SGA_MAX_SIZE,基本单位为:granules,对于小于128M的SGA,granules为4M,大于的为16M。

SGA是一个连续分配的内存区域。

SQL> select component,granule_size from v$sga_dynamic_components;

COMPONENT                                                        GRANULE_SIZE

---------------------------------------------------------------- ------------

shared pool                                                          16777216

large pool                                                           16777216

buffer cache                                                         16777216

进程结构

oracle进程分三种:User process,Server process,Background processes

Background processes

有5个必须启动的进程和若干个可选进程。必须启动的进程:DBWn,PMON ,CKPT,LGWR和SMON。可选进程:

ARCn  LMDn  QMNn  CJQ0  LMON  RECO  Dnnn  LMS  Snnn  LCKn  Pnnn

DBWn(Database Writer):

n表示可以有多个,如DBW0,DBW1… …,oracle9i可以支持20个DBW,通常只启动一个。

LGWR(Log Writer)

SMON (System Monitor)   (系统清洁员)

主要功能是恢复数据库的instance,当instance发生错误而停止时,在下次启动instance后负责将数据库回滚到错误发生前的状态。

另外还有整理内存碎片和回收内存的功能。

PMON(Process Monitor)   (process 清洁员)

负责监视进程(包括PGA和SGA内的所有进程 )的状态,若发现有进程出现错误或僵死则结束异常进程然后重新生成新的进程。

CKPT(Checkpoint)   (辅助LGWR)

ARCn (Archiver)

设置ARCHIVELOG 模式时自动归档联机重做日志

保留数据库的全部更改记录

逻辑结构

在oracle database中数据时存储在tablespaces(表空间)里的,一个表空间只能属于一个database,一个表空间可以对应一个或多个物理文件(data file)。

一个oracle server上只有一个database,一个database包含至少一个表空间,一个表空间包含一个或多个段,一段由多个extent组成,extent由许多连续的块(block)组成。

一个segment不能跨越表空间,但一个segment可以属于不同的data file。但一个extent不能跨越data file。

data block是oracle server分配,读写等基本操作的最小存储单元,大小由DB_BLOCK_SIZE这个参数指定,但必须是操作系统block的整数倍,最大尺寸不同的系统不同。

 

 

 

小结

• 解释数据库文件:数据文件、控制文件和联机重做日志

• 解释SGA 内存结构:数据库缓冲区高速缓存、共享池 和重做日志缓冲区

• 解释主要的后台进程:DBWnLGWRCKPT PMONSMON

• 解释后台进程ARCn 的用法

• 列出可选后台进程和条件后台进程

• 解释逻辑层次结构

你可能感兴趣的:(oracle,oracle,centos,笔记,休闲,9i,4.8)