DBA生存警示:主备环境误操作案例及防范建议

编辑手记:对于资深的老DBA们,他们在漫长的职业生涯中养成了很多稀奇古怪的守则,以在复杂多变的环境中“幸存”,这源于无数血泪的教训,我曾经在《数据安全警示录》一书收录了大量现实案例,现在整理分享给大家,共为警示。

在数据库日常管理过程中,有些威胁来自数据库外部,而有些威胁则来自数据库内部,对于数据库外部,破坏性的操作有rm,而在数据库内部,同样有破坏性操作,如Truncate。

案例分享


生产与测试环境错误

开了两个PL/SQL DEVELOPE窗口,一个生产的,一个非生产的,同名用户,同表空间名,结果非生产的建用户脚本在生产中跑了一下,非生产是grant limit table space to XXX的,在生产中跑了以后,生产中的用户变成LIMIT了,结果程序出错,表空间不足。导致应用出错半个小时后才处理好。 这个太惨痛了,建议所有的使用多个环境的人,并且操作多个PL/SQL DEVELOPE的人尽量只开一个窗口操作,或者是操作生产的时候,用只读的查询用户。

生产与测试环境错误

自己电脑装了ORACLE数据库,平时操作都在自己创建的库上........经常删除用户,重新导最新的数据进去。 那天也是快下班了........急,直接删除用户,删除的时候还在想就算是正式库权限不够没关系,看也没看就敲回车了.......后来不说了,两个字,郁闷。

生产与测试环境错误

我有一次本来要删除测试库的,结果差点删除生产库的一个表的所有数据,还好强行ctrl_alt_delete,最后回滚了,哈哈,居然一条数据都没有删除。确实是快下班,比较累。以后不能在心急的时候维护数据库。

生产与测试环境错误

也是开了多个窗口,一个窗口建库,另一个窗口是生产的库。搞错了,在生产的服务器上直接shutdown了,立刻电话就上来了。好在没有造成太大影响,也是提心吊胆的。多窗口危险很大。

生产与测试环境错误

尤记得那年我还很冲动,测试环境中发现表空间不够了,就加了一个文件。一会有人打电话说生产库总报一个提示。 马上去看,发现我的数据文件竟然加在生产库上!而且路径类似windows的,非常奇怪,冷汗!靠,原来写错tns串了,见鬼的是测试环境和生产环境网络竟然是互通的!生产环境是RAC,裸设备,9i......后来只好把这个本地文件脱机,数据倒没有丢失,但总有个删不掉的脱机文件!后来找个理由升级成10g了,我心里的石头才算放下了。 从此以后我再也没有犯错。

误删除生产环境数据

有一次在測試庫drop掉一個表,drop完發現把生產庫中的表給DROP了,1000多万筆紀錄啊。當時產線就停了,最後一級生產事故。偶公開檢討。教訓:不能同時打開兩個以上的庫。

防范建议


1.测试环境和生产环境应当处于不可互通的物理网络

互通就意味着同时可以访问,也就可能带来很多意想不到的安全风险,企业应当将测试环境和生产环境部署于不可互通,或者不可同时访问的网络环境中,避免因为错误连接而发生的数据库灾难。 分离部署一方面可以降低误操作的可能性,也可以屏蔽一些无关的访问可能,从而从网络链路上保证数据安全。

2.在执行任务之前确认连接访问的数据环境

通过查询数据库的视图(V$INSTANCE,V$DATABASE)就可以获得数据库的主机、实例名称等信息,在任何重要任务执行之前,都应当明确确认连接到的环境是正确的。 SQL>select instance_name,host_name from v$instance; 这应当成为DBA的习惯。

3.避免打开过多的窗口以致操作错误

在执行任务时,保持尽量少的打开窗口,我经常见到工程师桌面打开众多凌乱的窗口,混乱与错误同行,尤其是在通宵加班等环境下。 保持简介清晰的工作界面,是一个工程师应当具备的基本素质。

4.在执行重要任务时应保持良好的状态

良好的状态是高效率和高质量工作的保障,如果是夜间工作,应该保障充足的睡眠,以清醒的头脑面对重要的工作;并且一定要避免在疲劳状态下连续工作,疲劳作战是对自己和数据的不负责任。

5.避免匆忙之下进行重要的工作或决定

很多误操作都是因为急着下班,急着回家,临门一脚导致的失误,所以当我们去执行一项工作时,应当保持平和的心态,避免仓促紧急的决定。从来匆忙和仓促都不是一个正确的方法。

6.测试环境和产品环境密码设置不能相同

有些测试环境或者非产品环境是利用产品环境恢复得到的,DBA在建立了测试环境后,就没有修改数据库用户的登录密码;经常性的,DBA也习惯在所有环境中设置通用的密码;这些习惯为系统带来了很多风险和不确定性。 我们建议用户在不同环境中采用不同的密码设置,这是因为一方面产品环境和测试环境面对的访问用户不同,密码设置相同则意味着产品环境的安全性完全得不到保障;另一方面,DBA登录到不同的数据库需要使用不同的密码,这进一步减低了DBA在错误的环境下执行命令的可能性。

以上内容摘录自盖国强《OracleDBA手记4数据安全警示录》。

近期文章

成就卓越:云和恩墨大讲堂期刊第三期

新年贺礼:云和恩墨大讲堂期刊第二期

删繁就简-云和恩墨的一道面试题解析

用SQL解一道数学题:Gauss和Poincare

新年贺礼:云和恩墨大讲堂期刊发行

2015 Oracle 十大热门文章精选

Oracle 12c ASM 防火防盗新特性揭秘

DBA入门之路:关于日常工作的建议

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2016-03-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沃趣科技

据说,数据库备份的新时代已经来了……

根据《Boston Computing Network》做过的一项调查,全球约有 34% 的公司没有检查他们的备份是否有效 77% 的公司曾发现过备份失效的问题...

4206
来自专栏Golang语言社区

IM即时通讯实现原理

即时通讯(Instant Messenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传...

6868
来自专栏CSDN技术头条

五个小技巧告诉你如何保护MySQL数据仓库

汇总各种来源的数据,可以创建一个中央仓库。通过分析和汇总业务数据报告,数据仓库能够帮助企业做出明智、战略性的决策分析。虽然数据仓库提供了许多便利,但是把这些敏感...

1817
来自专栏FreeBuf

使用USRP探索无线世界 Part 1 | USRP从入门到追踪飞机飞行轨迹

温馨提示:请自觉遵守无线电管理法规,依法设置和使用无线电设备 Author:雪碧0xroot @漏洞盒子安全团队 cn0xroot.github.io 0×00...

2007
来自专栏魏艾斯博客www.vpsss.net

魏艾斯博客搬家到 LOCVPS 稳定性和速度对比

1484
来自专栏知晓程序

ofo 终于有微信小程序了!支付宝,你怎么看?

叮叮叮,随着一条「公众号关联小程序通知」的推送,让很多人兴奋起来,国民小黄车 ofo 终于有小程序了!

1033
来自专栏云计算

什么是Kubernetes?它的首席架构师用了10方式才说明白!

Kubernetes是当今云计算领域最热门的技术之一,大大小小的企业都在谈论这个火爆的开源平台。但是Kubernetes到底是什么? ? KubernetesG...

3607
来自专栏程序人生

从 gitlab 事件中吸取的教训

题注:这是一篇去年的文章,今早看到 gitlab 运维人员愚蠢地 rm -rf, 心有戚戚焉,故而重发这篇文章,供大家参考。 ---- 这两天不是很太平,程序圆...

34710
来自专栏程序员互动联盟

为什么Linux这么受欢迎?

为什么要学习Linux? 为什么学Linux,每个人都有自己的理由: Linux是免费的不用花一分钱,能够节约大笔的成本; Linux是开源的,你可以根据自已的...

3117
来自专栏CSDN技术头条

可用性更高:设计优秀的MySQL和Percona XtraDB集群

高可用性 有没有想过你的应用是否该兼容只读模式呢?这个问题有多重要? MySQL似乎是基于Web产品的最主流数据库解决方案。大多典型的互联网应用负载包括大量的读...

2327

扫码关注云+社区