第 10 章:監控和調整數據庫


 

10 章:控和調整數據

返回程列表

目的

本章向管理器行的一些控和調整操作。

本章討論了以下內容:

控數據 斷和解決性能 使用 SQL Tuning Advisor 使用 SQL Access Advisor 使用 Memory Advisor

看屏幕截

將鼠移到圖標上,示所有的屏幕截可以將鼠移到各個圖標上,以只看與該圖標的屏幕截

控數據

返回主列表

幫助控數據。大多數警是在超特定的量度出的通告。可以每一個警界和警告,如果超指示系統處於非期的狀

一部分中,行以下任

建具有指定的表空 表空的空使用率警 置量度 置通 建具有指定的表空和表

返回主列表

首先建包含有一個 20 MB 的數據文件的一個新的表空。將本地管理個表空,並使用自段空管理 (ASSM)。然後個新的表空建一個新的表。個表將把 Enable Row Movement 選項 yes,以允表中的空回收。行以下操作:

Off 1. 單擊數據上的Administration 接。

  1. Off 2. 單擊Tablespaces 接。
  2. Off 3. 單擊Create
  3. Off 4. TBSALERT 表空名稱,然後單擊Add表空一個數據文件。
  4. Off 5. tbsalert.dbf 數據文件名,並20 MB 文件大小。單擊Continue
  5. Off 6. 單擊Thresholds,指定空使用率警告和水平。

單擊Specify Thresholds, by percent used置數據的默使用率 Warning% 60

  1. Off 7. Critical% 68單擊OK
  2. Off 8. 單擊Database 導覽欄,返回Administration 屬性面。
  3. Off 9. 單擊Tables 接。
  4. Off 10. 單擊Create
  5. Off 11. 單擊Continue
  6. 12. Name 域中employees1。指定SYSTEM 模式,TBSALERT 表空單擊 Define Using 下拉列表,選擇SQL。在 Create Table As 域中select * from hr.employees,然後單擊OptionsOff
  7. Off 13. Enable Row Movement 選擇Yes,然後單擊OK,完成表的建。
  8. Off 14. 表已建完成。單擊Database 導覽欄

表空使用率警

返回主列表 在將更新表,觸利用率警行以下操作:

Off 1. SQL*Plus ,然後行以下命令:

sqlplus system/oracle

Off 2. 將以下 SQL 命令拷並粘 SQL*Plus 中,以模EMPLOYEES1 表上的用

begin

for i in 1..1000 loop
insert into employees1
select * from hr.employees;

commit;
end loop;
end;
/

3. Enterprise Manager 窗口。單擊Database 導覽欄,返回到Administration 面,然後單擊Tablespaces 接。Off

Off 4. 注意,TBSALERT 表空使用百分率增加了。

5. 回切到SQL*Plus 窗口,並將以下命令拷並粘 SQL*Plus 中,,以模EMPLOYEES1 表上的更多用Off

delete employees1 where department_id = 50;

begin

for i in 1..500 loop
insert into employees1
select * from hr.employees;

commit;
end loop;
end;
/

Enterprise Manager 窗口。刷新瀏覽器( Linux Mozilla,從菜單欄選擇View,然後選擇

  1. Off 6. Reload)。注意,TBSALERT 表空的空使用百分率增加了。
  2. 7. 回切到SQL*Plus 窗口,並將以下命令拷並粘 SQL*Plus 中,,以模EMPLOYEES1 表上的更多用Off

begin

for i in 1..500 loop
insert into employees1
select * from hr.employees;

commit;
end loop;
end;
/

Off 8. 將以下 SQL 命令拷並粘 SQL*Plus 中,以模EMPLOYEES1 表上的用

delete employees1 where department_id = 30;
commit;

delete employees1 where department_id = 100;
commit;

delete employees1 where department_id = 50;
commit;

delete employees1 where department_id = 80;
commit;

exit

Enterprise Manager 窗口。刷新瀏覽器( Linux Mozilla,從菜單欄選擇View,然後選擇

Off 9. Reload)。注意,TBSALERT 表空的空使用率在已水平 (68%)

等待空使用率警報顯示在 Enterprise Manager 看錶段數據。單擊Database 導覽

  1. Off 10. ,然後單擊Tables 接。
  2. Off 11. Go SYSTEM.EMPLOYEES1 表,Schema 域中system,在Object Name 域中emp單擊
  3. Off 12. 單擊EMPLOYEES1 接。
  4. Off 13. 單擊Segments
  5. 14. 注意EMPLOYEES1 表中浪的百分率。可能能回收表中未使用的空來解決表空使用率警Off

在同一面上,可以Space Usage Trend 指定一個日期範,然後單擊Refresh ,以EMPLOYEES1 表未來的空使用率。因EMPLOYEES1 表上沒有足的活紀錄,所以在空使用率分析中將看不到非常有意的數據。單擊Database 導覽欄,然後單擊Home 標籤

單擊Refresh 幾次,直到看到一個色的x 和數字1 Problem Tablespaces 。向下滾動

  1. Off 15. Alerts 表。
  2. Off 16. 將看到一個Tablespaces Full 單擊Tablespace [TBSALERT] is [70 percent] full 接。

置量度

返回主列表 Oracle 提供了一組預先定的量度,其中一些量度一始就TBSALERT 表空的表空使用率定一個量度。要看所有的量度,請執行以下操作:

  1. Off 1. 單擊Related Links 區域中的Manage Metrics
  2. Off 2. 單擊Edit Thresholds
  3. Off 3. 向下滾動Tablespace Space Used (%),然後選擇這個量度。向上回到窗口部。
  4. Off 4. 單擊Specify Multiple Thresholds
  5. Off 5. TBSALERT 表空,將警告修改70,將修改80。然後單擊OK
  6. Off 6. 修改完成。單擊OK,將數據保存到數據中。
  7. Off 7. 更新成功。單擊路徑式中的Database

置通告

返回主列表 當出需要的事件可以選擇性地提供通告。默地,界狀的警(如 Database DownGeneric Alert Log Error Stats Tablespace Used)都提供通告。行以下操作:

  1. Off 1. 單擊 Database 部的Setup
  2. Off 2. 單擊Notification Methods

Outgoing Mailserver 域中<件服>,在 Identify Sender As 域中dbaalert,在 Sender's

  1. Off 3. Email 域中[email protected],然後單擊Apply
  2. Off 4. 更新成功。單擊部的Preferences
  3. Off 5. 單擊 General 選項 E-mail Addresses Add Another Row
  4. Off 6. [email protected] 件地址,單擊Apply。然後單擊Database

斷和解決性能問題

返回主列表

在出數據性能問題時,需要斷和正。有抱怨性能慢會使注意到問題。其餘的候,可能注意到主上的 Host CPU 中的性能尖峯。在所有情況下,自數據庫診控器 (ADDM) 都將標記這問題,它默 60 行一次自上而下的系分析,並在

Oracle Enterprise Manager 告它問題 ADDM 60 動運行一次,和自工作負載信息 (AWR) 採集的快照同步生。它的出包含了它的每個問題明和建操作。

生成性能問題

利用 ADDM 解決的性能問題 生成性能問題

返回主列表 了演示 ADDM 如何工作,要生成一個性能問題果。在本文中,建一個等待行的會。要行某些如更新和除的操作,會須鎖行。行以下步,生成性能問題果:Off 1. 開終端窗口,行以下命令:

sqlplus hr/hr
create table emp as select * from employees;
delete emp;

Off 2. 再打一個端窗口,並行以下命令,建一個行衝突:

sqlplus hr/hr
delete emp;

  1. Off 3. 單擊 Enterprise Manager 窗口中的Performance
  2. Off 4. 將看到會等待非常高。等待大 10 ,然後向下滾動至窗口底部。
  3. Off 5. 在將建快照來捕性能問題單擊Snapshots
  4. Off 6. 單擊Create建快照。
  5. Off 7. 單擊Yes建人工快照。
  6. Off 8. 正在建快照。
  7. Off 9. 一旦快照建完成,請單擊路徑式中的database ,然後單擊home
  8. Off 10. 在通 Alert 部分的一個警檢測到了一個性能問題

利用 ADDM 解決的性能問題

返回主列表 當遇到性能問題時可以使用 ADDM 來解決它。行以下操作:

  1. Off 1. 單擊Database Time Spent Waiting
  2. Off 2. 注意建的操作是 ADDM 取更多的於系的性能分析。單擊Additional Advice

保從列表中選擇建的快照。注意SQL statements were found waiting for row lock waits 將影響系

  1. Off 3. 86% 的數據庫時單擊列表中的個性能問題果。
  2. Off 4. 看到了解決性能問題需要採取的操作。單擊View Rationale
  3. Off 5. 將看到引起問題的特定 SQL ID單擊Close
  4. Off 6. 要解決性能問題請單擊路徑式中的Database
  5. Off 7. 單擊Performance
  6. Off 8. 向下滾動,然後選擇 Additional Monitoring Links 下的Blocking Sessions
  7. Off 9. 選擇了最高級別 HR,然後單擊Kill Session
  8. Off 10. 單擊Yes止會
  9. Off 11. 話終止。單擊路徑式中的Database ,然後單擊Home
  10. Off 12. 注意警已消失。

使用 SQL Tuning Advisor

返回主列表 數據管理或操作員執行以下任來響性地控並斷數據性能問題 看數據等待 Database Wait 類的 TOP SQL 利用 SQL 調顧問工具調 SQL SQL 句的 SQL 細節 看數據等待 返回列表 將首先啓動幾個工作負載。然後看數據工作負載建一個名稱$HOME/wkdir 的目。下 perflab. tar 文件,並將文件解壓縮$HOME/wkdir 中。行以下步

Off 1. 一個命令行窗口,然後行以下 OS 腳本:

./setup_perflab.sh

注意:個腳本行將花 4

Off 2. 回切到 Enterprise Manager 窗口。選擇Administration 接。

Off 3. 標題爲Workload 的部分中,單擊Automatic Workload Repository 接。

定已爲該數據採集了多少快照。Snapshots 下的數量和最後一次 ADDM 快照採集的應該有至

  1. Off 4. 少三個快照。單擊路徑式中的Database
  2. Off 5. 單擊Performance 接。

Performance 窗口中Sessions: Waiting and Working 示一個表示數據當前工作負載表。

  1. Off 6. (向表填充數據可能要花一分)用 ADDM 快照採集的數據來填充表。表的上是例。每一個目具有不同的色。可以從中快速定佔用最多目是黃色的,即用 I/O單擊User I/O 接。
  2. 7. Active Sessions Waiting: User I/O 表下有餅圖看左餅圖Top Waiting SQL這顯示佔大多數的等待 (53%) 是由一條 SQL 句造成的。看右餅圖Top Waiting Sessions餅圖顯示當前最活的幾個會等待的幾乎佔相同的百分比。Off

Database Wait 類的 TOP SQL

返回列表 如之前的任所示,有一條 SQL 致了大部分的數據等待。在個任中,將深入瞭解根本原因。行以下操作:

Off 1. Active Sessions Waiting: User I/O 面中,單擊面中部的Top SQL

在出詳細面上,Wait Events for Top SQL 表,表按活%排序。可以看到 Top SQL

  1. Off 2. 將其大部分在了 'db file scattered read' 上。單擊具有最高活百分比的 SQL 句的 SQL ID
  2. Off 3. SQL 句的單擊Current Statistics 標籤
  3. Off 4. SQL 句的數據。單擊Execution History 標籤

SQL 句的分析表。 CPU Elapsed Time 示在一段 SQL 句的 CPU

Off 5. 使用率。選擇Seconds Per Execution單擊Go SQL 句的每次行使用的源。

示的表中,可以 CPU 源使用率在增加, SQL 句花也在增加。單擊 Tuning

Off 6. History 標籤

示之前爲這 SQL 句提供的調整建。當前沒有建在準好了使用 SQL Tuning Advisor 調

Off 7. SQL 句。

利用 SQL 調顧問工具調 SQL

返回列表 正如在上一個於響調整的部分中定的那,目 SQL 句需要調整。 SQL 調顧問工具將調行以下操作:

  1. Off 1. 單擊Run SQL Tuning Advisor
  2. Off 2. Schedule Advisor 窗口中,選擇 Scope 下的Comprehensive,作將立即安排。單擊OK
  3. Off 3. SQL Tuning Advisor 建一個任,以分析 SQL 句,任一旦完成,將示一組調整建
  4. Off 4. 單擊View Recommendations
  5. Off 5. 單擊New Explain Plan 看建的修改。
  6. Off 6. 正如所看到的,新的解釋計劃刪除了全部的表描。單擊瀏覽器後退按,返回上一
  7. Off 7. 單擊Implement 調整建
  8. Off 8. 一條面,指示 SQL Profile 成功建。單擊路徑式中的Database

SQL 句的 SQL 細節

返回列表 行了調整建 SQL 句和其細節行以下步

  1. Off 1. Performance
  2. Off 2. 向下滾動Sessions: Waiting and Working 表。等待一分察用 I/O 如何少。

使用 SQL Access Advisor

返回主列表

SQL Access Advisor 提供了程,可以調程來幫助建和體化化和索引。它利用基於的模式的,假定的工作負載,或從實際的工作負載(可能由用提供、來自 Oracle Trace 或來自 SQL 高速存的內容)中作出決策。

可以根據不同的工作負載進過濾,如只使用包含些表的查詢,或在個範中有先權的查詢

利用 SQL 高速取建 看和行建

返回列表

行以下步使用 SQL Access Advisor 境。當 Advisor 體化和索引可能存在,但例的目的,把它除了,以便可以看到 Advisor 的建需要置高速存,以便 SQL Access Advisor 生成建行以下操作:

Off 1. 一個端窗口,然後行以下命令,清理境:

sqlplus system/
DROP MATERIALIZED VIEW all_cust_sales_mv;
DROP MATERIALIZED VIEW costs_mv;
DROP MATERIALIZED VIEW costs_pm_mv;
DROP MATERIALIZED VIEW cust_sales_mv;
DROP MATERIALIZED VIEW some_cust_sales_mv;
DROP MATERIALIZED VIEW cust_id_sales_aggr;
DROP MATERIALIZED VIEW sales_cube_mv;
DROP MATERIALIZED VIEW sales_gby_mv;
DROP MATERIALIZED VIEW CUST_TOTAL_SALES_MV;
DROP MATERIALIZED VIEW CUST_SALES_TIME_MV;

Off 2. 需要建高速存。行下列命令:

alter system flush shared_pool;

grant advisor to sh;

connect sh/sh;

SELECT c.cust_last_name, sum(s.amount_sold) AS dollars,

sum(s.quantity_sold) as quantity

FROM sales s , customers c, products p

WHERE c.cust_id = s.cust_id

AND s.prod_id = p.prod_id

AND c.cust_state_province IN ('Dublin','Galway')

GROUP BY c.cust_last_name;

SELECT c.cust_id, SUM(amount_sold) AS dollar_sales

FROM sales s, customers c WHERE s.cust_id= c.cust_id GROUP BY c.cust_id;

select sum(unit_cost) from costs group by prod_id;

利用 SQL 高速取建

返回列表

將使用剛剛置的 SQL 高速存來取來自 SQL Access Advisor 的建行以下操作:

Off 1. 開瀏覽器,入以下 URL

http://:5500/em

sys/ SYSDBA單擊Login

  1. Off 2. 向下滾動至主底部,然後單擊 Related Links 下的Advisor Central
  2. Off 3. 單擊SQL Access Advisor 接。
  3. Off 4. 中了Current and Recent SQL Activity,然後單擊Show Advanced Options
  4. Off 5. 向下滾動。在 Filter Options 下,選擇Filter workload based on these options選擇Only the top resource consuming SQL statements Only SQL statements executed by the following users。然後在 Users 域中SH,然後單擊Next
  5. Off 6. 選擇Both Indexes and Materialized Views,然後單擊Next
  6. Off 7. 入任OBE Schedule Type 選擇Standard,然後單擊Next
  7. Off 8. 在概要窗口中,單擊Submit

看和行建

返回列表 可以果,如果希望,可以行它行以下操作:

  1. Off 1. 選擇的作,然後單擊 View Result
  2. Off 2. 單擊 Recommendation ID 1看建細節

可以自定象名稱、模式和表空,以行建。向下滾動,並將 Create Materialized View

  1. Off 3. Schema Name 修改SH,然後單擊OK
  2. Off 4. 安排,如果要看將行的 SQL 腳本,可以單擊Show SQL
  3. Off 5. 向下滾動至底部,將看到體化句和作的修改。單擊OK
  4. Off 6. 單擊Schedule Implementation行建
  5. Off 7. Job Name OBEIMPL,然後單擊Submit
  6. Off 8. 行作建完成並且在正在行。單擊Run History 標籤
  7. Off 9. 選擇的作,然後單擊 View
  8. Off 10. 看概要,然後單擊路徑式中的 database
  9. Off 11. 單擊Materialized View
  10. Off 12. Schema 域中SH,然後單擊Go
  11. Off 13. 注意新建的體化在列表中。單擊路徑式中的Database ,然後單擊Tables 接。

使用 Memory Advisor

返回主列表

一部分中,將主管理並將一些與 Oracle 例程內存配置相的任化。通將內存配置自化,有了更多的理影響的企用或商務實際問題Memory Advisor Oracle 數據內部的一個智能家系,它 SGA PGA 件主動確定最優設置。當

Oracle 將根據工作負載的需求自調整各池和高速存的置。 用自共享內容管理 修改 SGA 大小 使用 PGA Advisor 用自共享內存管理 返回列表 行以下操作, SGA 的自共享內存管理:

Off 2. 向下滾動至主底部,然後單擊 Related Links 下的Advisor Central

  1. Off 3. 選擇Memory Advisor
  2. Off 4. Automatic Shared Memory Management 單擊Enable
  3. Off 5. 單擊OK用自共享內存管理。
  4. Off 6. Oracle 在將根據工作負載的需求自調整各池和高速存的置。

修改 SGA 大小

返回列表 於自共享內存管理模式下,要修改 SGA 大小,將需要保最大的 SGA 大小足大。行以下操作:

  1. 1. 向下滾動頁面。將 Maximum SGA Size 修改261 MB,然後單擊Apply。注意:如果接收到一個錯誤,那麼單擊 Refresh Off
  2. Off 2. 單擊Yes修改。
  3. Off 3. 提供主機證書和數據庫證書單擊OK
  4. Off 4. 修改 Max SGA Size 參數,例程必重新啓動單擊Yes數據
  5. Off 5. 數據程將始。單擊Refresh
  6. Off 6. sys/ SYSDBA單擊Login
  7. Off 7. 向下滾動,然後單擊Advisor Central
  8. Off 8. 單擊Memory Advisor
  9. Off 9. Total SGA Size 參數修改260 MB單擊Apply

注意 Max SGA Size 參數自調整與內存粒大小保持一致,雖然原來已把它 261 MB,但 Oracle 器自將其修改 264 MB

Off 10. 一旦接收到了通告指示參數已成功修改,將注意到一些 SGA 件的內存分配已自調整。

使用 PGA Advisor

返回列表 行以下操作,分配與 PGA 的內存:

  1. Off 1. 單擊PGA
  2. Off 2. 單擊Advice……
  3. Off 3. PGA Aggregate Target Advice 圖顯示在高速存中找到數據(以便不需訪問)的率。在本文中,當注意當前的 PGA Aggregate Size 24 MB 左右,所有求的服 88% 以上都從內存中得。這還顯示溢出範 12 MB 左右始。在 12 MB PGA 用高速存的概率大約爲 90% PGA Aggregate Size 指示(根據當前的工作負載和數據中的會數量),在數據所有 PGA 分配的大小不超 24 MB單擊OK
  4. Off 4. 單擊PGA Memory Usage Details
  5. Off 5. 圖顯示內存大小求的使用率情和各 PGA 內存求的行百分率。單擊OK

將鼠移到圖標上,以藏所有的屏幕截

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章