DBA 知識點歸納(一)

 1.DBA的職責:
  基本職責:(1)安裝新軟件(2)和系統管理員一起配置硬件和軟件(3)安全管理(4)備份和恢復(5)日常預定的維護(6)發現並解決問題(7)故障恢復
  額外職責:(1)數據分析(2)數據庫設計(3)數據建模和優化(4)幫助開發人員進行SQL和存儲過程開發(5)參與制定企業標準和命名規則(6)環境文檔(7)容量規劃

2.安全驗證和口令管理:
    建立數據庫的時候,將自動建立sys(權限最大)和system(權限僅次於sys)兩個DBA用戶
   (1)sys:數據庫數據字典的所有基表和視圖都保持在此模式中,並且只能由Oracle維護,任何用戶不可修改它們,大多數數據庫用戶不能使用sys賬戶連接數據庫。  
   (2)system:不建議在此模式中建立個別用戶表
   兩種身份驗證方式:
   (1)操作系統驗證:NTS  不需要輸入用戶名和口令例:conn  / as sysdba
   (2)數據庫驗證(口令文件):NONE 必須輸入用戶名和口令例 conn  system/oracle as sysdba;
   口令文件:  //前提在身份驗證爲NONE的情況下,注意與下面提到的NONE的區別
   (1)創建口令文件:orapwd file=zmb.ora password=zmb entries=20;
   (2)設置初始化參數:REMOTE_LOGIN_PASSWORDFILE=(NONE或者EXCLUSIVE或者SHARED)
       --|NONE:該設置使口令文件好像不存在一樣
       --|EXCLUSIVE:該設置使口令文件只能被一個數據庫使用
       --|SHARED:該設置使口令文件能被多個數據庫使用
   (3)在口令文件中添加用戶:只要授權用戶爲SYSDBA角色即可:grant sysdba to zmb;
   (4)刪除口令文件中的用戶:revoke sysdba from zmb;
   (5)查詢口令文件的用戶:select * from v$pwfile_users
   (6)刪除口令文件:設置參數REMOTE_LOGIN_PASSWORDFILE=NONE,並刪掉口令文件
   (7)如何保證口令文件生效:設置身份驗證方式爲:NONE
   (8)在數據庫啓動後修改的該參數文件是無效的,需要重啓數據庫纔可

3.數據庫的啓動的過程瞭解
   具體的數據庫啓動與關閉在另外文件詳細介紹,這裏做些更主要的筆記:
   (1)nomount:此狀態只啓動實例(SGA+後臺進程),只需要init.ora文件。用途=》用於數據庫控制文件全部損壞,需新建數據庫控制文件或創建一個新的數據庫。
   (2)mount:此狀態掛載了數據庫,但並未打開。用途=》用於修改數據庫的運行方式或進行數據庫的修復,常在數據庫維護中使用,可執行數據庫日誌歸檔,數據庫恢復,重命名數據文件等;
   (3)restrict:數據庫以受限的方式打開,只有具有restrict session權限用戶可以打開,常用來對數據庫進行維護,如數據的導入/導出時,不希望用戶連接
4.數據庫的關閉類型
   (1)shutdown normal:保護所有的用戶
   (2)shutdown immediate:最常用..事物活動的被停止,未提交的被回滾,斷開所有連接用戶
   (3)shutdown transactional:保證事物完成後在關閉數據庫
   (4)shutdown about:前面幾種關閉不行後、需要立即關閉、啓動實例遇到問題時,則採取此方法,

5.初始化參數文件
   (1)靜態參數:可以被記事本打開,修改後需要關閉和重啓數據庫才能生效
   (2)動態參數:即二進制文件,不可手工修改,通過命令後,直接生效
   (3)動態參數的修改
       --|Alter session set parameter_name=value 修改當前會話制定的參數,生命週期(會話結束後,就無效了)
       --|Alter system set parameter_name=value 在下一次參數修改之前都有效
       --|Alter system set parameter_name=value deferred 將來連接到數據庫的會話再修改該值,在下一次參數修改之前都有效
   (4)修改的示例:
       --|Alter session set nls_language=‘simplefiled chiniese’ //實現中英文字符轉換
       --|Alter system set sga_max_size=1000M scope=spfile  //調整SGA_MAX_SIZE的大小
       --|Alter system set db_cache_advice=off //將內存緩衝區顧問工具關閉
       --|Alter system set mts_servers=5   // 設置服務器進程數爲5
       --|Alter system kill session '3,5'  // 終止SID爲3,序號爲5的會話
   (5)查看初始化參數
       --|show parameters
       --|show parameters parameter_name

6.oracle的SGA結構
   (1)共享池:當一條SQL語句提交時,服務器首先查找庫緩存,查看相同語句是否提交過,涉及到硬解析和軟解析內容
       --|庫緩存區: 共享SQL區 和 PL/SQL區
       --|數據字典緩存區:一組表和視圖,保存數據的邏輯結構和物理結構(如用戶信息、表完整性、列名和數據類型等,爲了分析SQL語句,經常要訪問數據字典)
   (2)數據庫高速緩存區:保存頻繁讀取的數據,由若干個緩存器組成,每個緩存器大小與數據庫塊大小相匹配,db_block_buffers設定有關。有兩張列表:
       --|髒列表(Dirty List):存放已修改但爲被寫入磁盤的數據,當達到一定的標準後會自動寫入磁盤。
       --|最近最少使用列表(LRU):當oracle服務器需要更多空間來讀入一個數據塊時,它會去訪問LRU列表,確定可以清出哪些塊
   (3)重做日誌緩存區:用於保存對數據庫所做的全部修改信息。大小由LOG_BUFFER決定,大值減少日誌文件的I/O
  
7.oralce的12個後臺進程
   (1)數據庫書寫進程(DBWn):`把修改的數據塊從內存中寫到數據文件中,滿足一定的標準後從髒列表中成批寫入。
   (2)日誌書寫進程(LGWR):將重做日誌記錄寫入聯機日誌文件中。
   (3)系統監視進程(SMON):崩潰恢復、臨時段的清除、合併自由空間
   (4)進程監視進程(PMON):在用戶進程出現故障時執行恢復
   (5)檢查點進程(CKPT):減少LGWR的工作量
   (6)歸檔進程(ARCH):將已寫滿的聯機日誌文件複製到歸檔日誌文件中
   (7)恢復進程(RECO):用於分佈式數據庫配置的後臺進程,它用於自動解決分佈式事務中的故障
   (8)鎖進程(LCKn):
   (9)作業隊列進程(SNPn):
   (10)隊列監控進程(QMNn):
   (11)調度程序進程(Dnnn):
   (12)共享服務器進程(Snnn):
8.實例與數據庫的關係
   (1)實例:用來訪問數據庫文件集的存儲結構(SGA)及後臺進程的集合。
   (2)數據庫:數據文件的集合,這些文件用來存儲和管理相關數據。一個數據庫可被多個實例訪問(涉及並行服務器)
9.一條SQ(1)語法分析
    (2)權限與對象檢查
    (3)在共享池中檢查是否有完全相同的之前完全解析好的—如果存在,直接跳過4和5,運行Sql(此時算soft parse)
    (4)選擇執行計劃
    (5)產生執行計L語的執行過程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章