如何验证dump文件的有效性

为了测试用途,从生产库导出了一份dump文件,打算导入测试环境中,如果这份dump文件有损坏,可能我执行的impdp,会造成数据库有一部分数据导入成功了,但另一部分失败了,要么挑出失败的部分,断点执行,这难度比较大,要么只能清空,重新执行。我们是不是只能通过执行impdp,真正执行导入操作才可以知道这份expdp导出的dump文件是否是完整正确的?Oracle如此智能,会给我们一些方法来校验。这篇...
阅读(97) 评论(0)

生产数据导入测试环境碰见的一些问题

我们某一个系统的夜维出现了性能的问题,删除N张表,数据量从几万到几百万不等,现在需要3.5-4个小时,看了一下SQL AWR,有些采用了TABLE ACCESS FULL,而且是数据量百万级的表,并且一次删除5000条,批量要删除几百次,相当于执行几百次TABLE ACCESS FULL,效率可想而知。大家讨论后,决定除了索引、SQL语句,从夜维程序逻辑上也要优化,提出了一些方案,目前正处于测试中...
阅读(113) 评论(0)

一个诡异的SQL事务现象

今天测试过程中,同事提出了一个,看似诡异,实则很基础的问题,乍一看会被迷惑。用实验来复现下这个问题,(1) 创建测试表,A表的id字段是主键,B表的id_a字段是外键,参考A表的id主键,(2) 应用有这么一个逻辑,一个事务中,先更新表A,再INSERT表B,其中表B的id_a字段值是来自于表A刚才操作的主键,模拟如下,可以看出,更新表A的操作正常,但使用表A的主键值id=1,来INSERT表B的...
阅读(73) 评论(0)

解决Logical Reads高的方法和实验

之前介绍了CBC,就是cache buffer chains这个等待事件的影响,《缓解latch: cache buffers chains的案例》,解决逻辑读过高的SQL语句,是优化方向。为了更直观地说明这个问题,通过模拟实验,来了解下。创建测试表,test表三个字段,分别是id1,id2和name,insert入100万行记录,其中id1每个distinct值100次,id2针对每个id1的d...
阅读(43) 评论(0)

缓解latch: cache buffers chains的案例

这两天我们的一个核心系统U*S,正在做压力测试,虽然压测的服务器配置不如生产,但可以反映出一些问题,初始测试的TPS可以说非常低,据测试同事反映,压测一会,数据库服务器CPU就上来了,业务上有积报现象,找不着原因。既然数据库服务器CPU飙升上来了,说明数据库服务器上有压力,这就需要看压测期间,数据库有何负载变化。Oracle提供了我们非常丰富的工具,AWR就是其中之一,可以让我们了解特定时间段,数...
阅读(689) 评论(0)

学习show_space存储过程

今天学习和介绍一个有用的工具,来自TOM大神的show_space,其实这就是一个存储过程,用他可以统计一些段的用度,非常方便,网上流传着不同的版本。首先我们看下原版的脚本,https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:5350053031470create or replace procedure show_...
阅读(102) 评论(0)

Linux实际内存占用率算法,以及使用Python实现内存监控

这两天我们的一个核心系统,一套集群,逐台开始报警,内容是内存占用超阈值。按说这应该是一个非常紧急且需要立即处理的报警,但实际是不是这样,待我们拨云见日。以下为模拟实验,了解了下监控系统这条内存占用超阈值报警的计算方法,是用used/total*100%=1949/1988*100%=98%,即内存占用量超过了98%。网上学习了一番,其实这种计算方法不很准确,原因就是Linux的内存管理机制和Win...
阅读(106) 评论(0)

DBMS_STATS.AUTO_SAMPLE_SIZE的值是什么?

昨天类总在微信公众号,给我留言,这是2014年写的一篇文章(http://blog.csdn.net/bisal/article/details/18910785#reply),看了一下,当时的实验和说明是,SQL> exec dbms_stats.gather_table_stats(ownname=>'SYS', tabname=>'T2');PL/SQL procedure successf...
阅读(182) 评论(0)

dbms_space.create_table_cost的unwrap解密和原理解析

Oracle提供了一系列PL/SQL package,包含了函数、存储过程,方便用户的使用,可以参考《Oracle® Database PL/SQL Packages and Types Reference》手册,但其中一些存储过程的实现细节,Oracle并未透露,且对其进行了加密wrap。俗话说的话,“高手在民间”,从Oracle 9i开始,就有牛人前辈,找出了解密unwrap的一些方法,便于我...
阅读(2500) 评论(0)

如何解决/home/oracle: is a directory报警

今儿碰见一个略诡异的问题,source .bash_profile有一个警告,su - oracle有相同的警告,提示/home/oracle是一个目录。看一下profile文件,没看出有什么不同,和另外一台正常的机器比较,看着是一样的,奇怪了?仔细看用光标,发现了一些端倪,结尾行有一个~符号,颜色和下面行的不同,另外这行可以使用光标达到,下面行是不能达到,难道是这个问题?尝试删除黑色的~符号这行...
阅读(538) 评论(0)

百度AI大会的一些想法,了解DuerOS、Amazon Alexa和Echo

今天看了一会百度的AI开发者大会视频,说实话被一些场景震撼了,尤其是一位嵌入式工程师,利用百度AI,将小外甥的乐高机器人,打造为可对话的机器人,让我体会到AI就是身边,不再听起来像天方夜谭,我也有一些朋友做AI,简单聊了聊,这是个趋势,而且无论大厂和小厂,BAT以及科大讯飞,已经有一些成型的产品,但一些细节其实值得玩味。顺着兴趣,研究了下Amazon推出的Echo系列产品,可以说是一款包含AI功能...
阅读(972) 评论(0)

预估表和索引空间容量的方法

最近有一个业务功能要上线,生产数据库环境之前已经到位,目前要做的是估算下,业务数据量对数据库空间,有何影响。开发同学根据表字段定义,分别统计出了最大占用空间,以及预计占用空间量,计算得很细致。今儿碰巧看见了一篇MOS文章,《How to Estimate the Size of Tables and Indexes Before Being Created and Populated in the...
阅读(1918) 评论(0)

Numeric Overflow,SQL问题?Java Code问题?

这两天出差,出发前开发同学提了一个问题,开会间隙,有了一些想法,java代码中和Oracle中均有可能出现此错误,记录于此。一段mybatis的代码,查询一张表的数据,SQL类似如下,接受起始时间和截止时间,作为检索条件。现象:1. 开发库运行这段代码,正常返回,测试库运行这段代码,无记录返回的情况正常,只要有记录返回,无论有几条,均会报错,Numeric Overflow,注意这儿报的是java...
阅读(2951) 评论(0)

时间戳相减的几种方法

这两天正在写一个日报的code,其中有一处是涉及系统用时,简单来看,就是俩时间戳字段相减,方法可能有很多,这里列出一些,朋友们要是有更简单、更好玩的方法,可以回复,一起玩耍。创建测试表,t1和t2是TIMESTAMP类型,t1比t2快1分钟,直接使用t1-t2得到正值,t2-t1得到负值,使用substr截取字段前18位,得到的是“yyyy-mm-dd hh24:mi:ss“格式的日期,两个日期字...
阅读(299) 评论(0)

误删除序列sequence,是否可以找回?

今天同事手一抖,误删除了一套测试环境中的所有sequence序列对象。序列不像表这种对象,drop删除可以从回收站中找回来,当然一般认为序列并不是那么重要,只要记得名称以及一些非默认参数,可以选择重建。唯一可能有问题的就是,一般序列常用于主键字段,如果之前的序列已经被用了,他的last_number可能就不是初始值了,换句话说,如果此时只是简单地重建,很有可能使用过程中,会出现seq.nextva...
阅读(127) 评论(0)
327条 共22页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:988157次
    • 积分:12363
    • 等级:
    • 排名:第1141名
    • 原创:298篇
    • 转载:7篇
    • 译文:22篇
    • 评论:98条
    最新评论