Oracle+DBA日常工作手册

上传人:206****923 文档编号:90603357 上传时间:2019-06-13 格式:DOC 页数:42 大小:3.20MB
返回 下载 相关 举报
Oracle+DBA日常工作手册_第1页
第1页 / 共42页
Oracle+DBA日常工作手册_第2页
第2页 / 共42页
Oracle+DBA日常工作手册_第3页
第3页 / 共42页
Oracle+DBA日常工作手册_第4页
第4页 / 共42页
Oracle+DBA日常工作手册_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《Oracle+DBA日常工作手册》由会员分享,可在线阅读,更多相关《Oracle+DBA日常工作手册(42页珍藏版)》请在金锄头文库上搜索。

1、Oracle DBA日常工作手册第一章 . 事前阶段一 、 日常工作每天应做工作内容1、工作内容日常环境监控1.1系统运行环境监控检查文件系统以及oracle数据库数据文件所在卷的使用(剩余空间),如果文件系统的剩余空间小于20%,需要删除不用的文件以释放空间;UNIX系统的文件系统及数据文件所在卷的空间使用率:su oraprod或者su - oratestAIX、linux查看磁盘空间:df k HP-UX查看磁盘空间:bdf1.2数据库运行状况监控1.2.1 外部确认所有的INSTANCE状态正常(保证实例正常),检查Oracle实例核心后台进程是否都存在、状态是否正常$ ps -ef|

2、grep oraprod查看数据库实例是否能正常连接、访问SQL select status,instance_name from v$instance;监听是否正常$ lsnrctl status1.2.2 内部是否所有表空间都处于online状态SQL select tablespace_name,status from dba_tablespaces;select file#,status,name from v$datafile_header; select file_name,status,tablespace_name from dba_data_files;如果数据文件的STAT

3、US列不是AVAILABLE或者ONLINE,那么就要采取相应的措施,如对该数据文件进行恢复操作,或重建该数据文件所在的表空间。Oracle数据库日志文件是否正常SQL Select * from v$log;SQL Select * from v$logfile;1).检查trace文件记录alert和trace文件中的错误。telnet 192.168.150.1 su oraprod在oraprod用户下$ cd到bdump目录,通常是$ORACLE_BASE/admin/bdump使用Unix的tail -f命令来查看alert_.log文件如果发现任何新的ORA- 错误,记录并解决2

4、).查看DBSNMP 的运行情况检查每个被管理机器的DBSNMP进程并将它们记录到日志中。在UNIX 中,在命令行中,键入ps ef | grep dbsnmp,将回看到2 个DBSNMP 进程在运行。如果没有,重启DBSNMP。(注意:此步骤在oraprod下只有1个进程,需要研究)3). 检查回滚段回滚段的状态一般是在线的,除了一些为复杂工作准备的专用段一般状态是离线的。a) 每个数据库都有一个回滚段名字的列表。b) 你可以用V$ROLLSTAT 来查询在线或是离线的回滚段的现在状态;1.2.3 日常操作1).不要在服务器上直接执行rm操作当有文件需要删除时,把这些文件mv到一个规定的文件

5、夹,然后CD进入此文件夹再进行删除操作。(注意:在rm日志文件时直接rm即可,若rm文件夹一定要rm r)2).数据库备份校验命令:rman target /连接到数据库,rmanrestore database validate;3).查看数据库连接信息定时对数据库的连接情况进行检查,看与数据库建立的会话数目是不是正常,如果建立了过多的连接,会消耗数据库的资源。同时,对一些“挂死”的连接,可能需要手工进行清理。以下的SQL语句列出当前数据库建立的会话情况:Select count(*) from v$session; 查看当前会话连接数select sid,serial#,username,

6、program,machine,status from v$session;其中, SID 会话(session)的ID号; SERIAL# 会话的序列号,和SID一起用来唯一标识一个会话; USERNAME 建立该会话的用户名; PROGRAM 这个会话是用什么工具连接到数据库的; STATUS 当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作; 如果DBA要手工断开某个会话,则执行: alter system kill session SID,SERIAL#; 注意: USERNAME列为空的会话,是Oracle的后台进程,不要对这些会

7、话进行任何操作4).查看并发会话量并发会话量正常时段为60以下,查询系统在20以下,如果超过这些指标,则认为系统有阻塞情况,需要查找原因,引起关注。查询系统并发的脚本为:select count(1) from v$session where status=ACTIVE and username not in(SYS,SYSTEM);5).查看是否有僵死进程select spid from v$process where addr not in (select paddr from v$session);有些僵死进程有阻塞其他业务的正常运行,定期杀掉僵死进程6).检查数据库定时作业的完成情况如

8、果数据库使用了Oracle的JOB来完成一些定时作业,要对这些JOB的运行情况进行检查:select job,log_user,last_date,failuresfrom dba_jobs;如果FAILURES列是一个大于0的数的话,说明JOB运行失败,要进一步的检查。7).控制文件的备份在数据库结构发生变化时,如增加了表空间,增加了数据文件或重做日志文件这些操作,都会造成Oracle数据库控制文件的变化,DBA应及进行控制文件的备份,备份方法是: 执行SQL语句:alter database backup controlfile to /home/backup/control.bak; 或

9、: alter database backup controlfile to trace; 这样,会在USER_DUMP_DEST(初始化参数文件中指定)目录下生成创建控制文件的SQL命令。8).数据库坏块的处理当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 其中,AFN代表坏块

10、所在数据文件的绝对文件号,代表坏块是数据文件上的第几个数据块出现这种情况时,应该首先检查是否是硬件及操作系统上的故障导致Oracle数据库出现坏块。在排除了数据库以外的原因后,再对发生坏块的数据库对象进行处理。解决方式:1确定发生坏块的数据库对象 SELECT tablespace_name,segment_type,owner,segment_nameFROM dba_extentsWHERE file_id = AND between block_id AND block_id+blocks-1;2决定修复方法 如果发生坏块的对象是一个索引,那么可以直接把索引DROP掉后,再根据表里的记录

11、进行重建; 如果发生坏块的表的记录可以根据其它表的记录生成的话,那么可以直接把这个表DROP掉后重建; 如果有数据库的备份,则恢复数据库的方法来进行修复; 如果表里的记录没有其它办法恢复,那么坏块上的记录就丢失了,只能把表中其它数据块上的记录取出来,然后对这个表进行重建。 3用Oracle提供的DBMS_REPAIR包标记出坏块 exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS(,); 4使用Create table as select命令将表中其它块上的记录保存到另一张表上 create table corrupt_table_bak as select * from

12、 corrupt_table; 5用DROP TABLE命令删除有坏块的表 drop table corrupt_table; 6用alter table rename命令恢复原来的表 alter table corrupt_table_bak rename to corrupt_table; 7如果表上存在索引,则要重建表上的索引 1.3 检查oracle数据库表空间的使用情况1.3.1 检查表空间的使用情况1、查询表空间的总容量select tablespace_name,sum(bytes)/1024/1024 MB from dba_data_filesgroup by tablesp

13、ace_name;2、查询表空间未使用的大小select tablespace_name,sum(bytes)/1024/1024 MB from dba_free_spacegroup by tablespace_name;3、(一)查看表空间已经使用的百分比select a.tablespace_name,a.bytes/1024/1024 Sum MB,(a.bytes-b.bytes)/1024/1024 used MB,b.bytes/1024/1024 free MB,round(a.bytes-b.bytes)/a.bytes)*100,2)percent_used from (

14、select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) bwhere a.tablespace_name=b.tablespace_nameorder by (a.bytes-b.bytes)/a.bytes) desc (二)查看表空间空闲百分比select a.t

15、ablespace_name,round(a.total_size) total_size(MB),round(a.total_size)-round(b.free_size,3) used_size(MB),round(b.free_size,3) free_size(MB),round(b.free_size/total_size*100,2)|% free_ratefrom (select tablespace_name,sum(bytes)/1024/1024 total_size from dba_data_files group by tablespace_name) a,(select tablespace_name,sum(bytes)/1024/1024 free_size from dba_free_space group by tablespace_name) bwhere a.tables

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号