标签:order data 归档日志 并行 exe user 占用 修复 creat
查询回收站内容,大于20则需要清理
SELECT count(1) FROM dba_recyclebin;
清理回收站所有内容
purge dba_recyclebin;
查询所有表空间
SELECT ‘RESULT=‘||df.tablespace_name "Tablespace",df.bytes/(1024*1024) "Total Size(MB)",
    sum(fs.bytes)/(1024*1024) "Free Size(MB)", round(sum(fs.bytes)*100/df.bytes) "% Free",
    round((df.bytes-sum(fs.bytes))*100/df.bytes) "% Used"
    FROM (SELECT
a.bytes,a.tablespace_name FROM dba_free_space
a  UNION ALL SELECT b.BYTES_FREE,b.tablespace_name FROM V$TEMP_SPACE_HEADER b )fs, 
    (SELECT tablespace_name, sum(bytes) bytes FROM dba_data_files GROUP BY tablespace_name UNION ALL  SELECT tablespace_name, SUM(bytes) total FROM dba_temp_files GROUP BY tablespace_name) df          
    WHERE fs.tablespace_name = df.tablespace_name
GROUP BY df.tablespace_name, df.bytes;
查询某个表空间被谁占用
SELECT * FROM 
(SELECT owner,segment_name, sum(bytes)/1024/1024 Mbytese FROM dba_segments  WHERE 
tablespace_name IN(‘CBS_DEFAULT_DAT‘)
GROUP BY owner,segment_name 
ORDER BY Mbytese DESC ) 
WHERE rownum<=10;
统计信息定时任务是否正常,结果数大于 0则表明正常
SELECT count(1) FROM dba_autotask_job_history a WHERE a.client_name=‘auto optimizer stats collection‘ AND job_status=‘SUCCEEDED‘ AND a.window_start_time >=sysdate-2;
检查SQL是否绑定变量
SELECT
substr(sql_text, 1, 40) "SQL", count(*), 
       sum(executions) "TotExecs"
  FROM v$sqlarea
 WHERE executions < 5
 GROUP BY
substr(sql_text, 1, 40)
HAVING count(*) > 30
 ORDER BY 2 DESC;
SQL返回查询时间超过5秒的SQL
SELECT p.spid, s.sid,
s.last_call_et, 
       s.machine, s.program, s.terminal, 
       w.event,q.sql_text 
  FROM v$process p,
       v$session s,
       v$sqltext q,
       v$session_wait w
 WHERE p.addr = s.paddr
   AND s.sql_address = q.address
   AND s.STATUS = ‘ACTIVE‘
   AND p.background IS NULL
   AND s.sid = w.sid
   AND s.last_call_et > 5
 ORDER BY s.last_call_et DESC, s.sid, q.piece;
检查分区表是否存在全局索引,如果查询返回纪录,则表明建立了全局索引,需要重新建立为本地索引或者全局分区索引
 SELECT a.owner, a.table_name, a.index_name,
a.partitioned, a.STATUS
  FROM dba_indexes a, dba_part_tables b
 WHERE a.table_name = b.table_name
   AND a.owner NOT IN (‘SYS‘, ‘SYSTEM‘)
   AND a.partitioned <> ‘YES‘;
检查业务对象并行度设置
   SELECT owner, object_name, degree
  FROM (SELECT a.owner,
a.table_name object_name, a.degree
          FROM dba_tables a
         WHERE trim(a.degree) > ‘1‘
        UNION ALL
        SELECT a.owner, a.index_name object_name, a.degree
          FROM dba_indexes a
         WHERE trim(a.degree) > ‘1‘
       ) b
 WHERE b.owner NOT IN (‘SYS‘, ‘SYSTEM‘, ‘SYSMAN‘, ‘MGMT_VIEW‘)
   AND b.owner NOT IN (SELECT c.username FROM dba_users_with_defpwd c);
设置索引并行度为1
ALTER INDEX IDX_NAME noparallel;
设置表并行度为1
ALTER TABLE TABLE_NAME noparallel;
检查非正常的job
SELECT JOB,SCHEMA_USER,WHAT FROM dba_jobs WHERE broken=‘Y‘;
修复job:检查Oracle告警日志,分析job失败的原因。找出对应的job号后(如20),用以下命令将其的broken改为N
exec dbms_job.broken(20,false);
检查是否存在失效对象
SELECT t.owner,
t.object_type, 
       t.object_name, t.STATUS
  FROM dba_objects t
 WHERE t.STATUS = ‘INVALID‘
--如果没用,建议删除。
--如果有用,则需要重新编译。
--重编译对象
ALTER object_type object_owner.object_name compile;
--重编译用户
execute dbms_utility.compile_schema(schema => ‘‘,compile_all => false); 
--重编译数据库
@?/rdbms/admin/utlrp.sql
在线创建索引
CREATE INDEX index_name ON table_name(col_name) tablespace tablespace_name online;
并行创建索引(如果分在线创建,请将online参数去掉)
CREATE INDEX index_name ON table_name(col_name)  parallel 4 tablespace tablespace_name online;
ALTER INDEX index_name noparallel;
在线重建索引
expdp sysdb/sys_db1 dumpfile=sysdb_expdb20120415.dmp directory=dpump_dir logfile=sysdb.log EXCLUDE=TABLE:\"IN\(\‘MDSP_CDR\‘,\‘T_BME_TASKRUNRESULT\‘,\‘TB_INTERACTLOG\‘\)\"
导出数据排除某些表
expdp sysdb/sys_db1 dumpfile=sysdb_expdb20120415.dmp directory=dpump_dir logfile=sysdb.log EXCLUDE=TABLE:\"IN\(\‘MDSP_CDR\‘,\‘T_BME_TASKRUNRESULT\‘,\‘TB_INTERACTLOG\‘\)\";
单表导入导出
expdp sysdb/sysdb TABLES=TB1 directory= dpump_dir dumpfile=sysdb_tb_mobileno.dmp
impdp sysdb/sysdb t directory=dpump_dir dumpfile= dumpfile=sysdb_tb_mobileno.dmp  TABLES= TB1;
在不同用户恢复表数据
expdp sysdb/sys_db1 directory=dmpdir content=ALL DUMPFILE=Tcategory_Relation.dmp
TABLES=Tcategory_Relation
impdp sysdb5/sys_db1 DIRECTORY=dmpdir DUMPFILE=Tcategory_Relation.dmp 
TABLES=Tcategory_Relation  remap_schema=sysdb:sysdb5;
对表转移表空间,需要停业务操作,表重建后索引也要重建
ALTER TABLE table_name move tablespace <new tablespace>;
ALTER INDEX index_name 
rebuild online;
对索引转移表空间
ALTER INDEX PK_MDSP_T_RENTINFO_2 rebuild online tablespace TS_MDSP_IDX;
降低高水位
ALTER TABLE table_name enable row movement; 
ALTER TABLE table_name shrink space compact; 
ALTER TABLE table_name shrink space cascade;
收集表的统计信息
exec dbms_stats.gather_table_stats(ownname=>‘大写的数据库用户名‘,tabname=>‘大写的表名‘,degree=>4,cascade=>true,force=>true,no_invalidate=>false);
收集用户的统计信息
exec dbms_stats.gather_schema_stats(ownname=> ‘大写的数据库用户名‘,estimate_percent => dbms_stats.AUTO_SAMPLE_SIZE,degree=>4,cascade=>true,force=>true,no_invalidate=>false);
如何检查失效的索引
SELECT a.owner, a.index_name,
a.STATUS
  FROM dba_indexes a
 WHERE a.STATUS = ‘UNUSABLE‘
UNION ALL
SELECT a.index_owner, a.index_name, a.STATUS
  FROM dba_ind_partitions a
 WHERE a.STATUS = ‘UNUSABLE‘;
检查失效索引并显示重建语句
SELECT ‘alter index  ‘||  a.owner||‘.‘|| a.index_name || ‘ rebuild online;‘ AS rebuild_index_sql
     FROM DBA_indexes a
    WHERE a.partitioned <> ‘YES‘
      AND ( a.STATUS = ‘UNUSABLE‘) 
UNION
SELECT ‘alter index 
‘|| 
t.index_owner||‘.‘|| t.index_name || ‘ rebuild
partition ‘ ||
          t.partition_name || ‘ online;‘ AS rebuild_index_sql
     FROM DBA_ind_partitions t,user_part_indexes n
    WHERE ( t.STATUS = ‘UNUSABLE‘);
如何恢复删除的数据,如果数据被误删除,而且时间不是很长,可以从undo表空间将表数据恢复,请修改为现场的表明和时间
CREATE TABLE table_name_new AS SELECT * FROM table_name AS of timestamp to_timestamp (‘2013-03-26 11:00:00‘,‘YYYY-MM-DD HH24:MI:SS‘);
创建snapshot
execute dbms_workload_repository.create_snapshot;
收集AWR报告
@?/rdbms/admin/awrrpt.sql
收集ASH报告
@?/rdbms/admin/ashrpt.sql
查询session历史信息
SELECT *
FROM dba_hist_active_sess_history  t
WHERE 
t.sample_time > to_date(‘20130811 070000‘, ‘yyyymmdd hh24miss‘)
AND t.sample_time < to_date(‘20130811 090000‘, ‘yyyymmdd
hh24miss‘);
检查事务锁
SELECT ‘session ‘ || c.locker ||
       ‘ lock session ‘ || c.locked 
       AS "result" 
  FROM ( SELECT a.sid locked,
                b.sid locker
           FROM v$lock a, v$lock b
          WHERE a.request > 0
            AND a.id1 = b.id1 
            AND a.id2 = b.ID2
            AND a.type = b.type
            AND a.addr <> b.addr
        ) c,
        v$session d
 WHERE c.locker = d.sid;
检查锁并显示杀锁语句
SELECT DISTINCT ‘kill -9 ‘ || 
       p.spid || ‘;‘  AS "result" 
  FROM ( SELECT a.sid locked,
                b.sid locker
           FROM v$lock a, v$lock b
          WHERE a.request > 0
            AND a.id1 = b.id1 
            AND a.id2 = b.ID2
            AND a.type = b.type
            AND a.addr <> b.addr
        ) c,
        v$session d,
        v$process p
 WHERE c.locker = d.sid AND 
d.paddr=p.addr;
清理归档日志操作
--方法一
  rman target /
  crosscheck backup; 
   DELETE obsolete; 
   DELETE expired backup;
   crosscheck archivelog ALL;  
   DELETE expired archivelog ALL;
   
--方法2
  rman target /
allocate channel FOR maintenance type disk;  
DELETE obsolete device type disk;
如何获取SQL的执行计划,从AWR报告中找到想要获取的sql的SQL ID,然后用以下sql获取:
SELECT * FROM TABLE(dbms_xplan.display_cursor(‘atfwcg8anrykp‘));
标签:order data 归档日志 并行 exe user 占用 修复 creat
原文地址:http://www.cnblogs.com/zihanxing/p/6852672.html