DBA oracle之操作篇
| 操作篇 | 扩展表空间、清理高水位、清理缓存、清理一条SQL执行计划、清理二阶段事务锁、表分析、删除归档、LogMiner、定位返回大结果集SQL、细粒度审计日志 |
扩展表空间
|
--增加一个数据文件 ALTER TABLESPACE TBS_CCARE_DAT --增加数据文件大小 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; |

浙公网安备 33010602011771号