5條DBA最佳實踐指導

2021-04-19 02:26:22 字數 1777 閱讀 4419

就我而言,最佳實踐之所以是最佳實踐必須滿足1)它能夠被證明是有效的,2)它足夠靈活,可以適用於多種環境。下面的5條基本最佳實踐源於我多年使用大大小小的oracle系統的實際經驗總結。

#1: 建立多個oracle homes

我最喜歡的最佳實踐是關於多個oracle homes。下面將介紹這是怎麼回事。當安裝乙個補丁或者乙個補丁集的時候,我反對在現有的oracle home上安裝這些補丁。相反,我建議新建乙個oracle home,然後在這個新的oracle home上安裝這些補丁。

總結傳統的方法如下:

1. 關閉資料庫

2. 給oracle home打補丁

3. 啟動資料庫

4. 假如存在問題

5. 關閉資料庫

6. 回滾補丁

7. 啟動資料庫

第2步和第6步可能會花費三個小時,具體的時間依賴於補丁的數量。而在此期間資料庫是停止的。

在新方法中:

1. 安裝乙個新的oracle home

2. 給新的home打補丁

3. 關閉資料庫

4. 將oracle home指向新的位置

5. 啟動資料庫

6. 如果出現問題

7. 關閉資料庫

8. 將oracle home指向原來的位置

9. 啟動資料庫

資料庫只有在第4步和第8步之間才是停止,這段停機時間最多幾分鐘,不超過一小時。

下面是這種方法的好處:

1. 停機時間顯著降低,只是原有時間的六十分之一。

2. 由於不用回滾補丁,風險顯著降低;你只要回退到老版本。

3. 你可以執行「diff」命令來比較這前後兩個home,看發生了哪些變化。你頁可以發現多個home之間的不同。

4. 你可以將同一臺伺服器上執行的多個資料庫逐個的轉移到新的oracle home上。

5. 使用目錄(inventory),你可以檢視不同oracle home以及它們的補丁版本。

唯一的負面結果是空間消耗——你需要兩個oracle home的空間。但是考慮到乙個典型的oracle home占用大概4g或者更少的空間,這方面的影響還是無關緊要的。

#2:設定db審計跟蹤

在資料庫建立過程中,在初始化引數檔案中加入引數audit_trail = db,可以為db設定audit trail。在設定該引數之後,並不會馬上開始審計,因為一定要對物件發出顯式的audit命令才開始審計。但是只有在這個引數設定為非false值(這個引數的預設值)之後,命令才會生效。這個引數是非動態的,資料庫必須重啟才能改變audit_trail的值。為了避免修改引數的麻煩,通常將該變數設定為db,即使你並不打算審計什麼。這不會造成任何問題,而且你可以在時機成熟的時候開始審計。

#3: 不用使用.log

#4: 預演rman的恢復

在不進行真實的恢復的情況下,預先檢查rman恢復,找出在恢復過程中會用到的所有的備份部分。這將消除在真實的恢復過程中發生缺少備份的情況。

#5: 當客戶端執行在資料庫相同的伺服器上時,為這些客戶端新建oracle 使用者

一條常見的實踐是以資料庫軟體所有者的使用者使用客戶端軟體。但是從版本10.2開始,oracle改變了安全策略,取消了對oracle home的全域性執行許可權。這樣唯一的選擇是讓應用使用者作為dba組的成員,或者改變對oracle home的許可權——兩種方法都讓資料庫非常脆弱。

史上最最佳軟體開發實踐指導

每過一段時間,我都能讀到一些好東西,它是如此的深刻見解,寫的如此的清晰,如此的條理,我必須把它收錄進我的個人 史上最佳 聖物集裡。最近,我新收錄了一篇,非常棒的一篇叫做 best practices for scientific computing 的文章,我希望每個來讀本文的讀者都找個時間讀讀它。...

史上最最佳軟體開發實踐指導

給人寫程式,而不是給計算機。乙個程式,對於閱讀它的人來說,不應該要求讀者一次性的在大腦裡載入過多的背景 相關知識。命名需要一貫 明確 有意義 風格和格式要統一一致 軟體開發中的各種工作都要分割成1小時左右的任務 重複性的工作自動化。讓計算機去做重複性的工作 把最近使用過的命令存到乙個檔案裡,以備復用...

史上最最佳軟體開發實踐指導

英文原文 best best practices ever 每過一段時間,我都能讀到一些好東西,它是如此的深刻見解,寫的如此的清晰,如此的條理,我必須把它收錄進我的個人 史上最佳 聖物集裡。最近,我新收錄了一篇,非常棒的一篇叫做 best practices for scientific compu...