YandexDirect

20 декабря 2018

Администратор БД Oracle, ежедневный мониторинг



Я порядка 3х лет занимаюсь администрированием БД Oracle и за это время наметил для себя несколько важных  элементов для мониторинга текущей работоспособности вашей базы, это то что я делаю каждый день:

  1. График Top Activity из Oracle EM Cloud Control
  2. Alert логи
  3. Мониторинг табличных пространств
  4. Мониторинг сессий
Теперь вкратце о каждом пункте.





1. График Top Activity из Oracle EM Cloud Control

Показывает количество активных сессий, а также выделяет сессии в зависимости от ожиданий. На приведенном графике можно наблюдать ожидания:
CPU + CPU Wait, выделенные зеленым цветом;
User I/O, выделенные синим цветом;
Cluster, выделенные серым цветом, данное ожидание присутствует только у Oracle RAC.
Явным показателем что, что-то не так, будет служить появление «акульих» плавников на графике, иными словами резкое увеличение количества сессий, чаще всего на моей БД это бывают всплески ожиданий Concurrency и Application.


2. Alert логи
Мониторинг основных логов БД очень важен,  по нему можно определить детальное состояние базы данных, в частности наличие ошибок. Как правило, для алерт логов своих баз данных я определяю алиас и потом обращаюсь к алертам через алиас. В этой статье я описывал как найти местоположение ваших алерт логов .

3. Мониторинг табличных пространств
Табличные пространства это важнейший компонент мониторинга, проверять необходимо каждый день. Для проверки я использую скрипт:
--скрипт для просмотра доступного места в табл пространствах
--1
SELECT  free.tablespace_name TABLESPACE,
    ROUND(files.bytes / 1073741824, 2) gb_total,
    ROUND((files.bytes - free.bytes)  / 1073741824, 2) gb_used,     
    ROUND(free.bytes  / files.bytes * 100) || '%' "%FREE"
FROM
  (
    SELECT tablespace_name, SUM(bytes) bytes FROM dba_free_space
    GROUP BY tablespace_name
  ) free,
  (
    SELECT tablespace_name, SUM(bytes) bytes FROM dba_data_files
    GROUP BY tablespace_name
  ) files
WHERE
  free.tablespace_name = files.tablespace_name;

Результат

4.Мониторинг сессий
Для мониторинга сессий я использую скрипт:
Select s.INST_ID,
decode(s.command,
  1,'Create table' , 2,'Insert',
  3,'Select' , 6,'Update',
  7,'Delete' , 9,'Create index',
  10,'Drop index' ,11,'Alter index',
  12,'Drop table' ,13,'Create seq',
  14,'Alter sequence' ,15,'Alter table',
  16,'Drop sequ.' ,17,'Grant',
  19,'Create syn.' ,20,'Drop synonym',
  21,'Create view' ,22,'Drop view',
  23,'Validate index' ,24,'Create procedure',
  25,'Alter procedure' ,26,'Lock table',
  42,'Alter session' ,44,'Commit',
  45,'Rollback' ,46,'Savepoint',
  47,'PL/SQL Exec' ,48,'Set Transaction',
  60,'Alter trigger' ,62,'Analyze Table',
  63,'Analyze index' ,71,'Create Snapshot Log',
  72,'Alter Snapshot Log' ,73,'Drop Snapshot Log',
  74,'Create Snapshot' ,75,'Alter Snapshot',
  76,'drop Snapshot' ,85,'Truncate table',
  0,'No command', '? : '||s.command) nocommand,
       s.SID,s.SERIAL#,
       'alter system kill session ''' || s.SID || ',' || s.SERIAL# || ',@' || s.inst_id || ''' IMMEDIATE;' As KILL,
       s.SQL_ID,s.SQL_EXEC_START,s.BLOCKING_SESSION,
       s.FINAL_BLOCKING_SESSION,
       s.EVENT,s.P1TEXT, s.P1, s.P2TEXT, s.P2, s.P3TEXT,  s.SECONDS_IN_WAIT,
       dus.username,
       s.SCHEMANAME,
       s.SERVICE_NAME,
       s.OSUSER,
       s.LOGON_TIME,
       s.MODULE,
       s.PROGRAM,
       s.CLIENT_INFO,
       s.STATE,
       s.STATUS,
       s.COMMAND
  From gv$session s
  left join dba_users dus on dus.user_id = s.USER#
Where
 s.USERNAME <> 'SYS' and
 --s.USERNAME = 'USER' and
      s.STATUS = 'ACTIVE'
    --and s.sid = 19534
  --and s.MODULE like '%SQL%' or s.MODULE like '%T.O%'
  --and s.CLIENT_INFO = '172.21.105.81'
 Order By s.SQL_EXEC_START;

Скрипт Мониторинга сессий покажет сессии в реальном режиме времени. Почему именно этот скрипт?
Во-первых, он выводит текущую команду в понятном виде(select, insert, update и т.д.)
Во-вторых, в 5 столбце готовый скрипт уничтожения текущей сессии.
Вот вкратце, то чем я пользуюсь каждый день.

Комментариев нет:

Отправить комментарий

Общее·количество·просмотров·страницы