Perl one line command – 转义和替换

Perl one line command - 转义和替换 本章使用 Perl 命令行来更改, 转换, 替换文本内容, 同时会介绍 base64 的编解码, url 转义, HTMl转义等相关的信息. 1. ROT13 详见 <a href=http://en.wikipedia.org/wiki/ROT13>http://en.wikipedia.org/wiki/ROT13</a> ROT13(回转13位,rotateby13places,有时中间加了个减号称作ROT-13)是一种简易的置换暗码,比如 A 加密后为...

Perl one line command – 字符串与数组

Perl one line command - 字符串与数组 本章使用 Perl 命令行说明如何创建字符串和数组, 包括生成密码, 创建指定长度字符串, 查找字符串中的数值等, 也会介绍一些特殊变量比如 $, 和 @ARGV 等, 同样以示例说明. 1. 生成并打印字符 # perl -le 'print a..z'...

Perl one line command – 计算

Perl one line command - 计算 本章使用 Perl 命令行进行一些计算方面的示例说明, 比如查找一行中最大/最小的元素, 统计, 移动和替换单词以及计算日期等. 这章里会用到 -a, -M, -F等命令行参数, 也会讲解一些特殊符及数据结构方面的信息. 1. 检查素数 perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ &&...

Perl one line command – 空白与数字

Perl one line command - 空白与数字 一. 空白处理 本节说明 Perl 命令行对空白(空行, 制表符)的一些常见处理, 同样以一些示例来说明. 1. 多倍行距 使用特殊符 $\ 来完成多倍行距, $\ 特殊符相当于在每个 input 行后面额外增加了指定的 $\ 变量, 如果要将行距扩充两倍,...

Perl one line command – 介绍

Perl one line command - 介绍 Perl 命令行程序既轻巧又便捷, 它特指单行代码的 Perl 程序, 处理一些事情会特别方便, 比如: 更改文本行的空白符, 行数统计, 转换文本, 删除和打印指定行以及日志分析等. 熟悉命令行操作后可以节省我们大量的时间成本, 当然了解 Perl 的基本语法和一些特殊符是学习 perl 命令行的基础. Perl 在...

redis 复制功能说明

redis 复制功能说明 一. 概述 redis的复制功能可以分为同步和命令这两阶段操作, 同步操作使得 slave 的状态更新到 master 当前所在的状态, 命令传播阶段则实现增量的状态更新, 使得 master 和 slave 达到一致的状态. 在复制功能的实现中, 同步即对应着初始复制阶段, 命令传播对应着增量复制阶段. 在 client 向 slave 发送 slaveof...

使用Xtrabackup备份远端主机的MySQL实例

percona Xtrabackup是一款用于MySQL备份的开源工具集, 效果类似MySQL Enterprise Backup, 支持在线备份InnoDB而不影响业务使用. 不过我一直觉得Xtrabackup是迄今为止最强悍的MySQL备份工具,没有之一. 备份的原理见: http://arstercz.com/how-innobackupex-works/ percona手册页中提供了很详细的示例来说明使用stream选项做备份: http://www.percona.com/doc/percona-xtrabackup/2.2/howtos/recipes_ibkx_stream.html 通过使用stream,再加上网络的备份方式可以很方便的以tar/gzip方式来备份非本地的机器, 不过在一些场景下, 我们只想备份一台远端机器的非压缩的备份文件, 比如要备份的机器空间不足, 或者保存备份的空间也不足(如果需要在备份主机恢复的话,至少需要2*back_size大小的磁盘空间), 这种方式不允许我们将备份保存为tar/gzip格式, 因为不够空间做解压操作. 下面的方式可以达到我们的目标, 不用解压而直接获得解压后的备份文件, 以 nc(netcat) 方式为例说明: server1 mkdir...

MySQL numa交叉模式启动说明

numa交叉模式说明: http://www.percona.com/doc/percona-server/5.5/performance/innodb_numa_support.html db01: 开启numa interleave; RAM 64G; db02: 关闭numa interleave; RAM 64G; 两台db均分配48G内存buffer pool; Percona Server 5.5.33版本; mysqld_safe部分配置增加numa参数: #NUMA support numa_interleave = 1 innodb_buffer_pool_populate =...

追踪MySQL中长时间运行的事务

https://github.com/yoshinorim/MySlowTranCapture 获取执行时间超过 milliseconds事务语句的工具; 很多时候我们需要追踪事务的执行情况以判定应用程序的操作行为, 比如启了事务, 却忘记提交而造成InnoDB事务的History List不断增大. 这是很复杂的场景, 因为很难找到一个有效的方式来识别是那种sql引起的这种问题, 追踪一个长时间运行的事务不像记录一条慢查询语句, 比如执行以下事务语句: ysql root@[localhost:s3306 test] > begin; Query OK, 0 rows affected (0.00 sec) mysql root@[localhost:s3306...

MySQL replication prefetch功能介绍

https://github.com/yoshinorim/replication-booster-for-mysql https://code.launchpad.net/mysql-replication-listener 主从延迟的瓶颈可能有以下几个原因: 1. master为多线程更新, slave 的sql_thread则为单线程更新, 这意味着master大量的更新必然会引起主从延迟的持续增大; 2. slave不对外服务的原因, buffer还未有记录相关的信息, 这造成了sql_thread在重放sql的时候要先通过磁盘IO找到相应的记录再加载到buffer进行更新, 即意味着磁盘IO造成了主从延迟的瓶颈; 第一种情况可以通过多线程的sql_thread功能实现, MySQL 5.6 增加 slave_parallel_workers 功能以支持并行的执行events, 不过遗憾的是 slave_parallel_workers 是基于不同database来实现并行复制的, 如果写压力集中在一个database的几张表中, 则该参数没有本质意义的提升;也有一些第三方的补丁(比如MySQL Transfer)实现了并行执行....