AWR ist die Abkürzung für Automatic Workload Repository, was auf Chinesisch Automatic Workload Data Archive heißt. Die Verwaltung von AWR dient hauptsächlich der Snapshot- und Baseline-Verwaltung. Legen Sie beispielsweise das Snapshot-Intervall fest, löschen Sie Snapshots und legen Sie die Snapshot-Aufbewahrungszeit fest. Bei Baselines handelt es sich um das Erstellen, Löschen, automatische Erstellen usw. von Baselines. Dieser Artikel beschreibt hauptsächlich den Inhalt dieser beiden Teile. In diesem Artikel werden Ihnen hauptsächlich die relevanten Informationen zur Verwaltung und Wartung von Oracle AWR (Automatic Workload Data Archive) anhand von Beispielcodes vorgestellt Lass es uns mit dem Editor unten lernen.
1. Snapshot-Verwaltung
Standardmäßig generiert die Oracle-Datenbank jede Stunde einen Snapshot und speichert 8 Tage lang statistische Informationen in der Workload-Bibliothek. Bei Bedarf können Sie das Programm dbms_workload_repository verwenden, um Snapshots usw. manuell zu erstellen, zu löschen oder zu ändern. Snapshots können sowohl mit OEM als auch mit dem dbms_workload_repository-Paket verwaltet werden.
1. Erstellen Sie manuell einen Snapshot
Verwenden Sie den folgenden Prozess, um einen Snapshot manuell zu erstellen. Nachdem die Erstellung abgeschlossen ist, können Sie alle Snapshot-bezogenen Informationen im Datenwörterbuch DBA_HIST_SNAPSHOT anzeigen.
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); END; / SELECT snap_id, dbid, begin_interval_time, end_interval_time FROM dba_hist_snapshot ORDER BY end_interval_time DESC; SNAP_ID DBID BEGIN_INTERVAL_TIME END_INTERVAL_TIME ---------- ---------- ---------------------------- -------------------------- 164 41924548 14-APR-17 09.38.19.467 AM 14-APR-17 10.51.21.886 AM 163 41924548 14-APR-17 09.00.10.470 AM 14-APR-17 09.38.19.467 AM 162 41924548 14-APR-17 08.00.07.242 AM 14-APR-17 09.00.10.470 AM 161 41924548 14-APR-17 07.00.04.120 AM 14-APR-17 08.00.07.242 AM
2. Snapshots löschen
Der folgende Vorgang löscht Snapshots mit snap_id von 162 bis 164. Wenn 41924548 nicht angegeben ist, wird die aktuelle Standarddatenbank verwendet
BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 162, high_snap_id => 164, dbid => 41924548); END; /
3 Ändern Sie das Snapshot-Aufbewahrungsintervall
--查看当前的保留策略,如下,为缺省值,采集间隔为1小时,保留8天 SQL> select * from dba_hist_wr_control; DBID SNAP_INTERVAL RETENTION TOPNSQL ---------- -------------------- ------------------ ---------- 41924548 +00000 01:00:00.0 +00008 00:00:00.0 DEFAULT --下面将其修改为保留5天,采集间隔为30分钟,topnsql为50条 BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 10*24*60, interval => 30, topnsql => 50, dbid => 41924548); END; / --查看修改后的结果 SQL> select * from dba_hist_wr_control; DBID SNAP_INTERVAL RETENTION TOPNSQL ---------- -------------------- ------------------ ---------- 41924548 +00000 00:30:00.0 +00010 00:00:00.0 50
2. Baseline-Management
AWR-Baselines können manuell oder automatisch erstellt und gelöscht werden. Für die automatische Baseline-Erstellung müssen zunächst Baseline-Beispiele erstellt werden, um eine automatische Baseline-Erstellung zu erreichen. Die Hauptbeschreibung lautet wie folgt.
1. Erstellen Sie eine Baseline
Die Erstellung der Baseline basiert auf Snapshots, daher sollte vor der Erstellung die Snap_ID des erforderlichen Zeitbereichs abgerufen werden, die durch Abfragen des Datenwörterbuchs DBA_HIST_SNAPSHOT abgerufen werden kann , und nachdem die Baseline-Erstellung abgeschlossen ist, können Baseline-bezogene Informationen aus dem Datenwörterbuch DBA_HIST_BASELINE abgefragt werden.
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id => 160, end_snap_id => 161, baseline_name => 'peak_baseline', dbid => 41924548, expiration => 10); END; / SQL> SELECT baseline_id, 2 baseline_name, 3 baseline_type, 4 expiration, 5 creation_time 6 FROM dba_hist_baseline; BASELINE_ID BASELINE_NAME BASELINE_TYPE EXPIRATION CREATION_ ----------- ----------------------- ------------- ---------- --------- 1 peak_baseline STATIC 10 14-APR-17 0 SYSTEM_MOVING_WINDOW MOVING_WINDOW 07-APR-17 --基于特定时间创建基线,如下示例 BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE ( start_time => TO_DATE ('2017-04-14 6:00:00', 'yyyy-mm-dd hh24:mi:ss'), end_time => TO_DATE ('2017-04-14 8:00:00', 'yyyy-mm-dd hh24:mi:ss'), baseline_name => 'peak_baseline2', expiration => 10); END; /
Im obigen Beispiel wird eine Baseline namens „peak_baseline“ mit einem Bereich von 160–161 und einer Aufbewahrungszeit von 10 Tagen erstellt. Nach mehr als 10 Tagen wird die Baseline gelöscht und die entsprechenden Snapshots werden ebenfalls gelöscht. Wenn ein Ablaufzeitraum angegeben ist, werden die Baseline und die entsprechenden Snapshots dauerhaft aufbewahrt.
2. Basislinie löschen
BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak_baseline', cascade => FALSE, dbid => 41924548); END; /
Im obigen Beispiel wird die Basislinie mit dem Namen „peak_baseline“ gelöscht und cascade als „false“ angegeben . Das heißt, beim Löschen der Baseline wird der entsprechende Snapshot nicht gelöscht.
3. Benennen Sie die Basislinie um
BEGIN DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE ( old_baseline_name => 'peak_baseline', new_baseline_name => 'peak_mondays', dbid => 41924548); END; / --验证结果 SQL> SELECT baseline_id, 2 baseline_name, 3 baseline_type, 4 expiration, 5 creation_time 6 FROM dba_hist_baseline; BASELINE_ID BASELINE_NAME BASELINE_TYPE EXPIRATION CREATION_ ----------- ----------------------- ------------- ---------- --------- 1 peak_mondays STATIC 10 14-APR-17 0 SYSTEM_MOVING_WINDOW MOVING_WINDOW 07-APR-17
Ändern Sie im obigen Beispiel den Namen der Basislinie von „peak_baseline“ in „peak_mondays“.
4. Ändern Sie den Standardwert für die Basislinienaufbewahrung des gleitenden Fensters
--查看缺省的window_size SELECT baseline_name, baseline_type, moving_window_size FROM dba_hist_baseline WHERE baseline_name = 'SYSTEM_MOVING_WINDOW'; BASELINE_NAME BASELINE_TYPE MOVING_WINDOW_SIZE ------------------------ ------------- ------------------ SYSTEM_MOVING_WINDOW MOVING_WINDOW 8 BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE ( window_size => 7, dbid => 41924548); END; / --window_size为天,只能够小于等于当前快照保留时间,否则报错,如下: ERROR at line 1: ORA-13541: system moving window baseline size (864000) greater than retention (691200) ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 686 ORA-06512: at line 2
5. Erstellen Sie eine einzelne Baseline-Vorlage
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE ( start_time => TO_DATE ('2017-04-14 17:00:00', 'yyyy-mm-dd hh24:mi:ss'), end_time => TO_DATE ('2017-04-14 19:00:00', 'yyyy-mm-dd hh24:mi:ss'), baseline_name => 'baseline_140414', template_name => 'template_140414', expiration => 10, dbid => 41924548); END; / --如果创建基线样本时间小于当前时间,则收到如下错误 ERROR at line 1: ORA-13537: invalid input for create baseline template (end_time, end_time is less than SYSDATE) ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 768 ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 818 ORA-06512: at line 2
Im obigen Beispiel haben wir eine einzelne Baseline-Stichprobe erstellt und den entsprechenden Zeitraum, den Baseline-Namen und den Aufbewahrungszeitraum angegeben , usw. Dann werden die entsprechenden Snapshots innerhalb dieses Zeitraums beibehalten und diese Baseline kann für spätere Vergleiche verwendet werden, wenn Leistungsprobleme entdeckt werden.
Erstellen Sie wiederholte Basisproben
Wiederholte Basisproben beziehen sich auf einen bestimmten Zeitraum in der Zukunft. Oracle erstellt automatisch eine Basislinie für uns auf der Grundlage dieser festgelegten Stichprobe. Sie können beispielsweise eine wiederholte Basisstichprobe erstellen, sodass im Jahr 2017 jeden Montag von 9:00 bis 11:00 Uhr automatisch eine Basislinie erstellt wird.
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE ( day_of_week => 'monday', hour_in_day => 9, duration => 2, expiration => 30, start_time => '2017-04-14 09:00:00', end_time => '2017-12-31 11:00:00', baseline_name_prefix => 'baseline_2017_mondays_', template_name => 'template_2017_mondays', dbid => 41924548); END; / -- Author : Leshami -- Blog : http://blog.csdn.net/leshami -- QQ(Weixin) : 645746311 --查看已经创建的基线样本 SQL> select t.template_name, 2 t.template_type, 3 t.start_time, 4 t.end_time, 5 t.day_of_week, 6 t.hour_in_day, 7 t.duration 8 from dba_hist_baseline_template t; TEMPLATE_NAME TEMPLATE_ START_TIME END_TIME DAY_OF_WE HOUR_IN_DAY DURATION --------------------- --------- ------------------- ------------------- --------- ----------- -------- template_140414 SINGLE 2017-04-14 17:00:00 2017-04-14 19:00:00 template_2017_mondays REPEATING 2017-04-14 09:00:00 2017-12-31 11:00:00 MONDAY 17 3
Im obigen Beispiel erstellen wir ab dem 14. April 2017 jeden Montag (day_of_week) eine Wiederholung, die automatisch eine Basislinie, ihren Start, generiert Die Uhrzeit beträgt 9 Uhr (Stunde am Tag), die Dauer beträgt 2 Stunden (Dauer) und die Gültigkeitsdauer beträgt 30 Tage (Ablauf). Der Start- und Endzeitbereich der gesamten Basislinie ist: 14.04.2017, 09:00 Uhr :00 bis 2017-12-31 11:00:00 und gibt außerdem den Namen des Baseline-Beispiels und den Baseline-Präfixnamen an.
Löschen von Basislinienproben
BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE ( template_name => 'template_140414', dbid => 41924548); END; /
Im obigen Beispiel löschen wir die zuvor erstellte Basislinienprobe, indem wir die Probe Just angeben Nennen Sie es.
3. AWR-Speicherplatzbelegung
Alle AWR-Snapshot-Daten werden in den SYSAUX-Tabellenbereich gefüllt. Wenn Sie den Snapshot also über einen längeren Zeitraum aufbewahren möchten, bedeutet dies, dass Sie mehr SYSAUX-Speicherplatz belegen müssen. Gleichzeitig können Sie über awrinfo.sql die detaillierten Informationen zu jedem Objekt anzeigen, das SYSAUX belegt.
SQL> @?/rdbms/admin/awrinfo.sql This script will report general AWR information ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Specify the Report File Name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The default report file name is awrinfo.txt. To use this name, press <return> to continue, otherwise enter an alternative. Enter value for report_name: Using the report name awrinfo.txt No errors. -- Author : Leshami No errors. -- Blog : http://blog.csdn.net/leshami ~~~~~~~~~~~~~~~ -- QQ : 645746311 AWR INFO Report ~~~~~~~~~~~~~~~ Report generated at 19:48:53 on Apr 14, 2017 ( Friday ) in Timezone +08:00 Warning: Non Default AWR Setting! -------------------------------------------------------------------------------- Snapshot interval is 60 minutes and Retention is 8 days DB_ID DB Name HOST_PLATFORM INST STARTUP_TIME LAST_ASH_SID PAR ------------ ------- ----------------------- ---- ----------------- ------------ --- * 41924548 ORA11G ydq - Linux x86 64-bit 1 15:18:26 (04/07) 617410 NO ######################################################## (I) AWR Snapshots Information ######################################################## ***************************************************** (1a) SYSAUX usage - Schema breakdown (dba_segments) ***************************************************** | | Total SYSAUX size 617.4 MB ( 2% of 32,768.0 MB MAX with AUTOEXTEND ON ) | | Schema SYS occupies 206.6 MB ( 33.5% ) | Schema XDB occupies 157.7 MB ( 25.5% ) | Schema APEX_030200 occupies 85.4 MB ( 13.8% ) | Schema MDSYS occupies 73.9 MB ( 12.0% )
## 4. AWR-Bericht erstellen
--AWR-Bericht unter Einzelinstanz erstellen
SQL> @?/rdbms/admin/awrrpt.sql
--AWR-Bericht in RAC-Umgebung erstellen
SQL> @$ORACLE_HOME/rdbms/admin/awrgrpt.sql
-- Geben Sie die Datenbankinstanz an, um den AWR-Bericht zu generieren
SQL> @$ORACLE_HOME/rdbms/admin/awrrpti.sql
– SQL-Anweisungs-AWR-Bericht generieren
SQL> @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql
--Geben Sie die Instanz an, um den SQL-Anweisungs-AWR-Bericht zu generieren
SQL> @$ORACLE_HOME/rdbms/admin/awrsqrpi.sql
-- Generieren Sie den verglichenen AWR-Bericht
SQL> @$ORACLE_HOME/rdbms/admin/awrddrpt.sql
--AWR-Bericht wird zum Vergleich in der RAC-Umgebung erstellt
@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql
5. Wichtige Ansichten und Datenwörterbücher im Zusammenhang mit AWR
v$active_session_history: Zeigt die Aktivitäten aktiver Datenbanksitzungen an, die einmal pro Sekunde erfasst werden
v$metric und v$metric_history:
stellen metrische Daten zur Verfolgung der Systemleistung bereit. Ansichten sind in mehreren Gruppen organisiert, die in der v$metricgroup-Ansicht
DBA_HIST_ACTIVE_SESS_HISTORY
definiert sindZeigt die Informationen zum aktiven Sitzungsverlauf im Speicher an
DBA_HIST_BASELINE
Zeigt die Informationen der erfassten Baselines an
DBA_HIST_BASELINE_DETAILS
Zeigt die detaillierten Informationen einer bestimmten Baseline an
DBA_HIST_BASELINE_TEMPLATE
Baseline-Vorlagenbezogene Informationen
DBA_HIST_DATABASE_INSTANCE
Datenbankumgebung
DBA_HIST_DB_CACHE_ADVICE
Vorhersagen in verschiedenen c basierend auf historische Daten unter Schmerzgröße Physisches Lesen
DBA_HIST_DISPATCHER
Informationen zum Planungsprozess unter jedem Snapshot
DBA_HIST_DYN_REMASTER_STATS
Statistik des dynamischen Remastering-Prozesses
DBA_HIST_IOSTAT_DETA IL
Historische E/A-Informationen nach unsichtbaren Typen und Funktionen
DBA_HIST_SHARED_SERVER_SUMMARY
Statistische Informationen von gemeinsam genutzten Servern
DBA_HIST_SNAPSHOT
Snapshot Informationen
DBA_HIST_SQL_PLAN
Ausführungsplan
DBA_HIST_WR_CONTROL
AWR-Kontrollinformationen
Verwandte Empfehlungen:
MySQL-Batchdatei zum Stoppen und Starten der Oracle-Datenbank
Detaillierte Erklärung, wie PHP PDO verwendet, um auf die Oracle-Datenbank zuzugreifen
Oracle-String enthält Zahlen, Lösung zum Sortierproblem von Sonderzeichen
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwaltung und Wartung von Oracle AWR. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!