oracle server 包含 oracle instance 和 oracle database

来源:百度文库 编辑:神马文学网 时间:2024/04/28 11:18:51
什么是oracle instance?
oracle instance 是一种中间介质去访问oracle database,一个instance 对应而只能对应一个database,而database可以对应多个instance. instance 是由内存(memory)和进程(background process)组成.instance 是一个活的东西,关机后,instance就消失了。开机后,oracle 会自动分配内存从而形成instance.
一个server可以安装多个database,每个database对应一个instance.
database与instance是一对一的关系.
database是物理文件的集合,而instance是内存区的集合.
在RAC环境下,一个database对应多个instance.一个instance只能对应一个database.

连接(Connection)与会话(Session)
oracle客户端和后台的server process
background process (instance 的基本部分, 数据库的核心进程)
Server process (客户端和后台连接的进程)

什么是Oracle Database?
oracle database就是一堆文件。包含3种文件类型。
Data files 存放基本数据
Redo Log files 记录了数据库的改变。作用是用于恢复数据文件 (比如用rollback命令)。
Control files 控制文件
Parameter file 规定了oracle 初始文件值
Arachived Log files 把Redo log files里的文件归档到Arachived Log files里
Password file 存储口令的文件

Oracle物理结构
Oracle物理结构包含了3种文件类型:Control files, Data files 和 Online redo log files

内存结构(Memory Structure)
内存结构包含2种:System Global Area(SGA), Program Global Area(PGA)
System Global Area(SGA):当oracle instance 启动的时候会被分配一个SGA
Program Global Area(PGA):当server process 启动的时候会被分配一个PGA,而当启动多个server process的时候,将会相应的分配多个PGA.
SGA: System Global Area
SGA 包含了多个内存结构:
1. Shared Pool
2. Database Buffer Cache
3. Redo Log Buffer
4. Other structures(for example, lock and latch management, statistical data)
另外Large Pool 和 java Pool 也是2个在SGA里面的内存结构。
SGA是动态的,SGA_MAX_SIZE这个参数是SGA的最大值,granules是SGA的单位。
select component, granule_size from v$sga_dynamic_components; 这行语句可以显示各个内存结构的granule size.
各个内存结构也有自己的最大值
DB_CACHE_SIZE
LOG_BUFFER
SHARED_POOL_SIZE
LARGE_POOL_SIZE
JAVA_POOL_SIZE
每个内存结构的值是由oracle自动分配的。这大大简化了DBA的工作量。
Shared Pool
用来存储最近的执行SQL语句。
用来存储最近的数据定义。
Shared Pool也包含了2块内存机构,这2块内存机构可以影响performance.
可以修改shared pool size, 只要敲入以下命令:
ALTER SYSTEM SET
SHARED_POOL_SIZE = 64M;
Library Cache
Library cache 主要是存储最近的sql和pl/sql语句。
Library cache 也包含两个机构,一个是Shared SQL area,另一个是Shared PL/SQL area
Data Dictinary Cache
存储数据库控制信息的所有信息。
Database Buffer Cache
Stores copies of data blocks that have been retrieved from the data files
Redo Log Buffer
Large Pool