通过shell分析表依赖的层级关系
在平时的工作环境中,总会有一些表会存在依赖关系,比如我们有三张表customer,用户表subscriber,账户表account其中客户可以有多个用户或者账户,subscriber表和account表中就存在外键customer_id指向了customer表。这种情况下表的依赖关系就如下所示:customer &...
关于查看文件的几个小命令
通过shell脚本监控sql执行频率
在生产环境中,可能会存在各种潜在的sql问题,比如由于硬件资源导致,如果影响到了IO,CPU,就会导致一些本来运行很快的sql语句变慢或者系统响应严重减缓。比如由于数据库的一些设置导致执行计划的问题,sql_profile导致的执行计划稳定带来的性能不稳定,表中统计信息的变更导致的执行计划的变化等等。有时候等到问题发生...
关于正则表达式第四篇
正则表达式,林林总总说了几篇,还是有不少的内容需要补充。-->星号字符出现0次或者多次$ echo "ik"|sed -n '/e*/p'ik$ echo "ieek"|sed -n '/e*/p'ieek$ echo "This is a color TV"|sed -n '/colou*r/p' --colour中的u可以出现0次或者多次。出现0次的时候color就符合条件This is a color TV$ echo "This ...
shell基础学习总结(一)
关于shell也多多少少的写了不少文章了。在工作中shell的使用也是相当的普遍了,尤其是基础的学习。今天就简单的总结一下,希望对大家有所帮助。-->查看局部/全局环境变量 printenvenvset查看进程对应的环境变量。比如我们想查看oracle中smon进程对于的环境变量,我们可以使用如下的方法查看。...
跨网络拷贝文件的简单实践
在实际的项目中可能要访问生产环境是需要各种安全验证和设置的,毕竟客户的数据是最宝贵的资源。一般来说,客户会把一部分访问的权限开放出来。这样在系统出现问题的时候,能够更快更高效的处理问题。下面是一个简单的图表,能够说明一下其中一个项目的网络访问情况。右边的绿色区域是公司内部的环境,其中生产问题复现...
shell的图形化实现简单示例
shell脚本一直以来就给人呆板枯燥的感觉。如果来点图形的感觉可能大家对shell的感觉就会多加分。其实在linux中已经有人做了不少的工作,目前使用比较多的是dialog,还有很多衍生的版本,比如kdialog,gdialog,zenity等等。都在图形接口上有自己的界面风格和特点。安装dialog,一般Linux中都会默认安装这个包,如果没有可以...
shell基础学习总结(二)
-->关于shell编程之文件比较可以使用如下的选项来做文件的比较。有了这些选项,文件的比较来说都是游刃有余。-d file file是否存在并是一个目录-e file file是否存在-f file file是否存在并是一个文件-r file &nb...
通过shell脚本查看锁信息
在生产环境维护中,如果碰到较长时间的锁等待,很可能会造成各种可能的问题。我们可以使用如下的脚本来实时监控锁的情况。sqlplus -S $DB_CONN_STR@$SH_DB_SID
通过shell脚本生成查询表数据的sql
在工作中我们需要查询表的数据条数,一般来说就是使用select count(1)或者select count(*)之类的语句。当然了对于不同的表来说,应该还是可以做一些细分,能够最大程度的提高效率,比如表中含有主键列,尝试走索引扫面可能会被全表扫描效率要高。如果表中的数据太多,而且没有一些相关的约束,可以考虑使用并行来提高等等...
使用shell脚本巧妙统计文件
在数据迁移的过程中,会产生大量的dump文件,需要对dump的文件情况进行一个简单清晰的管理,比如目录下的文件特别多,而且某些表比较大,对应的dump文件比较多,就想得到一个很简洁的报告,能够统计出来每个表有多少个dump文件。 比如有1000个dump文件,都是基于 表TEST1,TEST2,TEST3,TEST4的。那么就想得到一个简单的统计...
通过shell抓取html数据
最近看一些网站的时候,发现有些数据很有意思,想把数据截取出来,但是想把数据抽取出来很是困难。因为如下的小方框的数字都是上下两行排列,想要把数据抽取到一行是很难实现的。斯达 2:3 斯特罗姆 23:57 欧 亚 析 0-1 2.45↑ 3.50 2.32↓5.15...
使用shell抽取html数据之二
昨天使用shell脚本来抽取html数据的时候,碰到了一个问题,如果要抽取的数据成了如下的情形时,数据的抽取就会出现不一致,有一些记录会没有数据,只显示"未开售" 这个时候如果还是按照原来的思路来抽取就会出现数据混乱的情况,比如根据第一列抽取数据一共有75 行,但是根据右边的赔率只能得到74行,有一行的数据混乱,后...
通过shell解析dump生成parfile
当我们得到一个dump文件的时候,总是有些不太确定dump文件中是否含有一些我们原本不希望出现的表,如果在未知的情况下对dump文件进行操作时很危险的,比如我们想要得到的是表结构的信息。如果不指定需要的表,会把当前schema下所有的Object对象的信息都导出。一般的操作中,建议还是使用parfile。[ora11g@rac1 dbm_lite]...
通过shell得到数据库中权限的脚本
有些时候想直接查看某个用户下对应的权限信息。自己每次从数据字典中查找有些太麻烦了。如果涉及的对象类型多一些,很容易遗漏。一种方式就是通过exp直接导出对象的信息来,可以直接解析dump内容来得到object的一些信息,也可以直接访问数据字典表来得到。以下是在Metalink中提供的脚本,我在原本的脚本基础上稍微改动...
通过shell脚本查看procedure的信息
在一个schema中,可能含有大量的procedure, 有时候想查看具体的信息,一般得通过toad,plsql dev等工具来查看,有时候在尽可能摆脱图形工具的前提下,想能够尽快的查找一些信息,还是使用shell脚本更快,更准,更直接。可以使用如下的shell脚本来查找procedure的信息。以下的脚本可以查找是否有需要的prcedure信息。PR...
通过shell脚本查看package的信息
有时候想查看一个package的信息,但是对于package的名字不是很确定,比如只知道一个大概,知道一些关键字,这个时候通过图形工具是查找不到package的信息的,而且对于package的信息,我只关心package里面有哪些存储过程,哪些函数等,看看简单的参数情况就可以了,类似sqlplus的desc的形式。shell脚本的实现如下,以下...
通过shell检查分区表中是否含有默认分区
在大数据量的系统中,分区表是很常见的,分区有多种类型,可以根据业务来选择自己需要的分区,不过为了数据的兼容性,需要考虑对于分区表设定一个默认的表分区,如果数据在插入表分区的时候,没有符合条件的分区,就会插入默认的表分区中。这个可以根据自己的需要来设定,如果确实对数据有严格的要求,甚至可以要求不加入默认...
通过shell脚本来查看Undo中资源消耗高的sql
在查看undo的使用率的时候,在Undo_management为auto的时候,经常会看到undo自己在不断的伸缩扩展,自我调节。有时候看到Undo收缩的很紧,就想知道哪些sql语句在运行,可能有哪些潜在的问题。对于在线业务系统而言,如果某一条sql语句运行时间较长,而且消耗的undo资源极高的情况下,sql语句很可能是有问题的。可以通过如下...
通过shell脚本定位性能sql和生成报告
oracle的sql monitor是一个很有用的工具集。但是通过sql命令和反复去调用dbms_tune来传入参数等等操作感觉挺费事的。可以通过如下的脚本来定位sql monitor中的性能sql,发现一些潜在的性能问题。这个脚本可以定位正在sql monitor监控范围内的sql语句。MONITOR_OWNER=`sqlplus -silent $DB_CONN_STR@$SH_DB_SID <<ENDse...