OceanBase (g)v$sql_audit 介紹

2021-06-30 11:43 更新

(g)v$sql_audit 是全局 SQL 審計(jì)表,可以用來(lái)查看每次請(qǐng)求客戶(hù)端來(lái)源、執(zhí)行服務(wù)器信息、執(zhí)行狀態(tài)信息、等待事件以及執(zhí)行各階段耗時(shí)等。

sql_audit 相關(guān)設(shè)置

  • 設(shè)置 sql_audit 使用開(kāi)關(guān)。

    obclient>ALTER SYSTEM SET enable_sql_audit = true;
    /*開(kāi)啟 sql_audit*/
    
    obclient>ALTER SYSTEM SET enable_sql_audit = false;
    /*關(guān)閉 sql_audit*/
  • 設(shè)置 sql_audit 內(nèi)存上限。默認(rèn)內(nèi)存上限為 3 G,可設(shè)置范圍為 [64M,+∞]。

    obclient>ALTER SYSTEM SET sql_audit_memory_limit = '3G';

sql_audit 淘汰機(jī)制

  • sql_audit 每隔 1s 會(huì)檢測(cè)后臺(tái)任務(wù)并根據(jù)以下標(biāo)準(zhǔn)決定是否淘汰:

    • sql_audit 內(nèi)存最大可使用上限為 avail_mem_limit = min (OBServer 可使用內(nèi)存 *10%,sql_audit_memory_limit)。

      • 當(dāng) avail_mem_limit 在 [64M, 100M] 范圍內(nèi)時(shí), 內(nèi)存使用達(dá)到 avail_mem_limit-20M 時(shí)觸發(fā)淘汰。

      • 當(dāng) avail_mem_limit 在 [100M, 5G] 范圍內(nèi)時(shí), 內(nèi)存使用達(dá)到 availmem_limit*0.8 時(shí)觸發(fā)淘汰。

      • 當(dāng) avail_mem_limit 在 [5G, +∞)范圍內(nèi)時(shí), 內(nèi)存使用達(dá)到 availmem_limit-1G 時(shí)觸發(fā)淘汰。

    • 當(dāng) sql_audidt 記錄數(shù)超過(guò) 900 萬(wàn)條時(shí),觸發(fā)淘汰。

  • sql_audit 根據(jù)以下標(biāo)準(zhǔn)決定是否停止淘汰:

    • 如果是達(dá)到內(nèi)存上限觸發(fā)淘汰則:

      • 當(dāng) avail_mem_limit 在 [64M, 100M] 時(shí), 內(nèi)存使用淘汰到 avail_mem_limit-40M 時(shí)停止淘汰。

      • 當(dāng) avail_mem_limit 在 [100M, 5G] 時(shí), 內(nèi)存使用淘汰到 availmem_limit*0.6 時(shí)停止淘汰。

      • 當(dāng) avail_mem_limit 在 [5G, +∞] 時(shí), 內(nèi)存使用淘汰到 availmem_limit-2G 時(shí)停止淘汰。

    • 如果是達(dá)到記錄數(shù)上限觸發(fā)的淘汰則淘汰到 800 萬(wàn)行記錄時(shí)停止淘汰。

sql_audit 字段解釋

字段名稱(chēng)

類(lèi)型

描述

SVR_IP

varchar(32)

IP 地址

SVR_PORT

bigint(20)

端口號(hào)

REQUEST_ID

bigint(20)

請(qǐng)求的 ID 號(hào)

TRACE_ID

varchar(128)

這條語(yǔ)句的 trace ID

CLIENT_IP

varchar(32)

發(fā)送請(qǐng)求的 client IP

CLIENT_PORT

bigint(20)

發(fā)送請(qǐng)求的 client port

TENANT_ID

bigint(20)

發(fā)送請(qǐng)求的租戶(hù) ID

TENANT_NAME

varchar(64)

發(fā)送請(qǐng)求的租戶(hù)名稱(chēng)

USER_ID

bigint(20)

發(fā)送請(qǐng)求的用戶(hù) ID

USER_NAME

varchar(64)

發(fā)送請(qǐng)求的用戶(hù)名稱(chēng)

SQL_ID

varchar(32)

這條 SQL 的 ID

QUERY_SQL

varchar(32768)

實(shí)際的 SQL 語(yǔ)句

PLAN_ID

bigint(20)

執(zhí)行計(jì)劃 ID

AFFECTED_ROWS

bigint(20)

影響行數(shù)

RETURN_ROWS

bigint(20)

返回行數(shù)

PARTITION_CNT

bigint(20)

該請(qǐng)求涉及的分區(qū)數(shù)

RET_CODE

bigint(20)

執(zhí)行結(jié)果返回碼

EVENT

varchar(64)

最長(zhǎng)等待事件名稱(chēng)

P1TEXT

varchar(64)

等待事件參數(shù) 1

P1

bigint(20) unsigned

等待事件參數(shù) 1 的值

P2TEXT

varchar(64)

等待事件參數(shù) 2

P2

bigint(20) unsigned

等待事件參數(shù) 2 的值

P3TEXT

varchar(64)

等待事件參數(shù) 3

P3

bigint(20) unsigned

等待事件參數(shù) 3 的值

LEVEL

bigint(20)

等待事件的 level 級(jí)別

WAIT_CLASS_ID

bigint(20)

等待事件所屬的 class ID

WAIT_CLASS#

bigint(20)

等待事件所屬的 class 的下標(biāo)

WAIT_CLASS

varchar(64)

等待事件所屬的 class 名稱(chēng)

STATE

varchar(19)

等待事件的狀態(tài)

WAIT_TIME_MICRO

bigint(20)

該等待事件所等待的時(shí)間(微秒)

TOTAL_WAIT_TIME_MICRO

bigint(20)

執(zhí)行過(guò)程所有等待的總時(shí)間(微秒)

TOTAL_WAITS

bigint(20)

執(zhí)行過(guò)程總等待的次數(shù)

RPC_COUNT

bigint(20)

發(fā)送 RPC 個(gè)數(shù)

PLAN_TYPE

bigint(20)

執(zhí)行計(jì)劃類(lèi)型(local/ remote/distribute)

IS_INNER_SQL

tinyint(4)

是否為內(nèi)部 SQL 請(qǐng)求

IS_EXECUTOR_RPC

tinyint(4)

當(dāng)前請(qǐng)求是否為 RPC 請(qǐng)求

IS_HIT_PLAN

tinyint(4)

是否命中計(jì)劃緩存

REQUEST_TIME

bigint(20)

開(kāi)始執(zhí)行時(shí)間點(diǎn)

ELAPSED_TIME

bigint(20)

接收到請(qǐng)求到執(zhí)行結(jié)束消耗總時(shí)間

NET_TIME

bigint(20)

發(fā)送 RPC 到接收到請(qǐng)求時(shí)間

NET_WAIT_TIME

bigint(20)

接收到請(qǐng)求到進(jìn)入隊(duì)列時(shí)間

QUEUE_TIME

bigint(20)

請(qǐng)求在隊(duì)列等待事件

DECODE_TIME

bigint(20)

出隊(duì)列后 decode 時(shí)間

GET_PLAN_TIME

bigint(20)

開(kāi)始執(zhí)行到獲得計(jì)劃時(shí)間

EXECUTE_TIME

bigint(20)

plan 執(zhí)行消耗時(shí)間

APPLICATION_WAIT_TIME

bigint(20) unsigned

所有 application 類(lèi)事件的總時(shí)間

CONCURRENCY_WAIT_TIME

bigint(20) unsigned

所有 concurrency 類(lèi)事件的總時(shí)間

USER_IO_WAIT_TIME

bigint(20) unsigned

所有 user_io 類(lèi)事件的總時(shí)間

SCHEDULE_TIME

bigint(20) unsigned

所有 schedule 類(lèi)事件的時(shí)間

ROW_CACHE_HIT

bigint(20)

行緩存命中次數(shù)

BLOOM_FILTER_CACHE_HIT

bigint(20)

bloom filter 緩存命中次數(shù)

BLOCK_CACHE_HIT

bigint(20)

塊緩存命中次數(shù)

BLOCK_INDEX_CACHE_HIT

bigint(20)

塊索引緩存命中次數(shù)

DISK_READS

bigint(20)

物理讀次數(shù)

EXECUTION_ID

bigint(20)

執(zhí)行 ID

SESSION_ID

bigint(20)

SESSION 的 ID

RETRY_CNT

bigint(20)

重試次數(shù)

TABLE_SCAN

tinyint(4)

判斷該請(qǐng)求是否含全表掃描

CONSISTENCY_LEVEL

bigint(20)

一致性級(jí)別

MEMSTORE_READ_ROW_COUNT

bigint(20)

MEMSTORE 中讀的行數(shù)

SSSTORE_READ_ROW_COUNT

bigint(20)

SSSTORE 中讀的行數(shù)

REQUEST_MEMORY_USED

bigint(20)

該請(qǐng)求消耗的內(nèi)存

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)