Database/Oracle Database

[오라클] 일일점검 항목 예시

Dong538 2021. 12. 25. 12:17
SQL> select * from v$resource_limit;

RESOURCE_NAME             CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION        LIMIT_VALUE                   CON_ID
------------------------- ------------------- --------------- ------------------------- ------------------------- ----------
processes                                  59              72        300                       300                         0
sessions                                   78              90        472                       472                         0
enqueue_locks                              25              38       5580                      5580                         0
enqueue_resources                          19              40       2296                 UNLIMITED                         0
ges_procs                                   0               0          0                         0                         0
ges_ress                                    0               0          0                 UNLIMITED                         0
ges_locks                                   0               0          0                 UNLIMITED                         0
ges_cache_ress                              0               0          0                 UNLIMITED                         0
ges_reg_msgs                                0               0          0                 UNLIMITED                         0
ges_big_msgs                                0               0          0                 UNLIMITED                         0
ges_rsv_msgs                                0               0          0                         0                         0
gcs_resources                               0               0          0                 UNLIMITED                         0
gcs_shadows                                 0               0          0                 UNLIMITED                         0
smartio_overhead_memory                     0               0          0                 UNLIMITED                         0
smartio_buffer_memory                       0               0          0                 UNLIMITED                         0
smartio_metadata_memory                     0               0          0                 UNLIMITED                         0
smartio_sessions                            0               0          0                 UNLIMITED                         0
dml_locks                                   0              19       2076                 UNLIMITED                         0
temporary_table_locks                       0               0  UNLIMITED                 UNLIMITED                         0
transactions                                0               1        519                 UNLIMITED                         0
branches                                    0               0        519                 UNLIMITED                         0
cmtcallbk                                   0               1        519                 UNLIMITED                         0
max_rollback_segments                      11              11        519                     65535                         0
sort_segment_locks                          1               3  UNLIMITED                 UNLIMITED                         0
k2q_locks                                   0               0        944                 UNLIMITED                         0
max_shared_servers                          1               2  UNLIMITED                 UNLIMITED                         0
parallel_max_servers                        2               2         20                     32767                         0

27 rows selected.
SQL> select INSTANCE_NAME, HOST_NAME, VERSION, STARTUP_TIME, STATUS, ARCHIVER
  2  from v$instance;

INSTANCE_NAME    HOST_NAME            VERSION           STARTUP_ STATUS       ARCHIVE
---------------- -------------------- ----------------- -------- ------------ -------
orcl             enp0s3               19.0.0.0.0        21/12/20 OPEN         STARTED
SQL> select * from v$controlfile;

STATUS  NAME                                               IS_ BLOCK_SIZE FILE_SIZE_BLKS     CON_ID
------- -------------------------------------------------- --- ---------- -------------- ----------
        /u01/app/oracle/oradata/ORCL/control01.ctl         NO       16384            666          0
        /u01/app/oracle/oradata/ORCL/control02.ctl         NO       16384            666          0
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TI NEXT_CHANGE# NEXT_TIM     CON_ID
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------- ------------ -------- ----------
         1          1         31  209715200        512          1 YES INACTIVE               1949069 21/12/17      2050245 21/12/20          0
         2          1         32  209715200        512          1 NO  CURRENT                2050245 21/12/20   1.8447E+19                   0
         3          1         30  209715200        512          1 YES INACTIVE               1819318 21/12/16      1949069 21/12/17          0
SQL> select * from v$tempfile;

     FILE# CREATION_CHANGE# CREATION        TS#     RFILE# STATUS  ENABLED         BYTES     BLOCKS CREATE_BYTES BLOCK_SIZE NAME                                                   CON_ID
---------- ---------------- -------- ---------- ---------- ------- ---------- ---------- ---------- ------------ ---------- -------------------------------------------------- ----------
         1             3955 21/11/18          3          1 ONLINE  READ WRITE   39845888       4864     33554432       8192 /u01/app/oracle/oradata/ORCL/temp01.dbf                     0
SQL> select TABLESPACE_NAME, BLOCK_SIZE, INITIAL_EXTENT, NEXT_EXTENT, MAX_EXTENTS, STATUS, CONTENTS, LOGGING, EXTENT_MANAGEMENT, ALLOCATION_TYPE, SEGMENT_SPACE_MANAGEMENT, BIGFILE
  2  from dba_tablespaces;

TABLESPACE_NAME                BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MAX_EXTENTS STATUS    CONTENTS              LOGGING   EXTENT_MAN ALLOCATIO SEGMEN BIG
------------------------------ ---------- -------------- ----------- ----------- --------- --------------------- --------- ---------- --------- ------ ---
SYSTEM                               8192          65536              2147483645 ONLINE    PERMANENT             LOGGING   LOCAL      SYSTEM    MANUAL NO
SYSAUX                               8192          65536              2147483645 ONLINE    PERMANENT             LOGGING   LOCAL      SYSTEM    AUTO   NO
UNDOTBS1                             8192          65536              2147483645 ONLINE    UNDO                  LOGGING   LOCAL      SYSTEM    MANUAL NO
TEMP                                 8192        1048576     1048576             ONLINE    TEMPORARY             NOLOGGING LOCAL      UNIFORM   MANUAL NO
USERS                                8192          65536              2147483645 ONLINE    PERMANENT             LOGGING   LOCAL      SYSTEM    AUTO   NO
TS_TEST_DAT                          8192        1048576     1048576  2147483645 ONLINE    PERMANENT             LOGGING   LOCAL      UNIFORM   AUTO   NO

6 rows selected.

 

ratio 향상시키려면 shared pool size값 증가시켜야 한다.

SQL> select to_char(trunc(sum(reloads)/sum(pins)*100, 5),99.99999)||'% (LESS THAN 1%)' "LIBRARY CACHE MISS RATIO"
  2  from v$librarycache;

LIBRARY CACHE MISS RATIO
-------------------------
  1.77523% (LESS THAN 1%)
SQL> select trunc(sum(getmisses)/sum(gets)*100, 5)||'% (LESS THAN 9.8%)' "DATA DICTIONARY MISS RATIO"
  2  from v$rowcache;

DATA DICTIONARY MISS RATIO
----------------------------------------------------------
10.14215% (LESS THAN 9.8%)
SQL>
select (a.value+b.value-c.value)/(a.value+b.value)*100 BufferHitRatio
from sys.v_$sysstat a, sys.v_$sysstat b, sys.v_$sysstat c
where a.name = 'db block gets'
and b.name = 'consistent gets'
and c.name = 'physical reads cache';

BUFFERHITRATIO
--------------
    99.3326234
SQL> select value "REDO LOG REQUEST"
  2  from v$sysstat
  3  where name = 'redo log space requests';

REDO LOG REQUEST
----------------
               0

 

internal sort and external sort

SQL> select sum(decode(name, 'sorts (memory)', value, 0)) MEM,
  2  sum(decode(name, 'sorts (disk)', value, 0)) DSK,
  3  round((sum(decode(name, 'sorts (memory)', value, 0))
  4  / (sum(decode(name, 'sorts (memory)', value, 0))
  5  + sum(decode(name, 'sorts (disk)', value, 0))))*100, 2) "MemSortPCT(%)"
  6  ,sum(decode(name, 'sorts (rows)', value, 0)) "Sort_Rows"
  7  ,round(sum(decode(name, 'sorts (memory)', value, 0)) /
  8  (sum(decode(name, 'sorts (memory)', value, 0))
  9  + sum(decode(name, 'sorts (disk)', value, 0)))) "RowsPerSort"
 10  from v$sysstat
 11  where name in ('sorts (memory)', 'sorts (disk)', 'sorts (rows)');

       MEM        DSK MemSortPCT(%)  Sort_Rows RowsPerSort
---------- ---------- ------------- ---------- -----------
     71704          0           100    1963048           1
SQL> select * from v$rollstat;

       USN      LATCH    EXTENTS     RSSIZE     WRITES      XACTS       GETS      WAITS    OPTSIZE    HWMSIZE    SHRINKS      WRAPS    EXTENDS  AVESHRINK  AVEACTIVE STATUS         CUREXT     CURBLK     CON_ID
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
         0          0          7     450560       5712          0        315          0                450560          0          0          0          0          0 ONLINE              4          2          0
         1          0         17    2088960   10301686          0       4836          0              12705792          3         29         19    4194304     788704 ONLINE             16         32          0
         2          0          3    1171456    3646834          0       4231          0               2220032          3         13          2    1048576     349148 ONLINE              2         46          0
         3          0          4    2220032    8485954          0       5239          0               5365760          4         22          8    1835008     637126 ONLINE              2          9          0
         4          0          4    2220032    1880652          0       3678          0               3268608          2          9          2    1572864     286958 ONLINE              2         15          0
         5          0          4    2220032    3639718          0       4183          0               3268608          1         11          2    2097152     345941 ONLINE              2         34          0
         6          0          3    8511488    1078606          0       3328          0               9560064          1          2          0    1048576      11714 ONLINE              2        144          0
         7          0          3    1171456    4960670          0       4311          0               4317184          2         12          4    2097152     716934 ONLINE              2         97          0
         8          0          4    2220032    2741276          0       3930          0               2220032          2          8          2    1048576     186648 ONLINE              2          5          0
         9          0          3    1171456    3897298          0       4276          0               3268608          3         13          2    1398101     357216 ONLINE              2        121          0
        10          0          3    1171456    3052632          0       3933          0               2220032          2         10          1    1048576     272562 ONLINE              2         79          0
SQL> select rs.usn, name, xacts, rssize/1024/1024 rssize, optsize, wraps, extents, shrinks,
  2  aveshrink/1024/1024 aveshrink, ((gets-waits)*100)/gets hits, waits wait, rs.status
  3  from v$rollstat rs, v$rollname rn
  4  where rs.usn = rn.usn;

       USN NAME                          XACTS     RSSIZE    OPTSIZE      WRAPS    EXTENTS    SHRINKS  AVESHRINK       HITS       WAIT STATUS
---------- ------------------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
         0 SYSTEM                            0   .4296875                     0          7          0          0        100          0 ONLINE
         1 _SYSSMU1_3036466962$              0  1.9921875                    29         17          3          4        100          0 ONLINE
         2 _SYSSMU2_207549919$               0  1.1171875                    13          3          3          1        100          0 ONLINE
         3 _SYSSMU3_3105461469$              0  2.1171875                    22          4          4       1.75        100          0 ONLINE
         4 _SYSSMU4_2975556719$              0  2.1171875                     9          4          2        1.5        100          0 ONLINE
         5 _SYSSMU5_2524574165$              0  2.1171875                    11          4          1          2        100          0 ONLINE
         6 _SYSSMU6_1696192826$              0  8.1171875                     2          3          1          1        100          0 ONLINE
         7 _SYSSMU7_2443272087$              0  1.1171875                    12          3          2          2        100          0 ONLINE
         8 _SYSSMU8_255433850$               0  2.1171875                     8          4          2          1        100          0 ONLINE
         9 _SYSSMU9_3527676257$              0  1.1171875                    13          3          3 1.33333302        100          0 ONLINE
        10 _SYSSMU10_2767235476$             0  1.1171875                    10          3          2          1        100          0 ONLINE

11 rows selected.
SQL> select c.name "latch name",
  2  nvl(misses/decode(b.gets,0,1),0) "misses_gets ratio",
  3  nvl(immediate_misses/decode(immediate_gets,0,1),0) "immediate misses_gets ratio"
  4  from v$latch a, v$latchholder b, v$latchname c
  5  where a.addr = b.laddr(+)
  6  and a.latch# = c.latch#
  7  and c.name in ('redo allocation', 'redo copy')
  8  order by a.latch#;

latch name         misses_gets ratio immediate misses_gets ratio
------------------ ----------------- ---------------------------
redo copy                          0                           0
redo allocation                    0                           0
-- tables analyze info
select owner, to_char(last_analyzed, 'yyyy-mm-dd') analyze_date, partitioned, count(*)
from dba_tables
where owner not in ('SYS', 'SYSTEM', 'DBSNMP', 'OUTLN', 'PERFSTAT')
and (trunc(sysdate) - trunc(last_analyzed) > 7 or last_analyzed is null)
and table_name not like 'DR$TX%'
and table_name not like 'TMP%'
and tablespace_name not like '%/_CLS' escape '/'
and tablespace_name is not null
group by owner, to_char(last_analyzed, 'yyyy-mm-dd'), partitioned
order by 1, 2, 3;

OWNER                ANALYZE_DA PAR   COUNT(*)
-------------------- ---------- --- ----------
APPQOSSYS            2021-11-18 NO           5
CTXSYS               2021-11-18 NO          37
DBSFWUSER            2021-11-18 NO           3
DVSYS                2021-11-18 NO          43
GSMADMIN_INTERNAL    2021-11-18 NO          34
GSMADMIN_INTERNAL               NO           1
LBACSYS              2021-11-18 NO          22
MDSYS                2021-11-18 NO         128
OJVMSYS              2021-11-18 NO           6
OLAPSYS              2021-11-18 NO           2
ORDDATA              2021-11-18 NO          71
ORDSYS               2021-11-18 NO           4
WMSYS                2021-11-18 NO          32
WMSYS                           NO           1
XDB                  2021-11-18 NO          34
-- index analyze info
select owner, to_char(last_analyzed, 'yyyy-mm-dd') analyze_date, partitioned, count(*)
  from dba_indexes
 where owner not in ('SYS', 'SYSTEM', 'DBSNMP', 'OUTLN', 'PERFSTAT')
       and (trunc(sysdate) - trunc(last_analyzed) > 7 or last_analyzed is null)
       and table_name not like 'DR$TX%'
       and table_name not like 'TMP%'
       and tablespace_name not like '%/_CLS' escape '/'
       and tablespace_name is not null
 group by owner, to_char(last_analyzed, 'yyyy-mm-dd'), partitioned
 order by 1, 2, 3;

OWNER                  ANALYZE_DA PAR   COUNT(*)
---------------------- ---------- --- ----------
CTXSYS                 2021-11-18 NO          64
CTXSYS                            NO           4
DBSFWUSER              2021-11-18 NO           3
DVSYS                  2021-11-18 NO          77
DVSYS                             NO           1
GSMADMIN_INTERNAL      2021-11-18 NO          42
GSMADMIN_INTERNAL                 NO           8
LBACSYS                2021-11-18 NO          30
MDSYS                  2021-11-18 NO         119
MDSYS                             NO          76
OJVMSYS                2021-11-18 NO           6
OJVMSYS                           NO           1
OLAPSYS                2021-11-18 NO           2
ORDDATA                2021-11-18 NO          99
ORDDATA                           NO           6
ORDSYS                 2021-11-18 NO           3
WMSYS                  2021-11-18 NO          57
WMSYS                             NO          10
XDB                    2021-11-18 NO          72
XDB                               NO         289

20 rows selected.
SQL>
select table_owner, to_char(last_analyzed, 'yyyy-mm-dd') analyze_date, count(*)
from dba_tab_partitions
where table_owner not in ('SYS', 'SYSTEM', 'DBSNMP', 'OUTLN', 'PERFSTAT')
and (trunc(sysdate) - trunc(last_analyzed) > 7 or last_analyzed is null)
and table_name not like 'DR$TX%'
and partition_name not like 'SYS_IL_P%'
group by table_owner, to_char(last_analyzed, 'yyyy-mm-dd')
order by 1, 2;

TABLE_OWNER  ANALYZE_DA   COUNT(*)
------------ ---------- ----------
AUDSYS       2021-11-18          1
AUDSYS                           2
MDSYS        2021-11-18          1