探索索引的奥秘 - 有索引就一定会用么?
> 索引设置为unusable,会有以下特点, 2. 索引处于unusable期间,对表数据做DML操作,此时不维护索引。 4. 索引处于unusable期间,由于不需要维护索引,因此可以提升批量导入性能。> 索引设置为invisible,会有以下特点, 1. 索...
探索索引的奥秘 - 索引的属性
创建的索引越多,应用是不是就会越快?应用是否用索引,是谁来决定的?...其实这些问题,都蕴含着丰富的信息,就像学习Oracle一样,之所以说Oracle入门不难(例如写一些SQL语句),但要精通掌握就很难,原因就在于Oracle体系结构的庞大(从Oracle发布的官方文档数量,就能体现出来),而且还...
经典的运维脚本三步曲
无论是应用运维,还是数据库运维,均可以分为“人肉”-“自动化”-“智能化”阶段,其中自动化阶段,主要是将一些人做的操作,尤其是一些重复性操作,封装为程序,一方面避免重复性操作,另一方面提高执行效率。自动化实现的过程中,经常使用的,可能就是shell脚本了,前段时间,从一个微信公众号,学习了赵班长写的一...
truncate表,会将统计信息清除么?
看见微信群有位朋友问:truncate表,会将统计信息清除么?有些朋友回复,数据字典信息都没有了,统计信息就清除了,所以是没有统计信息的。做个实验,跟踪一下truncate,应该比较清楚。我做了10g的测试,发现那个表的last_analyzed还是有记录的。truncate完统计信息还是在...
一个关于Definer和Invoker的权限问题
前两天有位朋友,微信公众号提了一个问题,原文描述如下,1. 我的需求是在tag库中执行一个处理,使得tag中所有用户seq的nextval与src库中一致。2.我在tag库的user1中创建了一个存储过程,代码逻辑为通过dblink(指向src库的user1,user1有读取dba视图的权限)查询源库的dba_sequence与tag库的对比,找...
MySQL远程访问权限的设置
今儿有位同事提出,一套MySQL 5.6的环境,从数据库服务器本地登录,一切正常,可是若从远程服务器访问,就会报错,ERROR 1045 (28000): Access denied for user 'bisal'@'x.x.x.x' (using password: YES)我才开始接触MySQL,因此每一个错误场景,都是增长经验的机会,这种错误要么是密码错误,要么是未...
一个触发器需求的案例
有一位兄弟,问了一问题,用触发器实现一个功能,如果插入的字段AGE为空,则将此字段AGE的值置为0。以下是一版实现,SQL> create table t (id number, age number);Table created.SQL> CREATE OR REPLACE TRIGGER TR1 AFTER INSERT ON T FOR EACH ROW WHEN (NEW.AG...
上周上线碰见的ORA-00054错误回放
上周应用上线,有一个数据库脚本,包含改字段长度等操作,执行过程中,现象就是有些改字段成功了,有些执行出错,报了ORA-00054的错误。了解一下原理,就能对这个错误,有比较深入的理解了。首先,我们模拟下报错过程,创建测试表,session 1执行update语句,但不提交,session 2执行alter table变更name字段长度...
MySQL系统运行状态实时监控(python版本)
昨天的文章,用shell写了一个简单的MySQL系统运行状态实时监控的模版,《MySQL系统运行状态实时监控(shell版本)》,对于这种操作,任何语言都可以完成,今儿就用python写一下,写的不优雅的地方,请各位指正。首先,为了让python能连接MySQL数据库,需要一些第三方的库,由于我用的是python 2.3版本,因此可以使...
MySQL系统运行状态实时监控(shell版本)
开始接触MySQL,还是和Oracle有些不一样的地方,需要逐步积累和学习,其中有一点不同,就是Oracle有一些数据字典,可以显示系统运行状态,但需要使用SQL来检索,另外AWR会有一些运行状态信息,相比之下,MySQL提供了一些指令,直接执行就可以显示,看起来要更方便一些。MySQL要显示系统运行状态,可以有两种方法...
MySQL 5.6搭建主从复制
使用MySQL 5.6,搭建主从复制。关于5.6的安装,可以参考《MySQL 5.6 rpm安装方法和碰见的问题》。主库创建slave用户,设置复制权限,mysql> create user 'slave'@'1.1.1.2' identified by 'root';Query OK, 0 rows affected (0.00 sec)mysql> grant replication slave on *.* to 'sl...
DML错误日志表
前天写了篇文章《表中已存重复数据的情况,如何增加唯一性约束?》,提到了存在唯一约束前提下,重复数据的问题。很感谢建荣兄,他给我补充了两点,1. 冲突数据也可以考虑通过errorlog的方式,可以很快定位。2. 对于含有null的复合索引,mysql和oracle的结果完全不同。对于第二点,前同...
表中已存重复数据的情况,如何增加唯一性约束?
这周某系统上线,有一个需求就是,为一张表修改唯一性约束,原因就是之前发现,由于唯一性约束设置不当,导致业务处理出现异常。举例来说,如下测试表,原先唯一性约束是a和b俩字段,但发现实际业务中,a和b的组合是可能重复的,加上c字段才会是唯一,SQL> create table test( &n...
MySQL 5.6 rpm安装方法和碰见的问题
前几天尝试装了MySQL 5.7,《MySQL的rpm和源码两种安装操作》,用了rpm和源码编译两种方法,由于项目需要,这次使用MySQL 5.6版本,rpm安装方法,记录了一些安装过程的问题。1. 卸载机器上自带的MySQL包检索已安装组件,rpm -qa | grep mysqlmysql-libs-5.1.61-4.el6.x86_64卸载已安...
新员工培训环境准备中,碰见的两个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一样,仅仅是用,但对于一门技...