前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DBA生存警示:主备环境误操作案例及防范建议

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

作者头像
数据和云
发布2018-03-05 17:34:22
8770
发布2018-03-05 17:34:22
举报
文章被收录于专栏:数据和云数据和云

编辑手记:对于资深的老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入门之路:关于日常工作的建议

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据和云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档