• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
Oracle数据库日常维护手册
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
Oracle数据库日常维护手册
软件发布 Oracle数据库日常维护手册
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 认证考试 >> Oracle认证 >> Oracle指导 >> Oracle数据库日常维护手册

Oracle数据库日常维护手册

添加时间: 2008-4-19 22:16:32  作者:   阅读次数:36   来源:

       


在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。
  一、Oracle警告日志文件监控

  Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况:

  ●数据库的启动、关闭,启动时的非缺省参数;

  ●数据库的重做日志切换情况,记录每次切换的时间,及如果因为 检查 点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因;

  ●对数据库进行的某些操作,如创建或删除表空间、增加数据文件;

  ●数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA-600)

  DBA应该定期检查日志文件,根据日志中发现的问题及时进行处理

  问题处理

  启动参数不对检查初始化参数文件

  因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率;

  有人未经授权删除了表空间检查数据库的 安全 问题,是否密码太简单;如有必要,撤消某些用户的系统权限

  出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建

  表空间不够增加数据文件到相应的表空间

  出现ORA-600根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁

  二、数据库表空间使用情况监控(字典 管理 表空间)

  数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。

  select tablespace_name,

  count(*) chunks ,

  max(bytes/1024/1024) max_chunk

  from dba_free_space

  group by tablespace_name;

  上面的SQL列出了数据库中每个表空间的空闲块情况,如下所示:

  TABLESPACE_NAME CHUNKS MAX_CHUNK

  -------------------- ---------- ----------

  INDX 1 57.9921875

  RBS 3 490.992188

  RMAN_TS 1 16.515625

  SYSTEM 1 207.296875

  TEMP 20 70.8046875

  TOOLS 1 11.8359375

  USERS 67 71.3671875

  其中,CHUNKS列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了100个,那么该表空间的碎片状况就比较严重了,可以尝试用以下的SQL命令进行表空间相邻碎片的接合:

  alter tablespace 表空间名 coalesce;

  然后再执行查看表空间碎片的SQL语句,看表空间的碎片有没有减少。如果没有效果,并且表空间的碎片已经严重影响到了数据库的运行,则考虑对该表空间进行重建。

  MAX_CHUNK列的结果是表空间上最大的可用块大小,如果该表空间上的对象所需分配的空间(NEXT值)大于可用块的大小的话,就会提示ORA-1652、ORA-1653、ORA-1654的错误信息,DBA应该及时对表空间的空间进行扩充,以避免这些错误发生。

  对表空间的扩充对表空间的数据文件大小进行扩展,或向表空间增加数据文件,具体操作见“存储管理”部份。


 
三、查看数据库的连接情况
  DBA要定时对数据库的连接情况进行 检查 ,看与数据库建立的会话数目是不是正常,如果建立了过多的连接,会消耗数据库的资源。同时,对一些“挂死”的连接,可能会需要DBA手工进行清理。

  以下的SQL语句列出当前数据库建立的会话情况:

  select sid,serial#,username,program,machine,status

  from v$session;

  输出结果为:

  SID SERIAL# USERNAME PROGRAM MACHINE STATUS

  ---- ------- ---------- ----------- --------------- --------

  1 1 ORACLE.EXE WORK3 ACTIVE

  2 1 ORACLE.EXE WORK3 ACTIVE

  3 1 ORACLE.EXE WORK3 ACTIVE

  4 1 ORACLE.EXE WORK3 ACTIVE

  5 3 ORACLE.EXE WORK3 ACTIVE

  6 1 ORACLE.EXE WORK3 ACTIVE

  7 1 ORACLE.EXE WORK3 ACTIVE

  8 27 SYS SQLPLUS.EXE WORKGROUPWORK3 ACTIVE

  11 5 DBSNMP dbsnmp.exe WORKGROUPWORK3 INACTIVE

  其中,

  SID 会话(session)的ID号;

  SERIAL# 会话的序列号,和SID一起用来唯一标识一个会话;

  USERNAME 建立该会话的用户名;

  PROGRAM 这个会话是用什么工具连接到数据库的;

  STATUS 当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作;

  如果DBA要手工断开某个会话,则执行:

  alter system kill session 'SID,SERIAL#';

  注意,上例中SID为1到7(USERNAME列为空)的会话,是Oracle的后台进程,不要对这些会话进行任何操作。

  四、控制文件的备份

  在数据库结构发生变化时,如增加了表空间,增加了数据文件或重做日志文件这些操作,都会造成Oracle数据库控制文件的变化,DBA应及进行控制文件的备份,备份方法是:

  执行SQL语句:

  alter database

  backup controlfile to '/home/backup/control.bak';

  或:

  alter database

  backup controlfile to trace;

  这样,会在USER_DUMP_DEST(初始化参数文件中指定)目录下生成创建控制文件的SQL命令。

  五、检查数据库文件的状态

  DBA要及时查看数据库中数据文件的状态(如被误删除),根据实际情况决定如何进行处理,检查数据文件的状态的SQL如下:

  select file_name,status

  from dba_data_files;

  如果数据文件的STATUS列不是AVAILABLE,那么就要采取相应的措施,如对该数据文件进行恢复操作,或重建该数据文件所在的表空间。

 


六、 检查 数据库定时作业的完成情况
  如果数据库使用了Oracle的JOB来完成一些定时作业,要对这些JOB的运行情况进行检查:

  select job,log_user,last_date,failures

  from dba_jobs;

  如果FAILURES列是一个大于0的数的话,说明JOB运行失败,要进一步的检查。

  七、数据库坏块的处理

  当Oracle数据库出现坏块时,Oracle会在警告日志文件(alert_SID.log)中记录坏块的信息:

  ORA-01578: ORACLE data block corrupted (file # 7, block # )

  ORA-01110: data file : '/oracle1/oradata/V920/oradata/V816/users01.dbf'

  其中,代表坏块所在数据文件的绝对文件号,代表坏块是数据文件上的第几个数据块

  出现这种情况时,应该首先检查是否是硬件及操作系统上的故障导致Oracle数据库出现坏块。在排除了数据库以外的原因后,再对发生坏块的数据库对象进行处理。

  1.确定发生坏块的数据库对象

  SELECT tablespace_name,

  segment_type,

  owner,

  segment_name

  FROM dba_extents

  WHERE file_id =

  AND between block_id AND block_id+blocks-1;

  2.决定修复方法

  如果发生坏块的对象是一个索引,那么可以直接把索引DROP掉后,再根据表里的记录进行重建;

  如果发生坏块的表的记录可以根据其它表的记录生成的话,那么可以直接把这个表DROP掉后重建;

  如果有数据库的备份,则恢复数据库的方法来进行修复;

  如果表里的记录没有其它办法恢复,那么坏块上的记录就丢失了,只能把表中其它数据块上的记录取出来,然后对这个表进行重建。

  3.用Oracle提供的DBMS_REPAIR包标记出坏块

  exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('','');

  4.使用Create table as select命令将表中其它块上的记录保存到另一张表上

  create table corrupt_table_bak

  as

  select * from corrupt_table;

  5.用DROP TABLE命令删除有坏块的表

  drop table corrupt_table;

  6.用alter table rename命令恢复原来的表

  alter table corrupt_table_bak

  rename to corrupt_table;

  7.如果表上存在索引,则要重建表上的索引

  八、操作系统相关维护

  DBA要注意对操作系统的监控:

  ●文件系统的空间使用情况(df -k),必要时对Oracle的警告日志及TRC文件进行清理

  ●如果Oracle提供 网络 服务,检查网络连接是否正常

  ●检查操作系统的资源使用情况是否正常

  ●检查数据库服务器有没有硬件故障,如磁盘、内存报错

 

 

上下文章:

 

上一篇文章: Oracle中的用户创建和权限的分配 下一篇文章: Oracle基础工具简介

相关文章:

  • 谁能真正直挺出来维护个人站长的利益?
  • 在ORACLE的存储过程中如何做简单的动态查询
  • Oracle下调数据库许可价格以适应多芯CPU
  • Oracle全球客户支持副总裁汤姆·舒尔滋演讲
  • Oracle中国前员工述说公司高层内部纷争史

相关软件:

  • 机房维护专用简易中文GHOST 多硬盘多分区NTFS V2.0
  • 绝版袖珍 PE系统维护光盘 深度纪念版 V1.0
  • Access数据库密码破解器 V2.65
  • dbguide 数据库管理专家 V1.3.0.0
  • 网际数据库浏览器 3.0.52
  • NeoExam考试系统 大众版/ACCESS数据库 1.0.8

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

Oracle认证分类导航

  • Oracle动态
  • Oracle指导
  • Oracle题库

本类经典文章推荐

  • Oracle中关于逻辑备份与恢复
  • Oracle开发人员JAVA存储过程
  • 为数据库的表自动生成行号
  • Oracle中的OOP概念
  • 用java从oracle取数
  • 冷备份移植到另一台Solaris机器上
  • 如何将excel数据导入oracle中
  • Oracle10.2g安装记录
  • 数据库监控工具ForOraclev1.2
  • oracle双机群集系统

Oracle指导阅读排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • Oracle企业管理器(OEM 2.1)使用...
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • 如何取出某一用户的密码 再原样改...
  • 实例:Oracle导出EXCEL文件
  • 案例学习Oracle错误:ORA-00604
  • 案例学习Oracle错误:ORA-00060

Oracle认证阅读总排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • 在ORACLE的存储过程中如何做简单的...
  • Oracle企业管理器(OEM 2.1)使用...
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • AIX下自动启动Oracle数据库与监听...
  • 如何取出某一用户的密码 再原样改...
  • 实例:Oracle导出EXCEL文件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有