mydumper第三方备份还原工具

前言

Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。开发人员主要来自MySQL,Facebook,SkySQL公司。性能比自带的mysqldump强劲
github: https://github.com/mydumper/mydumper

1、安装

redhat、centos举例

1.1 安装依赖

1.1.1 安装编译库

1
yum install -y cmake gcc gcc-c++ git make

1.1.2 安装开发库

1
yum install -y glib2-devel mysql-devel openssl-devel pcre-devel zlib-devel libzstd-devel

1.1.3 安装mysql开发版库

1
2
3
yum install -y mysql-devel
yum install -y Percona-Server-devel-57
yum install -y mariadb-devel

1.2 mydumper安装

1
2
3
4
5
6
wget https://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz
tar zxvf mydumper-0.9.1.tar.gz
cd mydumper-0.9.1
cmake .
make
make install

2、常用备份、还原命令

2.1 备份

1
mydumper -u root -p XXX -h localhost -B XXX -o /data/backup/20180916

2.2 恢复

1
myloader -u root -p XXX -h localhost -B XXX -d /data/backup/20180916

3、参数说明

3.1 mydumper 的常用参数

参数 说明
-B –database 要导出的dbname
-T –tables-list 需要导出的表名,导出多个表需要逗号分隔,t1[,t2,t3 ….]
-o –outputdir 导出数据文件存放的目录,mydumper会自动创建
-s –statement-size 生成插入语句的字节数, 默认1000000字节
-r –rows Try to split tables into chunks of this many rows. This option turns off –chunk-filesize
-F –chunk-filesize 切割表文件的大小,默认单位是 MB ,如果表大于
-c –compress 压缩导出的文件
-e –build-empty-files 即使是空表也为表创建文件
-x –regex 使用正则表达式匹配 db.table
-i –ignore-engines 忽略的存储引擎,多个值使用逗号分隔
-m –no-schemas 只导出数据,不导出建库建表语句
-d –no-data 仅仅导出建表结构,创建db的语句
-G –triggers 导出触发器
-E –events 导出events
-R –routines 导出存储过程和函数
-k –no-locks 不执行临时的只读锁,会导致备份不一致 。
WARNING: This will cause inconsistent backups
–less-locking 最小化在innodb表上的锁表时间
–butai
-l –long-query-guard 设置长时间执行的sql 的时间标准
-K –kill-long-queries 将长时间执行的sql kill
-D –daemon 以守护进程的方式执行
-I –snapshot-interval 创建导出快照的时间间隔,默认是 60s ,该参数只有在守护进程执行的时候有用。
-L –logfile指定mydumper输出的日志文件,默认使用控制台输出。
–tz-utc SET TIME_ZONE=’+00:00’ at top of dump to allow dumping of TIMESTAMP data when a server has data in different time zones or data is being moved between servers with different time zones, defaults to on use –skip-tz-utc to disable.
–skip-tz-utc
–use-savepoints 使用savepoints 减少MDL 锁事件 需要 SUPER 权限
–success-on-1146 Not increment error count and Warning instead of Critical in case of table doesn

3.2 myloader使用参数

参数 说明
-d –directory 备份文件的文件夹
-q –queries-per-transaction 每次事物执行的查询数量,默认是1000
-o –overwrite-tables 如果要恢复的表存在,则先drop掉该表,使用该参数,需要备份时候要备份表结构
-B –database 需要还原的数据库
-e –enable-binlog 启用还原数据的二进制日志
-h –host The host to connect to
-u –user Username with privileges to run the dump
-p –password User password
-P –port TCP/IP port to connect to
-S –socket UNIX domain socket file to use for connection
-t –threads 还原所使用的线程数,默认是4
-C –compress-protocol 压缩协议
-V –version 显示版本
-v –verbose 输出模式, 0 = silent, 1 = errors, 2 = warnings, 3 = info, 默认为2

4、metadata文件

metadata文件存储了binlog位置点和备份开始结束的时间

……

阅读全文

mysql低版本源代码安装

前言

如果不使用最新版本的mysql,但是低版本的mysql官方不提供编译好的安装包,只能自己编译安装了。以下步骤和参数针对5.6、5.7生效,新版本有变动请阅读官方文档介绍。

1、环境检测

使用下面的命令检查是否安装有MySQL Server

1
2
3
4
rpm -qa | grep mysql
有的话通过下面的命令来卸载掉
rpm -e mysql   //普通删除模式
rpm -e --nodeps mysql    // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

2、下载源码

1
2
3
wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.32.tar.gz
tar xvf mysql-5.6.32.tar.gz
cd mysql-5.6.32

或者web下载
历史各版本下载:https://downloads.mysql.com/archives/community/
Source Code -> Generic Linux 通用tar包

……

阅读全文

java OOM的种类整理

前言

java OOM的种类整理

1、分类

1.1【情况一】:

1
java.lang.OutOfMemoryError: Java heap space:

这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环
如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决:

-Xms3062m
-Xmx3062m

  

1.2【情况二】

1
java.lang.OutOfMemoryError: GC overhead limit exceeded

【解释】

JDK6新增错误类型,当GC为释放很小空间占用大量时间时抛出;一般是因为堆太小,导致异常的原因,没有足够的内存。

……

阅读全文

OrangePi

前言

朋友弄了一批香橙派的板子,给我做测试,拿了板子、CF卡、电源后开启了试玩,通过配置查看,香橙派比草莓派配置还强劲一些,国产的还不错,不过生态没草莓派完善,对新手可能没健全的指导,稍显不友好,但是对于我这种职业开发人员来说,小case,所以这里个人觉得香橙派还是很不错的

1、准备工作

烧录系统镜像
1、准备一个CF读卡器
2、安装Win32DiskImager,给CF卡格式化,其实可以免了直接进入下一步,最初以为跟U盘一样要格式化所以多安装了这个@_@,其实下面ethcher更好用
3、安装ethcher,给CF卡烧录系统的软件
4、准备网线和hub一个,或者用hdmi网线连显示器,作为输出端,烧录后需要登录板子系统进行一些操作,我选择的是ssh方式登录,所以准备网线和hub,如果路由器网口多不用hub也可以,不过朋友测试的是8套香橙派集群,必须要hub

……

阅读全文

springmvc的参数校验注解整理

1、JSR303注解字段校验

注解 说明 功能
@AssertFalse Boolean,boolean 验证注解的元素值是false
@AssertTrue Boolean,boolean 验证注解的元素值是true
@NotNull 任意类型 验证注解的元素值不是null
@Null 任意类型 验证注解的元素值是null
@Min(value=值) BigDecimal,BigInteger, byte,short, int, long,等任何Number或CharSequence(存储的是数字)子类型 验证注解的元素值大于等于@Min指定的value值
@Max(value=值) 和@Min要求一样 验证注解的元素值小于等于@Max指定的value值
@DecimalMin(value=值) 和@Min要求一样 验证注解的元素值大于等于@ DecimalMin指定的value值
@DecimalMax(value=值) 和@Min要求一样 验证注解的元素值小于等于@ DecimalMax指定的value值
@Digits(integer=整数位数, fraction=小数位数) 和@Min要求一样 验证注解的元素值的整数位数和小数位数上限
@Size(min=下限, max=上限) 字符串、Collection、Map、数组等 验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小
@Past java.util.Date,java.util.Calendar;Joda Time类库的日期类型 验证注解的元素值(日期类型)比当前时间早
@Future 与@Past要求一样 验证注解的元素值(日期类型)比当前时间晚
@NotBlank CharSequence子类型 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的首位空格
@Length(min=下限, max=上限) CharSequence子类型 验证注解的元素值长度在min和max区间内
@NotEmpty CharSequence子类型、Collection、Map、数组 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@Range(min=最小值, max=最大值) BigDecimal,BigInteger,CharSequence, byte, short, int, long等原子类型和包装类型 验证注解的元素值在最小值和最大值之间
@Email(regexp=正则表达式,flag=标志的模式) CharSequence子类型(如String) 验证注解的元素值是Email,也可以通过regexp和flag指定自定义的email格式
@Pattern(regexp=正则表达式,flag=标志的模式) String,任何CharSequence的子类型 验证注解的元素值与指定的正则表达式匹配
@Valid 任何非原子类型 指定递归验证关联的对象;如用户对象中有个地址对象属性,如果想在验证用户对象时一起验证地址对象的话,在地址对象上加@Valid注解即可级联验证
……

阅读全文

Cygwin安装

前言

cygwin是windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。

cygwin

cygwin相对安装虚拟机、vps是轻量级的,因此在条件不足情况下,练习、学习shell等都是很好的选择。

……

阅读全文

oracle知识梳理-执行计划分析

前言

分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题。常用的两种方法查看SQL执行计划。

1、autotrace生成执行计划

这种方式执行方便,但是当遇到执行时间长的SQL就变得不太现实,它是先产生结果再生成执行计划的。关于Autotrace几个常用选项的说明:

1
2
3
4
5
SET  AUTOTRACE  OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET  AUTOTRACE  ON  EXPLAIN --------- AUTOTRACE只显示优化器执行路径报告
SET  AUTOTRACE  ON  STATISTICS ------ 只显示执行统计信息
SET  AUTOTRACE  ON ----------------- 包含执行计划和统计信息
SET  AUTOTRACE  TRACEONLY -----------同set autotrace on,但是不显示查询输出

步骤1 sqlplus登录数据库

步骤2 打开autotrace

1
SQL> set autotrace on explain

步骤3 输入要查看的SQL

1
2
3
4
5
6
7
SQL> select po.charge, po.new_charge, po.avg_charge
         from lbi_ls_basic.t_l_acct_sum_po_sum_d  po,
             lbi_dim_basic.t_d_dyn_pkgname     pkg,
             lbi_dim_basic.t_d_dyn_tenant_def     def
 where po.subcosid = pkg.productkey(+)
         and po.tenantid = def.tenantid(+); 
返回执行计划结果

步骤4 关闭autotrace

1
2
SQL> set autotrace off
----结束

2、explain plan for 生成执行计划

这种方式是直接产生执行计划,不会产生SQL结果。

……

阅读全文

oracle知识梳理-awr\ash\addm日志开启并提取

前言

之前工作经常搜集AWR日志,但是因工作环境的调整,6年下来的笔记都无法带出来,只能回忆一些和找一些网上的信息整理了。
常规的性能分析,awr足够了,但是深层次的问题,需要更多的日志,下面整理下awr、ash、addm日志的手工提取方式

1、awr报告开启和提取操作步骤

前提条件

数据库为Oracle 10g以上版本。

背景信息

Oracle默认快照1小时生成一次、保持7天,可以根据需要调整快照生成的频率、保持时长。
如果要手工生成快照,则用

……

阅读全文

java小日常记录-不定期更新

前言

记录工作中碰到的一些 java 小日常积累

1、远程debug调测

web项目远程调测 - 仅用于测试环境或者上线前的调测

注意:

仅限测试环境或者上线前的调测,如果用于生产环境,你的开发工具再debug模式起着的话,会拦截所有的请求。

1
2
# linux增加以下这段就可以远程连接服务器的5888端口了
CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888"

1.1 关闭的问题

添加了debug端口以后好像会出现./shutdown.sh 无法关闭tomcat,需要手动kill

……

阅读全文

web应用分析利器-xrebel

前言

XRebel 是不间断运行在 web 应用的交互式分析器,当发现问题会在浏览器中显示警告信息。XRebel 会实时监测应用代码的性能指标和可能会发生的问题。

看名称跟之前的jrebel有点相像,对了,是同一家公司的产品,jrebel解决java项目动态部署,xrebel解决j2ee应用的交互式分析(甚至sql都能分析到,强悍得不要不要的)。

……

阅读全文

最近文章

分类

标签

其它