IT运维中文博客

ITer工作中的积累,学习,分享!!

avatar

Inception初体验--安装

 Inception是集审核、执行、回滚于一体的一个自动化运维系统,它是根据MySQL代码修改过来的,用它可以很明确的,详细的,准确的审核MySQL的SQL语句,它的工作模式和MySQL完全相同,可以直接使用MySQL客户端来连接,但不需要验证权限,它相对应用程序(上层审核流程系统等)而言,是一个服务器,在连接时需要指定服务器地址及Inception服务器的端口即可,而它相对要审核或执行的语句所对应的线上MySQL服务器来说,是一个客户端,它在内部需要实时的连接数据库服务器来获取所需要的信息,或者直接在在线上执行相应的语句及获取binlog等,Inception就是一个中间性质的服务。

2017-04-14

【mysql】限制不带where条件的update/delete语句

目前数据库运维中,为了防止人为操作数据库的风险,开发了许多数据库运维平台及工具,减少了人直接去操作数据,进而降低了人为的操作事故;我们也做了许多数据库安全方面的工作,通过sql阻断,去发现及阻断异常的sql,一是可以及时发现问题,让程序及时修复bug,二是避免了数据被异常修改及数据被拖走。

2016-04-14

【mysql】行转列统计查询

我们在进行统计查询时,有时候需要将同一日期/位置等条件的不同信息进行行转列的统计,这时候会需要用到以下的方法进行统计,相当方便。

2016-02-03

【mysql】pt工具之pt-fifo-split

读取大文件中的数据并打印到fifo文件,每次达到指定行 数就往 fifo文件中打印一个EOF字符,读取完成以后,关闭掉fifo文件并移走,然后重建fifo文件,打印更多的行。这样可以保证你每次读取的时候都能读取到制定的行数直到读取完成。

2016-01-19

【mysql】mysql参数之autocommit

autocommit是一个改变事务提交方式参数,设置为1时,所有改变变的立即生效,也就是说为1时,语句执行完后,事务自动提交。如果设置为0时,需要通过commit或者rollback进行提交或者回滚事务。纠正一种说法就是,set autocommit = 0时,会自动开启一个事务

2015-12-27

【mysql】创建索引时如何考虑order by查询

给表加索引时,其中一些查询会用到order by ,group by之类的,在低版本(有ICP之前版本)中可能会遇到一种情况,where查询用到索引,那么order by就无法用到索引,当然我们可以创建联合索引,那么什么情况下创建联合索引是有效的呢?可以通过explain 看or

2015-12-27

【mysql】一次奇怪的replace into死锁

最近碰到一次死锁,开始看比较奇怪,两个replace into不同记录怎么造成了死锁,其实没有想的这么简单。具体看如下图:单纯的看show engine innodb status的死锁信息,还不是很明确,因为只能看到目前事务1正在等待uk_a_b_c索引上的lock_mode

2015-12-27

【mysql】一直都被误认为影响主从一致性的now()函数

一直以来,碰到now()函数,都认为是不安全函数,在STATEMENT-BASED下会导致主从数据不一致。今天一同事告诉我才特别注意下这个问题,其实它不会。首先来做个实验:mysql> show variables like '%format%';+------------

2015-12-15

【mysql】如何回收delete之后mysql所占用的磁盘空间

我们都知道,当使用 innodb_file_per_table=OFF的时候,数据文件都会存储在ibdata文件中,当我们从表中delete数据之后,除非使用dump/reload的方法,没有其他的办法来释放被占用的磁盘空间,数据只能一直增长。当使用了Innodb_file_pe

2015-09-10

【mysql】pt工具之pt-table-sync

pt-table-sync是percona-toolkit工具组中的其中之一,主要功能是解决mysql复制的不一致性问题。参考“【mysql】pt工具之pt-table-checksum”,进行一致性检查。大概原理:基于主上的数据,生成sql执行,同步到从上,主上的数据不会变。可

2015-09-09

【mysql】pt工具之pt-table-checksum

pt-table-checksum是percona-toolkit工具组中的其中之一,主要功能是检查mysql复制的一致性。大概的原理是在主上执行一致性检查,检查方式就是执行replace into的语句完成,然后通过复制传递到从库,再通过update更新master_src的值

2015-09-09

【mysql】存储过程事务未提交/回滚,导致应用异常

由于XX情况,上线一个应用,平时很少访问数据库,只有特定的时候存在访问。每次进行这个应用测试的时候,很大概率会产生DB死锁,导致业务异常。经后面检查发现是由于存储过程中,执行insert失败退出,没有提交,也没有回滚。导致其它应用访问这个记录时,出现Lock wait timeo

2015-09-01

【mysql】global & session variables

续上篇“【mysql】read_only全局系统变量”这里保留了一个问题,都认为全局变量只影响变量设置值之后的新连接,已经存在的连接是不受影响的。为什么read_only会有影响到其它已经存在的连接呢?官方是这么说的: If you change a session system

2015-08-30