数据库日巡检checklist
数据库日常巡检文档

日常巡检OS操作系统1.查看文件系统使用率df –g(主要看存放数据文件的文件系统和归档的文件系统)2.查看系统负载情况 topas数据库DB查看警告日志里面是否包含ORA-600Bcsp 147sudo cat /oracle/admin/cdc/bdump/alert_cdc.log | grep ora-600查看alert日志里面有没有错误信息sudo cat /oracle/admin/cdc/bdump/alert_cdc.log数据库版本信息select * from v$version;数据库初始化参数Sql> show parameters spfileSelect * from v$parameters查询控制文件select * from v$controlfile;STATUS NAME BLOCK_SIZE------- ------------------------------------------------/datafs/cdc/control01.ctl 16384/datafs/cdc/control02.ctl 16384/datafs/cdc/control03.ctl 16384查询redoselect * from v$log;GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE#1 1 579893 52428800 1 YES INACTIVE 517039186492 1 579895 52428800 1 NO INACTIVE 517043526423 1 579891 52428800 1 YES INACTIVE 517036980624 1 579894 52428800 1 YES CURRENT 517041807405 1 579889 52428800 1 YES CURRENT 517035660316 1 579890 52428800 1 YES CURRENT 517036334417 1 579892 52428800 1 YES CURRENT 51703761803select * from v$logfile;GROUP# STATUS TYPE MEMBER IS_RECOVERY_DEST_FILE3 ONLINE /datafs/cdc/redo03.log NO2 ONLINE /datafs/cdc/redo02.log NO1 ONLINE /datafs/cdc/redo01.log NO4 ONLINE /datafs/cdc/redo04.log NO5 ONLINE /datafs/cdc/redo05.log NO6 ONLINE /datafs/cdc/redo06.log NO7 ONLINE /datafs/cdc/redo07.log NOUndo管理SQL> show parameters undoNAME TYPE VALUEundo_management string AUTOundo_tablespace string undotbs1select status, file_id, file_name, tablespace_name ts_name, autoextensible, blocks/128 cur_mb, maxblocks/128 max_mbfrom dba_data_files where tablespace_name=’UNDOTBS1’ order by file_name;查看redo切换频率和归档的切换频率//redo切换频率SELECT MAX (first_time) max_first_time,TO_CHAR (first_time, 'yyyy-mm-dd') DAY,COUNT (recid) count_number,COUNT (recid) * 50 size_mbFROM v$log_historyWHERE thread# = 3GROUP BY TO_CHAR (first_time, 'yyyy-mm-dd')ORDER BY 1;//归档切换频率SELECT TRUNC (first_time) "Date", TO_CHAR (first_time, 'Dy') "Day", COUNT (1) "Total",SUM (DECODE (TO_CHAR (first_time, 'hh24'), '00', 1, 0)) "h0", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '01', 1, 0)) "h1", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '02', 1, 0)) "h2", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '03', 1, 0)) "h3", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '04', 1, 0)) "h4", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '05', 1, 0)) "h5", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '06', 1, 0)) "h6", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '07', 1, 0)) "h7", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '08', 1, 0)) "h8", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '09', 1, 0)) "h9", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '10', 1, 0)) "h10", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '11', 1, 0)) "h11", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '12', 1, 0)) "h12", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '13', 1, 0)) "h13", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '14', 1, 0)) "h14", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '15', 1, 0)) "h15", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '16', 1, 0)) "h16", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '17', 1, 0)) "h17", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '18', 1, 0)) "h18", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '19', 1, 0)) "h19", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '20', 1, 0)) "h20", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '21', 1, 0)) "h21", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '22', 1, 0)) "h22", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '23', 1, 0)) "h23", ROUND (COUNT (1) / 24, 2) "Avg"FROM gv$log_historyWHERE thread# = inst_idAND inst_id= 3AND first_time >= sysdate -7GROUP BY TRUNC (first_time), TO_CHAR (first_time, 'Dy')ORDER BY 1;表空间使用率(包括临时表空间使用率)--查询表空间使用率包括临时表空间SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)",ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2) "USED_RATE(%)",FREE_SPACE "FREE_SPACE(M)"FROM(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKSFROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME) D,(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) FREE_SPACE FROM DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) FWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)UNION ALL --if have tempfileSELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,USED_SPACE "USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2) "USED_RATE(%)",NVL(FREE_SPACE,0) "FREE_SPACE(M)"FROM(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKSFROM DBA_TEMP_FILESGROUP BY TABLESPACE_NAME) D,(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2) USED_SPACE, ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACEFROM V$TEMP_SPACE_HEADERGROUP BY TABLESPACE_NAME) FWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)数据文件管理select distinct block_size from dba_tablespaces;8192set linesize 110 pagesize 50col file_id for 9999999col file_name for a48col ts_name for a18col cur_mb for 99999col max_mb for 99999select status, file_id, file_name, tablespace_name ts_name, autoextensible,blocks/128 cur_mb, maxblocks/128 max_mbfrom dba_data_files order by file_name;STATUS FILE_ID FILE_NAME TS_NAME AUTOEXTENSIBLE CUR_MB MAX_MB AVAILABLE 5 /datafs/cdc/csk_base01.dbf CSK_BASE NO 30720 0 AVAILABLE 68 /datafs/cdc/csk_bill_data01.dbf CSK_BILL_DATA NO 22528 0 AVAILABLE 69 /datafs/cdc/csk_bill_data02.dbf CSK_BILL_DATA NO 22528 0临时文件管理select status, file_id, file_name, tablespace_name ts_name, autoextensible,blocks/128 cur_mb, maxblocks/128 max_mbfrom dba_temp_files order by file_name;查询数据库无效对象无效对象统计select count(*) from dba_objects where status='INVALID';COUNT(*)168select owner,count(*) from dba_objects where status='INVALID' group by owner;OWNER COUNT(*)PUBLIC 19ZHCARD 72DSELL 4EISS 52EISSOS 21查询出用户下的无效对象select owner,object_name, replace (object_type,' ','') object_type,to_char(created,'yyyy-mm-dd') as created,to_char(last_ddl_time,'yyyy-mm-dd') as last_ddl_time,statusfrom dba_objects where status='INVALID' and owner='ZHCARD';OWNER OBJECT_NAME OBJECT_TYPEZHCARD PRC_BILLRULE_SMS PROCEDUREZHCARD PRC_HQT_JKA_YHS_DEAL PROCEDUREZHCARD PRC_ISSU_ALL_BASE_0050 PROCEDUREZHCARD PRC_ISSU_ALL_BASE_0033 PROCEDURE行迁移和行链接查询统计select owner, table_name, tablespace_name, chain_cnt from dba_tables where chain_cnt >0;查询索引深度索引深度越小,对数据库影响较小select OWNER||'.'||index_name as "OWNER.INDEX_NAME", blevel from dba_indexes where blevel>=4 order by 2 desc;安全性管理拥用SYSDBA权限的用户列表:select * from v$pwfile_users;USERNAME SYSDBA SYSOPERSYS TRUE TRUE拥用DBA权限的用户列表:col admin_option for a12col default_role for a12select * from dba_role_privs where granted_role='DBA';GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLESYSTEM DBA YES YESZHCARD DBA NO YESSYSMAN DBA NO YESSYS DBA YES YES比较消耗资源的sqlPhysical Readsselect ername 用户名,a.disk_reads 磁盘读取量,a.executions 执行时间,a.disk_reads/decode(a.executions,0,1,a.executions) 单位读取数,a.sql_text SQL语句from v$sqlarea a,dba_users bwhere a.parsing_user_id = er_idand a.disk_reads >10000order by disk_reads desc;Buffer Getsselect ername 用户名,a.buffer_gets buffer读取量,a.executions 执行时间,a.buffer_gets/decode(a.executions,0,1,a.executions) 单位读取数,a.sql_text SQL语句from v$sqlarea a,dba_users bwhere a.parsing_user_id = er_idand a.buffer_gets >10000order by buffer_gets desc;查看某个表空间下有多少表select * from all_tables where tablespace_name='TRAIN';查看某个表空间下,某个用户有多少表select * from all_tables where tablespace_name='TRAIN' and owner='TRAIN'; 数据库已经安装的产品信息select * from v$option;查最近一周每天的归档日志生成量select logtime,count(*),round(sum(blocks * block_size) / 1024 / 1024) mbsizefrom (select trunc(first_time, 'dd') as logtime, a.BLOCKS, a.BLOCK_SIZEfrom v$archived_log awhere a.DEST_ID = 1and a.FIRST_TIME > trunc(sysdate - 7))group by logtimeorder by logtime desc;查当天每小时的各个实例的归档日志生成量select THREAD#,logtime,count(*),round(sum(blocks * block_size) / 1024 / 1024) mbsizefrom (select a.THREAD#,trunc(first_time, 'hh') as logtime,a.BLOCKS,a.BLOCK_SIZEfrom v$archived_log awhere a.DEST_ID = 1and a.FIRST_TIME > trunc(sysdate))group by THREAD#, logtimeorder by THREAD#, logtime desc;查最近一周每天的各个实例的归档日志生成量Sql代码select THREAD#,logtime,count(*),round(sum(blocks * block_size) / 1024 / 1024) mbsizefrom (select THREAD#,trunc(first_time, 'dd') as logtime,a.BLOCKS,a.BLOCK_SIZEfrom v$archived_log awhere a.DEST_ID = 1and a.FIRST_TIME > trunc(sysdate - 7))group by THREAD#, logtimeorder by THREAD#, logtime desc;无效JOB (BroKen/FAILURES)情况统计SELECT JOB, WHAT, NEXT_DATE, BROKEN, FAILURESFROM DBA_JOBSWHERE BROKEN = 'Y'OR FAILURES > 0无效对象情况统计SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, LAST_DDL_TIMEFROM DBA_OBJECTSWHERE STATUS = 'INVALID' and LAST_DDL_TIME>to_date('20100101','yyyymmdd')无效索引情况统计set linesize 300col index_name format a30col owner format a10col table_name format a30col tablesapce_name format a20select index_name,owner,table_name,tablespace_name from dba_indexes where owner not in ('SYS','SYSTEM') and status !='VALID';无效约束情况统计SELECT owner,constraint_name,table_name,constraint_type,statusFROM dba_constraintsWHERE status = 'DISABLED'所有在线实例区情况统计SELECTinst_id, instance_number inst_no, instance_name inst_name, parallel, status, database_status db_status, active_state state, host_name hostFROM gv$instanceORDER BY inst_id数据库SID,创建时间,日志归档模式select name, created, log_mode from v$database;数据库总数据量情况统计select round(sum(space)) all_space_M from(select sum(bytes)/1024/1024 space from dba_data_filesunion allselect nvl(sum(bytes)/1024/1024,0) space from dba_temp_filesunion allselect sum(bytes)/1024/1024 space from v$log)表空间使用率情况统计(MB)SELECT A.TABLESPACE_NAME,FILENUM,TOTAL "TOTAL (MB)",F.FREE "FREE (MB)",TO_CHAR(ROUND(FREE * 100 / TOTAL, 2), '990.00') "FREE%",TO_CHAR(ROUND((TOTAL - FREE) * 100 / TOTAL, 2), '990.00') "USED%",ROUND(MAXSIZES, 2) "MAX (MB)"FROM (SELECT TABLESPACE_NAME,COUNT(FILE_ID) FILENUM,SUM(BYTES / (1024 * 1024)) TOTAL,SUM(MAXBYTES) / 1024 / 1024 MAXSIZESFROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME) A,(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / (1024 * 1024))) FREEFROM DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) FWHERE A.TABLESPACE_NAME = F.TABLESPACE_NAME查询当前有几个用户正在使用临时表空间select tablespace_name,current_users,total_blocks,used_blocks,free_blocks from v$sort_segment;查询表空间的使用情况包括临时表空间的情况SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)",ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2) "USED_RATE(%)",FREE_SPACE "FREE_SPACE(M)" FROM(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS FROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME) D,(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) FREE_SPACEFROM DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) FWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)UNION ALL --if have tempfileSELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,USED_SPACE "USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2) "USED_RATE(%)", NVL(FREE_SPACE,0) "FREE_SPACE(M)"FROM(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS FROM DBA_TEMP_FILESGROUP BY TABLESPACE_NAME) D,(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2) USED_SPACE, ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACEFROM V$TEMP_SPACE_HEADERGROUP BY TABLESPACE_NAME) FWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)检查临时文件情况set linesize 200column file_name format a55column tablespace_name format a20select a.tablespace_name,a.file_name,round(a.bytes/(1024*1024*1024),2) total_g,round(sum(nvl(b.bytes,0))/(1024*1024*1024),2) free_g,round((a.bytes/(1024*1024*1024) - sum(nvl(b.bytes,0))/(1024*1024*1024)),2) used_g,round(((a.bytes/(1024*1024*1024) - sum(nvl(b.bytes,0))/(1024*1024*1024)))/a.bytes/(1024*1024*1024),2) free_gfrom dba_temp_files a,dba_free_space bwhere a.file_id = b.file_id(+)group by a.tablespace_name,a.file_name,a.bytesorder by a.tablespace_name;检查哪个会话正在使用临时表空间SELECT ERNAME,S.SID || ',' || S.SERIAL# SID_SERIAL,T.TABLESPACE,T.BLOCKS * TBS.BLOCK_SIZE/1024/1024 USED_Mb,sum(T.BLOCKS * TBS.BLOCK_SIZE/1024/1024) over() total_used_mb,s.machine,s.program,Q.SQL_ID,Q.ADDRESS,Q.HASH_VALUE,Q.SQL_TEXT,T.segtype,T.contentsFROM V$SORT_USAGE T, V$SESSION S, V$SQLAREA Q, DBA_TABLESPACES TBS WHERE T.SESSION_ADDR = S.SADDRAND s.SQL_ADDRESS = Q.ADDRESSand s.SQL_HASH_VALUE=q.HASH_VALUEAND T.TABLESPACE = TBS.TABLESPACE_NAMEORDER BY T.BLOCKS * TBS.BLOCK_SIZE/1024/ 1024 DESC;数据库总连接数情况统计数据库总连接数情况统计---当前连接数------------select count(*) from v$sessionprompt ---最大连接数------------select value from v$parameter where name='processes';Redo Log 情况统计col member for a56select f.member "member",f.group# "group",l.bytes/1024/1024 "size",l.statusfrom v$logfile f, v$log lwhere f.group#=l.group#order by f.group#,f.memberIO情况检查col file_name for a46select file_name,fs.phyrds reads,fs.phywrts writes,(fs.readtim/decode(fs.phyrds,0,-1,fs.phyrds)) readtime,(fs.writetim/decode(fs.phywrts,0,-1,fs.phywrts)) writetimefromv$datafile df,v$filestat fswhere df.file#=fs.file#order by Shared Pool Size命中率select round((sum(gets)-sum(reloads))/sum(gets)*100,1) "libiary cache hit ratio %" from v$librarycache where namespacein ('SQL AREA','TABLE/PROCEDURE','BODY','TRIGGER')数据字典命中率select round((1-sum(getmisses)/sum(gets))*100,1) "data dictionary hit ratio %" from v$rowcache锁竞争select substr(,1,25) Name,l.gets, l.misses,100*(l.misses/l.gets) "% Ratio (STAY UNDER 1%)"from v$latch l, v$latchname lnwhere in ('cache buffers lru chain')and tch# = tch#;排序命中率select a.value "Sort(Disk)", b.value "Sort(Memory)",round(100*(a.value/decode((a.value+b.value), 0,1,(a.value+b.value))),2) "% Ratio (STAY UNDER 5%)"from v$sysstat a, v$sysstat bwhere = 'sorts (disk)'and = 'sorts (memory)'DATA BUFFER数据缓冲区命中率select round((1-(phy.value/(cur.value+con.value)))*100,1)||'%' ratiofrom v$sysstat phy,v$sysstat cur,v$sysstat conwhere ='physical reads' and ='db block gets' and ='consistent gets' Miss LRU Hit命中率情况统计column "Miss LRU Hit%" format 99.9999999;col name format a40select name, (sleeps/gets) "Miss LRU Hit%"from v$latch where name ='cache buffers lru chain'检查内存排序性能select , to_char(value)from v$statname a, v$sysstatwhere a.statistic# = v$sysstat.statistic#and in ('sorts (disk)', 'sorts (memory)', 'sorts (rows)')Redo Log Buffer Retry Ratio 情况统计select to_char(r.value/e.value) "redo log buffer retry ratio"from v$sysstat r,v$sysstat ewhere ='redo buffer allocation retries'and ='redo entries'等待事件检查情况统计select count(*) total_in_wait from v$session_waitwhere event='log buffer space';select event,total_waits,time_waited,average_waitfrom v$system_eventwhere event like '%undo%';select sid,seq#,event,WAIT_TIME,SECONDS_IN_WAIT from v$session_wait where event not like 'SQL%'and event not like 'rdbms%'查询Lock锁情况统计SELECT lpad(' ',DECODE(request,0,0,1))||sid sess, id1, id2, lmode, request, typeFROM V$LOCKWHERE id1 IN (SELECT id1 FROM V$LOCK WHERE lmode = 0)ORDER BY id1, request检查是否存在死锁set linesize 200column oracle_username for a16column os_user_name for a12column object_name for a30SELECT l.xidusn, l.object_id,l.oracle_username,l.os_user_name,l.process,l.session_id,s.serial#, l.locked_mode,o.object_nameFROM v$locked_object l,dba_objects o,v$session swhere l.object_id = o.object_id and s.sid = l.session_id;select ername||' '||t2.sid||' '||t2.serial#||' '||t2.logon_time||' '||t3.sql_textfrom v$locked_object t1,v$session t2,v$sqltext t3where t1.session_id=t2.sidand t2.sql_address=t3.addressorder by t2.logon_time检查是否存在enqueueselect eq_type "lock",total_req# "gets",total_wait# "waits",cum_wait_time from v$enqueue_stat where total_wait#>0检查是否存在大量长事务set linesize 200column name for a16column username for a10select ,b.xacts,c.sid,c.serial#,ername,d.sql_textfrom v$rollname a,v$rollstat b,v$session c,v$sqltext d,v$transaction ewhere n=nand n=e.XIDUSNand c.taddr=e.addrand c.sql_address=d.ADDRESSand c.sql_hash_value=d.hash_valueorder by ,c.sid,d.piece检查是否存在大事务select sid,serial#,to_char(start_time,'yyyy-mm-dd hh24:mi:ss') start_time,sofar,totalwork,(sofar/decode(totalwork,0,1,totalwork))*100 ratio,messagefrom v$session_longopswhere message like '%RMAN%';select sid,serial#,to_char(start_time,'yyyy-mm-dd hh24:mi:ss') start_time,sofar,totalwork,(sofar/decode(totalwork,0,1,totalwork))*100 ratio,messagefrom v$session_longopswhere sofar <> totalwork and (sofar/totalwork)*100 < 100;检查是否执行时间过长的事务set linesize 120column begin_time for a26column end_time for a26select a.recid,to_char(a.first_time,'yyyy-mm-dd hh24:mi:ss') begin_time,b.recid,to_char(b.first_time,'yyyy-mm-dd hh24:mi:ss') end_time,round((b.first_time - a.first_time)*24*60,2) minutesfrom v$log_history a,v$log_history bwhere b.recid = a.recid+1order by minutes检查SQL读磁盘的频率select ername,b.disk_reads,b.executions,round((b.disk_reads/decode(b.executions,0,1,b.executions)),2) disk_read_ratio,b.sql_textfrom dba_users a,v$sqlarea bwhere er_id = b.parsing_user_idand disk_reads > 5000检查数据文件IO情况col tbs for a12;col name for a46;select c.tablespace_name tbs,,a.phyblkrd+a.phyblkwrt Total,a.phyrds,a.phywrts,a.phyblkrd,a.phyblkwrtfrom v$filestat a,v$datafile b,dba_data_files cwhere b.file# = a.file#and b.file# = c.file_idorder by tablespace_name,a.file#select ,phyrds,phywrts,phyblkrd,phyblkwrt,singleblkrds,readtim,writetimfrom v$filestat fs,v$dbfile dfwhere fs.file#=df.file# order by select substr(a.file#,1,2) "#", substr(,1,30) "Name",a.status, a.bytes,b.phyrds, b.phywrtsfrom v$datafile a, v$filestat bwhere a.file# = b.file#检查磁盘的IO情况select substr(,1,13) disk,c.tablespace_name,a.phyblkrd+a.phyblkwrt Total,a.phyrds,a.phywrts,a.phyblkrd,a.phyblkwrt,((a.readtim/decode(a.phyrds,0,1,a.phyblkrd))/100) avg_rd_time, ((a.writetim/decode(a.phywrts,0,1,a.phyblkwrt))/100) avg_wrt_timefrom v$filestat a,v$datafile b,dba_data_files cwhere b.file# = a.file#and b.file# = c.file_idorder by disk,c.tablespace_name,a.file#检查SQL的Buffer读取情况select ername,round(b.buffer_gets/(1024*1024),2) buffer_gets_M,b.sql_textfrom dba_users a,v$sqlarea bwhere er_id = b.parsing_user_idand b.buffer_gets > 5000000检查数据库大表分区情况(表行数大于500万)col table_name format a30col def_tablespace_name format a30col owner format a10select table_name,owner,def_tablespace_name,partition_countfrom dba_part_tables awhere a.table_name='select table_name from all_tables where num_rows>10000;检查数据库大表情况(表行数大于500万)set linesize 200col table_name format a30col owner format a20col tablespace_name format a30select table_name,owner,tablespace_name,num_rows from all_tables where num_rows>5000000查看碎片程度高的表col segment_name format a30col table_name format a30select segment_name table_name , COUNT(*) extentsfrom dba_segmentswhere owner NOT IN ('SYS', 'SYSTEM')group by segment_nameHAVING COUNT(*) = (SELECT MAX(COUNT(*)) FROM dba_segments GROUP BY segment_name) 查看占用CPU最多的sessionset linesize 100col status format 10col prog fommat a10col terminal format a30col osuser format a20select a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100 valuefrom v$session a,v$process b,v$sesstat cwhere c.statistic#=12 andc.sid=a.sid anda.paddr=b.addrorder by value desc;检查系统连接响应情况select METRIC_NAME,VALUE from SYS.V_$SYSMETRICwhere METRIC_NAME IN ('Database CPU Time Ratio','Database Wait Time Ratio')AND INTSIZE_CSEC = (select max(INTSIZE_CSEC) from SYS.V_$SYSMETRIC);检查数据库最近1小时的总性能和响应情况select end_time,valuefrom sys.v_$sysmetric_historywhere metric_name = 'Database CPU Time Ratio'order by 1;prompt *******下面的查询包含了更多的详细的响应时间数据。
数据库巡检方案

Oracle数据库日常检查A. 查看所有的实例及其后台进程是否正常确认所有的instance工作正常,登陆到所有的数据库或instance上,检测oracle后台进程$env | grep SIDORACLE_SID=UWNMS3B.检查文件系统的使用情况如果文件系统的剩余空间小于10%,则需要删除不必要的文件以释放空间。
$df -hFilesystem size used avail capacity Mounted on/dev/md/dsk/d0 20G 17G 3.1G 85% //proc 0K 0K 0K 0% /procmnttab 0K 0K 0K 0% /etc/mnttabfd 0K 0K 0K 0% /dev/fdswap 85G 192K 85G 1% /var/rundmpfs 85G 0K 85G 0% /dev/vx/dmpdmpfs 85G 0K 85G 0% /dev/vx/rdmpswap 85G 213M 85G 1% /tmp/dev/vx/dsk/data10dg/Ora_File_Vol01394G 292G 98G 75% /data05/dev/vx/dsk/data1dg/vola0131443G 156G 283G 36% /archivelogAIX:$df –g or df –kHP-UX$bdf or df –k or df -h注意:需要特别关注根目录,数据库软件和数据库备份所在目录的剩余空间情况!备注:数据库运行日志的及时清除1). 可清除bdump,cdump,udump下的相关日志$ cd $ORACLE_BASE/admin/db_name/bdump$ ls -ltotal 174-rwxrwxrwx 1 oracle dba 59047 Jul 30 22:02 alert_UWNMS1.log-rwxrwxrwx 1 oracle dba 1000 Jul 14 22:00 uwnms1_j000_18128.trc -rw-r----- 1 oracle dba 1000 Jul 22 22:00 uwnms1_j001_5369.trc -rwxrwxrwx 1 oracle dba 695 Jul 14 19:12 uwnms1_lgwr_18100.trc -rwxrwxrwx 1 oracle dba 2668 Jul 30 22:02 uwnms1_lgwr_19661.trc -rwxrwxrwx 1 oracle dba 983 Jul 14 17:36 uwnms1_lgwr_7816.trc -rwxrwxrwx 1 oracle dba 955 Jul 14 19:11 uwnms1_lgwr_7883.trc -rwxrwxrwx 1 oracle dba 803 Jul 14 17:31 uwnms1_p000_7714.trc -rwxrwxrwx 1 oracle dba 801 Jul 14 17:31 uwnms1_p001_7716.trc $ cd ../cdump$ ls -ltotal 4drwxr-x--- 2 oracle dba 512 Jul 25 14:12 core_18095drwxr-x--- 2 oracle dba 512 Jul 25 19:17 core_25934$ cd ../udump$ ls -ltotal 20042-rw-r----- 1 oracle dba 505 Jul 16 16:33 uwnms1_ora_14771.trc-rw-r----- 1 oracle dba 4516169 Jul 25 14:12 uwnms1_ora_18095.trc-rwxrwxrwx 1 oracle dba 644 Jul 14 19:12 uwnms1_ora_18119.trc -rw-r----- 1 oracle dba 505 Jul 30 15:11 uwnms1_ora_18820.trc-rwxrwxrwx 1 oracle dba 774 Jul 15 10:23 uwnms1_ora_19573.trc -rwxrwxrwx 1 oracle dba 587 Jul 15 10:23 uwnms1_ora_19645.trc -rwxrwxrwx 1 oracle dba 644 Jul 15 10:23 uwnms1_ora_19680.trc -rw-r----- 1 oracle dba 720942 Jul 15 16:28 uwnms1_ora_24759.trc-rw-r----- 1 oracle dba 4951562 Jul 25 19:17 uwnms1_ora_25934.trc-rw-r----- 1 oracle dba 505 Jul 15 17:21 uwnms1_ora_27326.trc-rw-r----- 1 oracle dba 503 Jul 30 16:54 uwnms1_ora_6612.trc-rwxrwxrwx 1 oracle dba 585 Jul 14 17:12 uwnms1_ora_7523.trc-rwxrwxrwx 1 oracle dba 767 Jul 14 17:30 uwnms1_ora_7566.trc 2). 可清除oracle的监听日志$ cd $ORACLE_HOME/network/log$ ls -ltotal 533072-rwxrwxrwx 1 oracle dba 272507851 Jul 31 11:28 listener.log-rw-r--r-- 1 oracle dba 257876 Jul 31 08:48 sqlnet.log$ cp /dev/null listener.logC.查找警告日志文件1. 联接每一个操作管理系统2. 使用‘TELNET’或是可比较程序3. 对每一个管理实例,经常的执行$ORACLE_BASE/<SID>/bdump 操作,并使其能回退到控制数据库的SID。
数据库日常维护-CheckList_02有关数据库备份检查

数据库⽇常维护-CheckList_02有关数据库备份检查数据库备份是DB⽇常运维中最基本的也是最重要的⼯作,很多情况下都是做成作业形式实现⾃动化周期性的做全备、差异以及⽇志备份。
那么,如果作业出现问题没有完成⼯作,我们可以设置⾃动报警如email被动提醒我们,当然也可以使⽤下⾯脚本主动地对多个数据库服务上数据库备份情况做详细了解,详细代码分享如下:-----------------------------------------------------------------------------------前⼀周所有数据库备份情况---------------------------------------------------------------------------------SELECTCONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,msdb.dbo.backupset.database_name,msdb.dbo.backupset.backup_start_date,msdb.dbo.backupset.backup_finish_date,msdb.dbo.backupset.expiration_date,CASE msdb..backupset.typeWHEN 'D' THEN 'Database'WHEN 'L' THEN 'Log'END AS backup_type,msdb.dbo.backupset.backup_size,msdb.dbo.backupmediafamily.logical_device_name,msdb.dbo.backupmediafamily.physical_device_name, AS backupset_name,msdb.dbo.backupset.descriptionFROM msdb.dbo.backupmediafamilyINNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_idWHERE (CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >= GETDATE() - 7)ORDER BYmsdb.dbo.backupset.database_name,msdb.dbo.backupset.backup_finish_date---------------------------------------------------------------------------------------------近期每个数据库的备份情况-------------------------------------------------------------------------------------------SELECTCONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,msdb.dbo.backupset.database_name,MAX(msdb.dbo.backupset.backup_finish_date) AS last_db_backup_dateFROM msdb.dbo.backupmediafamilyINNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_idWHERE msdb..backupset.type = 'D'GROUP BYmsdb.dbo.backupset.database_nameORDER BYmsdb.dbo.backupset.database_name---------------------------------------------------------------------------------------------近期每个数据库备份-详细情况-------------------------------------------------------------------------------------------SELECTA.[Server],st_db_backup_date,B.backup_start_date,B.expiration_date,B.backup_size,B.logical_device_name,B.physical_device_name,B.backupset_name,B.descriptionFROM(SELECTCONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,msdb.dbo.backupset.database_name,MAX(msdb.dbo.backupset.backup_finish_date) AS last_db_backup_dateFROM msdb.dbo.backupmediafamilyINNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id WHERE msdb..backupset.type = 'D'GROUP BYmsdb.dbo.backupset.database_name) AS ALEFT JOIN (SELECTCONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,msdb.dbo.backupset.database_name,msdb.dbo.backupset.backup_start_date,msdb.dbo.backupset.backup_finish_date,msdb.dbo.backupset.expiration_date,msdb.dbo.backupset.backup_size,msdb.dbo.backupmediafamily.logical_device_name,msdb.dbo.backupmediafamily.physical_device_name, AS backupset_name,msdb.dbo.backupset.descriptionFROM msdb.dbo.backupmediafamilyINNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id WHERE msdb..backupset.type = 'D') AS BON A.[server] = B.[server] AND A.[database_name] = B.[database_name] AND A.[last_db_backup_date] = B.[backup_finish_date] ORDER BYA.database_name---------------------------------------------------------------------------------------------丢失备份---------------------------------------------------------------------------------------------超过24⼩时的数据库备份SELECTCONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,msdb.dbo.backupset.database_name,MAX(msdb.dbo.backupset.backup_finish_date) AS last_db_backup_date,DATEDIFF(hh, MAX(msdb.dbo.backupset.backup_finish_date), GETDATE()) AS [Backup Age (Hours)]FROM msdb.dbo.backupsetWHERE msdb.dbo.backupset.type = 'D'GROUP BY msdb.dbo.backupset.database_nameHAVING (MAX(msdb.dbo.backupset.backup_finish_date) < DATEADD(hh, - 24, GETDATE()))UNION--没有任何备份历史SELECTCONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server, AS database_name,NULL AS [Last Data Backup Date],9999 AS [Backup Age (Hours)]FROMmaster.dbo.sysdatabases LEFT JOIN msdb.dbo.backupsetON = msdb.dbo.backupset.database_nameWHERE msdb.dbo.backupset.database_name IS NULL AND <> 'tempdb'ORDER BYmsdb.dbo.backupset.database_name---------------------------------------------------------------------------------------------检查所有备份⽂件⼤⼩ (GB)-------------------------------------------------------------------------------------------SELECT getdate() as,b.server_name, Round(SUM(convert(float,b.backup_size) /1024.0/1024.0/1024.0),2) AS 'backup_size_GB',Round(SUM(convert(float,pressed_backup_size)/1024.0/1024.0/1024.0),2) AS 'compressed_backup_size_GB' FROM msdb..backupset bwhere b.database_name not in ('model','master','msdb','')--and b.type='D'AND backup_start_date>getdate()-1GROUP BY b.server_name-------------------------------------------------------------------------------------------Samezhao。
checklist模板

checklist模板Checklist模板。
在日常生活和工作中,我们经常需要使用checklist来帮助我们完成任务、检查工作进度或者确保工作质量。
一个好的checklist可以提高工作效率,减少错误发生的可能性。
下面是一个简单的checklist模板,可以根据具体情况进行定制,帮助你更好地完成工作。
1. 任务名称,(在这里填写你需要完成的任务名称)。
2. 任务描述,(简要描述一下这个任务的内容和要求)。
3. 任务截止日期,(填写任务的最后完成日期)。
4. 任务执行人,(填写负责执行这个任务的人员)。
5. 任务分解:步骤一,(列出完成这个任务需要进行的具体步骤)。
步骤二,(列出完成这个任务需要进行的具体步骤)。
步骤三,(列出完成这个任务需要进行的具体步骤)。
...6. 任务检查点:检查点一,(列出需要检查的关键点)。
检查点二,(列出需要检查的关键点)。
检查点三,(列出需要检查的关键点)。
...7. 任务完成标准:标准一,(列出任务完成的具体标准)。
标准二,(列出任务完成的具体标准)。
标准三,(列出任务完成的具体标准)。
...8. 任务备注,(在这里可以填写一些需要额外说明的内容)。
使用这个checklist模板,你可以清晰地了解到需要完成的任务内容、任务的截止日期、任务的分解步骤、任务的检查点和任务的完成标准。
这样一来,你就可以更加有条理地完成任务,并且确保任务的质量。
在填写任务分解和任务检查点的时候,要尽量具体和详细,这样可以确保你不会遗漏任何重要的步骤和检查点。
同时,在填写任务完成标准的时候,也要尽量量化和明确,这样可以让执行人员清楚地知道任务完成的标准是什么,避免出现模糊不清的情况。
在执行任务的过程中,要不断地对照checklist进行检查,确保自己按照要求完成了每一个步骤和检查点。
如果发现有任何问题或者偏差,要及时进行调整和纠正,避免影响任务的最终完成质量。
最后,在任务完成之后,还可以对照checklist进行一次全面的检查,确保任务的每一个标准都得到了满足。
数据库日常巡检分析报告

精心整理日常巡检手册监控所有关键业务系统的数据库系统,以ORACLE 数据库为例。
主要的监控指标应包括配置信息、故障监控和性能监控。
主要工作包括:1、配置信息管理:数据库配置信息包括数据库名,数据库实例名,版本信息,数据库位数,归档2、(1)Archive ;3(1(2(3(4(5)监控SGA 、BufferCache 、I/O 等相关的性能数据;(6)监控数据库会话的状况。
应及时变更配置信息并定期(每月)编制数据库监控报告并提交相关部门和人员。
检查实例1.常规检查编号??????参数名称??????描述??????参数说明1??????文件自动扩展??????正确??????数据文件使用裸设备时,文件不可自动扩展(使用文件系统的数据文件也建议不设成自动扩展):Sql>selectfile_name,tablespace_name,status,autoextensiblefromdba_data_files??whereau2??????rs;3??????现,如:通过以下4??????剩余表空间??????没有空间压力??????Sql>Selecta.Tablespace_Name,a.Total||'M'Total_Space,(a.Total-b.Free)||'M'Used _Space,To_Char((a.Total-b.Free)/a.Total*100,'99.99')||'%'Pct_FreeFrom(SelectTablespace_Name,Sum(Bytes)/1024/1024TotalFromDba_Data_FilesGroupBytablespace_ Name)a,(SelectTablespace_Name,Sum(Bytes)/1024/1024FreeFromDba_Free_SpaceGroupByTablespace_N ame)bwherea.Tablespace_Name=b.Tablespace_Name;5??????归档模式??????已归档??????查看数据是否启用归档模式,归档目录是否均已挂接,提醒管理员注意归档文件的备份,6??????7??????处理)8??????<>0;注:含有longraw列的表有行链接是正常的,找到迁移行保存到chained_rows表中,如没有该表执行../rdbms/admin/utlchain.sqlSql>analyzetabletablenamelistchainedrows;可通过表chained_rows中table_name,head_rowid看出哪些行是迁移行如:Sql>createtableaaasselecta.*fromsb_zsxxa,chained_rowsbwherea.rowid=b.head_rowidandb. table_name='SB_ZSXX';sql>deletefromsb_zsxxwhererowidin(selecthead_rowidfromchained_rowswheretable_name='S B_ZSXX');sql>insertintosb_zsxxselect*fromchained_rowwheretable_name='SB_ZSXX';commit;commit;10??????需确的1、??????应用发生变化2、??????大规模数据迁移、历史数据迁出、其他数据的导入等3、??????数据量发生变化查看表或索引的统计信息是否需更新,如:Sql>Selecttable_name,num_rows,last_analyzedFromuser_tableswheretable_name='DJ_NSRXX' sql>selectcount(*)fromDJ_NSRXX如num_rows和count(*)如果行数相差很多,则该表需要更新统计信息,建议一周做一次统计信息收集,如:Sql>execsys.dbms_stats.gather_schema_stats(ownname=>'CTAIS2',cascade=>TRUE,degree=>4 );11??????找出被oracle级12??????13??????14??????Sql>alterTriggerTRIGGER_NAMEEnable;15??????索引空间浪费??????管理员定期管理??????索引的空间浪费:只有完全空的索引块才进入空闲列表,找到浪费空间的索引,首先分析索引:Sql>analyzeindexindexnamevalidatestructure;然后查询index_stats视图:Sql>selectname,lf_rows,lf_rows_len,del_lf_rows,del_lf_rows_lenFromindex_stats;lf_rows--当前索引值的数量lf_rows_len--当前索引值的大小(byte)del_lf_rows--从索引中删除的值的数量del_lf_rows_len--从索引中删除的值的大小(byte)如果del_lf_rows_len达到lf_rows_len的20%则需要rebuild索引了16??????定期修改密码??????暂时未使用??????在综合征管系统系统的数据库上往往存在很多的用户,如:第三方数据库监控系统,电话申报系统等等,初始安装数据库时的演示用户,管理员用户等等。
ORACLE数据库常规巡检报告单(例子)

ORACLE数据库常规巡检报告单(例⼦)ORACLE数据库常规巡检报告单⽬录ORACLE数据库常规巡检报告单 (1)⼀、概述 (3)⼆、使⽤的相关软件简要说明 (3)三、主机及操作系统常规配置检查 (3)1、系统设置检查 (3)2、I/O 设备信息 (3)3、⽹络配置信息 (4)四、ORACLE 数据库常规检查 (5)1、ORACLE 常规检查 (5)2、基本参数配置 (5)3、ORACLE ⽤户配置⽂件 (6)五、数据库关键性能检查及分析 (6)1、数据库性能检查 (6)2、数据库响应时间分析 (6)六、备份恢复策略检查和维护 (7)1、RMAN 配置情况 (7)2、备份策略描述 (7)3、备份策略实施 (7)4、备份检查和每⽇备份脚本⽇志检查 (8)5、对当前策略的总结 (8)七、关键性SQL 语句定位及分析 (8)⼋、近期警告⽇志及相关分析 (8)1、orcl_ora_8727.trc (8)2、orcl_ora_8727.trc (9)九、⼩结 (9)⼀、概述按照维护计划和为了系统的稳定运⾏,需要定期对系统进⾏⼀次巡检,时间周期为每星期⼀次。
⽬的在于诊断当前环境是否存在安全隐患,系统运⾏是否存在明显的系统瓶颈,定位重要的SQL 语句并进⾏性能分析,分析当前备份策略,分析警告⽇志信息并提供解决⽅案。
⼆、使⽤的相关软件简要说明1.使⽤RDA 对整个系统进⾏检查,并且⽣成报告2.使⽤AWR 对数据库进⾏检查,并且⽣成报告。
3.使⽤RMAN 对数据库进⾏备份,并且使⽤RMAN 相关的功能进⾏备份检查。
相关详细后页提供三、主机及操作系统常规配置检查1、系统设置检查主机和版本号Linux localhost 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:56:28 EST 2006 x86_64主机名localhost.localdomain操作系统平台64-bit Red Hat Linux操作系统版本 2.6.92、I/O 设备信息3、⽹络配置信息四、ORACLE 数据库常规检查1、ORACLE 常规检查Database OverviewDB Name ORCLGlobal Name /doc/e298af7e4693daef5ef73dba.html Host Name localhost Instance Name orclInstance Start Time 18-Nov-2008 14:14:01Restricted Mode NOArchive Log ModeARCHIVELOG3、ORACLE ⽤户配置⽂件# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then. ~/.bashrcfi# User specific environment and startup programsPATH=$PATH:$HOME/binexport PATHunset USERNAME#for oracleexport ORACLE_SID=orclexport ORACLE_BASE=/oracleexport ORACLE_HOME=/oracle/10gexport PATH=$ORACLE_HOME/bin:$PATHexport NLS_LANG=AMERICAN_AMERICA.ZHS16GBK五、数据库关键性能检查及分析1、数据库性能检查2、数据库响应时间分析响应时间是⾮常重要的数据库性能指标从以上信息可以看出,RMAN 备份占⽤的⼤量的时间,六、备份恢复策略检查和维护1、RMAN 配置情况RMAN configuration parameters are:CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;CONFIGURE BACKUP OPTIMIZATION ON;CONFIGURE DEFAULT DEVICE TYPE TO DISK;CONFIGURE CONTROLFILE AUTOBACKUP ON;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'orclcongrol_%F'; CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COMPRESSED BACKUPSET; CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE CHANNEL 1 DEVICE TYPE DISK MAXPIECESIZE 100 M MAXOPENFILES 8 RATE 40 M; CONFIGURE CHANNEL 2 DEVICE TYPE DISK MAXPIECESIZE 100 M MAXOPENFILES 8 RATE 40 M; CONFIGURE MAXSETSIZE TO UNLIMITED; # defaultCONFIGURE ENCRYPTION FOR DATABASE OFF; # defaultCONFIGURE ENCRYPTION ALGORITHM 'AES128'; # defaultCONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # defaultCONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/10g/dbs/snapcf_orcl.f'; # default2、备份策略描述选⽤RMAN 多级备份策略,以每个星期作为⼀个周期星期1 数据库全备0 级星期2 增量备份 1 级星期3 增量备份 1 级星期4 累积增量备份1c 级星期5 数据库全备0 级星期6 增量备份 1 级星期天增量备份 1 级基于以上策略,任何时间点的数据恢复只需要做最多1 次0 级恢复和2 次1 级恢复.加上当⽇的归档⽇志可以实现快速的完全恢复3、备份策略实施Cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# run-parts01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly00 4 * * 1 oracle /oracle/scripts/rman/backupweek1.cmd &00 4 * * 2 oracle /oracle/scripts/rman/backupweek2.cmd &00 4 * * 3 oracle /oracle/scripts/rman/backupweek3.cmd & 00 4 * * 4 oracle/oracle/scripts/rman/backupweek4.cmd &00 4 * * 5 oracle /oracle/scripts/rman/backupweek5.cmd &00 4 * * 6 oracle /oracle/scripts/rman/backupweek6.cmd &00 4 * * 7 oracle /oracle/scripts/rman/backupweek7.cmd &4、备份检查和每⽇备份脚本⽇志检查使⽤crosscheck backupset 检查。
Oracle数据库日常巡检指令
Oracle 数据库日常巡检指令Oracle数据库的日常巡检内容包括:Oracle数据库基本状况检查;Oracle相关资源的使用情况检查;Oracle数据库性能检查;数据库服务器cpu、mem和I/O 性能检查;数据库服务器安全性及其他事项检查等五大检查项目。
1、数据库基本状况检查(1)、数据库实例状况检查说明:其中“STATUS”表示Oracle当前的实例状态,必须为“OPEN”;“DATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTIVE”。
(2)、数据库表空间状态检查说明:输出结果中STATUS应该都为“ONLINE”。
(3)、数据库数据文件检查1 select tablespace_name,status from dba_tablespaces;说明:输出结果中“STATUS”应该都为“AVAILABLE”。
(4)、数据库在线日志检查1 select group#,status,type,member from v$logfile;说明:输出结果应该有3条或3条以上记录,“STATUS”应该为非“INVALID”,非“DELETED”。
“STATUS”的值为空表示正常。
(5)、数据库回滚段检查1 select segment_name,status from dba_rollback_segs;说明:输出结果中所有回滚段的“STATUS”应该为“ONLINE”。
2、数据库相关资源使用情况检查(1)、检查Oracle初始化文件中相关参数值1 select resource_name,max_utilization,initial_allocation, limit_value from v$resource_limit;说明:若字段值【LIMIT_VALU】-【MAX_UTILIZATION】<=5,则表明与RESOURCE_NAME相关的Oracle初始化参数需要调整。
数据库日巡检记录单checklist_0812
备份文件大小截图(每周至少一次)
PMS
数据库状态及备份状态
备份文件大小截图(每周至少一次)
Vertica
数据库运行状态
本机备份状态查看(7/15号自动备份)
9/17号备份到NBU
异常说明
巡检日期:年月日巡检人:
系统
日巡检项
是否正常
邮件系统
存储容量/License
垃圾邮件监控
邮件归档
是否收到归档邮件
存储容量
本地NBU
java控制台查看状态
170查看磁盘使用率
V7000
V7000-172.16.7.21
V7000-192.168.8.111
V7000-1据库172.18.8.2
Basis/cert/cert4a/ylyy/eaiprd每天一次)
备份状态检查(bi/fe_app5/fe_base5每月15/30号备份,1/16号FTP到82上)
备份文件大小截图及日志保存
CRM69
alert日志
备份状态检查
备份文件大小截图及日志保存(每周一次)
云平台
数据库状态及备份状态
P2PS
FTP中间备份服务器192.168.8.110
北京NBU备份172.21.190.5
RAC
crontab日志
运行状态检查
AWR正常报告(每周至少一次)
AIX110
备份状态检查(qrcode/crmif一周一次)
备份状态检查(n9yl/ylyy_ehr/
ylyy_bpm/ccense/zbcg/osbdev_mem/
数据库日常巡检分析报告
数据库日常巡检分析报告一、巡检目的和背景数据库是企业的核心数据存储和管理平台,对其进行日常巡检可以及时发现潜在问题,确保数据库的稳定和可靠性。
本次巡检旨在分析数据库的运行情况,发现潜在问题并提供相应的解决方案,以保证数据库的高效运行。
二、巡检内容1.数据库性能分析:分析数据库的性能指标,包括响应时间、吞吐量、并发处理能力等,并绘制性能曲线,以便发现潜在的性能瓶颈和优化方向。
2.数据库空间利用率分析:分析数据库空间的利用率,查看数据文件和日志文件的占用情况,并建议对空间进行合理配置,避免空间不足导致数据库异常。
3.数据库备份与恢复分析:分析数据库备份的情况,包括备份成功率、备份时间、备份策略等,并测试数据库的恢复能力,确保备份和恢复的顺利进行。
4.数据库安全性分析:分析数据库的安全性,包括用户和权限管理、访问控制、敏感数据保护等,并提供相应的安全措施,确保数据库的安全运行。
三、巡检结果和分析1.性能分析结果:根据数据库性能曲线分析发现,数据库在高峰期响应时间较长,吞吐量偏低,需要优化SQL语句和索引,以提升数据库的查询性能。
2.空间利用率分析结果:数据库空间利用率较高,建议对数据文件进行扩容,并定期清理日志文件,释放空间,以避免因空间不足导致的数据库故障。
3.备份与恢复分析结果:数据库备份成功率较低,备份时间较长,建议优化备份策略,增加备份频率,并测试数据库的完整恢复能力,以保证数据安全和业务的连续性。
4.安全性分析结果:数据库存在一些权限控制不严、敏感数据保护不足的问题,建议加强用户和权限管理,定期进行权限审计,并加密敏感数据,确保数据库的安全性。
四、解决方案和建议1.性能优化方案:对数据库进行性能优化,包括优化SQL语句、创建合适的索引、定期进行数据库统计分析等,以提升数据库的查询性能和响应速度。
2.空间管理方案:对数据库空间进行合理配置,避免空间不足导致的数据库异常,定期清理日志文件并释放空间,合理规划数据文件的增长策略。
MySql CheckList-Mysql数据库安全配置检查表
3、检查是否使用5.0以上版本
○已设置○未设置
○完成○未ቤተ መጻሕፍቲ ባይዱ成
其他:
数据库账户列表
1、用ROOT账户连接MYSQL
2、输入以下命令:
Select user from er
3、记录user信息
○已设置○未设置
○完成○未完成
其他:
数据库远程连接
1、用ROOT账户连接MYSQL
2、输入以下命令:
Select host,user from er where host=‘%’
3、记录user信息
○已设置○未设置
○完成○未完成
其他:
MySql检查加固列表
应用信息
数据库版本:
安装路径:
数据库端口:
检查及加固列表
检查类型
检查子类
操作流程
检查情况
加固情况
程序配置
弱密码检测
1、尝试以下密码登陆ROOT账户
root、root123、12345、null
○已设置○未设置
○完成○未完成
其他:
MySql版本
1、用ROOT账户连接MYSQL
2、输入以下命令: