shell脚本之分析oracle数据库数据泵日志中表的大小
1、分析日志格式如下
|
. . imported "xxx_330508"."xxx_T_DATA" 46.17 MB 268 rows . . imported "xxx_330508"."xxx_T_CAUSERLOG" 24.74 MB 72246 rows . . imported "xxx_330508"."xxx_T_UIQUERYFORM" 23.98 MB 124432 rows . . imported "xxx_330508"."P#xxx_T_PAPAGE" 23.82 MB 102843 rows . . imported "xxx_330508"."yyyyy" 15.90 MB 8946 rows |
这里我主要关注红色部分的总和。
2、用于分析上述日志的shell脚本如下:
|
# vi oracle_ayalyze_dpfile.sh |
|
#!/bin/sh #echo -n "Please input analyze filename:" #read filename val01=`egrep -o "([0-9\.0-9]+? GB)" $1 |egrep -o "([0-9\.0-9]+?)" | awk '{sum+=$0*1024*1024}END{print sum}' | awk '{print $0*1}'` val02=`egrep -o "([0-9\.0-9]+? MB)" $1 |egrep -o "([0-9\.0-9]+?)" | awk '{sum+=$0*1024}END{print sum}' | awk '{print $0*1}'` val03=`egrep -o "([0-9\.0-9]+? KB)" $1 |egrep -o "([0-9\.0-9]+?)" | awk '{sum+=$0}END{print sum}' | awk '{print $0*1}'` val=`echo "$val01+$val02+$val03" | bc` val=`echo "scale=2;$val/1024/1024" | bc` echo $val"GB" |
|
测试: |
|
# /home/oracle/oracle_ayalyze_dpfile.sh /u01/app/oracle/admin/orcl/dpdump/db_xc161125.log 12.37GB |
|
解释: |
|
1)egrep -o "([0-9\.0-9]+? GB)" $1 -- 使用egrep查找匹配数据,egrep默认支持正则表达式,grep不支持正则,除非指定参数-E,参数-o表示仅返回匹配字段值,否则返回整行数据。"([0-9\.0-9]+? GB)"这部分是正则规则,目的匹配日志中红色字段内容,$1表示分析文件通过参数方式传递。 |
|
2)egrep -o "([0-9\.0-9]+?)" -- 在上一步分析的基础上去掉单位 |
|
3)awk '{sum+=$0*1024*1024}END{print sum}' --使用awk对上一步的分析结果做一个求和的操作,即sum。 |
|
4)awk '{print $0*1}' --为了防止大数字使用科学计数法表示 |
|
5)val=`echo "$val01+$val02+$val03" | bc` --对上面计算出的3个结果进行一个求和操作,单位为kb |
|
6)val=`echo "scale=2;$val/1024/1024" | bc` --将单位为kb的结果转换为单位为gb的结果 |
|
7)echo $val"GB" --输出结果,打印在控制台 |
shell脚本之分析oracle数据库数据泵日志中表的大小的更多相关文章
- [转]oracle 10g数据泵之impdp-同时导入多个文件
要了解impdp,请先了解导出,我之前作过导出的笔记:oracle 10g数据泵之expdp.这两个笔记也许只对程序员有用,通常用于把正式区的数据导入到测试区,对数据库管理员也许帮助不大,他们使用这些 ...
- oracle数据库数据导入导出步骤(入门)
oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...
- Oracle使用数据泵导入/导出数据(expdp/impdp)
Oracle使用数据泵导入/导出数据(expdp/impdp) A电脑上的操作(expdp数据导出) 运行cmd: 登录数据库,输入命令:sqlplus 使用管理员角色登录需要在用户名后加" ...
- oracle 数据库数据备份
oracle 数据库数据备份 1.使用oracle用户应该就可以进行数据备份(不需要root用户):su oracle 查oracle实例名:echo $ORACLE_SID 例如查出来的 ...
- 用shell脚本实现定时备份数据库
1.备份数据库的方法 可以使用命令查看 ls /usr/local/mysql/bin 这个mysqldump就是系统内置的用来备份数据库的工具. 2.实现方法 ①先随便进入一个位置创建一个目录 ② ...
- Oracle使用——数据泵导入导出数据库——impdp/expdp使用
使用前提 EXPDP和IMPDP只可以在Oracle服务端使用. EXP导出的文件只可以使用IMP导入,不适用于IMPDP导入文件:EXPDP导出的文件只可以使用IMPDP导入,而不适用于IMP导出文 ...
- Oracle基础 数据泵导出/导入Expdp/impdp(转)
一.EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2 ...
- Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份
说明: Oracle数据库服务器操作系统:CentOSIP:192.168.0.198端口:1521SID:orclOracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务 ...
- 如何使用shell脚本快速排序和去重文件数据
前面写过一篇通过shell脚本去重10G数据的文章,见<用几条shell命令快速去重10G数据>.然而今天又碰到另外一个业务,业务复杂度比上次的单纯去重要复杂很多.找了很久没有找到相应的办 ...
随机推荐
- Swift ARC 自动引用计数
1.ARC 引用类型在堆上的内存分配过程中有 8 字节的地址长度用来保存对象的引用计数,堆上的内存并不像栈上那样立即进行回收,系统会定时对堆上的内存进行检查,当某个实例不再被使用时,引用计数会变为 0 ...
- 判断js数组包是否包含某个元素
要判断数组中是否包含某个元素,从原理来来说,就是遍历整个数组,然后判断是否相等,我们来造个轮子,名字就山寨PHP的数组函数in_array() Array.prototype.in_array = f ...
- alter日志报WARNING: too many parse errors
数据库版本:12.2.0 操作系统版本:RHEL7.2 最近观察到一个数据库alert日志老是报硬解析太多错误,且对应的sql语句都是查看数据字典表: 2017-06-16T08:46:46.4174 ...
- 分享一个Godaddy的优惠码,可以优惠35%——2013-11-23
国外的域名注册商就是好,还有优惠码,付费的时候贴上优惠码就能免相应的金额,不错. 在网上找的一个35%优惠的优惠码,可以买域名和主机.(主机就免了,有点贵,域名不错) 我买了个com域名,原本$12. ...
- 初识Spring Security
本文参考或者转自:http://haohaoxuexi.iteye.com/blog/2154299 1.新建Spring Security配置文件spring-security.xml:<?x ...
- vue用组件构建应用
组件系统是 Vue.js 另一个重要概念,因为它提供了一种抽象,让我们可以用独立可复用的小组件来构建大型应用.如果我们考虑到这点,几乎任意类型的应用的界面都可以抽象为一个组件树: 在 Vue 里,一个 ...
- React Native 进的第一个坑
Bundling index.ios.js [development, non-minified, hmr disabled] 0.0% (0/1), failed. error: bundling ...
- java InputStream和OutputStream
InputStream类型 类 功能 构造器参数 如何使用 ByteArrayInputStream 允许将内存的缓冲区当做InputStreams使用 缓冲区,字节将从中取出 作为一种数据源:将其与 ...
- CentOS系统实现SSH无密码登录的方法
一.环境配置 1.服务端:CentOS release 5.3 IP:222.73.115.198 2.客服端:CentOS release 5.8 IP:192.168.4.244 二.配置SSH无 ...
- Java知多少(75)Object类
Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: p ...