--======================查询Oracle错误日志和警告日志
通过命令查看错误日志目录 SQL> show parameter background_dump_dest; 根据错误提示的PID:3159 模糊查询对应的错误日志 find -name "*ora*3159*.trc" more orcl_ora_3159.trc
查询归档日志 SQL> select * from v$recovery_file_dest;
删除归档日志 $ rman RMAN> connect target sys/xxxxx RMAN> crosscheck archivelog all; RMAN> delete ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
查询警告日志 $ find -name "alert*.log" $ more alert_orcl.log;
--======================强制中止正在执行的SQL语句
-- 1 查询正在执行的sql语句 select b.sid,b.username,b.serial#,a.spid,b.paddr,c.sql_text,b.machine from v$process a,v$session b,v$sqlarea c where a.addr = b.paddr and b.sql_hash_value = c.hash_value;
-- 2 根据sid与serial# kill 需要中止的sql语句 ? select sql_text,b.sid,'alter system kill session'''||b.SID||','||b.serial#||''';',b.username from v$process a,v$sqlarea c where a.addr = b.paddr and b.sql_hash_value = c.hash_value
-- 3 查询oracle当前被锁对象 select a.session_id,c.serial#,a.locked_mode,a.oracle_username,a.os_user_name,c.machine, ??????? c.terminal,b.object_name,c.logon_time from?? v$locked_object a,all_objects b,v$session c where? a.object_id = b.object_id and a.session_id = c.sid order? by c.sid,c.serial#;
--======================表空间不足引起的问题及解决方法
-- 1 向数据库导入数据时报了ORA-01653: unable to extend table错误,网上查了下原因是由于表空间不足引起的;
查询表空间使用情况语句
select a.tablespace_name,a.bytes/1024/1024 total,(a.bytes-b.bytes)/1024/1024 used,b.bytes/1024/1024 free,round((a.bytes-b.bytes)/a.bytes*100,2) used_rate from ( 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 ) b where a.tablespace_name = b.tablespace_name;
-- 2 以上语句可以查询出表空间使用情况,如果发现表空间容量不足,查看数据文件文件所在位置及文件编号
查看数据文件位置 ? select file#,name from v$datafile; ? -- 3 修改表空间大小有两种方法 ? 修改数据文件大小 ? alter database datafile '/usr/oracle/app/oradata/orcl/Test.dbf' resize 20480M; 修改后的大小要比实际大小大至少50%,最好大一倍以上 ? 增加数据文件 ? alter tablespace XXX add datafile '/home/oracle/data/XXX_1.dbf' size 1024M;
? 1.生成单实例 AWR 报告:
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
2.生成 Oracle RAC AWR 报告:
@$ORACLE_HOME/rdbms/admin/awrgrpt.sql
3.生成 RAC 环境中特定数据库实例的 AWR 报告:
@$ORACLE_HOME/rdbms/admin/awrrpti.sql
4.生成 Oracle RAC 环境中多个数据库实例的 AWR 报告的方法:
@$ORACLE_HOME/rdbms/admin/awrgrpti.sql
5.生成 SQL 语句的 AWR 报告:
@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql
6.生成特定数据库实例上某个 SQL 语句的 AWR 报告:
@$ORACLE_HOME/rdbms/admin/awrsqrpi.sql
--生成 AWR 时段对比报告
7.生成单实例 AWR 时段对比报告
@$ORACLE_HOME/rdbms/admin/awrddrpt.sql
9.生成 Oracle RAC AWR 时段对比报告
@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql
10.生成特定数据库实例的 AWR 时段对比报告
@$ORACLE_HOME/rdbms/admin/awrddrpi.sql
--查询redo log文件状态
select * from v$log; select * from v$logfile;
--查询archive log目录 select open_mode from v$database; archive log list; show parameter log_archive_dest;
--查询alert日志 show parameter background_dump_dest;
--查询Oracle正在执行的sql语句及执行该语句的用户
SELECT b.sid oracleID,? ?????? b.username 登录Oracle用户名,? ?????? b.serial#,? ?????? spid 操作系统ID,? ?????? paddr,? ?????? sql_text 正在执行的SQL,? ?????? b.machine 计算机名 ? FROM v$process a,v$sqlarea c ? WHERE a.addr = b.paddr ? ?? AND b.sql_hash_value = c.hash_value
--查看正在执行sql的发起者的发放程序
SELECT OSUSER 电脑登录身份,? ?????? PROGRAM 发起请求的程序,? ?????? USERNAME 登录系统的用户名,? ?????? SCHEMANAME,? ?????? B.Cpu_Time 花费cpu的时间,? ?????? STATUS,? ?????? B.SQL_TEXT 执行的sql ? FROM V$SESSION A ? LEFT JOIN V$SQL B ON A.SQL_ADDRESS = B.ADDRESS ? ?????????????????? AND A.SQL_HASH_VALUE = B.HASH_VALUE ? ORDER BY b.cpu_time DESC
--查出oracle当前的被锁对象
SELECT l.session_id sid,? ?????? s.serial#,? ?????? l.locked_mode 锁模式,? ?????? l.oracle_username 登录用户,? ?????? l.os_user_name 登录机器用户名,? ?????? s.machine 机器名,? ?????? s.terminal 终端用户名,? ?????? o.object_name 被锁对象名,? ?????? s.logon_time 登录数据库时间 ? FROM v$locked_object l,all_objects o,v$session s ? WHERE l.object_id = o.object_id ? ?? AND l.session_id = s.sid ? ORDER BY sid,s.serial#;
--kill掉当前的锁对象可以为
alter system kill session 'sid, s.serial#‘;
11.生成 Oracle RAC 环境下特定(多个)数据库实例的 AWR 时段对比报告
@$ORACLE_HOME/rdbms/admin/awrgdrpi.sql
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|