oracle数据检查,Oracle数据库日常检查文档

《Oracle数据库日常检查文档》由会员分享,可在线阅读,更多相关《Oracle数据库日常检查文档(7页珍藏版)》请在人人文库网上搜索。

1、数据库日常检查文档1. 检查表空间使用情况:1.1 检查是否开启自扩展功能:select tablespace_name,file_name,file_id,autoextensible, round(increment_by*8191)/(1024*1024),2)|M as 自扩展大小 M from dba_data_files;目的: 检查表空间是否开启自扩展功能。 若检查自扩展特别小,请用下面的方法把自扩展根据数据量增长情况调大。 alter database datafile 新增加数据文件路径 autoextendon next *M maxsize unlimited;- 把 *。

2、替换为你需要的自扩展大小1.2 检查表空间的使用情况:select a.tablespace_name,a.totals 总大小 M,b.frees 空闲大小 M, round(a.totals-b.frees)/a.totals,4)*100|% 使用率 from (select sum(bytes)/(1024*1024) as totals,tablespace_name from dba_data_filesgroup by tablespace_name) a,(select sum(bytes)/(1024*1024) as frees,tablespace_namefrom db。

3、a_free_spacegroup by tablespace_name) bwhere a.tablespace_name=b.tablespace_name ;目的: 当表空间没有开启自扩展功能时,表空间的使用率大于等于85%时,需要向表空间增加数据文件。开启自扩展功能的表空间,检查常用的表空间自扩展的大小不小于100M。注:检查 ulog 用户对应的表空间:select default_tablespacefrom dba_userswhere username=ULOG;Ulog 用户下的 tlog 表主要是记录日志的,因为大部分的报表涉及记录日志。所以, ulog 用户对应的表空间不。

4、管是开启还是未开启自扩展功能,当 ulog 对应的表空间的使用率大于 等于 85%时,就对性能有影响,考虑 truncate 释放空间或是扩空间。解决办法:手工降低使用率的方法:Alter database datafile数据文件的路径resize *M;另一种情况:当前的文件是开启自扩展的,但是要扩展的数据文件已经到达限制值32G了,此时的解决办法:alter tablespace表空间名 add datafile 新增加数据文件路径size 5120M;-向表空间中增加数据文件alter database datafile 新增加数据文件路径autoexte ndon next 100M。

5、 maxsize un limited;-开启自动扩展alter database datafile 达到最大值的数据文件路径AUTOEXTEND off;- 关闭之前文件的自扩展2. 定期检查磁盘的使用情况:2.1 Windows 下检查执行下面sql,获得数据文件的路径:select file_name from dba_data_files;85%时,清除数Win dows下直接检查数据文件所在的盘的总大小和可用空间,当使用率为 据文件所在的盘上无用的数据,或考虑增加硬件。2.2 Linux 或是 unix 下:Linux或是unix下检查oracle的安装所用的盘, 检查变量 ORAC。

6、LE_BAS所在目录的磁盘的 使用情况,当使用率大于或等于90%寸,需要清除无用的资料或是考虑增加硬件。例如,linux下用df命令:rootrac1 /# df文件系统1K-块已用可用已用%挂载点/dev/sda110115104867127292172491% /dev/sda2153984765604628899903639% /u01/oracletmpfs87164008716400% /dev/shm3. 常规检查:3.1检查是否有无效的对象:select owner as 用户,object_name as 对象名,object_type as 对象类型from dba_obje。

7、cts where status=INVAID;目的: 若查询有结果,对无效对象需要重新编译。Alter object_type owner.object_name compile;3.2 检查不可用的主键 :select owner,constraint_name,table_namefrom dba_constraintswhere status!=ENABLED and constraint_type=P;目的: 若查询有数据,执行下面语句的执行结果。constraintsselect alter table |owner|.|table_name| enable |constraint。

8、_name|;from dba_constraints where status!=ENABLED and constraint_type=P;3.3 检查不可用的触发器:select owner,trigger_name from dba_triggers where status!=ENABLED;目的: 若查询有数据,执行下面语句的执行结果。 select alter trigger |owner|.|trigger_name| enable; from dba_triggers where status!=ENABLED;3.4 检查 session 和 process:对照当前使用数。

9、和参数设置值: Select count(*) from v$session ; Select count(*) from v$process;数据库设置值:select name,value from v$parameter where name in(sessions,processes);注:以$开头的表需要是业务高峰时的数据对分析才有作用。注:现场工程在使用 pl/sql developer时,因多个sql窗口会增加sessions和process数,尽 量在一个 sql 窗口操作。3.5 检查 job:检查参数:当前数据库的并发可执行的 job 数量: select name,val。

10、uefrom v$parameterwhere name=job_queue_processes;查询当前数据中所有的 job:select * from dba_jobs;涉及检查项:log_useRM交任务的用户 ;PRIV_USER赋予任务权限的用户;SCHEMA_USER对任务作语法分析的用户模式;THIS_DATE表示正在运行任务的开始时间;LAST_DATE最后一次成功运行完此job的时间;NEXT_DATE下一次运行job的开始时间;INTERVAL用于计算下一运行时间的表达式;What:执行任务的PL/SQL块。结果判断:1、 若有创建在sys或是system用户下的业务job。

11、需要删除,重新创建在业务用户下。2、如果 Next_date是晚上21点执行的job,在第二天上午 9点查询dba_jobs表时, this_date 列不为空表示此 job 仍在执行。那么就需要优化 what 列显示的存储过程 了。3、 当FAILURE据动档早一前 辺数自啻駆下当 1=1列列 志志F 日日列select percent_space_usedfrom v$flash_recovery_area_usage where file_type=ARCHIVELOG;当空间使用百分比(percent_space_usec)为85%时,需要释放空间。若使用的是asm自动存储管理,检查空。

12、闲大小是否够用:select group_number,name,total_MB as 总大小,free_MB as 空闲大小from v$asm_diskgroup;3.8检查锁的情况:检查是否发生阻塞:select /*+ ordered*/sql_text, spid, p.pid, s.sid, s.user name, s.program, processfrom v$sqlarea q, v$sessi on s, v$process pwhere q.address = s.sql_addressand q.hash_value = s.sql_hash_valueand s.。

13、paddr = p.addrand exists (select sidfrom v$lockwhere block=1 and sid=s.sid);目的:若有结果,发回sql的执行结果,开发人员检查sql涉及的程序。导出结果后杀掉sessio n。杀 session 步骤:Alter system kill session SID,SERIAL# ;有时候杀掉 session 后, session 对应的进程好长时间不释放,占用资源,需要从操作系统级 杀掉 session:select spid, osuser, s.program from v$session s,v$process p。

14、 where s.paddr=p.addr and s.sid=&sid;1)在 unix 上,用 root 身份执行命令 :#kill -9 123(上面语句查询出的 spid)2)在 windows 用 orakill 杀死线程, orakill 是 oracle 提供的一个可执行命令,语法为: orakill sid thread 例如: orakill cangzhoucg 123检查是否有锁等待:select /*+ ordered*/sql_text, spid, p.pid, s.sid, s.username, s.program, processfrom v$sqlarea 。

15、q, v$session s, v$process pwhere q.address = s.sql_addressand q.hash_value = s.sql_hash_valueand s.paddr = p.addrand exists (select sidfrom v$lockwhere request 0 and block=sysdate-1 order by id desc;目的:检查 tlog 表的错误日志。6. 数据库连接不上时当发现连接不上数据库,若是单实例的从以下方面检查:1、 检查网络是否正常 ;2、 检查数据库目前的运行状态 ,若用 pl/sql 也连接不上时,采用 sqlplus 执行。 Select instance_name,status from v$instance;- 正常情况下 status 为 open 状态若是rac,首先检查集群服务是否都启动正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值