AWR (Automatic Workload Repository) și ASH (Active Session History) reprezinta un instrument esențial în arsenalul meu de tuning de performanță, împreună cu fișierele de log / profile, Oracle Enterprise Manager și o suită de scripturi adunate de-a lungul timpului. Consider cred că orice DBA ar trebui să înțeleagă cum poate îndeplini toate sarcinile din SQLPlus. Fiind capabil de a aborda problemele fără aceste „daruri de la zei DBA” este esențial, de asemenea, dar nu întotdeauna acestea sunt disponibile.
AWR adună periodic statistici despre activitatea sistemului și a datelor de volumul de muncă, acesta se uită periodic la performanțele sistemului (în mod implicit la fiecare 60 de minute) și stochează informațiile găsite. Informațiile sunt stocate în tablespace-ul SYSAUX. Această informație este baza pentru toate deciziile de auto-management.
Repository-ul AWR este o sursă de informații pentru multe caracteristici Oracle, inclusiv:
- Automatic Database Diagnostic Monitor
- SQL Tuning Advisor
- Undo Advisor
- Segment Advisor
Snapshots
Implicit snapshots-urile datelor relevante sunt luate în fiecare oră și păstrate timp de 7 zile. Valorile implicite pentru aceste setări pot fi modificate prin procedura de mai jos:
BEGIN
DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings(
retention => 43200, -- Minute (= 30 zile).
interval => 30); -- Minute.
END;
Manual pot fi create sau șterse cu următoarea procedură:
EXEC DBMS_WORKLOAD_REPOSITORY.create_snapshot;
BEGIN
DBMS_WORKLOAD_REPOSITORY.drop_snapshot_range (
low_snap_id => 22,
high_snap_id => 32);
END;
Pentru a afișa istoricul snapshoturilor generate se interoghează view-ul DBA_HIST_SNAPSHOT
Generarea raportului AWR
Generarea raportului AWR din SQLPlus este o sarcina destul de ușoara, nu veți avea nevoie decât sa fiți conectați la baza de date și de următoarele informații:
- Tipul de raport pe care îl preferați, text sau HTML.
- Câte zile de snapshots ID-uri doriți să vizualizați?
- ID primului snapshots
- ID ultimului snapshots
- Numele raportului cu care va fi salvat.
Raportul va rula și se va genera în directorul în care vă aflați.
SQL> conn / as sysdba
Connected.
SQL> @?/rdbms/admin/awrrpt.sql
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Name Inst Num Instance
----------- ------------ -------- ------------
283713835 orcl 1 orcl
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
Enter value for report_type: html
Type Specified: html
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
------------ -------- ------------ ------------ ------------
* 283713835 1 orcl orcl myhost
Using 283713835 for database Id
Using 1 for instance number
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing <return> without
specifying a number lists all completed snapshots.
Enter value for num_days: 1
Listing the last day's Completed Snapshots
Snap
Instance DB Name Snap Id Snap Started Level
------------ ------------ --------- ------------------ -----
orcl orcl 273 06 Feb 2013 00:00 1
274 06 Feb 2013 01:00 1
275 06 Feb 2013 02:00 1
276 06 Feb 2013 03:00 1
277 06 Feb 2013 04:00 1
278 06 Feb 2013 05:00 1
279 06 Feb 2013 06:00 1
280 06 Feb 2013 07:00 1
281 06 Feb 2013 08:00 1
282 06 Feb 2013 09:00 1
283 06 Feb 2013 10:00 1
284 06 Feb 2013 10:45 1
285 06 Feb 2013 12:00 1
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 284
Begin Snapshot Id specified: 284
Enter value for end_snap: 285
End Snapshot Id specified: 285
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrrpt_1_284_285.html. To use this name,
press <return> to continue, otherwise enter an alternative.
Enter value for report_name: awrrpt_1_284_285.html
Using the report name awrrpt_1_284_285.html