ITPub博客

首页 > 数据库 > Oracle > 【人在运维囧途_04】 逃离故障的十条运维工作经验总结

【人在运维囧途_04】 逃离故障的十条运维工作经验总结

原创 Oracle 作者:幕南风 时间:2014-07-03 13:52:40 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 来讲:

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、这笔订单没有同步到备库
          那么、卖家损失了一个销售单、对客户、对公司都是损失
          
          
       ㈨ 仔细一点,偏执一点,检查,检查,再检查
       
          有这么一个人:
          
          ① 他在做一个变更的时候,会先提前一两周发送邮件并电话手机通知相关人
          ② 在测试机上写好脚本,召集大家 review 操作步骤和脚本
          ③ 测试完成以后拷贝到生产环境
          ④ 登录对应机器,“打开,关闭,打开,关闭”该脚本
          ⑤ 跟相关人员再次确认执行的操作,顺序,时间点,可能的影响和回滚是否都准备好了
          ⑥ 执行前还要退出这个机器,然后再登录进去,“打开,关闭”脚本
          ⑦ 最后才在后台运行脚本,同时在另外一个窗口登录着,随时ps和查看结果输出
          
          期间姿势端正,呼吸急促而均匀,眼神凝重。操作的人不觉得累,倒是一边学习的人很累
          
          
       ㈩ 简单即是美
          
          这有点禅的意境、和 GNU/Linux 的思想不谋而合
          我们总是面临各种诱惑:
          新的系统架构,新的更智能的命令和工具,最新的硬件平台,功能更全的HA软件...等
          你可以在线下安装,测试,怎么搞都行。但是如果想要在生产环境下使用起来、请三思!!
          
          能够使用系统内置命令的话,就不用考虑其他要专门下载安装的软件了
          脚本本身就能完成的功能,就没有必要专门找一个功能丰富的软件来做
          linux本身自带的字符界面比那些复杂的图形界面要简洁方便
          ......
          ......
       
       
       最后祝大家运维工作一帆风顺,多福多寿,不出故障  %>_<%

<!-- Baidu Button BEGIN -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26515977/viewspace-1208051/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: RMAN 增量备份 的 对象测试
下一篇: Incremental Differential vs. Incremental Cumulative Backups
请登录后发表评论 登录
全部评论
腾讯数据库工程师

注册时间:2012-05-10

最新文章