设为首页 收藏本站
查看: 1256|回复: 0

[经验分享] zabbix数据库备份问题

[复制链接]

尚未签到

发表于 2015-11-23 11:00:59 | 显示全部楼层 |阅读模式
今早来公司发现zabbix监控没有数据,然后登陆server端,发现如下:
[iyunv@1-199-HP~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/cciss/c0d0p1     9.5G  461M  8.6G   6% /
/dev/cciss/c0d0p7      91G  188M   86G   1% /data0
/dev/cciss/c0d1p1     133G  227M  126G   1% /data1
/dev/cciss/c0d2p1     133G  188M  126G   1% /data2
/dev/cciss/c0d3p1     133G  188M  126G   1% /data3
/dev/cciss/c0d0p6     7.6G  7.2G     0 100% /var
/dev/cciss/c0d0p5     7.6G  177M  7.1G   3% /tmp
/dev/cciss/c0d0p2     9.5G  4.3G  4.8G  48% /usr
tmpfs                 2.0G     0  2.0G   0% /dev/shm
[iyunv@153-199-HP08020033 ~]# find /var -size +104857600c -exec ls -lh {} \;
-rw-rw---- 1 mysql mysql  Mar 27 09:54 /var/lib/mysql/ibdata1
判断:/var目录被写满
vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
判断:数据库默认储存在/var/lob/mysql下,而/var 整个目录只有7.6G大小,很容易就被写满,
通过上网查 “/var/lib/mysql/ibdata1”了解到 ibdata1是mysql使用InnoDB引擎的时候需要使用的文件。
这个文件有的时候会变得很大,并且在你删除数据的时候,文件也不减小。

解决方案:
下面是处理超大ibddata1文件的步骤:
1. 对每张表使用单独的innoDB文件, 修改/etc/my.cnf文件

[mysqld]
innodb_file_per_table
目的很明确,我们可以单独删除每个文件
2. 导出所有的数据,重建数据库,然后恢复数据:
# /usr/bin/mysqldump -R -q --all-databases > /tmp/all.sql
# service mysqld stop
# rm -fr /var/lib/mysql/*
# /usr/bin/mysql_install_db
# service mysqld restart
# mysql < /tmp/all.sql
按照网上参考资料,由于经验不足,我在没有完全搞清楚的情况下进行了以上操作,结果下午数据一致在导入,而没有发现之前导出做备份的数据并不完全,有很多表没有导出,原本有3个多G的数据,只导出1.4G,最后导致数据库无法恢复,造成一个&#31036;拜的数据就这样没了。。而且只能重新添加监控项。。
现在分析出现以上原因,目前已知我可以这样处理:
1、以后安装数据库,记得修改/etc/my.cnf配置文件如下:

[mysqld]
innodb_file_per_table=1
datadir=/data1/mysql  #修改数据库存储路径
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
2、或者像今天早上出现这样的情况直接做个软连接,将数据库存储路径连接到/data1目录下就可以解决
如以上可以:ln -s /data1/var  /var   ???

解释:
ln -s a b 中的 a 就是源文件,b是链接文件名,其作用是当进入b目录,实际上是链接进入了a目录
如上面的示例,当我们执行命令   cd /var/的时候  实际上是进入了 /data1/var/
&#20540;得注意的是执行命令的时候,应该是a目录已经建立,目录b没有建立。我最开始操作的是也把b目录给建立了,结果就不对了
也就是所执行ln -s /data1/var  /var 是不行的!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142552-1-1.html 上篇帖子: zabbix 监控 oracle 数据库 下篇帖子: zabbix 配置管理[备忘]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表