包含标签 mysql 的文章

mysql集群在线无损扩容

前言

收到数据库磁盘占比告警了
前提条件,磁盘采用lvm管理方式,做在线无损扩容才方便管理,其他方式没测试过

1、分配一个1T的新盘,HDD、SDD随规划选择

这个一般在磁阵或者云管理平台操作,不需要什么命令,一般都是图形化操作

2、查找新分配的1T新盘

1
2
fdisk -l     
lvmdiskscan

个人建议第二个命令,2个命令都会返回一堆查询值,怎么判断谁是新盘,谁是已使用的盘,这点有运维经验的人还是不成问题的,不详说

……

阅读全文

被同事误删表找回丢失的数据

有些不靠谱的同事真的很误事,运维了几年的系统从来没出过误删表数据的事件,3月14日下午突然被同事误删了订单表全量数据,查询表返回0 rows,突然大脑一片空白,心想完了完了,最重要的表数据全部被清理了,虽然有每日凌晨5点的全量备份,但是截止下午的数据怎么找回?从来没碰到过误删事件,也从来没处理过数据恢复。。。

一、先挽救每日备份的数据

找到每日全量备份的数据,把订单表还原到测试库,然后单独把订单表重新备份,针对误删的表进行全量恢复 采用的工具是mydumper,非mysql官方的mydump 心想:好在有每日凌晨5点的全量备份,虽然在自己手里,从开发了每日全量备份脚本并配置定时任务每天执行,从来没派上用场,也希望不会派上用场,但是良好的备份意识还是挽救了90%的数据。 半小时左右,90%的数据恢复,然后把问题上报。

……

阅读全文

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包

……

阅读全文

最近文章

分类

标签

其它