學習目標 啟動和停止Oracle DB和組件 使用Oracle Enterprise Manager 使用SQL*Plus訪問資料庫 修改資料庫初始化參數 描述資料庫啟動階段 描述資料庫關閉選項 查看預警日誌 訪問動態性能視圖 管理框架 Oracle Database 11g發行版2管理框架組件包括 ...
學習目標 啟動和停止Oracle DB和組件 使用Oracle Enterprise Manager 使用SQL*Plus訪問資料庫 修改資料庫初始化參數 描述資料庫啟動階段 描述資料庫關閉選項 查看預警日誌 訪問動態性能視圖 管理框架 Oracle Database 11g發行版2管理框架組件包括: -資料庫實例 -監聽程式 -管理界面(OEM) -Database Control -管理代理(使用Grid control) 啟動和停止Database Control 用於啟動dbconsole進程命令 emctl start dbconsole 用於停止dbconsole進程命令 emctl stop dbconsole 用於查看dbconsole進程狀態的命令 emctl status dbconsole 註意:emctl命令在$ORACLE_HOME/bin目錄下,如果安裝了Oracle Grid Infrastructure和Oracle Database,則會有兩個$ORACLE_HOME/bin目錄並且都有emctl程式。調用emctl程式時,應始終使用OracleDB中的$ORACLE_HOME/bin。 Oracle Enterprise Manager 安裝Oracle DB軟體時,Oracle Universal Installer(OUI)會安裝OEM基於Web的Database Control部件作為管理Oracle DB的主要工具。 URL地址:https://machine_name:port/em 預設埠:1158 如果多個資料庫的情況下要確定埠號,查看portlist.ini文件,在$ORACLE_HOME/install目錄下 登錄URL https://machine_name:port/em 時 資料庫已啟動,則需輸入SYS/SYSMAN或SYSTEM賬戶,選擇具有特殊資料庫管理許可權的normal或sysdab 資料庫已關閉,OEM會顯示Startup/Shutdown and Perform Recovery(啟動/關閉並執行恢復) 註意:如果啟動enterprise manager時出現了問題,需確認監聽程式是否正常 。 OEM_Database(資料庫)主頁 Performance(性能) Availability(可用性) Server(服務) Schema(方案) Data Movement(數據移動) Software and Support(軟體和安裝) 資料庫主頁上可以查看實例的性能和狀態信息: -實例名稱/資料庫版本/Oracle主目錄位置/介質恢覆選項和其它相關的實例數據 -當前實例可用性 -未處理預警 -與會話和SQL相關的性能信息 -主要空間使用情況 -提供更具體詳細信息的細化鏈接(例如 Listener_<host_name>) 其它Oracle工具 SQL*Plus為資料庫操作提供了另一個界面 -執行資料庫管理操作 -通過執行SQL命令在資料庫中查詢/插入/更新或刪除數據 SQL Developer -是一個用於訪問Oracle DB實例的圖形化用戶界面 -支持以SQL和PL/SQL進行開發 -Oracle DB的預設安裝中提供此工具 SQL*Plus工具 -是一個命令行工具 -可以通過交互方式或者在批處理模式下使用 -可以完成的工作: -輸入/編輯/運行/存儲/檢索和保存SQL命令和PL/SQL塊 -格式化/計算/存儲和列印查詢結果 -向最終用戶發送消息或接受來自最終用戶的響應 -執行資料庫管理 $ sqlplus <userid>/<pwd> or /nolog SQL> connect <username> Shell腳本中可以調用SQL*Plus sqlplus <userid>/<pwd> <<EOF select * from table; commit; quit EOF SQL*Plus中調用SQL腳本 sqlplus <userid>/<pwd> @script.sql SQL>@script.sql SQL>@script 初始化參數文件 啟動實例時會讀取初始化參數文件,參數文件有兩種類型。 伺服器參數文件(SPFILE):首選初始化參數文件,它是由資料庫伺服器寫入和讀取的二進位文件,不得手動進行編輯。預設名稱spfile<SID>.ora,啟動時會自動搜索此文件。 文本初始化參數文件(pfile):這類初始化參數文件可由資料庫伺服器讀取,但不由其寫入。必須使用文本編輯器手動設置和更改初始化參數,這些設置是永久的。預設名稱init<SID>.ora,如果啟動時未找到spfile,則自動搜索此文件。 註意:在Linux系統中,Oracle DB會在$ORACLE_HOME/dbs目錄中搜索初始化文件。如果採用了ASM時,SPFILE通常位於ASM磁碟中,這種情況下$ORACLE_HOME/dbs目錄中init<SID>.ora文件中,會標識SPFILE的位置。 初始化參數值的類型 -Boolean布爾類型 -String字元類型 -Integer整型 -參數文件 -保留 -Big Integer 派生參數值 一些初始化參數是派生的,它們的值是通過其它參數計算得到的。如SESSIONS參數的預設值是由PROCESSES參數的的值派生。 與操作系統相關的參數值 一些初始化參數的有效值或值範圍與主機操作系統相關。如DB_FILE_MULTIBLOOK_READ_COUNT參數指定在一次順序掃描期間在一個I/o操作中讀取的最大塊數。 設置參數值 簡化初始化參數 基本初始化參數(30個) 高級初始化參數(大約314個) -確定全局資料庫名稱:DB_NAME和DB_DOMAIN -指定快速恢復區和大小:DB_RECOVER_FILE_DEST和DB_RECOVER_FILE_SIZE -指定所有SGA組件的總大小:SGA_TARGET -指定UNDO表空間:UNDO_TABELSPACE -COMPATIBLE資料庫版本初始化參數,不可逆相容。 -指定一個或多個控制文件:CONTROL_FILES -資料庫最大文件數:DB_FILES(值範圍 1~8) -資料庫用戶進程最大連接數:PROCESSES(6~N 預設值100) -資料庫標準塊大小:DB_BLOCK_SIZE(2k,4k,8k,16k,32k 預設值8k) -標準塊緩衝區高速緩存大小:DB_CACHE_SIZE(至少16MB,4MB*CPU_COUNT或48MB中最大值) 初始化參數完整列表《Oracle Database Reference》 SGA_TARGET組件初始化參數 -緩存區高速緩存(DB_CACHE_SIZE) -共用池(SHARED_POOL_SIZE) -大型池(LARGE_POOL_SIZE) -JAVA池(JAVA_POOL_SIZE) -流池(STRAEMS_POOL_SIZE) 以下參數不受ASMM的影響 -日誌緩存區(LOG_BUFFER) -其他緩衝區高速緩存(keep和recycle)和其它塊大小 -固定SGA和其它內部分配 -PGA_AGGREGATE_TARGET參數:實例所有伺服器進程的程式全局區(PGA)記憶體量,預設值是10M或SGA大小的20%(取兩者中較大的值) -UNDO_MANAGEMENT參數:AUTO或MANUAL 使用SQL*Plus查看參數 SQL>select name,value from v$parameter; SQL>show parameter shared_pool_size 參數相關視圖 V$SPPARAMETER:isspecified值為false表示未使用此參數 V$PARAMETER2 V$SYSTEM_PARAMETER V$SYSTEM_PARAMETER2 廢棄、老式的參數視圖:v$obsolete_parameter 隱含參數視圖:X$KSPPI、X$KSPPCV、X$KSPSV 更改初始化參數值 靜態參數: -只能在參數文件中更改 -必須重啟實例才能生效 -總共約110個參數 動態參數: -可以在資料庫聯機時更改 -可以在以下級別更改 -會話級別 -系統級別 -在會話持續期間有效或有效性取決於scope設置 -使用alter session和alter system命令進行更改 -總共約234個參數 SCOPE=SPFILE:更改僅在伺服器參數文件中,永久保持有效。 SCOPE=MEMORY:更改僅應用到記憶體中,立即生效,但不會永久保持。 SCOPE=BOTH:更改會應用到伺服器參數文件和記憶體中。立即生效並且永久保持。 某些動態參數,還可以指定DEFERRED關鍵字 backup_tape_io_slaves recyclebin audit_file_dest object_cache_optimal_size object_cache_max_size_percent sort_area_size sort_area_retained_size olap_page_pool_size 啟動Oracle DB實例 NOMOUNT,啟動實例過程執行以下任務 -搜索$ORACLE_HOME/dbs中具有特定名稱的文件 -搜索spfile<SID>.ora -如果未找到spfile<SID>.ora,則搜索spfile.ora -如果未找到spfile.ora,則搜索init<SID>.ora 分配SGA 啟動後臺進程 打開alert_<SID>.log文件和跟蹤文件 MOUNT,資料庫裝載過程執行以下任務 -將資料庫與之前啟動的實例關聯 -定位並打開參數文件中指定的所有控制文件 -通過讀取控制文件來獲取數據文件和聯機重做日誌文件的名稱和狀態(但是,此時不會執行檢查來驗證是否存在數據問ianhe聯機重做日誌文件) 在裝載過程可以做特定的維護操作 -重命名數據文件(打開資料庫時可重命名離線表空間的數據文件) -啟動和禁用聯機重做日誌文件歸檔 -執行完整的資料庫恢復 OPEN,打開資料庫 -打開數據文件 -打開聯機重做日誌文件 最後這個階段,Oracle伺服器會驗證是否可以打開所有數據文件和聯機重做日誌文件,還會檢查資料庫的一致性。如有必要,系統監控(SMON) 後臺進程將啟動實例恢復。 SQL>startup SQL>startup nomount SQL>alter database mount; SQL>alter database open; $srvctl start database -d orcl -o mount 關閉Oracle DB實例 -ABORT:立即關閉資料庫,下次啟動之前進行恢復 -IMMEDIATE(常用選項):回滾未提交的事物處理,一致性關閉資料庫。 -TRANSACTIONAL:允許現有事務完成,但不會接受新的事務處理。 -NORMAL:等待所有會話斷開 SHUTDOWN NORMAL -不可以建立新連接 -Oracle伺服器在完成關閉之前先等待所有用戶斷開連接 -重做緩衝區的數據被寫入磁碟 -後臺進程終止,從記憶體中刪除SGA -Oracle伺服器在關閉實例之前關閉並卸載資料庫 -下一次啟動不需要進行實例恢復 SHUTDOWN TRANSACTIONAL -任何客戶端都不能在這個特定實例上啟動新事物處理 -會在客戶端結束事務後斷開該客戶端 -完成所有事務處理後立即執行關閉 -下一次啟動不需要進行實例恢復 SHUTDOWN IMMEDIATE -Oracle DB正在處理的SQL執行回退。 -Oracle 伺服器不會等待當前連接到資料庫的用戶斷開連接。 -Oracle 伺服器會回退活動的事務處理,並會斷開所有連接用戶。 -Oracle 伺服器在關閉實例之前卸載資料庫。 -下一次啟動不需要進行實例恢復 。 SHUTDOWN ABORT -Oracle DB正在處理的當前SQL語句會立即終止。 -Oracle 伺服器不等待當前連接到資料庫的用戶斷開連接。 -重做緩衝區的數據未寫入磁碟。 -不回退未提交的事務處理。 -實例終止,但不關閉文件。 -資料庫未關閉或未卸載 -下一次啟動時需要進行實例恢復,實例恢復時自動進行的。 SQL>shutdown SQL>shutdown transactional SQL>shutdown immediate SQL>shutdown normal SQL>shutdown abort $srvctl stop database -d orcl -o abort 查看預警日誌 每個資料庫都有一個alert_<sid>.log文件。預設存儲在$ORACLE_BASE/dig/rdbms/<db_name>/<SID>/trace中 資料庫預警日誌文件是按時間順序列出消息的日誌文件 -啟動時使用的任何非預設初始化參數 -已發生的所有內部錯誤(ORA-600)塊損壞(ORA-1578)和死鎖(ORA-60) -管理操作,SQL語句CREATE /ALTER/DROP DATABASE和TABLESPACE STARTUP/SHUTDOWN/ARCHIVE LOG/RECOVER -與共用伺服器和分派程式進程的功能相關的多個消息和錯誤 -自動刷新實體化視圖發生的錯誤 通過SQL*Plus確定預警日誌文件的位置 查詢v$DIAG_INFO視圖 使用跟蹤文件 每個伺服器和後臺進程都會向關聯的跟蹤文件寫入信息 錯誤信息寫入相應的跟蹤文件中 自動診斷資料檔案庫(ADR) -包含整個系統的跟蹤和事件記錄信息的中央資料檔案庫 -存儲資料庫診斷數據 -跟蹤 -預警日誌 -健康狀態監控報告 ADR根目錄又稱為ADR基目錄,其位置由DIAGNOSTIC_DEST初始化參數設置 -如果設置了ORACLE_BASE環境變數,DIAGNOSTIC_DEST則使用ORACLE_BASE目錄 -如果沒設置ORACLE_BASE環境變數,則使用$ORACLE_HOME/log 動態性能視圖 -會話 -文件狀態 -作業和任務的進度 -鎖 -備份狀態 -記憶體使用率和記憶體分配 -系統參數和會話參數 -SQL執行 -統計數據和度量 註:DICT和DICT_COLUMNS視圖包含這些動態性能視圖名稱。 動態性能視圖註意事項 -這些視圖由SYS用戶所有 -不同場合可使用的視圖也不同 -實例已啟動 -資料庫已裝載 -資料庫已打開 -可以通過查詢v$fixed_table查看所有視圖名稱 -這些視圖通常稱為“v$視圖” -因為其數據是動態的,所以在這些視圖上不能保證讀取一致性 數據字典 -由Oracle DB伺服器使用,可用於查找關於用戶/對象/約束和存儲的信息 -對象結構或定義修改時,Oracle DB將做出相應的維護 -可供任意用戶使用以查詢關於資料庫的信息 -由SYS用戶擁有 -不得使用SQL直接進行修改