рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдФрд░ Oracle рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рд╡рд░реНрдЧреЛрдВ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ

рджрд┐рди-рдкреНрд░рддрд┐рджрд┐рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ, Oracle рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХреЛрдВ рдХреЛ рдереНрд░реВрдкреБрдЯ, рд▓реЛрдб, DBMS рдХреА рд╡реГрджреНрдзрд┐, DBMS рд╣реЛрд╕реНрдЯ, рдбрд┐рд╕реНрдХ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдЖрджрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдореАрдЯреНрд░рд┐рдХ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпреЗ рд╕рднреА рдбреЗрдЯрд╛ рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдПрдХрддреНрд░ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рддрд╛рдХрд┐ рдЬрд╛рдирдХрд╛рд░реА рдореГрдд рд╡рдЬрди рди рд╣реЛ, рдпрд╣ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреЗ рдореБрджреНрджреЛрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдХреНрд░рд┐рдп рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╣рдо рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред



рдУрд░реЗрдХрд▓ рдХреНрд▓рд╛рдЙрдб рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рд▓реЗрдВред MGMT_METRICS_1DAY рдореЗрдВ SYSMAN рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╣рдо TARGET_GUID = '6B1E3AFA92B3EA29AD73BB87432C084C' рд╕рд╛рде рдХрд┐рд╕реА рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП "рдлрд╝рд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рд╕реНрдкреЗрд╕ рдЙрдкрд▓рдмреНрдз (MB)" рдореАрдЯреНрд░рд┐рдХ рдХрд╛ рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред

 SELECT TO_CHAR (CAST (ROLLUP_TIMESTAMP AS DATE), 'YYYY-MM-DD"T"HH24:MI:SS'),        ROUND (VALUE_AVERAGE, 2) AVG_FREE_SPACE_INM   FROM SYSMAN.MGMT_METRICS_1DAY  WHERE TARGET_GUID = '6B1E3AFA92B3EA29AD73BB87432C084C'        AND METRIC_GUID = HEXTORAW ('E8838C71E687BF0A9E02FFACC0C9AC80')        AND KEY_VALUE = '/u10' ORDER BY ROLLUP_TIMESTAMP; 

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рддреАрди рдорд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП, 14 рдЕрдЧрд╕реНрдд, 2018 рд╕реЗ 15 рдирд╡рдВрдмрд░, 2018 рддрдХ, / u01 рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдореБрдХреНрдд рд╕реНрдерд╛рди 1.5TB рд╕реЗ рдХрдо рд╣реЛ рдЧрдпрд╛ - 4.1 рдЯреАрдмреА рд╕реЗ 2.6 рдЯреАрдмреА рддрдХ



рдЙрд╕ рд╕рдордп рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╢реЗрд╖ 2.6 рдЯреАрдмреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд╣рдо рд░реИрдЦрд┐рдХ рдкреНрд░рддрд┐рдЧрдорди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВред

REGR_SLOPE(x,y) рд▓рд╛рдЗрди рдХреЗ рдврд▓рд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд░реЗрдХрд▓ REGR_SLOPE(x,y) рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддрд┐рдЧрдорди рд░реЗрдЦрд╛ рдХрд╛ рдврд▓рд╛рди рдХрд╛рд░реНрдп REGR_SLOPE рд╕реЗрдЯ x рдФрд░ y рдХреЗ рд╕рдореБрдЪреНрдЪрдп рдХреЗ рдЕрдиреБрдкрд╛рдд рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ:

 REGR_SLOPE(x,y) = COVAR_POP(x,y) / VAR_POP(y) 

Y рдЕрдХреНрд╖ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, REGR_INTERCEPT(x,y) рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред Y- рдЕрдХреНрд╖ рдЕрд╡рд░реЛрдзрди рдлрд╝рдВрдХреНрд╢рди REGR_INTERCEPT рд╕реЗрдЯ x рдХреЗ рдФрд╕рдд рдореВрд▓реНрдп рдФрд░ рдкреНрд░рддрд┐рдЧрдорди рд░реЗрдЦрд╛ рдХреЗ рдврд▓рд╛рди рдХреЗ рдЙрддреНрдкрд╛рдж рдФрд░ рд╕реЗрдЯ y рдХреЗ рдФрд╕рдд рдореВрд▓реНрдп рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ:

 REGR_INTERCEPT(x,y) = AVG(x) тАУ REGR_SLOPE(x, y) * AVG(y) 

рдЖрд░-рд╕реНрдХреНрд╡рд╛рдпрд░ рдпрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рдЧреБрдгрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди REGR_R2 (x, y) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╢реВрдиреНрдп рднрд┐рдиреНрдирддрд╛ y рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рд╢реВрдиреНрдп рдлреИрд▓рд╛рд╡ x рдФрд░ nonzerzer рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХрддрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдФрд░ x рдХреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╡рд┐рдЪрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдФрд░ y рдХрд╛ рдПрдХ рдЧреИрд░-рд╢реВрдиреНрдп рд╡рд┐рдЪрд░рдг x рдФрд░ y рдХреЗ рд╕рд╣рд╕рдВрдмрдВрдз рдХреЗ рд╡рд░реНрдЧ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

 NULL if VAR_POP(y)  = 0 1 if VAR_POP(x)  = 0 and VAR_POP(y) != 0 POWER(CORR(expr1,expr),2) if VAR_POP(x)  > 0 and VAR_POP(y)  != 0 

рд╣рдо рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╡рд┐рд╡рд┐рдзрддрд╛рдУрдВ рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХреЛ рджрд░реНрд╢рд╛рддреА рдорд╛рддреНрд░рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рдЧреБрдгрд╛рдВрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рджреГрдврд╝ рд╕рдВрдХрд▓реНрдк рдХрд╛ рдЧреБрдгрд╛рдВрдХ 1 рд╣реИ, рддреЛ рд╣рдорд╛рд░рд╛ рдореЙрдбрд▓ 100% рд╡рд┐рд╡рд┐рдзрддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░рд╛ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдпрдерд╛рд╕рдВрднрд╡ рд╕рдЯреАрдХ рд╣реЛрдЧрд╛ред

рд╣рдо x рдХреЛ рдЙрд╕ рд╕рдордп рдХреЗ рдЕрдВрддрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдореАрдЯреНрд░рд┐рдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕рдордп - ROLLUP_TIMESTAMP-SYSDATEред Y рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо MB рдореЗрдВ рдореБрдХреНрдд рд╢реЗрд╖ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ / u01 рдХрд╛ рдФрд╕рдд рдореВрд▓реНрдп рд▓реЗрддреЗ рд╣реИрдВ - "рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рд╕реНрдкреЗрд╕ рдЙрдкрд▓рдмреНрдз (рдПрдордмреА)"ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, REGR_INTERCEPT рдлрд╝рдВрдХреНрд╢рди (ROLLUP_TIMESTAMP-SYSDATE, VALUE_AVERAGE) рдХреЛ рдПрдХ рд╕рдореВрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди / u01 рдХрд┐рддрдиреЗ рджрд┐рдиреЛрдВ рддрдХ рдЪрд▓реЗрдЧрд╛ред

рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд░реВрдк рдореЗрдВ, рдкреНрд░рддрд┐рдЧрдорди рд░реЗрдЦрд╛ рдХреЗ рдврд▓рд╛рди рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рдорд╛рди, рдЕрдХреНрд╖ рдХрд╛ рдЕрд╡рд░реЛрдзрди, рдФрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧреБрдгрд╛рдВрдХ рдХреНрд╡реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 SELECT   COVAR_POP (ROLLUP_TIMESTAMP - SYSDATE, NULLIF (ROUND (VALUE_AVERAGE, 2), 0)) / VAR_POP (NULLIF (ROUND (VALUE_AVERAGE, 2), 0)) REGR_SLOPE,        AVG (ROLLUP_TIMESTAMP)- (COVAR_POP (SYSDATE - ROLLUP_TIMESTAMP, NULLIF (ROUND (VALUE_AVERAGE, 2), 0))/VAR_POP(NULLIF(ROUND(VALUE_AVERAGE, 2), 0)))*AVG (NULLIF (ROUND(VALUE_AVERAGE, 2), 0))           REGR_INTERCEPT,        AVG (SYSDATE - ROLLUP_TIMESTAMP)-(COVAR_POP(SYSDATE - ROLLUP_TIMESTAMP,NULLIF(ROUND(VALUE_AVERAGE,2),0))/VAR_POP(NULLIF(ROUND(VALUE_AVERAGE,2),0)))*AVG(NULLIF(ROUND(VALUE_AVERAGE,2),0)))      REGR_INTERCEPT_ABS,        CASE           WHEN VAR_POP (NULLIF (ROUND (VALUE_AVERAGE, 2), 0)) = 0           THEN              NULL           WHEN     VAR_POP (SYSDATE - ROLLUP_TIMESTAMP) = 0                AND VAR_POP (NULLIF (ROUND (VALUE_AVERAGE, 2), 0)) != 0           THEN              1           WHEN     VAR_POP (SYSDATE - ROLLUP_TIMESTAMP) > 0                AND VAR_POP (NULLIF (ROUND (VALUE_AVERAGE, 2), 0)) != 0           THEN              POWER (CORR (SYSDATE - ROLLUP_TIMESTAMP, NULLIF (ROUND (VALUE_AVERAGE, 2), 0)),2)        END           REGR_R2   FROM MGMT_METRICS_1DAY  WHERE TARGET_GUID = '6B1E3AFA92B3EA29AD73BB87432C084C'        AND METRIC_GUID = HEXTORAW ('E8838C71E687BF0A9E02FFACC0C9AC80')        AND KEY_VALUE = '/u10' ORDER BY ROLLUP_TIMESTAMP; 

рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА REGR_SLOPE , REGR_INTERCEPT рдФрд░ REGR_R2 рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ:

 SELECT REGR_SLOPE(SYSDATE-ROLLUP_TIMESTAMP, NULLIF(ROUND(VALUE_AVERAGE,2),0)) RSLP,      REGR_INTERCEPT(SYSDATE-ROLLUP_TIMESTAMP, NULLIF(ROUND(VALUE_AVERAGE,2),0)) RINSP,       REGR_R2(SYSDATE-ROLLUP_TIMESTAMP, NULLIF(ROUND(VALUE_AVERAGE,2),0)) RSQR      FROM MGMT_METRICS_1DAY      WHERE TARGET_GUID='6B1E3AFA92B3EA29AD73BB87432C084C'      AND METRIC_GUID=HEXTORAW('E8838C71E687BF0A9E02FFACC0C9AC80') AND KEY_VALUE='/u10'      ORDER BY ROLLUP_TIMESTAMP; 

 REGR_SLOPE = -0.00005 REGR_INTERCEPT = 149.46 REGR_R2 = 0.97 

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рд░реНрдзрд╛рд░рдг рдЧреБрдгрд╛рдВрдХ 1 рдХреЗ рдХрд░реАрдм рд╣реИ, рдФрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд▓рдЧрднрдЧ 149 рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж / u10 рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЬрдЧрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧреАред

рд╣рдо рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рд╕рдордп рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрддреНрдкрд╛рджрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЙрдкрд▓рдмреНрдз рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрддреНрдкрд╛рджрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╣реЛрд╕реНрдЯ METRIC_GUID='E8838C71E687BF0A9E02FFACC0C9AC80' рд╕рд╛рде рд╕рдореВрд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рд╣рдо рдЙрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ User Definded Type T_TYPE рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: рд╣реЛрд╕реНрдЯ рдирд╛рдо, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдирд╛рдо, рд░рд┐рдЧреНрд░реЗрд╢рди рд▓рд╛рдЗрди рдХрд╛ рдврд▓рд╛рди, рдЙрди рджрд┐рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрдерд╛рди рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧреБрдгрд╛рдВрдХред

 CREATE OR REPLACE TYPE T_TYPE AS OBJECT(TARGET_NAME VARCHAR2(256), KEY_VALUE VARCHAR2(256), RSLP NUMBER,RINSP NUMBER,RSQR NUMBER); 

T_TYPE рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдмрд▓ рдЯрд╛рдЗрдк R_TYPE рдмрдирд╛рдПрдБ:

 CREATE OR REPLACE TYPE R_TYPE AS TABLE OF T_TYPE; 

рд╣рдо рдПрдХ рдкреИрдХреЗрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ GET_VALUES рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП GET_VALUES рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдореЗрд▓ SEND_VALUES рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ SEND_VALUES ред

 CREATE OR REPLACE PACKAGE EST_FS_EXHAUST IS 

GET_VALUES рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП GET_VALUES рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрд╕реНрдЯ рд╕рдореВрд╣ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде V_GN рдЪрд░ рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧреБрдгрд╛рдВрдХ V_RSQ рдХрд╛ рдореВрд▓реНрдп V_RSQ ред

 FUNCTION GET_VALUES(V_GN VARCHAR2, V_RSQ NUMBER) RETURN R_TYPE; 

SEND_VALUES рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП SEND_VALUES рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ V_GN рдФрд░ V_RSQ , GET_VALUES рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЪрд░ рдХреЗ рд╕рдорд╛рди GET_VALUES , рд╕рд╛рде рд╣реА рд╡рд╣ рдИрдореЗрд▓ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЕрдкрдиреА рдорд┐рдиреА-рд░рд┐рдкреЛрд░реНрдЯ рднреЗрдЬрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред

 PROCEDURE SEND_VALUES(V_GN VARCHAR2, V_RSQ NUMBER, V_MAIL VARCHAR2); END EST_FS_EXHAUST; 

рдкреИрдХреЗрдЬ рдмреЙрдбреА рдореЗрдВ, рд╣рдо GET_VALUES рдлрд╝рдВрдХреНрд╢рди рдФрд░ SEND_VALUES рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ

 CREATE OR REPLACE PACKAGE BODY EST_FS_EXHAUST IS FUNCTION GET_VALUES(V_GN VARCHAR2, V_RSQ NUMBER) RETURN R_TYPE AS  V_REC R_TYPE; BEGIN SELECT T_TYPE( M.TARGET_NAME, D.KEY_VALUE, ROUND(REGR_SLOPE(D.ROLLUP_TIMESTAMP-SYSDATE, NULLIF(ROUND(D.VALUE_AVERAGE,2),0)),0), ROUND((ABS(REGR_INTERCEPT(D.ROLLUP_TIMESTAMP-SYSDATE, NULLIF(ROUND(D.VALUE_AVERAGE,2),0)))),0), ROUND(REGR_R2(D.ROLLUP_TIMESTAMP-SYSDATE, NULLIF(ROUND(D.VALUE_AVERAGE,2),0)),0)) BULK COLLECT INTO V_REC FROM MGMT_METRICS_1DAY D, MGMT_TARGETS M, MGMT_TARGET_MEMBERSHIPS G WHERE M.TARGET_GUID=G.MEMBER_TARGET_GUID AND M.TARGET_GUID=D.TARGET_GUID AND G.COMPOSITE_TARGET_NAME=V_GN AND METRIC_GUID=HEXTORAW('E8838C71E687BF0A9E02FFACC0C9AC80') GROUP BY M.TARGET_NAME, D.KEY_VALUE HAVING REGR_R2(D.ROLLUP_TIMESTAMP-SYSDATE, NULLIF(ROUND(D.VALUE_AVERAGE,2),0)) > V_RSQ      ; RETURN V_REC; END GET_VALUES; PROCEDURE SEND_VALUES(V_GN VARCHAR2, V_RSQ NUMBER, V_MAIL VARCHAR2) IS V_REC R_TYPE; MSG VARCHAR2(2048):=''; BEGIN V_REC:= GET_VALUES(V_GN,V_RSQ); FOR I IN V_REC.FIRST..V_REC.LAST LOOP MSG:=CHR(10)||MSG||' Host '||V_REC(I).TARGET_NAME||' filesystem '||V_REC(I).KEY_VALUE||' will be exhausted in '||V_REC(I).RINSP||' days'|| CHR(9)||CHR(10); END LOOP; EXECUTE IMMEDIATE 'ALTER SESSION SET smtp_out_server = ''mail_server'''; UTL_MAIL.SEND(SENDER => 'monitoring@yourmail.com',       RECIPIENTS => V_MAIL,          SUBJECT => 'Test Mail',          MESSAGE => MSG,        MIME_TYPE => 'text; charset=us-ascii'); END; END EST_FS_EXHAUST; / 

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдЙрд╕ рд╕рдордп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрддреНрдкрд╛рджрдХ рд╣реЛрд╕реНрдЯ рд╕рдореВрд╣ 'prod_hosts' рдХреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬрдЧрд╣ 0.5 рд╕реЗ рдЕрдзрд┐рдХ рдПрдХ рдирд┐рд░реНрдзрд╛рд░рдг рдЧреБрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ:

 begin EST_FS_EXHAUST.SEND_VALUES('prod_hosts',0.5,'operator@yourdomain.com'); end; / PL/SQL procedure successfully completed. 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореЗрд▓ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдЖрддрд╛ рд╣реИ:

рд╣реЛрд╕реНрдЯ рд╣реЛрд╕реНрдЯ 1 рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо / u51 342 рджрд┐рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛
рд╣реЛрд╕реНрдЯ host2 рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо / u40 236 рджрд┐рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛
рд╣реЛрд╕реНрдЯ рд╣реЛрд╕реНрдЯ 3 рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо / u20 / redo01 1100310 рджрд┐рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛
рдореЗрдЬрдмрд╛рди host4 рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо / u10 150 рджрд┐рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛
рд╣реЛрд╕реНрдЯ рд╣реЛрд╕реНрдЯ 4 рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо / u01 / рдПрдХреАрдХрд░рдг 75080 рджрд┐рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛
рд╣реЛрд╕реНрдЯ host4 рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо / u01 / рдРрдк 135 рджрд┐рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛
рд╣реЛрд╕реНрдЯ host5 рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо / u30 / redo01 62252596 рджрд┐рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛
рд╣реЛрд╕реНрдЯ host6 рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо / u01 260 рджрд┐рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛
рд╣реЛрд╕реНрдЯ рд╣реЛрд╕реНрдЯ 7 рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо / u99 1038 рджрд┐рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛

рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо / u20 / redo01 рдФрд░ / u30 / redo01 рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рдпрд╣рд╛рдВ REDO LOGS рд╣реИрдВ рдФрд░ рдЬрдЧрд╣ рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдиреЗ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдереА рдХрд┐ host3 рдкрд░ / u20 / redo01 рдореЗрдВ рдЬрдЧрд╣ 2990 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдЧреА, рдФрд░ 169164 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ host5 рдкрд░ / u30 / redo01 рдореЗрдВред рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкреНрд░рддрд┐рдЧрдорди рд░реЗрдЦрд╛ рдХрд╛ рдврд▓рд╛рди -1 рд╕реЗ рдХрдо рд╣реИред

рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдЯреЗрдмрд▓ рд╕реНрдкреЗрд╕ рдореЗрдВ, рдлрд╛рд╕реНрдЯ рдЖрд░рдУрд╕реАрдП рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрдВрддрд░рд┐рдХреНрд╖ рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдордп рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

Source: https://habr.com/ru/post/hi431112/


All Articles