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 内存结构:数据库缓冲区高速缓存、共享池 和重做日志缓冲区
• 解释主要的后台进程:DBWn、LGWR、CKPT PMON、SMON
• 解释后台进程ARCn 的用法
• 列出可选后台进程和条件后台进程
• 解释逻辑层次结构