百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

运维工作经验总结:逃离系统故障的十个心得

mhr18 2024-10-12 04:48 20 浏览 0 评论

系统故障,对于 DBA或是运维人员来说,都是心中永远的痛。而避免故障的原则却是殊途同归,现列如下,与君共勉。

一、变更要能回滚、先在同样的环境测试过

?

佛说:每次创伤、都是一次成熟,这便是运维人员的真实写照。


从某种意义上讲、运维是一门经验的学科、是一门试错的学科。没有做过的东西、总是会给你不期而遇的痛击,请保护现场,让变更有回头的机会。


二、对破坏性的操作谨慎小心

什么是破坏性的操作?

比如:对 Oracle 而言:truncate table_name、delete table_name、drop table_name,这些语句执行起来轻松简单也惬意极了、但记住!即便数据可被回滚、代价也是非常大!

对 Linux 而言:

rm -r

所有当前及其子目录的所有数据都将被删除。经历过这种故障的人、大多会给 rm 上个别名。

alias rm='rm -i'

同理,cp 和 mv 也可以有同样的选项:

alias cp='cp -i'

alias mv='mv -i'

三、设置好命令提示

在操作之前、先理清你所在的是主库、备库?当前目录?哪个 schema?session?时间?

比如:对 Oracle 来讲:

[plain] view plaincopy

idle> set sqlprompt 'RAC-node1-primary@10g>>'

RAC-node1-primary@10g>>


当然、你也可以在 glogin.sql 里面设置。

对于 Linux 而言、bash 环境的提醒可设置 PS1 来知道当前目录、登陆用户名和主机信息等;

对 PS1 更多理解、请见:man PS1

?

四、备份并验证备份的有效性

人非圣贤、岂能无过?是机器总有计划内或计划外崩溃的一天。怎么办?备份!!!

备份的学问很大、按照不同的维度可以分:冷备和热备实时和非实时物理和逻辑。OLTP 7*24 在线业务、DB 就需要有实时热备。这样就可以了吗?

如果开发人员的一个不带任何条件的 delete 误删所有数据,此时你除了实时、还需要有非实时的备份、把 DB 从逻辑错误中恢复出来。

备份有了、可以高忱无忧了吗?不行!尚须验证备份的有效性。一个总有那么几次、备份无法保证 100% 恢复,简单的验证就是找个空库恢复出来。


五、对生产环境永保敬畏之心

会计人员在从业之前、都有个职业操守的训练。同理、这也应该是运维人员进入行业首先需要具备的素养。

比如:

?

于 Oracle 而言、你可以跑一个 RDA 巡检 DB 的健康状况;于 Linux 而言、是否有 password aging、隔离外网等。

?

六、交接和休假最容易出故障、变更请谨慎

接手别人的工作要一而再、再而三的确认变更方案。请教人并不见得就是能力不行的表现;

休假前最好各种可以做好的事情,最好能够准备一份文档,指明在什么情况下怎么做和联系哪些人;

在别人放假的时候接手工作,“能拖则拖”,实在需要执行:必须不厌其烦的跟原运维者确认各个操作细节。


七、搭建报警、及时获取出错信息;搭建性能监控、预测趋势

?

运维人员赖于生存的工具就是报警和监控。

?

报警可以让你及时知道系统出现了什么异常、以便及时跟进、把故障扼杀于摇篮;

监控可以让你了解系统的历史性能信息、以历为鉴、可以知兴替嘛、早做优化。

报警和优化是衣宽带水的好兄弟、相铺相成、互相促进。


八、自动切换需谨慎

比如:Oracle 存储级的HA方案:Data Guard,主库提交了一笔订单,结果发生了 switchover,这笔订单没有同步到备库,那么卖家损失了一个销售单、对客户、对公司都是损失。


九、仔细一点,偏执一点,检查、检查,再检查

有这么一个人:

1、他在做一个变更的时候,会先提前一两周发送邮件并电话手机通知相关人;

2、在测试机上写好脚本,召集大家 review 操作步骤和脚本;

3、测试完成以后拷贝到生产环境;

4、录对应机器,“打开,关闭,打开,关闭”该脚本;

5、跟相关人员再次确认执行的操作、顺序、时间点,可能的影响和回滚是否都准备好了;

6、行前还要退出这个机器,然后再登录进去,“打开,关闭”脚本;

7、后才在后台运行脚本,同时在另外一个窗口登录着,随时ps和查看结果输出。


期间姿势端正,呼吸急促而均匀,眼神凝重。操作的人不觉得累,倒是一边学习的人很累。


十、简单即是美

服务器运维管理软件——云帮手,帮助运维人员提供一站式多云管理服务,包括安全巡检、资源监控、环境搭建、站点管理、安全防护等,替代繁杂命令行,实现一站式简单操作,提高运维效率。????

相关推荐

IT界10倍高效学习法!用这种方式,一年学完清华大学四年的课程

有没有在某一个瞬间,让你放弃学编程刚开始学python时,我找了几十本国内外的python编程书籍学习后,我还是似懂非懂,那些书里面到处都是抽象的概念,复杂的逻辑,这样的书,对于专业开发者来说,在平常...

数据库设计原则:构建高效可靠的数据存储

简介数据库设计是软件开发中至关重要的一环,它决定了数据在系统中的存储方式和组织结构。良好的数据库设计可以提高系统的性能、可靠性和可维护性。本文将介绍一些常见的数据库设计原则,包括范式化、冗余与一致性、...

Deno 操作 Oracle 数据库全解析:从入门到精通的实战指南

在企业级应用开发中,Oracle数据库凭借其强大的功能、高可靠性和安全性,一直是大型系统的首选数据存储方案。Deno作为新一代JavaScript/TypeScript运行时,以安全、高效和现...

APIJSON快速入门-零后端代码,接口所见即所得

1.流程说明一个接口的开发,比如Java用SpringBoot,Mybatis来开发一般来说就像下面这个流程部署上这个项目后,流程变成了这样如果使用apijson-framework,还可进一步简化...

每天从外包系统同步百万数据,用什么方案?Java实战讲解

用户问的是每天从外包系统同步百万数据,用什么方案,还要Java实战讲解。首先,我需要明确用户的需求。他们每天需要处理的数据量是百万级别,这个量级不算特别大,但也要考虑效率和稳定性。可能用户是企业的开发...

SpringBoot条件化配置(@Conditional)全面解析与实战指南

一、条件化配置基础概念1.1什么是条件化配置条件化配置是Spring框架提供的一种基于特定条件来决定是否注册Bean或加载配置的机制。在SpringBoot中,这一机制通过@Conditional...

禁止join,我该怎么办(禁止后不再提示是什么意思)

join是什么SQL中JOIN子句用于把来自两个或多个表的行结合起来。在实际的数据库应用中,经常需要从多个数据表中读取数据,这时就可以使用SQL语句中的连接(JOIN)子句,在两个或多个数据...

Spring IoC Container 原理解析(spring的ioc底层实现原理)

IoC、DI基础概念关于IoC和DI大家都不陌生,我们直接上martinfowler的原文,里面已经有DI的例子和spring的使用示例《InversionofControlContainer...

SUSE再次宣布推出自己的 RHEL 兼容发行版

SUSE再次宣布推出自己的RHEL兼容发行版变色龙牧场主选择了一条新的岩石路线周三12七月2023SUSE正在重新考虑去年初所做的改变:它正在推出自己的RHEL兼容发行版,或者用它的话说...

Seatunnel介绍与datax对比及使用教程

什么是SeatunnelSeaTunnel是一款极简易用、性能卓越的分布式数据集成平台。它以轻量高效的架构设计,为用户提供了一站式数据集成解决方案,可轻松实现跨系统、跨格式的数据实时/批量同步与...

Spring Boot 大屏展示,私活项目,已开源,接私活必备,真香

一款基于代码生成器的低代码平台!前后端分离架构SpringBoot2.x,SpringCloud,AntDesign&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生...

互联网大厂后端必看Spring Boot3与Oracle数据库的高效连接全攻略

你是不是在使用SpringBoot3开发项目时,正为连接Oracle数据库而头疼?明明按照常规方法配置,却总是出现各种错误,耗费大量时间却毫无进展?别担心,这篇文章就是为你量身定制的!开发现...

Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务

据oracle网3月20日报道,Oracle宣布在OracleDatabase@Azure的百万兆次级基础设施上全面推出OracleExadata数据库服务。百万兆次级部署选项无需供应...

Oracle数据库中查询最前面的100条数据,三种方法对比

在Oracle数据库中查询最前面的100条数据,可通过多种方法实现,不同方法适用于不同场景和版本。以下是基于当前技术文档的三种核心方案及其适用性分析:一、使用ROWNUM伪列(通用方案,全版本适用...

Oracle数据库中判断字段不为空?(oracle判断字段是否包含数字)

Oracle数据库中如何判断字段不为空在Oracle数据库中,判断字段(列)不为空通常涉及到几种不同的场景和需求。下面是一些常见的方法来检查字段是否不为空:1.使用NVL函数NVL函数可以用来将NU...

取消回复欢迎 发表评论: