DBA oracle之操作篇

操作篇 扩展表空间、清理高水位、清理缓存、清理一条SQL执行计划、清理二阶段事务锁、表分析、删除归档、LogMiner、定位返回大结果集SQL、细粒度审计日志

扩展表空间

--增加一个数据文件

ALTER TABLESPACE TBS_CCARE_DAT
  ADD DATAFILE '+DG_DATA/dbfiles/tbs_f04.dbf'
  SIZE 30G
  AUTOEXTEND OFF;

--增加数据文件大小

alter database datafile '<DATALFILE_NAME>' resize <FILE_SIZE>G;

 清理高水位

--原始清理高水位(如果表数据重要且业务繁忙,需要停业务)

create table inf_orderinfo bab as  select * from inf_orderinfo;--备份

truncate table inf_orderinfo

insert into inf_orderinfo select * from inf_orderinfo_bak;--备份数据

drop table inf_orderinfo_bak;--删除备份表

---在线清理高水位的方法(10G以上)

alter table inf_orderinfo enable row movement;

alter table inf_orderinfo shrink space;

--lob段清理高水位

alter table *** modify lob(***)(shrink space);

alter table *** modify partition *** shrink space;

清理缓存

系统繁忙期间不允许执行如下操作

alter system flush buffer_cache;--清理高速缓存

alter system flush shared_pool;--清理共享池(执行计划及数据字典)

清理一条SQL执行计划

SQL>SELECT ADDRESS,HASH_VALUE,SQL_TEXT FROM V$SQLAREA WHERE SQL_ID='2hjuwpada

msxb5';

ADDRESS HASH_VALUE SQL_TEXT

1EFB91B8 3642190903 select count(*) from xff

 

SQL>exec dbms_shared_pool.purge('1EFB91B8,3642190903','C');

PL/SQL过程已成功完成。

清理二阶段事务锁

select * from DBA_2PC_PENDING;存在未决事务的时候有可能发生资源的锁等待ORA-01591的错误,可以按如下方式处理。

ALTER SYSTEM DISTRIBUTED RECOVERY;

begin

  rollback force '224.4.256';commit;

end;

ALTER SYSTEM ENABLE DISTRIBUTED RECOVERY;

begin

  DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY('224.4.256');commit;

end;

表分析

begin

dbms_stats.gather_table_stats(ownname=>'CCARE',tabname=>'HIS_ORDER_ITEM',MO_INVALIDATE=>false);

end;

删除归档

rman备份归档的命令加上delete input,会自动删除已备份的归档日志,所以正常情况下我们是不需

要关系归档的,但是一旦备份脚本出问题,备份失败,则归档也不会自动被删除,此时往往需要人工

干预,紧急情况下删除归档方法如下:

删除一天前的所有归档

rman target /

RMAN>DELETE noprompt ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-1';

删除所有归档

RMAN>delete archivelog all;

posted @ 2016-07-21 22:06  当年亦如是  阅读(197)  评论(0)    收藏  举报