REST初体验
Resource:资源,即数据,比如 newsfeed,friends等;Representational:某种表现形式,比如用JSON,XML,JPEG等;State Transfer:状态变化,通过HTTP动词实现;知乎的Ivony老师总结了一句,看起来有些感觉,学习REST,必须动手实践,用起来才能慢慢体会,否则只能停留于理论,但是基础的理论学习,...
从ORA-01950报错我们能了解的知识
(注:用户、表、索引等对象,均用测试的名称代替),SQL> select username, default_tablespace from dba_users where username='USER_A';USERNAME DEFAULT_TABLESPACE--------------- -----------------------------------USER_A TBS_DAT现...
Windows环境安装MySQL ZIP Archive
这是之前写的几篇关于Linux环境下安装MySQL数据库的文章,包括5.7.19以及5.6这两个版本,《MySQL的rpm和源码两种安装操作》《MySQL 5.6 rpm安装方法和碰见的问题》《MySQL远程访问权限的设置》今儿碰巧需要部署一个Windows版本,于是先下载了最新的,5.7.20版本安装包,选择了Windows平台的社区版,...
探索索引的奥秘 - 10053事件
之前我们了解了索引的属性,以及一些对于是否能用索引似是而非的场景,相应的说明和结论可以参考,《探索索引的奥秘 - 索引的属性》《探索索引的奥秘 - 有索引就一定会用么?》对于一条SQL,是否可以用索引,在CBO下,是依赖于Oracle对于不同执行计划成本值预估的判断,...
开源软件许可
据资料记载,开源软件的许可有上百种,但最流行的只有6种,即GPL、LGPL、Mozilla、BSD、MIT和Apache,其他的可以归于这六种,加上些细微差别。GPL Licensehttp://www.gnu.org/licenses/gpl.htmlLGPL Licensehttp://www.gnu.org/copyleft/lesser.html...
filebeat占用Linux空间未释放的问题解决
我们知道,Linux环境下,任何事物,都是以文件的形式存在,系统在后台,为每个应用程序,分配了一个文件描述符,他为应用程序和操作系统之间的交互操作提供了通用的接口,既然是文件,就会占用空间,此时可以使用lsof指令,他可以列出,当前系统正在打开的文件。表头各字段,含义如下:可以看出,有一些行中,NAM...
探索索引的奥秘 - 有索引就一定会用么?
> 索引设置为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卸载已安...