【浅谈DBA职业生涯---误操作篇】

news2024/10/7 15:27:48

在这里插入图片描述

👈【上一篇】
💖The Begin💖点点关注,收藏不迷路💖
【下一篇】👉

🔻【💣 话题引入:请列举你在从事 DBA 生涯中,最难以忘怀的一次误操作】

🚩 该话题覆盖各行各业,是一个普遍存在的问题,误操作可能导致数据丢失、系统异常、安全问题等不良后果,给个人和企业带来了不必要的损失和风险。

所以作为一个 DBA,或者哪怕仅仅是和数据库打交道的技术人员,要时刻保持 严谨、冷静、慎之又慎、严格执行的态度切忌浮躁、想当然、主观臆断

  • 下面是itpub技术论坛中大佬们的经验分享。

在这里插入图片描述
这些案例很有趣,展现了许多因一时疏忽、不够严谨所犯下的错误。下面摘录了一些与误操作相关的案例,我们应该引以为戒,共同警醒,避免重蹈覆辙。

🔻【案例1----记一次恢复误操作删除了生产服务器数据】

⛳ 安排一个MM在一台生产服务器上安装 Oracle,遂边研究边安装,感觉装的不对,准备卸载重新安装。
从网上找到卸载方法,其中要执行一行命令删除 Oracle 的安装目录,命令如下:
如果 ORACLE_BASE 这个变量没有赋值,那命令就变成了:
rm -rf /*,就这样,把整个盘的文件全部删除了,包括应用 Tomcat、MySQL 数据库 and so on…


💉 感受:这个周末算是报销了,不挨批,通报,罚款,开除就不错了,还过什么周末啊。

🌟 反思&总结:本次安排 MM 进行服务器维护时没有提前对她进行说明厉害情况,自己也未重视,管理混乱,流程混乱。**

🔻【案例2----昨天晚上一哥们儿,把数据库给整挂了!】

接到电话7点多了,说是数据库无法访问,吓坏我了,通常这个比较棘手的。问了具体情况,才这么说,是load了几张表后,数据库暂挂了,我终于舒了一口气!

🔻【案例3----rm 丢魂记】

⛳ 删除日志时,输入rm * .log,因为星号与log之间有空格,所以删除了该目录下所有的文件,吓得我出了一身汗

⛳ 一不小心用rm -rf /home目录下的所有文件,/home目录下放的账务系统的app。一看删除的路径的不对,已经来不及了。

⛳ rm -rf /opt/ora92/
在测试库中本来想删除数据库,结果错误的把ORACLE软件删除了.

⛳ 在linux平台上,一次不小心操作,把oradata下所有的东西全删除了。
⛳ 执行 rm -rf /test 时,敲完 / ,不小心就碰到了回车……人生最痛快的事莫过于此…….

🔻【案例4----DBA误操作 ODU救命记】

仍然是多事9月5日上午,4号晚上睡的太晚,5号一来继续看那个DL580 G3 + Oracle 10.2.0.1裸奔机,发现一个索引应该没太大用处,Toad下DESC 这个表调出了Table,原本想删掉那个无用索引,结果点了Toad中最右边Truncate的按钮,Index没删掉,表却被截断了。

🌟 反思&总结:DBA对DDL操作一定要小心,Double Check后再做。个人也要休息好,不能太累。脑子不清楚时一定要小心再小心。

🔻【案例5----记录一次惊心动魄的误操作(Oracle)】

多扩容的5块磁盘,居然是归档所使用的/arch 文件系统盘,DG备库的归档并没有存储在ASM存储中,而是使用的本地文件系统,最终导致归档数据和+DATA磁盘组数据重复写入,数据大面积损坏,数据库宕机。

🌟 反思&总结:虽然此次误操作发生在DG备库,没有对生产系统造成任何影响,但由于主库是一套非常核心的数据库,如果此次事件发生在主库而不是备库,后果会非常严重。

出现此次事故根本原因是对备库操作不够重视,从而导致关键性操作粗心大意。根据墨菲定律,凡事如果有出错的可能,在将来的某一天一定会出错。所以要做出改变,改变心态,改变安全意识,改操作规范等。

🔻【案例6----职业生涯中,最难以忘怀的误操作】

一次工程实施,一个超市开业,经过一个多月的数据初始化,好不容易把所有商品都弄好了,离开门只有5分钟了,超市门口庆典已经开始了,聚集了很多顾客等着开门呢,我突然接到他们超市的人说有一个商品的价格弄错了,要我手工修改数据库改过来,我就照做了,但是我写的update语句忘了写where条件了,执行后我发现执行的很慢,十几万条数据啊,所有的商品的价格都已一样的了,此时我足足愣了2分钟,一言不发,一身冷汗。我赶紧打电话给他们经理说能否晚开门5分钟我恢复备份数据库,他们不答应晚开门,但可以限制10分钟后才让收银台收款,我才终于将心放到肚子里了。

🌟 反思&总结:8年过去了,现在想起来都有些怕,万一没有数据库备份,我如何负责?我如何能负责得起啊!!!!!”

🔻【案例7----远程重启网卡】

有一次远程操作,本想着重新启动网卡
service network restart
但不知道脑子一热
servier network stop
结果,只能跑到机房 start了

🔻【案例8----mysql添加用户权限(心凉哇凉的啊)】

第一次自己管理mysql的数据库,在为一个用户添加权限的时候,误操作使用了 update user set Password=password(’*’) .后面居然忘了加条件语句。 瞬间所有的用户密码变的一样了。那时候真是“心凉哇凉的啊” ,哎 现在想想都很无语~~

🔻【案例9----记一次Oracle数据更新】

⛳ 我是在Oracle数据库中做数据更新,对一个表做update的时候,少添加了一个where条件,结果至少有二百万条数据被误更新了。。。
幸好此前做过一个备份,否则的话哭都没地方哭去

🔻【案例10----记多机器来回切换的误操作】

经常在十几台机器之间来回切换,有次rm -rf ./ * 清个文件夹,结果执行完发现rm到其他机器上去了…
🌟 反思&总结:从此以后执行重要命令之前先ifconfig看下ip

🔻【案例11----【一记难忘的误操作】当shareplex的capture queue file被删除之后】

月黑风高,不料天有不测风云,一次痛苦而难忘的误操作就发生于此。
在生产环境的误操作尤其是DBA的梦魇。虽然最后竭尽全力,力挽狂澜,但仍心有余悸。
故事发生在为Oracle提供高级复制的软件Shareplex身上。


起因,Shareplex有一个一直未曾解决的Bug,在vardir目录下会产生许多capture queue files,直到将vardir撑爆。目前的workaround是找到当前使用的capture queue file,人为删掉前面所有的capture queue files。
经过,傍晚是睡意朦胧之际,警觉之心顿消,copy&paste的速度越发地熟练和不假思索,于是,悲剧地多删了最后,也就是当前的capture queue file。
结果,(此处省略几千字)Fixed。

🔻【案例12----【一次 MySQL 误操作导致的事故,「高可用」都顶不住了!】

不是有 Keepalived 来保证高可用么,即使 MySQL 挂了,也可以通过 Keepalived 来自动重启才对。即使一台重启不起来,还有另外一台可以用的吧?

🌟 反思&总结:查找最近发生的日志,为啥 log 文件夹被干掉了??有位同事之前在迁移升级的过程中,发现这个 log 数据库在老的系统是没有的,所以就清理了,这就相当于把 log 数据库干掉了,同时也会把 log 文件夹干掉了。好了,终于水落石出了!

🔻【总结】

🍹 备份 备份 再备份,重要数据都要做好备份!公司的备份最好还要多做备份的有效性测试!!!
🍹 能不用root 尽量不用root!!!
🍹 “backup is your last line of defence” -----真理呀!话说常在河边走,哪有不湿鞋。。

🍹 不操作有时是最好的操作
🍹 失败是让人记忆深刻的,失败也是会成为一个大脑里的标记的。

在这里插入图片描述


👈【上一篇】
💖The End💖点点关注,收藏不迷路💖
【下一篇】👉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/632633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MapReduce共享单车练习

MapReduce 本机运行 文章目录 MapReduce 本机运行✅前置工作1. 配置JDK2. 创建Java项目3. 导入所需JAR包 编程实现以下题目1. 统计各个月份共享单车使用的总数2. 统计不同天气情况下共享单车使用的总数3. 统计每个季度共享单车使用的总数4. 统计每个月份的注册数量5. 统计每天1…

【Docker】docker部署前Springboot-vue后端分离项目实战

文章目录 docker 安装jdkdocker 安装mysql通过Docker命令进入Mysql容器内部初始化数据sqlDbx连接查看构建后端镜像查看构建的后端镜像运行后端镜像 docker 安装nginx docker 安装jdk https://jackwei.blog.csdn.net/article/details/110227719 docker search openjdk:8 docke…

python语法-数据可视化(全球GDP动态柱状图开发)

python数据可视化(全球GDP动态柱状图开发) 开发工具:pycharm、pyecharts模块 (项目数据见文末参考内容) """ 演示GDP动态柱状图开发 """from pyecharts.charts import Bar,Timeline fr…

Linux系统运行时参数命令(性能监控、测试)(1)监控工具、CPU上下文切换、CPU性能监控

目录 1. 监控工具2. CPU性能监控2.1 平均负载和CPU使用率2.1.1 平均负载基础2.1.2 使用uptime命令分析平均负载2.1.3 平均负荷和CPU使用率 2.2 CPU上下文切换2.2.1 什么是CPU上下文切换2.2.2 有哪些上下文切换2.2.3 怎么查看上下文切换 vmstat2.3 遇到CPU使用率高该如何排查 主…

openGauss5.0之学习环境 Docker安装

文章目录 0.前言1. 准备软硬件安装环境1.1 软硬件环境要求1.2 修改操作系统配置1.2.1 关闭操作系统防火墙 1.3 设置字符集参数1.4 设置时区和时间(可选)关闭swap交换内存1.5 关闭RemoveIPC1.6 关闭HISTORY记录 2. 容器安装2. 1支持的架构和操作系统版本2…

大语言模型之人类反馈学习RLHF

在2017年左右,深度强化学习(Deep Reinforcement Learning)逐渐兴起并引起广泛关注。特别是在2017年6月,OpenAI与Google DeepMind联合推出了一项名为《Deep Reinforcement Learning from Human Preferences》(RLHF&…

chatgpt赋能python:Python如何判断整数

Python如何判断整数 Python是一个简单易学的编程语言,但是对于初学者来说,判断整数可能会有一些困难。在本文中,将介绍Python如何判断整数,并提供一些示例帮助您更好地理解。 如何判断整数 在Python中,判断整数可以…

Skywalking环境搭建

Skywalking环境搭建 elasticsearch环境搭建Skywalking环境搭建 elasticsearch环境搭建 接下来我们在虚拟机CentOS中搭建Skywalking的可观测性分析平台OAP环境。Skywalking默认使用H2内存进行数据的存储,我们可以替换存储源为ElasticSearch保证其查询的高效及可用性…

运行后端SpringBoot项目

目录 一、注册微信开发者账号 1. 注册开发者账号 2. 获取appid和密钥 二、开通腾讯云TRTC服务 1. TRTC业务介绍 2. 为什么不使用阿里云的实时音视频服务,偏要选用腾讯云TRTC服务? 3. 开通TRTC服务 4. 领取TRTC的AppID和密钥 三、导入 emos-api …

Geant4安装记录,15.5.0VMware + 11.0.0G4 + 18..04.1 ubuntu

仅仅是记录学习使用,有问题请联系 Geant4安装前准备 (1)安装虚拟机, VMware 15.5 (2)在虚拟机上安装ubuntu 以上两个步骤在网上有很多教程,安装很简单,大家自行安装即可 这里记录…

【前端验证】通关寄存器与ral_model —— 25种常用寄存器类型全览

寄存器的属性分类 本文档对于寄存器的属性以synopsys相关文档以及ral_model生成模型时的识别方式为基准。通常讲可以归纳为以下三个方面:读写属性read-write access、写后值modified write value、读后操作read action。注意,这里指的都是软件的操作&am…

chatgpt赋能python:Python怎么升序排序

Python怎么升序排序 排序是我们经常会用到的一种操作,而在Python中,对于列表或数组等序列类型的数据,我们可以使用内置的sorted()函数来进行排序操作。而在排序时,升序排序是我们最常用的一种。 Python中的sorted()函数 sorted…

关于uni-app与vue路由配置的不同,不使用uni.navigateTo接口跳转时,使用this.$router.push的踩坑经验

目录 懵逼的一个小时 uni-app与vue路由配置的不同 非官方接口的另类写法 错误编写: 正确编写(只需写父组件即可,其他是多余): 懵逼的一个小时 之前用vue写router路由的时候,先配置一个路由表&am…

chatgpt赋能python:Python怎么删除列表中的最大值和最小值

Python怎么删除列表中的最大值和最小值 在Python中,一个列表(List)是一种非常常见的数据结构,它允许我们以有序的方式存储和访问数据。但是,有时候我们需要从列表中删除最大或最小的值,以满足我们的特定需…

哈希表原理,以及unordered_set/和unordered_map的封装和迭代器的实现

哈希表 unordered系列unordered_set和unordered_map的使用哈希哈希概念哈希冲突哈希函数闭散列开散列哈希表的扩容哈希表源码(开散列和闭散列) 封装unordered_set/和unordered_map,以及实现迭代器节点定义unordered_set定义unordered_map定义…

Python3 flask-socketio 整合vue

1. 前端说明 前端追加了vue-socket.io的依赖 更新package.json及package-lock.json后,需要补充库 2. 后端说明 服务端需要安装的python包 suse python 3.6.12 Flask_SocketIO-4.3.1-py2.py3-none-any.whl python_socketio-4.6.0-py2.py3-none-any.whl python_…

在PPT里如何做出晶莹剔透的高级水泡感出来呢

开篇 很多PPT特别是一些TED演讲类PPT,它的首页开篇给人以强烈的冲击感。比如说上面这张PPT,笔者就卖出过一页800元的效果。它的高级高级在以下两个地方: 水晶感;透明感这是时下非常流行的一种TED场景式演讲专用的PPT,适用于一些大厂的CTO、CEO都大量使用这种效果。 今天…

shell脚本编写辅助命令

目录 一、echo 命令 二、字符串相关操作 1.截取字符串 2.获取字符串长度 3.字符串追加字符 4.从开头或结尾删除字符串指定格式内容 三、随机数 1.使用 $RANDOM 2.指定RANDOM变量的范围 (1)从0开始的范围 (2)从指定数始…

35、git的使用

一、git简介 git是一款免费、开源的版本控制系统,用于高效地处理任何或大或小的项目。 作用: 文件存档备份 文件版本管理 多人协同合作(自动合并) 二、git的三个区域 工作区:处理工作的区域 暂存区:临时存放…

Shell脚本实现数组冒泡排序等简单算法排序

目录 一、冒泡排序 1.简介 2.基本思想 3.算法思路 4.shell脚本实现 二、选择排序 1.简介 2.基本思想 3.shell脚本实现 三、插入排序 1.算法思路 2.shell脚本实现 四、反转排序 1.作用 2.shell脚本实现 一、冒泡排序 1.简介 类似气泡上涌的动作,会将…