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提供收集做事,搜检收集跟尾能否正常

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

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




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

原文地址:https://www.cnblogs.com/zgqjymx/p/1976071.html