关闭

Oracle数据库日常维护知识总结

发表于:2011-6-16 09:56

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:耿玉龙    来源:51Testing软件测试网采编

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

  1. SELECT tablespace_name,  
  2. segment_type,  
  3. owner,  
  4. segment_name  
  5. FROM dba_extents  
  6. WHERE file_id = <AFN>  
  7. AND <BLOCK> between block_id AND block_id+blocks-1;

  2. 决定修复方法

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

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

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

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

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

exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('<schema>','<tablename>');

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

  1. create table corrupt_table_bak   
  2. as 
  3. select * from corrupt_table;

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

drop table corrupt_table;

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

  1. alter table corrupt_table_bak  
  2. rename to corrupt_table;

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

  九、 操作系统相关维护

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

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

  &#61548; 如果Oracle提供网络服务,检查网络连接是否正常

  &#61548; 检查操作系统的资源使用情况是否正常

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

44/4<1234
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号