DBA和开发都是两个可爱的团队,如果合作起来,那战斗力可是杠杠的。如果合作不愉快,那就是一件简单至极的事情都能扯皮几天几夜,而且还解决不了。
今天出公司的时候碰见一个开发同事,因为最近和开发同事打交道太多了,我都分不清到底他到底是哪个team的,然后就迷迷糊糊搭上了话,然后简单问了几句话,发现我潜意识里认错人了。不过最近碰到的有些开发同事都还比较配合。值得赞扬,但是还是有一些代沟的。
案例1:
偶尔会接到开发同事的紧急求助
开发同事 [10:46]:
建荣 10月20号xxxx给你下过工单开通数据库访问权限 但是今天我们测试还没有开通
开发同事 [10:51]:
通了 通了
杨建荣 [10:52]:
哈哈。好吧
这从10:46到10:51的时间里,我都在干嘛,都在查历史记录,首先得找到10月20号的工作记录来,等我找到,我发现已经处理了。然后接着就看到开发的同事说已经好了。在估计玩我呢。:)
案例2:
这个故事是我模拟出来的,但是确实碰到过这种类似的事情
开发同事:
帮我执行一个脚本吧,在10.100.10.20:1525 test库上
脚本是delete from xxxx where xxxx
杨建荣:
请下工单,然后我来操作。
开发同事:
好的。
杨建荣:
已执行。
开发同事:
在10.100.10.120:1525 test库上的脚本执行了吗?
杨建荣:
你不是说10.20吗,怎么又是10.120了?
开发同事:
不小心打错了。
杨建荣:
恩,我也没执行,没有工单,我不会先操作的。
所以我基本秉承的理念就是no 工单,no work.不是说开多少工单能给我发多少工资,是能够标注这一个变更,不是拍拍脑袋就完成的,有些关键操作还是要走审批流程的。
案例3:
在地铁上开发同事打电话给我,然后说有一个紧急问题需要修复一下。这种情况,我一般都会出手相救,但是忙完了之后发现问题也没那么紧急啊。因为我让他们发邮件给我,我在那等了一会了,邮件还没过来,最后总算解决了,也是皆大欢喜。
然后过了几天,我刚要带着疲惫的身子下班回家,开发的同事说,今天有一个业务要上线,需要我来配合。我就快要到发飙的临界点了,这种事情怎么不提前告诉我,其实提前告诉我,我也是一百个不愿意。然后开发同事一通解释,其实我也可以理解,大家都干活都不容易,这是有一种习惯不太好。就是等过了一个钟头,过了几个饭点了,还是没有发现任何问题,我说我先回家吧,如果有问题,我在路上再临时处理。但是他们似乎认为这个不太好,万一出现了问题处理不及时,恩,我又不会跑到天涯海角去。
要说问题紧急吧,以前碰到一个问题,开发风风火火打电话给我,就是我不处理他们什么都干不了的节奏。说有一个进程处理很慢,他们希望我帮忙kill掉这个进程。
然后当时我还在挤地铁的节奏中,中途下站连接热点,结果网速又不好,就硬是磨到了家里,一到家就打电话询问,结果他们说没有问题了,不需要kill session了。
案例4:
最近一个开发同事让我帮忙审核一个脚本。
语法类似 delete from test where rdate>date'2015-11-01';
这种用法其实还是蛮少的,自己之前还真没这么用过,所以猛一看就是语法错误,但是自己尝试了一下,果然可用。
SQL> create table test1 as select date'2015-11-01' rdate from dual;
Table created.
SQL> desc test1
Name Null? Type
----------------------------------------- -------- ----------------------------
RDATE DATE
SQL> select * from test1;
RDATE
-------------------
2015-11-01 00:00:00
所以DBA也可以从开发同事那儿学到不少的新东西来,互相补充成长。
案例5:
作为DBA可能要面对开发的各种技术问题。有时候他们一个看似简单的问题,我们就需要严谨的验证一番。
hi
建荣 咨询个问题
oracle 导入ctl文件的时候 如果有一列出现了 双引号 怎么处理啊
开发同事 17:16
类似于这样子
"錵祭xxxx╯
这个前面有个双引号
杨建荣 17:20
目前是以逗号分隔的。
玩家名对我们是很大的挑战,又是日语,又是特殊字符的。:)
开发同事 17:22
恩恩 我刚才说的这个不是符号的问题 是我删错了一个关键字
其实这个时候才是完全考验我们脚本的全面性的时候了。可以简单做个测试,快速确认。
创建一个测试表,然后创建一个控制文件a.ctl来。
create table test(name1 varchar2(30),name2 varchar2(30));
控制文件a.ctl如下:
load data
infile *
append into table xxxx.test
fields terminated by ","
trailing nullcols
(name1,name2)
Begindata
"錵祭xxx╯,"錵祭xxx╯2
sqlldr xxxx/xxxx control=a.ctl
其实这个时候对于DBA来说也是一件好事,但是这个代沟问题就不是我们能够控制的了了,所以一起努力把这个问题解决了,大家好才是真的好。