新员工培训环境准备中,碰见的两个ORA-600错误
下周要为新员工介绍Oracle数据库,为了让课程更接地气,准备了虚拟机环境,用于实验和练习,在此过程中出现了两个ORA-600的错误,偶然中又有必然,记录于此。操作过程:1. 我在MAC上创建完成虚拟机环境,未关闭虚拟机操作系统。2. 用移动硬盘,拷贝了次环境。3. DELL笔记本中打开VMWare,引...
json格式值班表解析
这几天因为一些特殊原因,网站值班表不能用,一旦出现问题,找相应系统的值班人员,就比较困难了,但通过一些渠道,可以有一个文本文件,其中包含了这几天的值班信息,为了更明白的说明问题,我们假设有A系统和B系统,两个值班,其中A系统值班人员为,每人值一天,B系统值班人员为,每人值一天,js...
Oracle 12c CC安装碰见的认证问题
维护的系统增加,导致对应需要维护的开发数据库环境也增加了,为了简化管理和监控,搭建图形化管理平台,是一种不错的解决方案,我们知道,11g就有了GC(Grid Control),发展到现在,已经有了12c CC和13c CC(Cloud Control)。这两篇文章,介绍了安装12c CC的整个流程。Oracle 12c CC安装部署攻略 (上)Orac...
一张几亿的分区表,能改名么?
一个微信群中有位朋友问“一张几亿的分区表,能改名么?”。我想他要表达的,不是语法上是否可以改名,而是改名是否有什么影响?是否有影响,需要看看背后做了什么。创建测试表,create table tbl_par ( id number, insert_time date)partition by range...
定制化删除ES索引数据
我们有一台ES服务器,设置了每天02:00执行一次清理索引数据的定时任务,但这两天总是出现磁盘空间抖动,一线一看见超了阈值,就打电话报警,可能整晚要被叫几次,ES作为日志平台的一部分,只是为了方便我们检索日志,不影响实际业务,这就比较烦了。除了挂起报警,一种暴力的方法,就是再设置一些定时作业时间点...
MySQL的rpm和源码两种安装操作
相比于传统行业,互联网浪潮中MySQL一直是数据库的主力军,无论是曾经的SUN,还是现在的Oracle,虽然可能商业策略不同,但发展方向还是平稳向前的,因此说自己不会MySQL,还真有些不好意思了。我只能算是MySQL中的小小白,研究生毕设的时候,装过windows版本的MySQL,就像对Oracle一样,仅仅是用,但对于一门技...
Oracle培训的建议收集
近期要组织一次新员工培训,交代了两节课的任务,主要介绍Oracle数据库,一个是针对纯小白,一个是经过一段时间的学习,针对有一定基础的,内容不限,时间不限。介绍数据库,介绍Oracle,其实有非常广泛的选题,从体系结构到SQL语法,从备份恢复到性能优化,从数据库管理到高可用架构,虽然我离精通还差很远,但...
数据迁移中碰见的一些问题
单位有一套Oracle 9i的古老测试数据库,因为机房搬迁,所以需要迁移数据,新库是Oracle 11g了,一个比较简单的需求,但过程中碰见了一些问题,看似比较琐碎,值得总结一下。由于源库是9i,因此只能用imp/exp,不能用数据泵。问题1:导入目标库用户的默认表空间源库由于不规范的使用,对象默认存储的...
无线路由器的些许知识
前段时间,家里原来的路由器,总是时不时掉线,因为网络环境并未有变化,所以打算直接换一个新的,于是乎开始广撒网,找应该买什么样的路由器,隔行如隔山,不看不知道,一看吓一跳,虽然以前学过CCNA,但现在看来,还是皮毛,更何况忘的干净,原来网络设备的世界,如此宏伟,不是想象的那么简单。我主要参考了...
修改表字段长度的操作,对业务是否有影响?
前两天测试同学问了一个问题,表中某一个字段,需要改一下长度,对业务是否会有影响?可能隐约之中,我们觉得没影响,但又好像有影响,究竟有何影响,我们从实验来看最科学。首先建测试表,NAME字段是VARCHAR2(10),10个字节的字符串类型,表有256万数据。我们将其长度改为20,从执行时间看,只有20毫秒...
有索引却不用的两个场景
一直有朋友问,是不是表建了索引,一定会使用索引,在RBO时代,访问效率会参考一些规则,优先级高的,认为效率就高,例如索引就比全表扫描效率高,但CBO时代,则会以成本为依据,谁的成本低,谁的效率就高,这样更科学。建了索引,SQL却未使用索引,有很多情况,何况我不精通,所以不能一一枚举出来,但结合昨天广分...
解决导入过程中出现的ORA-02289错误
用expdp导出生产库数据到测试库,执行impdp的时候报了ORA-02298错误,提示生效TBL_B表的外键约束FK_B_ID的时候出错,看看ORA-02298的错误描述,因为存在独立的字节点记录,导致生效约束操作报错,通俗一些,就是子表外键对应的主表主键/唯一约束键值不存在,所以此时无法生效外键约束。...
如何验证dump文件的有效性
为了测试用途,从生产库导出了一份dump文件,打算导入测试环境中,如果这份dump文件有损坏,可能我执行的impdp,会造成数据库有一部分数据导入成功了,但另一部分失败了,要么挑出失败的部分,断点执行,这难度比较大,要么只能清空,重新执行。我们是不是只能通过执行impdp,真正执行导入操作才可以知道这份expdp导出...
生产数据导入测试环境碰见的一些问题
我们某一个系统的夜维出现了性能的问题,删除N张表,数据量从几万到几百万不等,现在需要3.5-4个小时,看了一下SQL AWR,有些采用了TABLE ACCESS FULL,而且是数据量百万级的表,并且一次删除5000条,批量要删除几百次,相当于执行几百次TABLE ACCESS FULL,效率可想而知。大家讨论后,决定除了索引、SQL语句...
一个诡异的SQL事务现象
今天测试过程中,同事提出了一个,看似诡异,实则很基础的问题,乍一看会被迷惑。用实验来复现下这个问题,(1) 创建测试表,A表的id字段是主键,B表的id_a字段是外键,参考A表的id主键,(2) 应用有这么一个逻辑,一个事务中,先更新表A,再INSERT表B,其中表B的id_a字段值是来自于表A刚才操作...
解决Logical Reads高的方法和实验
之前介绍了CBC,就是cache buffer chains这个等待事件的影响,《缓解latch: cache buffers chains的案例》,解决逻辑读过高的SQL语句,是优化方向。为了更直观地说明这个问题,通过模拟实验,来了解下。创建测试表,test表三个字段,分别是id1,id2和name,insert入100万行记录,其中id1每个distinct值100次,id...
缓解latch: cache buffers chains的案例
这两天我们的一个核心系统U*S,正在做压力测试,虽然压测的服务器配置不如生产,但可以反映出一些问题,初始测试的TPS可以说非常低,据测试同事反映,压测一会,数据库服务器CPU就上来了,业务上有积报现象,找不着原因。既然数据库服务器CPU飙升上来了,说明数据库服务器上有压力,这就需要看压测期间,数据库...
学习show_space存储过程
今天学习和介绍一个有用的工具,来自TOM大神的show_space,其实这就是一个存储过程,用他可以统计一些段的用度,非常方便,网上流传着不同的版本。首先我们看下原版的脚本,https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:5350053031470create or replace procedure show_sp...
Linux实际内存占用率算法,以及使用Python实现内存监控
这两天我们的一个核心系统,一套集群,逐台开始报警,内容是内存占用超阈值。按说这应该是一个非常紧急且需要立即处理的报警,但实际是不是这样,待我们拨云见日。以下为模拟实验,了解了下监控系统这条内存占用超阈值报警的计算方法,是用used/total*100%=1949/1988*100%=98%,即内存占用量超过了...
DBMS_STATS.AUTO_SAMPLE_SIZE的值是什么?
这是2014年写的一篇文章(http://blog.csdn.net/bisal/article/details/18910785#reply),看了一下,当时的实验和说明是,PL/SQL procedure successfully completed.这里必须纠正,我的说法有误,不能因为从dba_tables中看见了NUM_ROWS值和表实际记录数相同,就认为默认采样比例就是100%。崔老师书中说了,...