mysql主备库数据不一致的原因和解决方案
主备数据不一致常见原因1 备库写数据 2 执行non-deterministic query 3 回滚掺杂事务表和非事务表的事务4 binlog或者relay log数据损坏应对措施1 禁止修改备库数据2 采用row-based replication3 避免同一个事务中同时引用innodb和myisam表4 开启binlog checksum其中binlog checksum是5....
nginx的时间管理
gettimeofday()的开销在linux中,nginx通过gettimeofday()获取系统当前时间;gettimeofday是C库提供的函数(不是系统调用),它封装了内核里的sys_gettimeofday系统调用。Linux的系统调用通过int 80h实现,用系统调用号来区分入口函数,步骤大致如下:1 API将系统调用号存入EAX,然后通过中断调用使系统进入内核态;2 ...
http proxy原理
本文内容主要来自http://www.fenesky.com/blog/2014/07/25/how-http-tunnel-works.html,在其基础上稍加整理。 connect方法http 1.1定义了8种方法,connect为其中之一,HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。...
常见IO模型和epoll O(1)实现原理
同步和阻塞同步:发送方发送请求后,需要收到响应后才能接着发送下一步请求;阻塞;通常针对网络套接字socket,调用结果返回前,当前线程一直挂起等待;同步针对调用方,阻塞针对接受方;同步非阻塞:发送方发出请求后一直等待,接受方处理请求时立即返回,不用等待执行结果;异步阻塞:发送方发出请求后马上返回,接...
time_wait的成因和解决方案
建立TCP需要3次握手,而终止TCP需要4次交互; 主动关闭socket的一方最终为time_wait,被动关闭的则为close_wait;为什么time_wait需要2*MSL等待时间?MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间将在网络中消失。假设最终的 ACK 丢失 , s...
TCP/IP header字段注释
标识符(Identifier):长度16比特。该字段和Flags和Fragment Offest字段联合使用,对较大的上层数据包进行分段(fragment)操作。路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。 标记(Flags):长度3比特。该字段第一位不使用。第二位是DF(Don...
mysql字符集与乱码
客户端发送请求到服务器,然后再从服务器接受返回数据,中间经历4次字符转换;1) 客户端到服务器Charater_set_client –> character_set_connection –> character_set_database2) 服务器到客户端character_set_database -> character_set_connection –> character_set_result为避免乱码,应做到两点1) 传入数...
mysql的varchar(N)和int(N)的含义及其与char区别
1)varchar与char的区别Varchar存储可变长字符串,小于255字节时需要1个额外字节(大于255需要2个额外字节)存储长度,最大长度为65532字节(所有列总和);char存储定长(right padding),读取时会截断末尾空格,长度最大为255字符;2)varchar(30)中30的涵义最大存储30个字符;varchar(5)和(200)存储hello所占空间一样,...
innodb redo原理小结
1 原理与oracle一样,innodb redo采用物理逻辑方式,即phsical-to-page, logical-within-page,每条日志 结构大致如下struct value_log { int opcode; long page_no; long offset; long length; char old_value[length]; char new_value[length];}检查点:将buffer pool中的...
mysql online ddl的演化
背景最早采用copy-delete方式创建二级索引,5.1引入in-place/fast index creation节约临时文件开销(仍旧阻塞写),5.6引入online(借助日志表);Online不仅限于创建/删除二级索引,还包含重命名/添加/删除列,更改row_format/key_block_size/default;创建聚簇索引:仍然采用copy+delete模式,临时文件存于tmpdir;每个...
mysql安装方式小结
Linux下支持多种安装方法,最常用的为二进制安装和源码安装,除此之外还有yum/APT/Debian package/native software repositories特点二进制安装: 操作容易,分为RPM和tar两种方式;oracle官方已优化,内置了最佳配置;选择多,如mysqld和mysqld-debug;源码安装:可手工指定安装目录;使用标准二进制包没有的功能,...
mysql的XA与innodb_support_xa
Mysql支持两种XA: 外部XA应用程序是协调者(coordinator),参数事务的服务器节点就是资源管理器(resourcemanager),目前存在两个问题: 问题1:当参数分布式事务的协调者退出后,即使参与分布式事务的节点都已经PREPARE成功。从理论上说,这时这些分布式事务是悬挂事务,协调者恢复后可以进行...
MHA知识点参考
http://www.vmcd.org/2012/04/mysql-high-availability-mha/http://www.noodba.com/?p=247http://ylw6006.blog.51cto.com/470441/890360/ 功能Autofailover—定期ping master(执行select1),连续3次失败则开始failover,将binlog gap导出并scp至latestslave,恢复后提升为master;交互式...
innobackupex的备份和恢复
1 原理分3个阶段:备份backup – 预恢复prepare -- 恢复restore注:复制innodb表文件时可能包含不完整事务,需要prepare将其变为consistent 首先复制所有的Innodb数据文件,这样复制出来的文件肯定是不一致的,然后对每个文件进行崩溃恢复处理,最终达到一致.XtraBackup在启动的时候会记...
linux cache与buffer的区别
http://www.quora.com/Linux-Kernel/What-is-the-major-difference-between-the-buffer-cache-and-the-page-cache The page cache caches pages of files to optimize file I/O. The buffer cache caches disk blocks to optimize block I/O.Prior to Linux kernel version 2.4, the two caches were distinct: Fil...
mysql 5.6引入index condition pushdown
5.6引入index condition pushdown,允许在存储引擎层通过索引列提前过滤掉数据,从而减少服务器层访问的数据量,同时也减少存储引擎访问基表的次数;使用ICP可有效降低handler_read_next,explain输出的extra列显示using index condition;可用于innodb和MyISAM,适用于range, ref, eq_ref和ref_or_null,只可用于二级...
oracle中容易忽略的后台进程
NameExpanded NameShort DescriptionLong DescriptionExternal PropertiesDIA0Diagnostic Process...
ASM 11R2基本知识点
1 基本概念 ASM实例一直处于started或mounted状态,11R2其在监听器中注册状态为ready,即支持远程访问;启动时将连接字符串注册到CSS,数据库实例启动时由ASMB读取以此建立同ASM的联系,ASM使用前台进程UFG同数据库实例联系;磁盘以AU为分配单位,在创建磁盘组时指定,范围为1-64M;ASM文件以extent为单位,...
11g遭遇ORA-29273 ORA-24247
UTL_TCP、UTL_HTTP 和 UTL_SMTP支持数据库领域外的服务器之间的通信。例如,utl_tcp 用于在两台主机间建立 TCP/IP通信,而不是通过数据库链接。类似地,utl_http 用于从 Web 服务器发出 http 请求,utl_smtp 用于在主机间进行 SMTP邮件呼叫。这些工具带来了巨大的安全风险。使用utl_tcp,数据库用户可以到达该主机可到达...
本地表空间管理小结
通常数据文件头占用8个数据块,文件头 + 位图信息, 存储extent的位图信息,1为used,0为空闲;创建1个表空间,包含一个50M的数据文件,采用uniform size 1M;Dump数据文件头 Block 1 (file header) not dumped: use dump file header commandbuffer tsn: 58 rdba: 0x09800002 (38/2)scn: 0x085f.41ff5a0a ...