文章目录
体系结构及主要构成部分
OracleServer = Instance + DataBase
Instance = MemoryStructures + ProcessStructures
MemoryStructures = SystemGlobalArea
单服务器对应本地存储
多服务器RAC对应共享存储
内存结构
Oracle Database Memory Structures
- 写SQL要避免全表扫描
- 解析语句就是进行各种检查
- SharePool 的命中率越高越好,没有的话需要解析。
- DatabaseBufferCache 存有数据文件中的数据,没有的话就要先从磁盘读到内存中。
Shared Pool
- LibraryCache 命中率越高越好
Database Buffer Cache
- SQL语句命中率越高越好。
- 看AWR报告。
- SQL语句写法要规范。
- 写SQL语句的时候,尽量用绑定变量的写法,只用一条语句,能提高性能。
- 应用数据交换的地方。
- RedoLogBuffer里的内容在commit之后,写到联机日志文件里。
Redo Log Buffer
Large Pool
PGA(Program Global Area)
进程结构
Background Processes
Required —— 必须要启动的进程
-
DBWn
ServerProcess把物理文件中的数据读到DatabaseBufferCache中,DBWn负责把DatabaseBufferCache中的脏数据写到物理文件中。 -
CKPT
-
LGWR
-
SMON
负责实例恢复 -
PMON
-
RECO
Optional —— 可选的进程
-
ARCn
可以多路备份归档日志文件。
-
ASMB
-
RBAL
-
Others
User Process
- 有多少个会话就有多少个用户进程。
- 每一个用户进程都有自己的PGA。
- 用户进程与服务进程之间第一次建立连接的时候,要通过监听服务。连接建立之后,就不再需要监听服务了。
Database Processes
- 后台进程不是基本进程
Daemon / Application Processes
- 一个数据库可以有多个监听
存储结构
database物理文件
逻辑结构与物理结构的关联
- 系统表空间必须online
- 非系统表空间可以offline
- 做介质恢复的时候,表空间一定要offline,再做恢复,恢复完之后再online就可以使用了。
- 系统表空间不能offline,所以系统表空间损坏的话,只能做整个数据库的恢复,而不能做单个数据文件或者单个表空间的恢复。非系统表空间可以做到联机恢复。
- 用exp/imp的时候,可以重新创建逻辑对象,重新创建连续的extents。
- 凡是占用存储空间的逻辑对象,它的存储管理都是按照段来管理。