记一次innobackupex工具恢复数据库过程

innobackupex工具恢复数据库

今天正在午休的时候,同事突然给了一份dummy.tar的innobackupex备份数据,需要我恢复一下.因为是innobackupex全量备份,那么第一件事情自然就是准备虚拟机了.好在我平常就有镜像当前操作系统作为沙箱环境的习惯.接下来事情就简单了.

安装数据库

  • 操作系统环境(virtualbox):ubuntu16.0.4

首先安装mysql

sudo apt install mysql

接着安装innobackupex工具,innobackupex工具实际上是percona公司推出的一款数据库备份工具,它实际的名字其实是percona-xtrabackup,所以接下来要把这个工具下载下来

我的操作系统是ubuntu16.0.4,根据页面上对应的版本,选择对应的下载资源

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/debian/xenial/x86_64/Percona-XtraBackup-2.4.12-r170eb8c-xenial-x86_64-bundle.tar

解压

tar -xvf Percona-XtraBackup-2.4.12-r170eb8c-xenial-x86_64-bundle.tar

安装

sudo dpkg -i *.deb

修复依赖

sudo apt -f install

验证

which innobackupex

恢复数据

我的备份文件是dummy.tar,解压之后的格式如下,如果你的备份文件不包含下面的文件,说明你的备份文件不对

.
├── backup-my.cnf
├── ib_buffer_pool
├── ibdata1
├── mysql
├── performance_schema
├── sys
├── xtrabackup_checkpoints
├── xtrabackup_info
└── xtrabackup_logfile

我的压缩包一开始就是没有tar后缀的tar文件,结果就一直没办法备份下来,然后尝试性质的使用tar解压一下,才把目录给解压出来的

  • 恢复数据(恢复数据之前,必须要关闭数据库,并且当前用户需要有对数据库目录的权限)

使用apt安装的mysql,数据目录在/var/lib/mysql ,配置文件在/etc/mysql/my.cnf

关闭数据库

sudo service mysql stop

删除数据库原有的文件(删除之前,要确保你的数据库没有可用的数据,如果有可用的数据库,一定要先做备份,或者选择虚拟机来进行恢复工作)

sudo rm -rf /vat/lib/mysql/*

恢复数据

恢复数据有两个过程,首先是apply-log 然后才是cpoy-back

sudo innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123456 --use-memory=4G --apply-log /backup/mysql/data/dummy 
sudo innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123456 --copy-back /backup/mysql/data/dummy

恢复mysql权限(可能需要的操作如果权限不对,mysql将无法启动)

sudo own mysql:mysql -R /var/lib/mysql

重新启动数据库

sudo service mysql start

备份之后,数据库密码就不再是你原来的密码了,而是你备份的数据库的密码

记一次服务器优化

服务器环境

  • 双核心cpu 8G内存
  • 操作系统:centos6
  • web服务器: apache2.4
  • php版本: 5.6
  • mysql版本:5.5

起因

公司的网站在最近一段时间访问变的非常的缓慢,作为公司唯一略懂linux运维的人,这个任务毫无疑问的就落到了我的头上了,于是请求到了ssh权限之后,就开始了我的工作了。

问题分析

首先网站本身的访问量是不多的,猜测应该不是自然负载很高

其次服务器的代码和数据库并没有任何人动过

那么我唯一能想到的原因就是网站被ddos了,接下来验证一下猜想

解决过程

首先ssh到服务器,使用top命令查看一下当前服务器的负载情况,检测到httpd进程占用了cpu达到百分之百

这么就确定是被ddos了,接下来只要分析apache的日志,把恶意的ip封禁掉就可以了

  • 日志文件在/home/wwwlogs/access_apache.log

  • 日志格式如下

124.239.252.4 - - 2018-10-26 11:49:15 "OPTIONS * HTTP/1.0" 200 -

在awk处理的时候,以空格为分隔符,每一列分别对应$1,$2.....$9...

如果你的apache日志和我的不一样 那么通过打开http.conf修改LogFormat如下,然后重启httpd服务

LogFormat "%h %l %u %{%Y-%m-%d %H:%M:%S}t \"%r\" %>s %b" common

使用tail+awk组合命令对日志文件进行分析

tail -n 10000 /home/wwwlogs/access_apache.log  | awk '{A[$1]++;}END{for (a in A) print A[a] "  "a}' | sort -n

通过这个列举出最近10000次内访问的ip地址, 并且能够看到ip地址数量

发现ip为124.239.252.4的机器在10000次内居然有2000次的访问量,那么很容易得出这不是人类所为,接下来只要利用iptable强大的功能,把这个ip给封掉就可以了

iptables -I INPUT -s 124.239.252.4 -p tcp --dport 80 -j DROP

如果要封禁124.239.252的ip段,ip应该填写(124.239.252.0/24),24表示掩码长度

封完之后还得记得把封掉的ip记录一下,方便误杀恢复

最后再使用top命令看一下cpu负载,发现cpu占用只有20%不到,那么便大功告成了

尽管可能又漏网之鱼,但影响不大就可以了,搞定之后,就可以愉快的去做其他的事情了.

just a joke

且说有一天,一群物理学家在天堂里闲极无聊,便玩起了抓人游戏。这回轮到爱因斯坦抓人了。待他数到100,便睁开眼睛。只见所有人都藏起来了,只有伏特还趴在不远处。
爱因斯坦走过去,说:“伏特,我抓住你了。”
伏特说:“不,你没有抓到我。”
爱因斯坦说:“你若不是伏特,那你又是谁?”
伏特说:“你且看看我身下是谁?”
爱因斯坦低头一看,趴在伏特身下的,竟是安培!
伏特说:“我身下是安培,我俩就是伏特/安培,所以你抓住的不是我,你抓住的是欧姆!”
爱因斯坦反应何其敏捷,迅速改口道:“欧姆,我抓住你了!” 可是呢,伏特和安培毕竟是欧姆的好哥们。于是,伏特和安培一个鱼跃站了起来,但是仍然紧紧抱在一起,爱因斯坦感到大惑不解。
他俩不紧不慢地说,现在,我们不再是欧姆,而是伏特×安培, 变成瓦特了!
爱因斯坦觉得很有道理,于是喊,那我终于抓到你了,瓦特!
这时,瓦特躲在角落里,慢慢悠悠地开口说:“你看,他俩这样抱着已经有好几秒了,所以,你抓到的不是瓦特,而是瓦特×秒,是焦耳啦!”
这时,爱因斯坦看到牛顿站在不远处。于是他跑过去说:“牛顿,我抓住你了。”
牛顿说:“不,你没有抓到牛顿。”
爱因斯坦说:“你如果不是牛顿,那你是谁?”
牛顿说:“你看,我脚下踩的是什么?”
爱因斯坦低头一看,只见牛顿站在一块长宽都是一米的正方形地砖上。
牛顿说:“我脚下是一块一平方米的方块,我站在上面,就是牛顿/平方米。所以说,你抓住的并不是牛顿,而是帕斯卡呀!”
爱因斯坦屡受挫折,终于忍无可忍,爆发了。于是,他飞起一脚,踹在了牛顿身上,把牛顿踹出了那块一平米的地板砖。
然后他吼道:“说!你还敢说你是帕斯卡吗!”
牛顿慢吞吞地从地上爬起来,说:“不,我已经不是帕斯卡了。你刚刚让我牛顿移动了一米的距离,所以,我现在也是焦耳了!”
焦耳这次学聪明了,一把将阿伏伽德罗扑倒在自己身下,说:“你看,我现在是J/mol啦!”
正当爱因斯坦思考J/mol是什么东西的时候,亥姆霍兹和吉布斯这两个自由能吵了起来,都说是对方。为了不至于两败俱伤,他们一脚把开尔文踹到了焦耳下面,将阿伏伽德罗顶了出来。
“看!”他俩说,“现在是J/K,是熵啦,要抓就抓克劳修斯吧!” 游戏继续。
这次是安培最先被爱因斯坦发现。眼看安培就要被抓了,他顺势往地上一躺,伸直身体对站在身边不远处的爱因斯坦说:“等等,我在你站的地方产生了磁场。”
正当爱因斯坦在考虑该抓高斯还是特斯拉的时候,发现他俩一人找了一块地板砖抱着,说:“不麻烦您老了,我们现在是磁通量B·S,您还是去找韦伯吧!”
等到爱因斯坦要抓住韦伯的时候,却发现韦伯正在做深蹲。
爱因斯坦问:“你干嘛呢?”
韦伯回答说:“你没看到我一会儿变大,一会儿变小吗?我在产生感应电动势呢。”
伏特一下子慌了,他一把抓住密立根的衣领,说:“你成天拿个油壶乱喷什么!”
“测定元电荷。”密立根回答道。
“太好了!”伏特一把抱住密立根说,“从现在起,我们就是eV,也就是焦耳。”
“靠,今天真是邪了门啦!”焦耳嘀咕道。
他一把将赫兹压在胯下,说:“看,我现在是E/v,是普朗克啦!”
普朗克也不是好惹的。他突然发现,远处有个来自东方的长者在地上写下了22/7和355/113,心里很是得意。一打听,此人姓祖,更是心里大喜。
他急忙跑过去,把这两个分数照抄了一遍,然后趴在这四个分数上面,对气喘嘘嘘赶来的爱因斯坦说:“看,我现在是h/4pi啦!”
“那又怎样?”爱因斯坦问。
“这是我的好哥们海森堡教我的,他说这样我就不是我了,有什么事尽管找他。”
“好,那他在哪里?”
“这个,还真说不准。”
爱因斯坦恼羞成怒,正准备对普朗克大打出手。
普朗克说:“等等,海森堡有个姓薛的好哥们,就躲在前面的那个箱子里。”
“这箱子连个通风口都没有,难道他不会被憋死吗?” 爱因斯坦问。
“这个嘛,就得你亲自去打开看看了。”“(??ω??)??”