根据时间字段导入数据的问题总结
<p>在之前的博文中介绍过如何通过exchange partition,split partition达到快速的数据切换,对于上百G的大表来说,速度都在秒级完成<br />对于大分区重新分区来说,上面的步骤已经够用了,但是对于数据清理来说,工作才刚刚开始,这是一种逻辑的数据清理,因为目前分区表中重新分区后没有数据,对于历史数据可以选择按照...
清理session的小插曲(二)
在上周巡检系统的时候发现session列表中显示有一个session的状态为“KILLED",当时没有太在意,等到周一回来做检查的时候,发现那个session的状态还是为KILLED.<br />这肯定是个问题,我们来看看这个session的情况。从v$session里可以看出这个session最早是在7月8日初始化的。<br /><br />SQL> select sid,seria...
巧妙使用exchange partition的一个案例
<p>前几天写过一篇文章讨论过分区表的在线重定义,其实就是另外一个分区表和现有的分区表做数据字典信息的交换<br /><a href="http://blog.itpub.net/23718752/viewspace-1734195/">http://blog.itpub.net/23718752/viewspace-1734195/</a><br />当然了除此之外还是需要一些相应的权限,在这个过程中会在内部做类似物化...
关于分区表的在线重定义
目前项目中有一个问题,存在一个分区表,因为分区规则的问题,使得分区表中的数据分布很不均匀,数据都分区在了默认的maxvalue分区上。现在需要重新划分分区。从常规的角度来看,这中重新分区的问题一般有以下几个步骤。1.数据备份,采用exp/expdp或者ctas的方式2.truncate 分区表的数据3.删除多余的分区,只保留maxvalu...
看似诡异的tablespace online问题
今天在做一些演示的时候,在虚拟机上装了两套数据库软件,10g和11g的。还是在演示普通数据文件迁移的时候还是碰到了一些意料之外的问题,从当时的情况来看感觉还是比较诡异的,所以马上切换到另外一套环境去试验就没有任何问题了。对于这个问题事后进行了分析,发现还是一些简单常规的错误,自己还是对一些细节没有掌握好,...
两个死锁的实例
关于数据库中的死锁。如果在应用中碰到都会毫不犹豫转交给DBA,但是从目前我接到的deadlock的问题来看,和Oracle官方的描述基本都是一致的。The following deadlock is not an ORACLE error. It is a deadlock due to user error in the design of an application or from issuing incorrect ad-hoc SQL. The...
关于create database语句在10g,11g中的不同
最近抽空练习了下手工建库,在10g的时候基本都在20分钟搞定,在11g中其实还可以更快,因为10g中需要配置的admin目录,需要创建bdump,udump之类的目录等等,在11g都被adr给默认替代了,只要提供了$ORACLE_BASE,就会默认在$ORACLE_BASE下生成对应的目录结构。其它步骤完全可以按照10g的脚本来使用,没有任何问题,但是如果...
关于ORA-01555的问题分析
今天开发的同事发给我一个问题,在运行某一个Job的时候抛出了ORA错误,希望我们看看从数据库层面能不能发现什么。错误日志如下:Function:EntitySQLCursor::queryLinenumber: 113Time:Thu Jul 2 22:52:46 2015Messagetext: (PE1-000143) Internal IO Framework Database Error, message ORA-0155...
并行查询缓慢的问题分析
今天,数据迁移组的同事问我一个问题,说他们现在需要在迁移库中查看一些数据,但是查看的时候速度很慢,想让我们看看是不是数据库端出了什么问题。因为数据迁移的一些准备工作刻不容缓,所以需要我尽快进行分析和解决。拿到问题之后,首先分析系统的负载和资源使用情况,这台数据迁移的服务器使用top命令的结果看起来没有...
IT中的闰秒问题
虽然闰秒的考验已经结束了,不少IT人都为这一秒付出了很大的代价。我也是在周末知道闰秒的说法,自己听到时也是一知半解,原本以为是个很新鲜的名词,看着微信朋友圈和微信群里大家都在热烈讨论,因为都是oracle圈子的,大家讨论的更多关注点都在数据库层面了。 讨论比较多的说法是:这个问题将影响部分开启ntp服务...
dataguard中MRP无法启动的问题分析和解决
自己手头有一套dataguard环境,因为也有些日子没有用了,结果突然心血来潮准备启动起来学习一下,突然发现在敲了命令 recover managed standby database disconnect from session之后,命令运行正常,但是后台却报了ora错误。Sat Jun 27 23:16:39 2015Recovery Slave PR00 previously exited with exception 1157Errors in...
数据刷新中的并行改进(三)
在之前的两篇中分享了数据刷新的并行改进,其实在对很多的数据表做了切分之后,数据刷新的总体负载就基本是平均的了。如何使得刷新的过程更加平滑和完整,我们还是需要做一些工作的。首先各个节点中都存在相同的表(其实是物化视图),所以在刷新的时候还是基本靠串行的思路来做并行的事情,怎么理解呢。可以参见下面的图...
数据刷新中的并行改进(二)
在之前的博文中分享了数据刷新中的并行改进建议,但是对于方案的落地还是有很多的细节需要实现。首先是关于很多的表怎么把它们合理的进行并行切分。根据实际的情况,因为这些数据字典表都相对数据量都不大,所以存在的分区表很少,所以可以考虑按照segment的大小来作为并行切分的基准。所以在分布式环境中,在进行了并...
使用flashback query巧妙抽取指定数据
在生产环境中存在着大量的数据,和业务是密切相关的。比如系统中的某个业务流程出现了问题,如果想复现就会显得非常困难,甚至是不太可能的,比如电信系统中存在着大量的客户信息,相关联的表的数据量都基本在千万,亿级。如果要抽取,是全量抽取还是增量抽取。全量抽取可行,但是实际操作起来也不现实,如果要在测试环境...
数据刷新中的并行改进(一)
昨天按照计划进行了系统升级,多多少少还是碰到了一些问题。有一个问题不算紧急,但是也在计划之中需要进行调优和改进。是关于数据的复制刷新的使用。为了更加清楚的描述问题,自己画了下面的一个简单的示意图来说明。其实真实环境要远远比这个复杂,这是简单说明问题点到为止即可。这是一个数据字典数据型数据,也算是...
重启数据库的一场闹剧
在几周前,某个测试环境在尝试impdp导入dump的时候报了错误,有个DBA立马做了kill session的操作,但是持续了5个小时,session状态还是KILLED,于是他们就在等待session被pmon回收。结果又等了几个小时,还是KILLED状态。最后两拨DBA在交接的时候把这个问题就说明了一下,另外一个DBA继续尝试impdp就报了下面的错误。Con...
巧用外部表备份历史数据
在很多的系统中,随着时间的推移,都会沉淀大量的历史数据。一般数据量达到一定程度都会考虑使用分区表来处理。根据业务规则,可能有些历史数据隔一段时间就需要做清理了,这个时候历史数据就需要在分区级进行清理。在不同的系统,不同厂商都有不同的实现方案。但是从数据安全角度来说,都需要做备份工作,也是预防万一。...
无法运行的update问题解析
今天有个同事向我反馈一个问题,说是客户在部署他们提供的一个sql语句时,报了ora错误,想让我帮忙看看是什么原因。update sub_errs set error_status = 'READY_TO_RECYCLE' WHERE sub_appl_id = 3008 AND ENTITY_ID = 8336079 AND MASTER_TRX_ID = 202809364 and error_status = 'PENDING_DEPENDENCY' Error report...
关于Oracle中重启数据库的一个bug
关于drop database在oracle中是致命的操作,这个操作自己在测试环境中体验过,会完全删除数据文件,因此这个操作非常敏感但是实用性不强,不过话说过来,这个操作也不是随便就能执行的,除了操作敏感的权限之外,其实还是有一些前提条件的。在数据库open状态,是无法运行这个命令的。SQL> drop database TEST;drop datab...
曲折的dump导入及问题分析
今天下午的时候得到反馈,说开发在导入一个dump的时候报了错误,他们尝试连接数据库,发现连接都有问题,让我们赶紧看看。这是一个测试环境的库,在服务器上同时还跑着十多个数据库不同应用的数据库实例。> sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Mon May 25 14:28:50 2015Copyright (c) 1982...