MYSQL CLENT/SERVER数据包传输及net packet buffer作用解析
水平有限难免出现错误,请共同研究予以纠正本文参考源码:Net_serv.cc(主要参考)Mysql.h.ppMysql_socket.hViolite.hViosocket.cVio.c参考书籍:深入理解MYSQL核心技术MYSQL核心内幕internals-enMYSQL官方手册LINUX系统编程手册注意: 1、本文将主要解析非压缩MYSQL NET包,而尽量不考虑压缩...
LINUX netstat连接状态解析及TCP状态转换
LINUX netstat连接状态解析及TCP状态转换水平有限如果有误请指出。我们经常在netstat -anlp 中能够看到端口连接状态一项gaopeng@bogon:~$ netstat -anlp|grep 10050(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)tcp &...
ORACLE利用STANDBY端RMAN备份进行数据恢复
这里记录一下流程,有我和同事问心进行测试dataguard主库和物理备库主要是controlfile文件有区别,用restore可以查看含有primary,standby关键字RMAN> restore ;RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============R...
一、(LINUX 线程同步) 引入
原创水平有限有误请指出线程相比进程有着先天的数据共享的优势,如下图,线程共享了进程除栈区以外的所有内存区域如下图所示:但是这种共享有时候也会带来问题,简单的考虑如下C++代码:点击(此处)折叠或打开/************************************************************************...
关于MYSQL 5.6 super_read_only和Event Scheduler冲突导致启动失败
关于MYSQL 5.6 super_read_only和Event Scheduler冲突导致启动失败版本percona-server-5.6.22-72.0,这个版本肯定有这个问题这个问题出现在线上我们将库设置为super_read_only后启动报错,整个MYSQLD CRASH掉2017-04-23 01:15:46 22577 [ERROR] Event Scheduler: Failed to open table mysql.event2017-04-23 01:15:46...
MYSQL sync_relay_log对I/O thread的影响分析
搭建好的一套从库,发现延迟很高,一直追不上,从库的bin_log没开,flush_log_at_trx_commit设置为0,简化的状态如下:mysql> show slave status \G*************************** 1. row *************************** Slave_IO_State: Queueing master event t...
c++涉及模式 桥接模式(bridge Pattern)
c++涉及模式 桥接模式(bridge Pattern)考虑这样一个问题:需要获得一个图形,这个图形可以是圆形,可以是正方形,可以使长方形其颜色可以是蓝色可以是红色可以是绿色,如果这种情况下将设计写死,那么可以看到有3*3=9 个类,但是图形和颜色更多呢?那么成为一个基本不能完成的任务,那么在这种情况下我们就需一种叫做桥...
C++ 设计模式 装饰模式(Decorator Pattern)
C++ 设计模式 装饰模式在结构型模式中装饰模式给我留下了深刻的印象,其中也感觉到在设计模式中基本都是依赖C++的多态来实现,装饰模式也不例外,他允许在不改变原有类的代码的基础上,不通过直接继承原有类的代码通过一个抽象接口层进行实现,甚至可以随意的组合,所以这里记录之以备使用下面是模型图:下面是一...
LINUX 如何实现多线程进行cp复制
关于这个问题,意义虽然有限因为一般来说在复制文件的时候,实际的瓶颈来自于I/O,不管开启多少个线程实际上速度并不会快多少,但是为了练习多线程编程,这里给出了一种C++代码实现的方式,代码附在最后。实际上就是将一个文件分割为多个片段,开启多个线程进行同时复制,如果用户制定的并行大于服务器实际的CPU核数,程...
C++设计模式创建型工厂模式
工厂模式中使用了多态的原理,来将具体实现和接口进行有效的解耦合,符合开闭原则和依赖倒置原则需要新加功能的时候不需要对原有代码进行修改。抽象类human和抽象类factory就是调用接口,而实际的生产过程通过factory的子类(如boyfactory)来new一个具体的human(如:boy)子类然后返回一个human父类的指针完成,如下图:...
C++单例懒汉式和多线程问题(MUTEX 保护)
单例懒汉式和多线程问题作为单例模式,是在整个程序运行期间只会建立一份内存空间,为了达到这个目标1、需要将构造函数设置为私有成员2、需要一个私有的静态指针指向自身3、需要一个公有的静态函数将这个上面的静态指针露出来如下的代码就是一个懒汉式的单例点击(此处)折叠或打开#in...
C++仿函数
所谓仿函数就是和函数调用非常类似的一种调用方式,实际上仿函数只是重载了()运算符,这种方式在STL容器函数中使用非常普遍,其中又分为函数对象和谓词class t{public:void operator()(stu& a) 函数对象(一元)/*bool operator()(stu& a) 谓词(一元),谓词只会放回布尔值*/};void test(stu& a) 函数那么调用我...
C++ 简单实现数组类泛型编程示例
原创:C++ 简单实现数组类泛型编程示例1、使用模板来实现泛型编程2、本数组应该能够存储各种基础类型,各种复杂的类类型3、应该实现部分操作符重载其实操作符重载满满的都是套路。代码如下:点击(此处)折叠或打开模板类实现:/***********************************...
MYSQL innodb buffer 状态数据的保存和载入
本文参考官方手册原创转载请注明出处版本:MYSQL 5.7当数据库重启后,buffer中的数据需要重新预热,所谓预热就是等待常用数据通过用户调用SQL语句从磁盘载入到内存,这个过程ORACLE中叫做物理读取,对于较大的平台这个预热过程往往需要较大的代价,典型的就是第一次运行一个select语句很慢,过后再次执行就很快了。...
C++操作符重载
在C++中经常会遇到重载运算符的问题,其实运算符重载必须将运算符看做一个函数,分清他的形参返回值,必须搞清楚内存在哪里如何分配如何回收什么时候生成匿名对象,什么时候使用this指针返回。运算符可以用友元函数和成员函数完成,一般来讲都使用成员函数,但是某些特殊的情况必须使用友元函数,比如<< 因为其左操作...
C++实现通用双向链表
使用C++完成双向通用链表双向链表不用多说,通用链表因为数据结构不确定的,使用一个VOID指针指向数据,什么数据都可以挂上去,这样来封装链表,可以作为基础类也可以单独使用,这里只是为了练习C++封装的语法,实现了简单的增加和删除链表由于实际数据类型不能确定,打印链表数据使用公有函数来完成,完成了正向打印反...
再论C++构造函数分类和调用时机以及匿名对象
原创请注明出处:我们这里主要讨论构造函数的构造函数的分类和其调用时机测试类如下:namespace test_n{ int A_G=0; class test { public: &nbs...
MYSQL5.7 MASTER-SLAVE 在线关闭和启动GTID
原创转载注明出处本文参考:MYSQL 5.7官方手册本文步骤中master slave代表主库和从库都需要更改、 slave代表从库更改、master代表主库更改在MYSQL 5.7.6后可以在线的开启和关闭gtid功能,为了做到这一点MYSQL对GTID_MODE做了改动增加了OFF_PERMISSIVE和ON_PERMISSIVE来完成平滑的切换,下面看看有关参数ENFORCE_G...
MYSQL 5.6 5.7处理数据分布不均的问题(eq_range_index_dive_limit参数)
处理数据分布不均,orace数据库使用额外的统计数据直方图来完成,而MYSQL中统计数据只有索引的不同值这样一个统计数据,那么我们制出如下数据:mysql> select * from test.testf;+------+----------+| id | name |+------+----------+| 1 | gaopeng || 2 | g...
如何快速找到MYSQL binlog中的大事物以及生成量分布(infobin工具)
原创注明出处1、问题引出:某些时候需要判断binlog中是否有大事物的存在,比如在解决master-slave延迟高的情况下。一般我们使用mysqlbinlog来找,但是遇到一个问题,使用mysqbinlog来找比较麻烦,有没有一个快速的方法呢?当然使用shell脚本来做一些格式化,也可以找到,这里介绍一个工具叫做infobin 来做,是我自己...