簡單回顧下過去這一年的工作

lovestanford發表於2014-08-27
        大約1年前下載了Oracle Core Essential Internals for DBAs and Developers這本書的電子文件,瀏覽了書中內容,感覺很深奧,同時聽從了一些前輩的建議,初學者不要去看這些高深的內容,就買了Thomas kyte的那本經典教材,結合E文原版一起作為入門管理的書籍。由於之前工作的主要職責還是基於PL/SQL業務邏輯開發和實現,涉及資料庫管理方面的知識比較少;也就是一年前的時候,換了一份工作,工作側重點就是資料庫管理,剛開始寫了一個觸發器還被mentor責備了,說這不是我們DBA的工作範圍。期間,上班時間都是德國時間,每天下午2點到晚上11點上班,第二天2點之前也有充足的時間,加上工作的內容不是很繁多,空餘時間大部分時間就在學習ORACLE和實驗操作中。時間很快就過去了,這段時間沒有那麼忙了,抽空回顧下過去的一年。

        先說說這一年的工作吧,這邊主要的工作職責就是管理德國客戶的3臺AIX oracle 資料庫伺服器和6臺DB2資料庫,共計60個資料庫例項和對應的資料庫。在客戶機器上做任何變更之前都需要在自己的虛擬機器上做好相關測試,工作用的筆記本上先裝好兩個虛擬機器,一個做ORACLE,一個做DB2,後來DB2相關的任務都交給另一個同事做,我主要負責ORACLE 資料庫的管理和DB2伺服器的一些流程處理。接下來就是申請自己的帳號,熟悉客戶的伺服器環境和資料庫執行狀態。熟悉變更處理流程。做的第一個變更(內部說法---change),就是重啟所有oracle資料庫例項和監聽。看起來很簡單,做起來如果認真對待的話,會出事故的,(聽mentor說,之前一個資深DBA做一樣的change,但是忘記把監聽起來了,結果第二天客戶的投訴就到老闆那裡了,作為一個failed change 處理,這個涉及到team和個人的年底考核)。
      
         然後就是搭建新的環境和機器。每臺aix上都執行1~30個左右的資料庫例項,有幾個比較大的需要遷移到新的伺服器上去。部署的ORACLE 軟體到AIX 6.1版本上,因為這裡的分工比較明細,OS、網路和儲存相關的工作都有其他人員完成。我們這邊將相關引數、使用者和組、許可權、軟體包等要去和相關人員交流下就可。
     
          接著就是部署自動備份指令碼和檔案系統監控,因為這邊的資料庫SLA要去是5*8,S1必須在有個小時內處理完成。客戶機器上有oracle 9i, 10g,3臺AIX 6.1。因為每臺server上都執行5~30不等數量的例項,每天下班之後都需要進行備份。開始按照mentor 提供的DB2備份指令碼,針對oracle 環境進行修改後部署到生產環境中去就可以了。這個看似不難,也有學問可做。比如,有個機器上執行這28個資料庫例項,之前的shell備份指令碼,寫完28個資料庫備份內容之後,上2000多行。後來使用Linux命令和shell for迴圈,簡化指令碼備份,不到200行程式碼就完成了。同樣,對於資料庫和伺服器檔案系統監控,每天執行幾個監控指令碼,檢視檔案系統容量和每個資料庫表空間使用情況,將相關結果傳送到自己的郵箱。因此,每天上班的第一件事就是檢視郵件中是否有警告和備份失敗的提示。
      
          然後就是資料庫升級和補丁,全部升級到oracle 11.2.0.3,資料庫升級前前後後持續了將近兩個月。提出升級方案,和SDM、客戶交流,每天非工作時間(上午8點到下午13點之間)進行一你定數量的資料庫升級,解決升級中遇到的問題;因為都是單例項的資料庫,資料庫最大20G左右,從9i, 10g升級到11G,加上客戶允許的停機時間比較長,所以接本上採用exp/imp 這種方式完成資料升級。當時也考慮過TTS。新的環境和原有的環境是一樣的,所以11g軟體是透過克隆過來的,中間節省了一些時間和省略了圖形介面操作。剛開始升級的時候,沒有考慮AIX系統記憶體和CPU資源問題,結果導致第一次升級後,伺服器資源差不多耗盡,所有資料庫hang住了,change差點被定為failed,做RCA分析。
    
          再就是打補丁,為了符合公司規範,每季度ORACLE公司釋出相關補丁集之後,如果沒特殊原因,必須打補丁。給OPatch打補丁,備份資料庫和,給資料庫打補丁,每次都是小心翼翼的。在這之後,對10個左右的資料庫進行資料庫字符集轉換遷移,之前資料庫基本上採用WES8ISO8859P1這個字符集,後面根據需要客戶的要求,將資料庫字符集轉為AL32UTF8,經過和應用開發人員的除錯,所有應用程式正常顯示和使用。
       
        每個季度的第一個月都要對資料庫進行監控檢查,檢查所有使用者許可權、監聽配置檔案屬性、資料檔案屬性和profile屬性設定等方面。然後就是QVB,資料庫中的每個使用者必須有一個所有者,沒有所有者的使用者全部要刪除禁用。11g資料庫開始都是使用exp/expdp進行全庫備份的,保留3天備份記錄,後面發現如果發生S1情況。一個小時候根本不夠使用資料庫備份進行恢復,而且備份的資料結果太大,佔用很多空間。學習RMAN備份,根據條件對資料庫進行增量備份,這樣恢復會比較快,備份集佔用的空間減少了很多。

         其他方面的工作包括使用者審計結果定期檢查、設定審計策略、使用者密碼策略、根據客戶要去和平時檢查結果,對部分SQL 進行調優、使用SHELL 和SQL進行程式設計等等,客戶的環境是AIX,辦公電腦是Redhat 作業系統,虛擬機器也是Redhat,因此對AIX、LINUX都需要有一定的瞭解。後面還專門看了IBM官方網站上的技術專題,對AIX儲存結構和管理方法進行深度瞭解。

           總的來說,在這一年工作中,收穫還是比較豐富的,對於ORACLE資料庫管理有了一定的認識,可以說是入門了,後續的修行還得自己的努力;工作業務流程熟悉了,和SDM、客戶能順意交流和溝通。除了個人的努力,周圍同事、老闆和mentor 的幫助是必不可少的。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21754115/viewspace-1259218/,如需轉載,請註明出處,否則將追究法律責任。

相關文章