编辑
1、检查数据库服务器操作系统-磁盘\CPU\内存(内存主要看swap)等使用率
2、检查数据库监听是否正常 lsnrctl status
编辑
3、检查数据库实例是否正常
编辑
处理方法:
1、日志磁盘满的情况:直接删除早期归档日志文件;详细处理方式件附件1;
CPU和内存使用率满的情况:数据库操作系统不可用直接重启服务器。
2、若监听关闭,手动启动 lsnrctl start
若监听状态一致unknow ,可手动静态注册监听。
alter system set local_listener=‘监听器名称' scope=both;
3、若实例状态非open,可重启下实例,shutdown immediate;startup
4、检查数据库告警日志
编辑
1、cd /oradata/exa2nbuip/lxplmprd/lxplmprd2/diag/diag/rdbms/lxplmprd2/lxplmprd2/trace/
2、tail -1000f alert_lxplmprd2.log
主要关注ORA-0XXXX的告警信息,自行百度处理
编辑
1、检查数据库服务器操作系统-IO使用率,IO等待会导致数据库慢 iostat –x 2 10
编辑
处理方法:
分析数据库物理读top5,进行优化
SELECT * FROM (SELECT PARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea ORDER BY disk_reads DESC )
WHERE ROWNUM sysdate - &minutes /( 60*24)
group by sql_id, SQL_PLAN_HASH_VALUE , aud.name
order by sum(decode(session_state,'ON CPU',1,1)) desc
) where rownum < 10
/
topsql.sql脚本:
var tuning_task varchar2(100);
DECLARE
l_sql_id v$session.prev_sql_id%TYPE;
l_tuning_task VARCHAR2(30);
BEGIN
l_sql_id:='&sqlid';
l_tuning_task := dbms_sqltune.create_tuning_task(sql_id => l_sql_id);
:tuning_task:=l_tuning_task;
dbms_sqltune.execute_tuning_task(l_tuning_task);
dbms_output.put_line(l_tuning_task);
END;
/
topsql.sql脚本:
print tuning_task;
SET linesize 180
SET longchunksize 180
SET pagesize 900
SET long 1000000
col TUNING_TASK format a80
SELECT dbms_sqltune.report_tuning_task('&task') FROM dual;
编辑
编辑
4、redo日志切换频繁,归档日志剧增
logmnr使用:
select * from v$archived_log order by sequence# desc
begin
dbms_logmnr.add_logfile(logfilename=>'/oradata/exa2nbuip/lxplmprd/lxplmprd2/fra/LXPLMPRD2/archivelog/2023_11_22/o1_mf_1_329_lotjyts5_.arc',options=>dbms_logmnr.new);
dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
end;
/
select * from v$logmnr_contents
begin
dbms_logmnr.end_logmnr;
end;
/
可查看redo日志内容,发给开发团队解决。
5、SGA、PGA内存分析
可通过AWR报告分析:
su – oracle
Sqlplus / as sysdba
@?/rdbms/admin/awrrpt 本实例
@?/rdbms/admin/awrrpti RAC中选择实例号
选择“html”
编辑
编辑
编辑
附件1:
使用sql命令查看:
Sql>sqlplus / as sysdba;
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST -–如果是直接路径可直接进去改路径删除早期归档日志
Oldest online log sequence 330
Next log sequence to archive 331
Current log sequence 331
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /oradata/exa2nbuip/lxplmprd/lx
plmprd2/fra
db_recovery_file_dest_size big integer 100G
SQL>
发现默认的归档路径为/oradata/exa2nbuip/lxplmprd/lxplmprd2/fra。而且限制使用空间为100G。
可直接进/oradata/exa2nbuip/lxplmprd/lxplmprd2/fra 路径下删除早期归档日志。
物理删除后,通过rman命令手动过期掉已删除的归档记录。(若磁盘空间未满也可通过rman删除归档日志)
使用delete expired archivelog all 命令删除所有过期归档日志:
rman target /
RMAN> crosscheck archivelog all;
delete expired archivelog all;
或delete noprompt archivelog until time 'sysdate - 3' ;删除3天归档日志