数据迁移中的数据库检查和建议
关于数据迁移,在之前也讨论过一些需要注意的地方,可能林林总总列了不少,都是在数据迁移迁移前和迁移时需要注意的。http://blog.itpub.net/23718752/viewspace-1195364/http://blog.itpub.net/23718752/viewspace-1254945/我在这些帖子的基础上进行更多的总结和补充。数据库级的检查和建议1)参数检查有些参数...
通过shell脚本得到数据字典的信息
在平时的工作中,可能需要查询一些数据字典的信息,比如数据字典对应的基表信息,可以得到更多数据库内部的一些详细信息。比如user_objects这个数据字典视图,里面可能就包含很多的信息。首先可以得到,它是一个视图,然后在public上创建了对应的同义词,但是在不用用户使用的使用,查出的结果会不相同,这个其实是根据...
通过shell脚本分析足彩
最近对足彩的数据进行了一点分析,简单分享一下自己的一点收获,对于足球比赛的赔率还是很有计算方法的。我收集了一些比赛的数据,进行了简单的分析。创建了一个表为data.然后对于即将开始的比赛,进行胜负平的赔率计算,简单的shell脚本实现如下:sqlplus -s n1/n1 <<EOFset serveroutput onset linesize 200se...
通过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中提供的脚本,我在原本的脚本基础上稍微改动...
ORA-17500 ODM err的问题排查
今天在一套环境中做系统检查的时候,发现alert日志中有一段ODM的错误。日志内容大体如下,可以看到是在半夜4点多报的错误。Clearing Resource Manager plan via parameterFri Aug 22 02:00:52 2014ALTER SYSTEM ARCHIVE LOGFri Aug 22 02:00:52 2014Thread 1 advanced to log sequence 6934 (LGWR switch) Cur...
海量数据迁移之使用分区并行切分导入
在之前的章节中讨论过怎么把一个很大的分区表切分为若干的dump文件,在数据加载的时候能够同时做基于每个分区的数据导入,如果有些分区比较大,有几十个dump文件,那么这个分区做数据导入的时候是不能再进行并行切分了。现在在准生产环境中先查找了如下的表,charge,memo,charge_rel数量级都过亿,而且memo表中还含有lob...
使用shell测试历史数据样本
使用shell分析了一些数据有一些时间了,而且分析的数据情况也是基于历史数据,今天写了个脚本对历史的数据进行一个简单的分析,看看准确率到底有多高。这里有一个借助一个脚本12c.sh 对一些数据的排列百分比进行分析,比如今天有两个球队,主队让球一个,胜平负的概率为35%,40%,25%表data里存放着一些样本数据,记录了...
海量数据迁移之使用shell启用多个动态并行
在数据迁移中,可能有成百上千个表,有些表很大,有些表又很小。如果启用了多个并行的进程,可能会有资源分配上的问题。比如下面有10个表,100代表预计的时间为100分钟。table1 100table2 90table3 90table4 80table5 80table6 70table7 60table8 60table9&nbs...
一条运行了3天的"简单"的sql
早上刚到公司,查看系统的负载,就马上看到一个进程的执行时间已经有3天了。而且cpu的消耗极高。Tasks: 2374 total, 19 running, 2354 sleeping, 0 stopped, 1 zombieCpu(s): 21.7%us, 2.7%sy, 0.0%ni, 74.5%id, 0.0%wa, 0.1%hi, 0.9%si, 0.0%stMem: 37...
linux乱码和数据库乱码的问题简单排查
在本地的虚拟机环境一直凑合着用英文,今天想看看中文的东西都显示乱码,下定决心要把问题解决了。如果直接打印文本内容,通过putty也会显示乱码。[ora11g@rac1 ~]$ cat aa.shδ? ε??ο?θ?ζ―δ?δ??ζ?θ―[ora11g@rac1 ~]$这个时候很可能是putty的编码转换的问题,通过查看putty的设置,如上,可...
通过分区键值发现性能问题
在很多应用中如果数据量少有规模,都会有大量的分区表存在,使用比较多的是range partition.一般的range partition都一时间为键值,或者根据业务绑定的关键id值。虽然已经做了一些大数据量的数据迁移,但是不管是按照分区抽取,还是根据数据条数抽取,发现有一个表比较奇怪,一个100G左右的分区表,80%以上的数据都分布在...
通过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语句很可能是有问题的。可以通过如下...
简单分析oracle的数据存储
在数据库的存储结构中,我们知道一般来说一个表都存储在对应的数据文件里,数据文件可以分为多个段,一般来说一个表会对应一个数据段,单纯考虑数据段的时候,数据段又可以分为多个区,每个区都可以分为若干个数据块,在操作系统层面,有对于的数据块映射和数据库层面的数据块有一个映射,可以打个比方来说,一栋大楼里面可以...
关于分区表的move操作
关于分区表的move操作还是很值得深究的一个问题。如果分区表中含有lob字段,难度还会加大。对于普通的表而言,做move操作室理所当然,oracle提供的方式很直接快捷。当然了这个命令也不是高可用的范畴。但是对于数据重组还是很方便快捷的。一般来说,如果尝试对分区表进行move操作,会得到如下的错误警告。SQL> alter...