ORACLE DBWR 进行写操作的条件与数据库体系结构解析
需积分: 15 66 浏览量
更新于2024-07-12
收藏 1.18MB PPT 举报
"这篇教程主要介绍了Oracle数据库的DBWR后台进程进行写操作的情况以及Oracle的体系结构。DBWR(Database Writer)进程在某些特定条件下执行写操作,如脏列表达到最低限制,或者在LRU列表中扫描缓冲块而未找到空闲块。此外,文章还提到了Oracle数据库的组成部分,包括物理结构如数据文件、日志文件、控制文件和参数文件,以及系统全局区(SGA)中的共享池、数据缓冲区和日志缓冲区。还有各种进程的角色,例如用户进程、服务器进程和后台进程。"
Oracle数据库的DBWR(Database Writer)进程是负责将内存中的脏块(即已修改但未写回磁盘的数据块)写入数据文件的重要组件。当以下情况之一发生时,DBWR会触发写操作:
1. **脏列表达到最低限制**:脏列表包含了需要写回的数据块,当其数量达到阈值时,DBWR将开始写回这些块以释放空间。
2. **DB_BLOCK_WRITE_BATCH值的一半**:Oracle设置了一个参数`DB_BLOCK_WRITE_BATCH`,表示每次批量写入的块数,当脏列表中的块数达到这个值的一半时,DBWR也会进行写操作。
3. **LRU列表扫描**:如果一个进程在LRU(Least Recently Used,最近最少使用)缓存列表中扫描了由`DB_BLOCK_MAX_SCAN_CNT`参数定义的缓冲块数量,且未找到空闲缓冲块,DBWR会被触发以清理空间。
Oracle的体系结构分为物理结构和逻辑结构两部分:
**物理结构**包括:
- **数据文件(Data Files)**:存储数据库数据,每个数据文件对应一个数据库,并且大小一旦设定不可更改。
- **日志文件(Log Files)**:记录所有对数据库的修改,用于恢复,每个数据库至少有两组日志文件,以循环方式写入。
- **控制文件(Control Files)**:包含数据库的元数据信息,用于数据库的启动和恢复。
- **参数文件(Parameter Files)**:存储数据库配置参数。
**系统全局区(SGA)**:
- **共享池(Shared Pool)**:存储PL/SQL代码、解析计划等共享信息。
- **数据缓冲区(Buffer Cache)**:存放从数据文件读取的块,减少I/O操作。
- **日志缓冲区(Log Buffer)**:暂时保存日志记录,等待写入日志文件。
**进程**包括:
- **用户进程(User Processes)**:用户交互的进程。
- **服务器进程(Server Processes)**:处理用户请求。
- **后台进程**,如DBWR、LGWR、SMON、PMON、CKPT、LCKn、ARCH和RECO等,负责数据库的后台任务,如写操作、日志写入、检查点、进程监控、锁定管理、归档和恢复等。
理解Oracle的DBWR写操作和整个体系结构对于数据库管理员(DBA)来说至关重要,因为这直接影响到数据库性能和数据的安全性。DBA的工作包括数据库的安装、升级、管理用户权限、存储空间规划、备份恢复以及监控数据库的健康状态。
2011-05-13 上传
2013-03-05 上传
2019-11-09 上传
点击了解资源详情
点击了解资源详情
2011-01-26 上传
2009-05-06 上传
2012-03-26 上传
点击了解资源详情
辰可爱啊
- 粉丝: 18
- 资源: 2万+
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍