• Oracle数据库一样平常维护手册2


     起原:天极网





    六、搜检数据库守时作业的完成形态


    如果数据库运用了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 corrup_tatble;

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

    alter table corrupt_table_bak
    rename to corrupt_table;

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

    八、操作系统相干维护

    DBA要垂青对操作系统的监控:

    ●文件系统的空间运用形态(df -k),须要时对Oracle的警告日志及TRC文件举办收拾整顿

    ●如果Oracle提供收集做事,搜检收集跟尾能否正常

    ●搜检操作系统的资源运用形态能否正常

    ●搜检数据库做事器有没有硬件毛病,如磁盘、内存报错




    版权声明: 原创作品,答允转载,转载时请务必以超链接要领标明文章 原始来由 、作者信息和本声明。不然将追究司法责任。

  • 相关阅读:
    你加班太多是因为你的代码写的烂
    构建知识图谱,让自己更值钱
    程序员的年终总结该怎么写?
    一本开源的程序员快速成长秘笈
    vue项目框架搭建
    mysql的那点事儿,你知道吗
    idea快速返回上次代码查看的位置
    ajax、axios和fetch的区别
    java8 stream的用法总结
    正则表达式
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1976071.html
Copyright © 2020-2023  润新知