自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aeoluspu的专栏

胡言乱语 随手记

  • 博客(277)
  • 收藏
  • 关注

转载 shell脚本在大文件日志中按照时间段快速搜索日志

问题描述:在大流量线上服务中,日志系统会产生数量庞大的日志,动辄就是几十G。在如此之大的文件中快速搜索日志是运维人员经常遇见的问题。我们经常遇见的问题是查询一段时间内的某些条日志。比如,今天有一个访问失败了,大约是在上午9点,把这条日志找出来,然后查找失败原因。常见处理方式及缺点:1.如果文件比较小,100m以内使用grep、awk或者sed进行逐条匹配比较方便,但是文件非常大时,其查找效率是非常...

2018-07-09 14:08:06 2870 1

转载 远程主机上的目录是否存在

有时候用scp复制文件到远程服务器时候会遇到远程的目录是否存在的问题bash1ssh $SERVER_IP "[ -d $FOLDER ]" >/dev/null 2>&1if [ $? -ne 0 ]then #脚本不正常退出 exit 1fi123456# >/dev/null 2>&1将标准输出和错误输出定向到null,不输出1ba...

2018-07-06 15:45:45 1093

原创 Cannot execute statement: impossible to write to binary log since statement is in row format and BIN

https://jira.mariadb.org/browse/MDEV-6810

2018-06-21 12:37:19 523

原创 MySQL hash分区表主从同步延迟

delete hash分区表删除数据,主从延迟1   hash 分区不能删除2  在5.7.20版本以上表现较好3 分区越多 dml扫描分区表越多 延迟越厉害bug参考https://bugs.mysql.com/bug.php?id=73648...

2018-05-29 15:27:56 595

原创 MySQL5.7 GTID在线开启与关闭

当前场景  当前某些业务还有未开启GTID服务组,升级5.7后,如何检测是否符合开启GTID条件,如何在线修改切换使用GTID;已经升级5.7后,已经开启GTID,如何快速回滚后退;线上gtid如何维护等等,以上场景通过归纳下面内容解决gtid_mode参数新选项值online gtid enableonline gtid disablegtid_mode参数新选项my

2017-11-10 19:54:20 9901

转载 C++类的定义和对象的创建

类和对象是 C++ 的重要特性,它们使得 C++ 成为面向对象的编程语言,可以用来开发中大型项目,本节重点讲解类和对象的语法,如果你对它们的概念还不了解,请先阅读《C++类和对象的概念》。类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数。有些教程将类的

2017-07-31 10:22:27 1618 1

转载 git请求报错 401

1.我们在服务器上直接git clone项目的版本库的时候报401错误!错误如下:error: The requested URL returned error: 401 Unauthorized while accessing原因:git 版本过低 2.git –version 查看一下当前的git版本因为centos yum 安装的git是 1.7.1所以我们要升级gi

2017-05-11 14:12:40 9711

原创 centos5.8 python 2.4 升级到2.7

线上的python都是基于2.6写的 ,在python 2.4版本上遇到这种问题 except Exception as e 查询发现是下面问题老版本的Python,except语句写作"except Exception, e",Python 2.6后应写作"except Exception as e"。只好升级python版本到2.6之上,下面记录下升级到2.7过程因为yum依赖

2017-03-30 10:17:03 1379

原创 ansible requires the stdlib json or simplejson module, neither was found!

ansible执行远程命令或脚本需要python和python-simplejson的支持,如果python版本大于2.5则安装python即可,如果小于2.5则需要安装python和python-simplejson。安装python和python-simplejsonyum install pythonyum install python-simplejson另外升级python

2017-03-30 09:40:38 2504

原创 c/c++中&& ||的区别

逻辑运算&&:逻辑与,前后条件同时满足表达式为真||:逻辑或,前后条件只要有一个满足表达式为真位运算 &:按位与|:按位或假如a = 0xaa ,b = 0x55a&&b = true ,在计算机中true以非0值表示,不同的编译器true值也不一样,一般为1a||b = true,a&b = 0; 值唯一a|b = 0xff; 值唯一“&&”跟“|”没有关系,在

2017-03-26 12:29:26 1665

转载 求有环单链表中的环长、环起点、链表长

1.判断单链表是否有环  使用两个slow, fast指针从头开始扫描链表。指针slow 每次走1步,指针fast每次走2步。如果存在环,则指针slow、fast会相遇;如果不存在环,指针fast遇到NULL退出。  就是所谓的追击相遇问题:    2.求有环单链表的环长   在环上相遇后,记录第一次相遇点为Pos,之后指针slow继续每次走1步,fast每次走2步。在下次相遇

2017-03-25 11:15:45 486

原创 python 多线程批量操作数据库测试

网上查询的资料,利用python进行多线程连接数据库,修改了部分#!/usr/bin/env pythonimport thread,threadingimport os,sys,time,getopt,MySQLdboptmap = {                'user' : 'test_lvs',                'passwd' : 'tes

2017-03-22 16:53:03 7897

转载 mysql中headler_read计数器理解

mysqlheadler_read计数器,这些计数器对理解调优有一定的帮助 首先7个计数器,我们应该分为两部分:1)对索引读的计数器:前面的5个都是对索引读情况的计数器,     Handler_read_first:是指读索引的第一项(的次数);     Handler_read_key:是指读索引的某一项(的次数);     Handler_read_next:

2017-03-21 16:34:16 1011

转载 用GDB调试程序(二)

GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示:    /home/hchen> gdb    GNU gdb 5.1.1    Copyright 2002 Free Software Foundation, Inc.    GDB is free softw

2017-03-17 10:10:06 589

原创 最近一周工作问题总结

1 关于多线程slave_preserve_commit_order的设置对多线程复制影响  测试20391760 条数据insert  slave库apply花费情况  开启slave_preserve_commit_order    花销  9分38秒关闭 slave_preserve_commit_order 花销 8分28秒   效果下降 13%,官方提

2017-03-15 11:34:25 1107

原创 二叉树定义与存储

一  顺序结构存储 连续的一组存储地址单元存储二叉树中的结点。c语言定义#define maxnode            /*  二叉树最大结点 */typedef  elemtype sqBitree[maxnode]       /* 0号单元存放根结点  */sqBiTree bt; bt二叉树定义为含有maxnode个elemtype类型

2017-03-13 11:33:57 804

原创 线性表c语言实现----初始化插入删除

重温数据结构基础,记录之,好记性不如烂笔头#include #include #define maxsize 100 typedef struct node{  int data[maxsize];  int length;}SeqList;void SeqListInit (SeqList *p,int n)    /* seqlist init  */

2017-03-07 14:38:19 1633

原创 mongodb 定时切割日志

小教本 ,记录之,mongodb 定时切割日志#!/bin/sh datafile=/data/dblogfile=/data/logdays=30kill -SIGUSR1 `cat $datafile/mongod.lock`find $logfile/ -mtime +$days -delete另外需要使用crontab 设定时间

2017-03-07 11:09:58 1254

转载 #define定义宏的用法

(一)、简单的,复习一下#define PI 3.1415926#define A(x) ((x)*(x)) 这里的括号必不可少(二)、define的单行定义 ##=连接   #@=加单引号 #x=加双引号 1,#define Conn(x,y) x##y  //表示x连接y,举例说:int n=Conn(123,456); 结果就是n=1234562,

2017-03-03 19:31:56 1300

原创 mysql中ut_d宏定义用法

源码摘抄    #ifdef UNIV_DEBUG/** Debug assertion. Does nothing unless UNIV_DEBUG is defined. */#define ut_ad(EXPR)    ut_a(EXPR)/** Debug statement. Does nothing unless UNIV_DEBUG is defined. */

2017-03-03 17:55:21 1804

转载 do{...}while(0)的意义和用法

linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:1、辅助定义复杂的宏,避免引用的时候出错:举例来说,假设你需

2017-03-03 17:30:03 565

原创 mongodb 3.0 Config Server Availability

If the config server replica set loses its primary and cannot elect a primary, the cluster’s metadata becomes read only. You can still read and write data from the shards, but no chunk migration or ch

2017-03-03 16:24:36 950

原创 索引对idus(增删改查)的影响

索引的原理: 索引是一个B+二叉树。从原理上说B+二叉树的特性 决定了对insert、update、delete、select的影响和作用。索引优点:查询效率变快。索引缺点:建立索引过多,会影响insert速度。如果新insert一个值,会导致B+二叉树进行再平衡重整,这个过程B+二叉树进行重新整理,索引越大,索引越多,重新整理的时间花费越大。所以有时候再进行大批量insert插入时,

2017-02-28 17:03:38 4907

原创 lock0lock.c里面函数总结

google了大部分资料,结合自己的理解,总结下lock0lock.c文件里函数lock_deadlock_recursive():死锁判断 死锁日志产生lock_deadlock_trx_print():死锁中事务信息处理打印lock_deadlock_lock_print():每个事务持有、等待的锁信息lock_rec_print():记录被锁的信息死锁

2017-02-27 18:15:42 1143

原创 mysql源码心得--how to read mysql source

1、深入了解某一模块前,要一步步来,否则会有很大的挫败感。首先了解下模块重要的数据结构和算法  2、设置断点,了解执行流程,了解重要函数  3、接下来深入阅读重要函数的源码,同时回顾与其他模块(已经了解过)的交互衔接。关于资料寻找   手中要有系统的书,另外利用google搜索优势(不要用百度,百度搜索出来的资料太差了),搜索出来的老外的经典文章  系统的书推荐 《

2017-02-25 10:46:49 1215

翻译 mysql 索引页物理结构--physical structer of an innodb index

mysql 索引页物理结构-physical structer of an innodb indexhttps://dev.mysql.com/doc/refman/5.7/en/innodb-physical-structure.html除了空间索引,innodb索引是B数数据结构。空间索引使用R数,其是用于索引多维数据的专用数据结构。索引记录存储在其B-tree或R-tree的叶子

2017-02-24 10:16:44 2386 1

转载 graphviz绘制流程图

日常的开发工作中,为代码添加注释是代码可维护性的一个重要方面,但是仅仅提供注释是不够的,特别是当系统功能越来越复杂,涉及到的模块越来越多的时候,仅仅靠代码就很难从宏观的层次去理解。因此我们需要图例的支持,图例不仅仅包含功能之间的交互,也可以包含复杂的数据结构的示意图,数据流向等。但是,常用的UML建模工具,如VISIO等都略显复杂,且体积庞大。对于开发人员,特别是后台开发人员来说,命令

2017-02-23 18:00:05 561

原创 C 语言中&&,||,&,|的区别

&&:逻辑与,前后条件同时满足表达式为真||:逻辑或,前后条件只要有一个满足表达式为真&:按位与|:按位或&&和||是逻辑运算,&与|是位运算假如a = 0xaa ,b = 0x55a&&b = true ,在计算机中true以非0值表示,不同的编译器true值也不一样,一般为1a||b = true,a&b = 0; 值唯一a|b = 0xff; 值唯一“&&”跟“|”

2017-02-23 17:11:00 26378

原创 锁相关的几个重要函数

记录下锁相关的几个重要函数: lock_table (): 负责加表锁lock_rec_lock():锁记录的重要函数row_lock_table_autoinc_for_mysql(): 负责管理表auto increment自增锁的重要函数。自增锁 是表基本锁。实现在/innobase/row/row0mysql.cc  源码中(ps: auto_increment 自增锁 因

2017-02-23 17:09:52 389

原创 5.6之后新特性

在5.6之后版本中,如果binlog格式设置为statement 。那么 insert  .....select .....语句将是不安全。如下报警信息 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to

2017-02-23 09:17:11 350

原创 mysql 批量update更新数据

#!/bin/sh  mysqlconn="mysql -uroot"db="dbname"table1="tablename"while($mysqlconn -N -e "select item_id from $db.$table1 where  matching_status = 0 limit 1;")do   #echo 1   $mysqlconn

2017-02-20 15:57:30 2951

原创 mysql rr 隔离级别解决幻读

幻读概念:  幻读是指在同一事务下当A用户读取某一范围的数据行时,B事务在该范围内插入了新行,当A用户再读取该范围的数据行时,会发现有新的“幻影”行(即读取到了B事务插入的数据)。 即违背事务隔离性要求。  为解决这个问题,出现了谓词锁(predict lock)。   next-key locking算法就是为了解决幻读问题。测试:session 1  root@lo

2017-02-18 23:02:50 4400

原创 mysql 死锁检测变量innodb_deadlock_detect

mysql 5.7.15 之后 增加了innodb_deadlock_detect 函数,控制是否打开死锁检测。关闭死锁检测,在性能上有非常大的提高,曾经在其他mysql分支增加了这个参数,而官方版本直到5.7.15才增加了这个参数,默认是打开的。

2017-02-18 22:05:53 4611

原创 mysql lock_rec_insert_check_and_lock 设置断点调试

LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK  死锁检测等待图中wait-for-graph定义深度搜索的次数,如果搜索200次就认定为死锁。 lock queue: 锁队列设置断点函数  lock_rec_insert_check_and_lock    insert into 操作函数调用过程#0  btr_cur_ins_lock_and_undo (

2017-02-17 21:25:30 1120

转载 gdb 中layout的使用

layout:用于分割窗口,可以一边查看代码,一边测试。主要有以下几种用法:layout src:显示源代码窗口layout asm:显示汇编窗口layout regs:显示源代码/汇编和寄存器窗口layout split:显示源代码和汇编窗口layout next:显示下一个layoutlayout prev:显示上一个layoutCtrl + L:刷新窗口Ctr

2017-02-17 17:18:12 3077

原创 mysql insert 相关的锁函数lock_rec_insert_check_and_lock 源码

/*============ RECORD LOCK CHECKS FOR ROW OPERATIONS ====================*//*********************************************************************//**Checks if locks of other transactions prevent

2017-02-16 18:01:26 627

原创 innodb中不同语句设置不同锁类型

在锁读的过程中,一个update 或一个delete 经常设置记录锁在每一个索引记录上。这与where条件中是否排除此条索引记录没有关系。innodb认不出扩展的where扩展条件,只会认出那些索引区间被扫描。The locks are normally next-key locks that also block inserts into the “gap” immediately be

2017-02-16 13:18:50 409

原创 mysql insert 加锁流程

INSERT sets an exclusive lock on the inserted row. This lock is an index-record lock, not a next-key lock (that is, there is no gap lock) and does not prevent other sessions from inserting into the ga

2017-02-16 11:21:12 6131 3

转载 insert into 加锁机制

关于MySQL innodb Insert into 加锁的机制的文章网上很少,个人对于insert 的加锁机制比较感兴趣,所以通过此wiki对研究的过程做个总结,如有不对的地方,欢迎指正。我先把官方文档对于insert 加锁的描述贴出来INSERT sets an exclusive lock on the inserted row. This lock is an index-

2017-02-15 09:38:57 1906

原创 mysql5.5.31 log0log.c中log_write_up_to 函数代码

/******************************************************//**This function is called, e.g., when a transaction wants to commit. It checksthat the log has been written to the log file up to the last

2017-02-14 09:46:43 654

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除