eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 配置Apache2支持FastCGI 升级到MT3.34 | Blog首页 | 终极恢复孰弱孰强-DUL vs AUL »

DBA警世录:有些习惯DBA需要养成

这几天,在帮助一个朋友进行数据恢复。

造成故障的原因很简单,因为维护升级时错误的连接到生产主机,结果导致生产库故障,数据文件被删除并部分覆盖。

因为这个案例,我想说一下作为一个DBA应该养成的一些基本习惯。
以前曾经写过一篇What Kind Of DBA we need-我们需要什么样的DBA?

今天想说的是一些在工作中应该养成的习惯或者说基本守则:
1.经常使用hostname命令
在Linux/Unix上,我们使用ssh或telnet等通过多次跳转,很容易变更了连接主机,如果不经过确认就可能在不正确的主机上执行了错误的操作。
通过hostname命令可以确认我们连接到的主机,避免发生不应该的误操作。在执行中要操作之前一定要通过hostname命令确认连接主机,这是DBA或者系统管理员应该养成的习惯:

[oracle@jumper oracle]$ hostname
jumper.hurray.com.cn

2.使用pwd确认路径
经常有朋友在错误的路径下错误的执行了"rm -rf *"等命令,这类错误的发生率居然也是很高的。
所以作为一个DBA,经常性的执行pwd命令来确认自己的工作路径:

[oracle@jumper oracle]$ pwd
/opt/oracle

3.确认instance_name等数据库中要信息
在执行truncate/drop等操作之前,应该确认连接到了哪个数据库,从v$database或v$instance等视图中可以获得这些信息(可能需要授权)

SQL> select instance_name,host_name from v$instance;

INSTANCE_NAME HOST_NAME
---------------- ----------------------------------------------------------------
eygle jumper.hurray.com.cn

4.通过id命令确认用户信息
要经常通过id命令确认用户信息,以免切换用户而导致不自觉的异常操作。

[gqgai@jumper gqgai]$ id
uid=2003(gqgai) gid=101(dba) groups=101(dba)

我见到过的案例,用户切换为root,误操作删除过整个操作系统,导致了严重的故障。

通过一些良好习惯的养成,可以使得我们少犯错误。
所以,有一些习惯是需要养成的。

以前的DBA四大守则也应该引起诸位初学DBA的朋友注意:
http://www.eygle.com/archives/2006/03/the_four_rule_for_dba.html


-The End-


历史上的今天...
    >> 2006-02-03文章:
           DBA生存守则之三

By eygle on 2007-02-03 14:44 | Comments (14) | Beginner | 1343 |

14 Comments

SQL prompt设置好了也挺管用的

打开窗口太多了

有些terminal software可以设置字体和颜色的;对prod和test配置不同的字体颜色;完全可以避免由于头晕眼花登陆错误的问题。

sql promt能够避免一些问题,但是对于不通过sql*plus的操作就无能为力的。加上os的prompt就好一些。

terminal的颜色对于本地或直接连接比较有效,对于多次跳转的操作可能就不太管用。

哈哈,那看来我算是比较幸运了,上百台server,去年扩容N次,数据库迁移了无数次,居然没一次出现问题,唯一让我感觉不爽的是,白发多了不少

Tomas是超级强人:)

不过犯错误的大都是年轻人,年轻的时候谁没犯过错误呢?

第一次留言,呵呵。
我觉得主机PS1,数据库prompt会安全很多。

欢迎:)

是的,主机+DB prompt会比较好一点!

做事不慌, 有条理, 能在较强的压力下保持镇静, 是很重要的, 如果时间允许, 不要做得很快.

我觉得id命令也应该加上,确认自己是哪个用户

是的,id命令应该常使用的。

我们就是采用主机PS1,至于数据库prompt,因为一个主机只有一个数据库,所以关系还不大。

如果有多台主机,虽然每个主机只有一个instance,怎么根据提示符确认你连的是那个主机,那个数据库?
一个环境至少要有2台数据库吧,一个生产用,一个测试用

不仅仅是dba需要记住的习惯,是在生产机上作操作的任何人都需要记住的!

我养成一个习惯,接手一台服务器首先配置用户环境
export PS1='['`hostname`':$LOGIN:$PWD]$'
alias rm="rm -i"
........
连接数据库后的第一个操作就是
select instance_name from v$insatnce;
不过还没有配置DB prompt,学习了


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com