Oracle内存结构
1. Oracle内存结构简介
Oracle在内存中存储以下信息:
。程序代码
。以连接的会话信息,包括当前活动的及非活动的会话
。程序执行过程中所需的信息
。需要在Oracle进程间共享并进行通信的的信息
。数据文件内数据的缓存(如数据块及重做日志条目)
Oracle 中的基本内存结构包括:
。系统全局区(SGA):此区域由所有的服务进程和后台进程共享
。程序全局区(PGA):此区域是每个服务进程和后台进程私有的;即每个进程都有一个属于自己的PGA。
SGA中包括:Java池,数据缓存区,重做日志缓冲区,共享池,数据流池,及大型池,在SGA之外,存在服务进程,后台进程,及Oracle进程,他们能够和SGA交换信息。同时每个进程还需与其PGA通信。
2. 系统全局区
系统全局区(SGA)是一组包含了Oracle数据库数据及实例控制信息的共享的内存结构.当多个用户并发地连接到同一个实例后,这些用户将共享此实例SGA中的数据。因此SGA也被称为共享全局区。
Oracle实例是由SGA及Oracle进程两部分组成的,当用户启动实例时Oracle将自动地为SGA分配内存。当用户关闭实例时由操作系统负责回收内存。每个实例都有自己的SGA。
SGA是可读写的,它包含以下数据结构:
。数据缓冲区(database buffer cache)
。重做日志缓冲区(redo log buffer)
。共享池(shared pool)
。Java池(Java pool)
。大型池(large pool)
。数据流池(streams pool)
。数据字典缓存区
。其他杂项信息
SGA中还包含了数据库及实例的状态信息,供后台进程使用。这部分内容被称为固定SGA。用户数据不会存储在这个区域内。
2.1 初始化参数SGA_MAX_SIZE
SGA中包含了多个内存组建,每一组建都可以被看作为一个内存池,用于满足特定类型的内存分配请求。用户可以设定Oracle数据库实例的SGA能够使用的内存总数量。Oracle在启动一个实例之处只会为此实例分配最小所需内存,而在实例运行期间可以通过扩展各个SGA组建来为实例提供更多内存,SGA所使用内存的上限由SGA_MAX_SIZE初始化参数决定。
SGA的容量由多个初始化参数觉定:
DB_CACHE_SIZE 标准容量数据块使用的缓存区的容量
LOG_BUFFER 重做日志缓冲区的容量
SHARED_POOL_SIZE 存储共享SQL及PL/SQL的内存容量
LARGE_POOL_SIZE 大池的容量。默认值是0
JAVA_POOL_SIZE Java池的容量
2.2 共享全局区自动管理
相关文档:
---sql的函数的使用(Oracle)
---dual的使用:哑元表:没有表需要查询的时候 可以用它
---select 'Hello World' from dual; ---结果:H ......
1. linux下启动oracle
su - oracle
sqlplus /nolog
conn /as sysdba
startup
exit
lsnrctl start
exit
2. linux下关闭oracle
su - oracle
sqlplus /nolog
conn /as sysdba
shutdown immediate
exit
lsnrctl stop
exit
3、启动监听器
oracle@suse92:~> lsnrctl start
4、停止监听器
oracle@suse92:~ ......
如果查询整库的话得以DBA权限查询数据字典dba_tab_columns
非DBA用户只能查看自己有读取权限的表
可以这样写查询
select owner, table_name
from dba_tab_columns
where lower(column_name)='firstname';
查询出哪些表包含firstname字段以及这些表属于哪个用户
注:dba_tab_columns是一个属于SYS用户的一个View ......
oracle补丁下载
关键字: oracle
9.2.0.4 = 3095277
9.2.0.5 = 3501955
9.2.0.6 = 3948480
9.2.0.7 = 4163445
9.2.0.8 = 4547809(9i最终)
10.1.0.3 = 3761843
10.1.0.4 = 4163362
10.1.0.5 = 4505133
10.2.0.2 = 4547817
10.2.0.3 = 5337014
10.2.0.4 = 6810189
下 ......