oracle数据管理日常工作手册DBA.docx

上传人:b****5 文档编号:10164902 上传时间:2023-02-09 格式:DOCX 页数:8 大小:20KB
下载 相关 举报
oracle数据管理日常工作手册DBA.docx_第1页
第1页 / 共8页
oracle数据管理日常工作手册DBA.docx_第2页
第2页 / 共8页
oracle数据管理日常工作手册DBA.docx_第3页
第3页 / 共8页
oracle数据管理日常工作手册DBA.docx_第4页
第4页 / 共8页
oracle数据管理日常工作手册DBA.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

oracle数据管理日常工作手册DBA.docx

《oracle数据管理日常工作手册DBA.docx》由会员分享,可在线阅读,更多相关《oracle数据管理日常工作手册DBA.docx(8页珍藏版)》请在冰豆网上搜索。

oracle数据管理日常工作手册DBA.docx

oracle数据管理日常工作手册DBA

 

日常工作手册

 

文档控制

修改记录

 

审阅

姓名

职位

 

工作内容

每天的工作

检查数据库状态 

确认所有的INSTANCE状态以及listener状态正常,登陆到所有数据库或例程,检测ORACLE后台进程:

$ps–ef|grepora

$lsnrctlstatus

SQL〉selectstatusfromv$instance;

检查文件系统

如果文件系统的剩余空间过小或增长较快,需对其进行确认并删除不用的文件以释放空间。

$df–k

$df—h

检查警告日志文件(alert_SID。

log)

Oracle在运行过程中,会在警告日志文件(alert_SID。

log)中记录数据库的一些运行情况:

数据库的启动、关闭,启动时的非缺省参数;数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因;对数据库进行的某些操作,如创建或删除表空间、增加数据文件;

数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA-600)定期检查日志文件,根据日志中发现的问题及时进行处理

问题

处理

启动参数不对

检查初始化参数文件

因为检查点操作或归档操作没有完成造成重做日志不能切换

如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率;

有人XX删除了表空间

检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限

出现坏块

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

表空间不够

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

出现ORA-600

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

alert_SID。

log通常是在$ORACLE_BASE/admin/

使用Unix‘tail’或者more命令查看该日志信息(为了方便查询,每天查询后将查询的日志mv到与日志同一目录下的bak目录下);

定期检查警告日志、TRC文件及listener日志

如果这些日志量非常大,占用很大的资源空间,可考虑定期删除以便释放资源。

一般情况下这些文件存在的相关目录:

警告日志:

$ORACLE_BASE/admin/

或者

通过SQL>showparameterbackground_dump_dest参数查看其存放位置;

Trc文件:

$ORACLE_BASE/admin/

或者

通过SQL〉showparameteruser_dump_dest参数查看其存放位置;

Listener日志:

$ORACLE_HOME/network/log

查看数据库连接信息

定时对数据库的连接情况进行检查,看与数据库建立的会话数目是不是正常,如果建立了过多的连接,会消耗数据库的资源。

同时,对一些“挂死”的连接,可能需要手工进行清理.

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

Selectcount(*)fromv$session;――查看当前会话连接数

selectsid,serial#,username,program,machine,statusfromv$session;

SIDSERIAL#USERNAMEPROGRAMMACHINESTATUS

————-—-—-—--—-—-—————-—---———-————————————--————---—————-——————--—-——-——--

13oracle@xz15saledb(PMON)xz15saledbACTIVE

23oracle@xz15saledb(DBW0)xz15saledbACTIVE

33oracle@xz15saledb(DBW1)xz15saledbACTIVE

43oracle@xz15saledb(LGWR)xz15saledbACTIVE

53oracle@xz15saledb(CKPT)xz15saledbACTIVE

63oracle@xz15saledb(SMON)xz15saledbACTIVE

73oracle@xz15saledb(RECO)xz15saledbACTIVE

81oracle@xz15saledb(CJQ0)xz15saledbACTIVE

93oracle@xz15saledb(ARC0)xz15saledbACTIVE

103oracle@xz15saledb(ARC1)xz15saledbACTIVE

1111319ZKAccPrtInv_svr@xz15tuxedo2(TNSV1-V3)xz15tuxedo2INACTIVE

1348876ZGupload@xz15saleap(TNSV1—V3)xz15saleapINACTIVE

1720405ZKAccCreateRpt@xz15tuxedo1(TNSV1—V3)xz15tuxedo1INACTIVE

2012895ZKOweScanSvr@xz15billdb(TNSV1—V3)xz15billdbINACTIVE

其中,

SID会话(session)的ID号;

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

USERNAME建立该会话的用户名;

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

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

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

(一般不建议使用这种方式去杀掉数据库的连接,这样有时候session不会断开.容易引起死连接。

建议通过sid查到操作系统的spid,使用ps–ef|grepspidno的方式确认spid不是ORACLE的后台进程。

使用操作系统的kill-9命令杀掉连接)

altersystemkillsession'SID,SERIAL#';

注意:

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

检查数据库当日备份的有效性。

对RMAN备份方式:

检查第三方备份工具的备份日志以确定备份是否成功

对EXPORT备份方式:

检查exp日志文件以确定备份是否成功

对其他备份方式:

检查相应的日志文件

检查数据文件的状态

SQL>selectfile_name,statusfromdba_data_files;

SQL〉selectcount(*)fromdba_data_files;

SQL〉selectcount(*)fromdba_data_fileswherestatus='AVAILABLE’;

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

检查表空间的使用情况

select

f。

tablespace_name,

a.total,

f。

free,

round((f。

free/a.total)*100)"%Free”

from

(selecttablespace_name,sum(bytes/(1024*1024))totalfromdba_data_filesgroupbytablespace_name)a,

(selecttablespace_name,round(sum(bytes/(1024*1024)))freefromdba_free_spacegroupbytablespace_name)f

WHEREa。

tablespace_name=f.tablespace_name(+)

orderby"%Free"

检查数据库的等待事件

setpages80

setlines120

coleventfora40

selectsid,event,p1,p2,p3,WAIT_TIME,SECONDS_IN_WAITfromv$session_waitwhereeventnotlike'SQL%’andeventnotlike’rdbms%'

如果数据库长时间持续出现大量像latchfree,enqueue,bufferbusywaits,dbfilesequentialread,dbfilescatteredread等等待事件时,需要对其进行分析,可能存在问题的语句。

锁表问题的处理

查询目前锁对象信息,更细节的锁处理方式请查看工作中长用脚本

colsidfor999999

colusernamefora10

colschemanamefora10

colosuserfora16

colmachinefora16

colterminalfora20

colownerfora10

colobject_namefora30

colobject_typefora10

selectsid,serial#,username,SCHEMANAME,osuser,MACHINE,

terminal,PROGRAM,owner,object_name,object_type,o。

object_id

fromdba_objectso,v$locked_objectl,v$sessions

whereo。

object_id=l.object_idands.sid=l。

session_id;

解锁处理:

altersystemkillsession’&sid,&serial#’;

检查数据库性能,记录数据库的cpu使用、IO、buffer命中率等等

使用vmstat,iostat,sar,top等命令进行信息收集并检查这些信息,判断资源使用情况。

查看是否有僵死进程

selectspidfromv$processwhereaddrnotin(selectpaddrfromv$session);

有些僵尸进程有阻塞其他业务的正常运行,定期杀掉僵尸进程

每周的工作

监控数据量的增长情况

根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施

-—-删除历史数据

规定数据库中至少保留6个月的历史数据,所以以前的历史数据可以考虑备份然后进行清除以便释放其所占的资源空间。

--—扩表空间

altertablespace〈tablespace_name>adddatafile‘〈file〉'size〈size〉autoextendoff;

注意:

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

执行SQL语句:

alterdatabasebackupcontrolfileto’/home/backup/control。

bak’;

或:

alterdatabasebackupcontrolfiletotrace;

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

检查无效的数据库对象

SELECTowner,object_name,object_typeFROMdba_objectsWHEREstatus=’INVALID’;

检查不起作用的约束

SELECTowner,constraint_name,table_name,constraint_type,status

FROMdba_constraints

WHEREstatus=’DISABLE'andconstraint_type='P’;

检查无效的trigger

SELECTowner,trigger_name,table_name,statusFROMdba_triggersWHEREstatus='DISABLED’;

检查数据库定时作业的完成情况

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

selectjob,log_user,last_date,failures

fromdba_jobs;

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

每月的工作

寻找数据库性能调整的机会

使用statspack收集统计数据,比较每天对数据库性能的监控报告,确定是否有必要对数据库性能进行调整

数据库性能调整

如有必要,进行性能调整

提出下一步空间管理计划

根据每周的监控,提出空间管理的改进方法

每季度的工作

附录

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1