数据库日常维护介绍
审计功能打开 用户的segment错误地创建到system表空间 用户的回滚段错误地创建到system表空间 用户使用system表空间作为排序交换区 (其中后两项一般在9i之前版本较多,9i后 一般不是问题所在)
用户表空间不足
通常为业务数据量正常增长。 解决方式: 增加相应表空间大小
Undo表空间不足
• 可选择的后台进程
数据库复写器
DBWn 开始写:
Instance SGA
Database buffer cache DBWn
Data files
Control files
Redo log files
Database
• 检查点执行 • 脏块上限数到达 • 缓存区没有自由空 间 • 超时 • 连接RAC要求 • 表空间脱机 • 表空间只读 • 清空和删除表 • 表空间开始备份
Redo log buffer cache
大型池
• 大型池是在SGA内一种可选择的存 贮区域,只配置在共享服务器环境中. • 能减轻在共享池的负担. • 用在UGA、备份和恢复等操作中. • 不使用 LRU 列表算法. • 大小由 LARGE_POOL_SIZE决定.
ALTER SYSTEM SET LARGE_POOL_SIZE = 64M;
日志复写器
Instance SGA
Redo log buffer
LGWR 开始写:
• 提交时 • 三分之一缓冲 区满的时候 • 当有1MB日志 的时候 • 每三秒 • 在DBWn写之 前
DBWn LGWR
Data files
Control files
Redo log files
Database
系统监控进程
– 共享SQL 区域 – 共享 PL/SQL 区域
• 其中各自的大小由共享池内部指定
数据字典缓冲区
• 数据字典缓冲区是数据库里最经常使 用的对象定义的集合. • 它包括数据文件名、表、索引、列、 用户权限和其它数据库对象等信息. . • 在解析期间,服务器进程会查找数据字 典获取允许接入的关联对象信息. • 缓存数据字典信息在内存区能提高查 询数据的响应时间. • 它的大小由共享池的大小决定.
– 库缓冲区 – 数据字典缓冲区
• 大小由参数SHARED_POOL_SIZE决定.
Shared pool Library cache Data dictionary cache
ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;
库缓存区
• 库缓冲区存储最近使用的SQL和PL/SQL 语句信息: • 它能够使普遍使用的语句能够共享 • 通过LRU算法进行管理 • 由两种结构组成:
用户进程
• 用户进程是要求 Oracle 服务器交互的一种 进程: • 它必须首先建立一个连接. • 不直接和 Oracle 服务器交互. Server
process User process Connection established Database user
服务进程
• 服务进程是直接和 Oracle 服务器交互的一 段程序. • 它响应用户要求,向服务器发起呼叫并返 回结果给用户. • 可用专用服务器模式,也可用共享服务器模 Server 式创建对话. process
处理失败后进 行清理:
• • • • 回滚事务 释放锁 释放其它资源 重启死的 dispatchs
PMON
PGA area
检查点
Instance SGA
Redo Log Buffer
DBWn DWW0 LGWR
CKPT
Data files
Control files
Redo log files
• 负责: • 给 DBWn 发信号 • 修改数据文 件块头 • 修改控制文 件信息
• • • • • • 规划、创建数据库 创建数据库用户和授权 维护数据库可用性 管理网络 备份与恢复 数据库优化
定期检查alert文件
Ora-00600错误及ora-7445错误信息 数据库坏块 监控数据库操作 查看数据库打开关闭情况 每次启动非缺省初始化参数 日志切换频率 其它相关报错信息 部分性能调整可用信息等…….
Instance SGA
责任:
• 实例恢复: – 回滚日志文 件中 的改变信息 – 打开数据库, 让用户进入 – 回滚未提交 的事务 • 每三秒接合空闲 空间 • 回收临时段
SMON
Data files
Control files
Redo log files
Database
进程监控器
Instance SGA
数据块高速缓冲区
• • 数据块高速缓冲区储存以前从数据文件 中取出过的数据块的拷贝信息. • 当你得到或修改数据时,它能使性能得到 提高. • 它通过LRU算法进行管理. buffer Database cache • 由DB_BLOCK_SIZE决定大小.
重做日志缓冲区
• 重做日志缓冲区记录数据块的所有 变化. • 首要目的是恢复. • 记录的信息可用来重做改变. • 尺寸大小由LOG_BUFFER定义.
剩余空间 Select tablespace_name,sum(bytes)/1024/1024 M From dba_free_space Group by tablespace_name; 表空间大小 Select tablespace_name,sum(bytes)/1024/1024 M From dba_data_files Group by tablespace_name;
定期检查文件系统
定期检查数据库服务器文件系统使用情况 清理不必要的文件。确保文件系统有足够 的free空间。
查看表空间使用情况
空间不足,在alert文件中提示错误信息,操作 无法继续。 查看方式: OEM图形化工具 Dba_free_space视图 检查时间: 定期检查 大数据操作之前
检查命令
Oracle培训
• • • • • • • 数据库安装 数据库启动关闭规程及相关操作 数据库体系结构 数据库日常维护 数据库网路配置 数据库sql语句 其他问题
第一部分 数据库体系结构
主要组件一览
用户端进程
共享池 库缓冲区 数据字典
实例 系统全局区
数据块高速 缓冲区 重做日志 缓冲区
服务器进程 程序全局区
Shared pool Library cache Data Dict. cache
SGA 内存结构
Database Redo log buffer cache buffer cache
后台进程
PMON SMON DBWR LGWR CKPT Others
Oracle服务器
• 一个Oracle服务器: • 是一个提供开放式 的、全面的、综合 性信息管理服务的 数据库管理系统 • 由一个Oracle数据库 和一个Oracle实例组 成
系统全局区
• 系统全局区(SGA)由几部分内存区 域组成:
– 共享池 – 数据块高速缓冲区 – 重做日志缓冲区
• 有两个可选择的内存结构能配置在系 统全局区内:
– 大型池 – JAVA池
共享存储区
• 用来存储最近最多执行的SQL语句和最近 最多使用的数据定义. • 它由两个主要的内存存结构组成:
Server process
Stack information space sort area, cursor
information Session
Stack sort area, cursor information space
User process
SGA
SGA
Session information
缓冲区 PMON SMON DBWR LGWR CKPT Others
参数文件
数据文 件
控制文件
重做日志 文件
归档日志文件
密码文件 数据库
Oracle实例
• • • • 一个Oracle 实例: 是一种访问 Oracle 数据库的基本方式 总是打开一个且只打开一个数据库 由内存结构和进程结构组成
实例
Shared SQL areas
Shared SQL areas
进程结构
• Oracle进程是一种程序,依赖它要求信 息的类型,执行一系列的步骤或者实施 一项具体的任务. • 用户进程 : 当数据库用户要求连接到 Oracle 服务器时开始启动. • 服务器进程 : 连接 Oracle 实例,当用户 建立一个会话时开始启动. • 后台进程 : Oracle 实例启动即可用.
Oracle 服务器
创建连接和会话
创 建 连 接 用户进程
服务器进程 创建对话 Oracle 服务器
数据库用户
Oracle 数据库
• Oracle数据库 : • 实例(后台进程 + 内存结构) • 由三种文件类型组成 +归档日志文件+参数 文件+密码文件
Oracle 数据库
参数文件 数据 文件 控制文 件 重做日志 归档日志文件 文件
system表空间大小不足
严重事件!!在部分版本可能导致数据库无法使 用。 缺省创建250M大小,一般给800M以上以防止空 250M 800M 间不足。 除增加大小外一定要检查什么内容导致system 空间不足,并考虑将该部分内容移出system表空 间!!
通常导致system表空间不足的 原因
产生原因 通常为大事务,大量数据修改。 解决方法: 增加undo表空间大小
增加表空间大小
增加新的数据文件 Alter tablespace tablespace_name Add datafile ‘new datafile path&name’ size …M;