DBA和開發同事的一些代溝(四) (r7筆記第36天)
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來說也是一件好事,但是這個代溝問題就不是我們能夠控制的了了,所以一起努力把這個問題解決了,大家好才是真的好。