网站首页 > 技术文章 正文
接续上一个文章:记oracle日志挖掘实操&查询归档不正常增长情况(一)
https://www.toutiao.com/article/7109732381657334305/
问题:最近几周经常手动删除归档日志,归档日志报空间不足(预留800G空间已用完),基于此查询归档日志情况(近期业务有所上涨),优化备份脚本保留时间。
1、查看logtab表中的数据格式
desc logtab;
select * from logtab where rownum<11;
SELECT username AS USR, (XIDUSN || '.' || XIDSLT || '.' || XIDSQN) AS XID,SQL_REDO, SQL_UNDO,SEGMENT_NAME,TABLE_NAME FROM logtab WHERE username IN ('PDBZ, 'JW');
查询后的结果,table_name是以object的id显示的如:'OBJ# 55830',
#号后面就是时间的OBJECT_ID;
可通过user_objects,或者dba_objects查找对应表叫什么。
select * from user_objects where OBJECT_ID ='55830
2、根据table_name和sql_undo的内容查询:
和归档相关的操作一般是增删改(INSERT,UPDATE,DELETE)
select table_name,count(1) from logtab where username is not nul and sql_undo like '%UPDATE%' group by table_name;
select table_name,count(1) from logtab where username is not nul and sql_undo like '%INSERT%' group by table_name;
select table_name,count(1) from logtab where username is not nul and sql_undo like '%DELETE%' group by table_name ;
有些情况挖掘出来的数据里面有username,可以通过username进一步筛选,缩小范围
select table_name,count(1) from logtab where username = 'HR' and sql_undo like '%INSERT%' group by table_name;;
select table_name,count(1) from logtab where username = 'HR' and sql_undo like '%DELETE%' group by table_name;
3、结合OBJECT_ID,去查询对应的table_name是什么;
select * from user_objects where OBJECT_ID in ('55830','9143','82324')
最后就是把查询到的表及每个表的操作反馈给开发,去反向查找对应涉及到的程序是否需要优化。
--------------------------------------------------分享下我们的备份脚本--定时删除归档和过期的备份集---------------------------------------------------------------------
#!/bin/bash
day=7
backdir=/u01/rmanbak
backtime=`date +"%Y%m%d"`
deldir=`date -d "${day} days ago" +%Y%m%d`
source /home/oracle/.bash_profile
if [ ! -d ${backdir}/${backtime} ];then
mkdir -p ${backdir}/${backtime}
else
rm -rf ${backdir}/${backtime}/*
fi
rman target / log=${backdir}/${backtime}/Full_$backtime.log << EOF
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
sql 'alter system archive log current';
backup as compressed backupset full database format '${backdir}/${backtime}/DB_%d_%T_%U';
sql 'alter system archive log current';
backup archivelog all format '${backdir}/${backtime}/ARCH_%d_%T_%s_%p' delete input;
backup current controlfile format '${backdir}/${backtime}/CTL_%d_%T_%s_%p';
release channel c1;
release channel c2;
crosscheck backup;
delete noprompt expired backup;
}
EOF
if [ -d ${backdir}/${deldir} ];then
rm -rf ${backdir}/${deldir}
fi
猜你喜欢
- 2024-11-12 深入剖析Oracle SCN机制 oracle ssc
- 2024-11-12 Oracle两张表数据比较的几种方式 oracle对比两个表中字段不一致
- 2024-11-12 SQL解析与游标 sql游标用法
- 2024-11-12 Oracle SQL解析全过程 oracle sql%
- 2024-11-12 Oracle项目管理系统之报表分析 oracle 报表
你 发表评论:
欢迎- 615℃几个Oracle空值处理函数 oracle处理null值的函数
- 607℃Oracle分析函数之Lag和Lead()使用
- 595℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 592℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 586℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 580℃【数据统计分析】详解Oracle分组函数之CUBE
- 569℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 560℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)