使用shell生成状态报表
在数据迁移的时候,目前启用了10个并行的进程。每个进程负责一部分的数据导入工作。然而在统计数据导入进度的时候,总是感觉抓不到重点,没有一目了然的报告。在定时做数据状态检查的时候,总是凭着感觉和不停的查看日志来得到最基本的状态。为了从这种体力工作中解放出来,今天写一个状态报表来对数据的导入状态进行清晰...
通过addm分析io问题
昨晚在做测试环境数据迁移的时候,遇到了io的问题,本来预计2,3个小时完成的数据导入工作最后竟然耗了7个多小时。在数据的导入中,使用了10个并行的session,每个session都启用的并行度为8,在表级,索引级都做了nologging设置,在insert的时候使用了append模式,结果本来数据的导入还是比较顺利的,突然在8点左右开始就一...
关于oracle后台启用的schedule job
在昨天晚上10点开始,数据库的性能开始下降,出现了一些j00开头的进程。而且持续了比较长的时间,简单分析了一下,对应的进程执行的sql语句如下。####### Process Information from OS level as below ########oraccbs1 16184 1 23 22:00 ? 00:...
启用ODM极速调优IO
在平时的工作中,数据库所处的文件系统是vxfs的话,可以考虑启用veritas的odm特性。ODM(Oracle Dsk Manager)是在oracle 9i之后开放出来管理数据文件,可以提高oracle数据库的输入输出数据吞吐量。Veritas提供了ODM的扩展,可以在VxFS文件系统的基础上,为oracle提供更高的读写速率和更简便的管理,其在VxFS文件系统上的...
海量数据迁移之分区表批量insert性能改进
在平时的工作中接触到的分区表一般都比较大,而且分区也少则几十,多则几百,上千。在数据迁移的时候,分区表的迁移更是块大骨头,因为数据量太大,而且有些分区表中还有一些lob字段,想直接通过sqlldr来迁移还是需要做一些额外的工作。如果通过datapump分区导出数据,批量导入,也是一种思路,不过需要考虑好并发的进...
通过shell和sql结合查找性能sql
在生产系统中,会发现一些潜在的sql问题,为了能够及时和准确的定位,我们可以借助sql_monitor来做性能sql的查找。可以在后台启用一个job不定时的去查找。毕竟大半夜的我们去监控也是有难度的,我们希望一切都能很自然的处理,结果我在一个指定的目录下每隔10分钟去查找一次性能sql,如果当天已经有生成报告就不重新生成...
通过闪回事务查看数据dml的情况
昨天有一个网友问我,怎么能够查询一个表中最后一条插入的记录,我大概回复了,可以通过闪回事务来实现,但是得看什么时候插入的数据,也需要一定的运气。如果通过闪回事务来得到对应的undo_sql,可能多个dml语句对应一个事务,所以我们需要得到的是一个完整的事务的信息,里面包括对应的Undo_sql,这样才算得到比较完整的...
数据迁移前的准备和系统检查
关于数据迁移,在之前也讨论过一些需要注意的地方,可能林林总总列了不少,都是在数据迁移迁移前和迁移时需要注意的。http://blog.itpub.net/23718752/viewspace-1195364/我在这个帖子的基础上进行更多的总结和补充。数据升级前的测试 -)充分的测试,评估时间,总结经验,提升性能, 心中有数。在生产中进行数...
数据迁移中的数据库检查和建议
关于数据迁移,在之前也讨论过一些需要注意的地方,可能林林总总列了不少,都是在数据迁移迁移前和迁移时需要注意的。http://blog.itpub.net/23718752/viewspace-1195364/http://blog.itpub.net/23718752/viewspace-1254945/我在这些帖子的基础上进行更多的总结和补充。数据库级的检查和建议1)参数检查有些参数...
通过shell脚本得到数据字典的信息
在平时的工作中,可能需要查询一些数据字典的信息,比如数据字典对应的基表信息,可以得到更多数据库内部的一些详细信息。比如user_objects这个数据字典视图,里面可能就包含很多的信息。首先可以得到,它是一个视图,然后在public上创建了对应的同义词,但是在不用用户使用的使用,查出的结果会不相同,这个其实是根据...
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%以上的数据都分布在...
简单分析oracle的数据存储
在数据库的存储结构中,我们知道一般来说一个表都存储在对应的数据文件里,数据文件可以分为多个段,一般来说一个表会对应一个数据段,单纯考虑数据段的时候,数据段又可以分为多个区,每个区都可以分为若干个数据块,在操作系统层面,有对于的数据块映射和数据库层面的数据块有一个映射,可以打个比方来说,一栋大楼里面可以...
关于分区表的move操作
关于分区表的move操作还是很值得深究的一个问题。如果分区表中含有lob字段,难度还会加大。对于普通的表而言,做move操作室理所当然,oracle提供的方式很直接快捷。当然了这个命令也不是高可用的范畴。但是对于数据重组还是很方便快捷的。一般来说,如果尝试对分区表进行move操作,会得到如下的错误警告。SQL> alter...
生产环境sql语句调优实战第六篇
生产环境中有大量的sql语句在运行,尽管有awr,ash做数据的收集统计,但是dba的调优工作大多数情况都是在问题已经发生后做排查的,有些sql语句可能执行的时间有1,2分钟左右,但是sql语句本身有潜在的性能问题,通过awr是定位不到的,ash尽管能够查到,但是我们在未知的情况下怎么知道问题发生的精确时间点,通过sql monito...