误删除线上无备份mongodb 1800万数据表的心路历程

2018-06-14 15:32 ,我误删除掉线上mongodb集群的表。

ok,mongobooster是有stop按钮。点击停止救命一下。但是,根本停不掉,每刷新一下都能看到表单在1M递减的速度减少,每刷新一次 头晕就加重脑海飞速想解决方案

历程:

1.找运维,拿备份。  找了许久竟然没近期备份,最近的是五月初,我的天,我快倒在地上了。

2.竟然mongodb的collection是文件存储,那么靠运维磁盘中找到原来文件,400多G磁盘需要半小时检索。这半小时 ,看着异常不断增多,崩溃,每一秒都难受

3.这时间 我想运维解决,不敢和上层说。但最后还是鼓起勇气,当面说了,一起找解决方案,幸运的是,该表的数据可以从其他表拼凑出来,那么写小工具检索其他表拿数据插表

4.两头一起做,其中文件没找回来,各种google解决方案,然而并没方案恢复mongodb表数据,难受,赶紧写工具。

5.写好工具,简单估算时间,由于检索的表数据量很大。竟然需要9小时,期间万一出点幺蛾子,我的天,我不行了。

6.冷静,一起优化代码   ,最后完成新的工具,估算时间差不多1小时半小时左右 吐了半口气。

7.盯着程序,还好稳定执行 生成新的表。解决mq等线上的一些错误弄完 2018-06-14 19:00左右 结束。

这几个小时的压力,哇,说不出来难受,绝望是最好的形容。

阿门,佛祖保佑。不要再来一次了。端午去寺庙吧。

原文地址:https://www.cnblogs.com/TeemoHQ/p/9185402.html

时间: 2024-10-05 12:30:42

误删除线上无备份mongodb 1800万数据表的心路历程的相关文章

python| 本地数据库导入线上服务器的mongodb中

sudo vi /etc/mongod.conf 进入conf文件,修改port值为19999保存并退出. 重启mongodb sudo service mongod restart 进入mongo shell mongo --port 19999 本地数据库导入线上服务器的mongodb中 1 备份本地数据库 git 切换到mongodb/data,输入: ../bin/mongodump -h 127.0.0.1:27017 -d vueBlog -o ../data/vueBlog-bac

跨库备份指定日期前数据表,然后从原表删除

  public bool BackupAA() { int temp = 0; int tempdel = 0; string sql = "INSERT INTO [WMSBAK].[dbo].[AACopy] SELECT * FROM [TestDB].[dbo].[AA] WHERE AddDate <= DATEADD( d ,-45,GETDATE())"; try { temp = dbhelper.ExcuteNonequery(sql); } catch (E

(转) 线上环境部署MongoDB的官方建议

本文主要内容来自MongoDB官方文档http://docs.mongodb.org/manual/administration/production-notes/.并结合了实际工作情况进行分享. 1)软件包的选择 确保使用最新的稳定版本.目前我们线上使用的版本是2.4.6.MongoDB软件包下载页面http://www.mongodb.org/downloads. 确保线上环境总是使用64位版本.32位版本只能用于测试和开发使用,因为32位版本最大只能存储2GB的数据.启动MongoDB的时

MySQL:亲测备份策略实例(线上真实备份案例)

小生博客:http://xsboke.blog.51cto.com 如果有疑问,请点击此处,然后发表评论交流,作者会及时回复(也可以直接在当前文章评论). -------谢谢您的参考,如有疑问,欢迎交流 是否为线上库的备份而烦恼过,这里提供一个完整的备份从属数据库的备份方案,亲测可用 说明: 备份从库,按周计,每周进行一次全备 每周一的早上六点进行全备,其他时间备份中继日志 在从库上启用rsync服务,用于异地备份 在本地服务器使用rsync命令定时同步数据库的备份 此备份可用于为Master添

yii2文件(图片)上传,url保存到数据表

view视图create.php <?php use yii\helpers\Html; use yii\bootstrap\ActiveForm; <?php $form = ActiveForm::begin([ 'id' => 'upload', 'enableAjaxValidation' => false, 'options' => ['enctype' => 'multipart/form-data'] ]); ?> <?= $form->

解决线上135因mongodb太大容量,导致硬盘空间不足的方法【内部问题解决】

因为不能增加硬盘,不能删除数据.所以采用mount到另外一台机器(137)空间的方法.如下: 1.137上vim /etc/exports 增加:/mnt/data/mongodb 192.168.10.135(rw,no_root_squash) 然后:exportfs -rv 2.mount 137的空间到本地, mount -t nfs -o rw 192.168.10.155:/mnt/data/mongodb /data/mongodb 3.停掉135 mongodb ,kill -2

线上MySQL备份脚本

最近在研究数据库备份,定时执行备份任务,这里直接把备份脚本设置为crontab命令定时执行,脚本内容如下: [[email protected] ~]# cat mysql-backup.sh #!/bin/bash dbpwd='possw0rd123' dbuser=root host=127.0.0.1 port=3306 dbarg=" -u$dbuser -p$dbpwd -h$host -P$port --default-character=utf8 " DATE=`dat

线上业务备份+定期删除备份文件+MD5加密

[[email protected] 192.168.1.20]# cat /server/scripts/beifen.sh #!/bin/shIP=$(ifconfig |awk -F '[ :]+' 'NR==2 {print $4}')Path="/backup/$IP"[ ! -d $Path ] && mkdir $Path -pMUBIAO="/app"#backuptar zcf $Path/www_$(date +%F).tar.g

【并发】5、多线程并发解析单文件大数据了量解析入库,1800万数据8线程5分钟入库

1.首先机器要求8核,不然可能会慢点 2.数据库建表的时候,最后建那种nologging类型的表,不然归档日志满了,数据库入库会很慢,甚至丢数据,因为数据量很大,我们不可能一次性提交所有数据,只能分批提交 package com.ztesoft.interfaces.predeal.util; import com.ztesoft.interfaces.predeal.bl.IHandle; import java.io.ByteArrayOutputStream; import java.io