百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Oracle数据库瘦身方案--清理数据库审计表

mhr18 2024-09-17 23:17 22 浏览 0 评论

概述

数据库就跟我们人一样,如果你一直吃东西,但是却不排掉无用的垃圾,肯定是会越来越胖的。所以我们就需要定期去给数据库做瘦身。今天这部分内容主要介绍清理数据库审计表部分。


1、查看表空间整体情况

这里可以看到system表空间使用率达到99.99%,只要用dba_segments里面段做个排序就可以知道是aud$表影响的。

SELECT a.tablespace_name "tablespace_name",
 total/(1024 * 1024 * 1024) "all(G)",
 free/(1024 * 1024 * 1024) "free(G)",
 (total - free) / (1024 * 1024 * 1024) "used(G)",
 round((total - free)/total,4) * 100 "rate%"
 FROM (SELECT tablespace_name, SUM(bytes) free
 FROM dba_free_space
 GROUP BY tablespace_name) a,
 (SELECT tablespace_name, SUM(bytes) total
 FROM dba_data_files
 GROUP BY tablespace_name) b
 WHERE a.tablespace_name = b.tablespace_name;

2、查看sys.aud$的HWM线

2.1、创建HWM的存储过程

create or replace procedure show_space(p_segname in varchar2,
 p_owner in varchar2 default user,
 p_type in varchar2 default 'TABLE',
 p_partition in varchar2 default NULL) as
 l_total_blocks number;
 l_total_bytes number;
 l_unused_blocks number;
 l_unused_bytes number;
 l_LastUsedExtFileId number;
 l_LastUsedExtBlockId number;
 l_last_used_block number;
 procedure p(p_label in varchar2, p_num in number) is
 begin
 dbms_output.put_line(rpad(p_label, 40, '.') || p_num);
 end;
begin
 dbms_space.unused_space(segment_owner => p_owner,
 segment_name => p_segname,
 segment_type => p_type,
 partition_name => p_partition,
 total_blocks => l_total_blocks,
 total_bytes => l_total_bytes,
 unused_blocks => l_unused_blocks,
 unused_bytes => l_unused_bytes,
 last_used_extent_file_id => l_LastUsedExtFileId,
 last_used_extent_block_id => l_LastUsedExtBlockId,
 last_used_block => l_last_used_block);
 p('Total Blocks', l_total_blocks);
 p('Total Bytes', l_total_bytes);
 p('Unused Blocks', l_unused_blocks);
 p('Unused Bytes', l_unused_bytes);
 p('Last Used Ext FileId', l_LastUsedExtFileId);
 p('Last Used Ext BlockId', l_LastUsedExtBlockId);
 p('Last Used Block', l_last_used_block);
end;
/

2.2、查看HWM线

set serveroutput on
exec show_space(p_segname=>'AUD
,p_owner =>'SYS',p_type => 'TABLE'); --HWM = total_blocks- Unused Blocks +1。

可以看到数据库审计表当前HWM线为115147。


3、备份数据库审计内容(保留最近1年)

这里跟业务确认是保留数据库审计一年的记录。

create table rfuser.aud_190628 as select * from aud$ where substr(sysdate-NTIMESTAMP#,2,9)<360;

4、清理数据库审计

由于是正式库,怕truncate操作会带来其他的一些问题,不直接做truncate,而是执行以下命令:

truncate table sys.aud$ reuse storage;
alter table sys.aud$ deallocate unused keep 15000m;
alter table sys.aud$ deallocate unused keep 10000m;
alter table sys.aud$ deallocate unused keep 5000m;
alter table sys.aud$ deallocate unused keep 2000m;
alter table sys.aud$ deallocate unused keep 500m;
alter table sys.aud$ deallocate unused keep 10m;

truncate过程1-2分钟之内结束,最后sys.aud$变成10M。如果想删除大表也可以这么操作(delete操作耗资源),只是不一定那么快释放空间。


5、迁移回aud$表

alter table aud$ nologging;
insert into aud$ select * from rfuser.aud$;
alter table aud$ logging;

6、查看aud$表HWM

目前aud$表的HWM线为59507。


7、输出清单

记录清单如下:


后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下!

相关推荐

Team IDE 集成管理工具

Team·IDE工具简介TeamIDE工具集成SSH、FTP、MySql、Redis、Zookeeper、Kafka、Elasticsearch等管理工具Team·IDE功能模块目录结...

MySQL大数据表处理策略,原来一直都用错了……

场景当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题。数据的插入,查询时长较长后续业务需求的扩展,在表中新增字段,影响较大表中的数据并不是所有的都为有效数...

Java程序员你真的甘心只做增删改查吗

各位志同道合的朋友们大家好,我是一个一直在一线互联网踩坑十余年的编码爱好者,现在将我们的各种经验以及架构实战分享出来,如果大家喜欢,就关注我,一起将技术学深学透,我会每一篇分享结束都会预告下一专题最近...

Java后端开发除了增删改查还有什么?

后端的追求:接口稳定、架构合理、业务逻辑清晰、模块拆分合理、支持高并发等。软件本身归根到底都是由算法+数据结构构成的,进一步细化之后,其实就是通过一系列的增删改查操作,构成算法,对数据结构进行操作,赋...

基于shiro实现session持久化和分布式共享

前言本文写下session持久化和分布式共享基于shiro框架对session的管理机制来实现必要性一直处于登陆状态:你登陆微信不可能三天两头就让你重新登陆吧?而是一直处于登陆状态除非主动退出...

为啥工作那么多年,你还是只会增删改查?

你以为没有这样的感觉,工作中领导和同事都非常认可你的能力,但是你想更进一步,却不被认可。想出去看看,跳槽面试,却也是屡屡碰壁。面试的过程中,面试官问技术方案,明明心里很清楚,或者说印象还行,可就是说不...

Java程序员除了做增删改查还能干嘛?

就以Java后端开发为例,说说不同级别程序员干的事情。1初级开发,大概是有3年Java开发经验。22年底,上海,这批程序员如果学历是本科,薪资一般是8k到2w,当然如果能进好公司或互联网大厂,薪资能...

Java面试题及答案总结(2025版持续更新)

大家好,我是Java面试分享面对Java后端岗位的激烈竞争,掌握系统化的知识体系至关重要。本文整理了覆盖主流技术栈的高频面试题,助你高效备战,内容包含:Java基础、并发编程、Spring生态、数据库...

微服务架构之API网关——在微服务项目中的技术框架和用法实践

API网关技术实战在介绍了API网关的相关理论之后,大家可以了解到API网关的作用和优缺点,接下来将为大家介绍API网关在微服务项目中的技术框架和用法实践。Zuul网关其实API网关并不是很难的技术,...

带小白黑客入门,你也可以跟我们一起成为黑客大牛

小编这几天一直在做关于ssrf的实验,这篇文章可以带纯小白黑客入门。靶机ip地址:192.168.2.138查看靶机运行的redis服务。攻击机为ip192.168.2.112.用客户端redis-c...

Python最常见的170道面试题全解析答案(二)

60.请写一个Python逻辑,计算一个文件中的大写字母数量答:withopen(‘A.txt’)asfs:count=0foriinfs.read():ifi.isupper...

Spring Boot项目集成Redis,原来这么简单!

在现代软件开发的“快车道”上,SpringBoot无疑是许多开发者手中的“神兵利器”。它以其“约定大于配置”的理念,大大简化了Java应用的开发和部署过程,让开发者能够将更多精力聚焦于业务逻辑本身。...

Apache Commons Pool——优化你的java内存

大家好,我是吉森。我会持续分享一些开发技巧、经验和技术,如果你也热爱各种开发技术,欢迎关注我。今天我们继续介绍ApacheCommons工具包,今天的主角是:CommonsPool。简单地说,它是...

码农成长系列-基于WebSocket的后台消息提醒

场景描述当用户对app有某些业务操作时,需要将该操作友好地提醒给,有接收提醒权限的后台管理者。技术场景分析经分析,要实现上述业务,业务拆解后可能需要解决如下业务①.触发提醒待推送数据的监听②.提醒时接...

百度直播消息系统的实践和演进

导读:直播业务的核心功能有两个,一个是实时音视频推拉流,另一个是直播间消息流的收发。本文主要介绍百度直播服务内的消息服务系统的设计实践和演化。一、背景直播间内用户聊天互动,形式上是常见的IM消息流;...

取消回复欢迎 发表评论: