dba:oracle:oracle_sql_querys:storage_management
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
dba:oracle:oracle_sql_querys:storage_management [2022/02/11 11:36] – external edit 127.0.0.1 | dba:oracle:oracle_sql_querys:storage_management [2023/01/31 08:15] (current) – removed dodger | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== ORACLE SQL QUERIES : Storage ====== | ||
- | |||
- | ===== Tablespaces list===== | ||
- | |||
- | <code sql> SELECT TABLESPACE_NAME FROM DBA_TABLESPACES ;</ | ||
- | |||
- | ===== Datafile list with the BD not OPEN ===== | ||
- | <code sql> | ||
- | COL NAME FORMAT A200 | ||
- | select * from v$dbfile order by 1; | ||
- | </ | ||
- | |||
- | ===== List datafiles (simple)===== | ||
- | <code sql> | ||
- | col FILE_NAME FORMAT A80; | ||
- | COL tablespace_name FORMAT A30; | ||
- | select FILE_ID, | ||
- | file_name, | ||
- | Tablespace_name, | ||
- | bytes/ | ||
- | MAXBYTES/ | ||
- | AUTOEXTENSIBLE " | ||
- | from dba_data_files | ||
- | order by FILE_ID | ||
- | ;</ | ||
- | or super simple: | ||
- | <code sql> | ||
- | select file_name from dba_data_files order by 1; | ||
- | </ | ||
- | |||
- | ===== Tablespace creation ===== | ||
- | ==== Without ASM==== | ||
- | <code sql> | ||
- | TABLESPACE " | ||
- | DATAFILE '/ | ||
- | SIZE 500M AUTOEXTEND | ||
- | ON MAXSIZE 5000M | ||
- | ; | ||
- | </ | ||
- | ==== With ASM==== | ||
- | <code sql> | ||
- | CREATE SMALLFILE | ||
- | TABLESPACE " | ||
- | DATAFILE ' | ||
- | SIZE 500M AUTOEXTEND | ||
- | ON MAXSIZE 5000M | ||
- | ; | ||
- | </ | ||
- | |||
- | ===== View Tablespace DDL===== | ||
- | <code sql> | ||
- | select dbms_metadata.get_ddl(' | ||
- | </ | ||
- | |||
- | ===== Add space to Tablespace ===== | ||
- | <code sql> | ||
- | add datafile / | ||
- | ; | ||
- | </ | ||
- | |||
- | |||
- | ===== Space Information ===== | ||
- | |||
- | === ASM Diskgroup information==== | ||
- | <code sql> | ||
- | o | ||
- | <code sql> | ||
- | select | ||
- | from v$asm_disk | ||
- | order by group_number | ||
- | / | ||
- | </ | ||
- | |||
- | |||
- | ====Tablespace information==== | ||
- | Mi query, tiene en cuenta si el tablespace tiene autoextend o es de tamaño fijo para computar el espacio REAL: | ||
- | <code sql> | ||
- | COL TABLESPACE_NAME FORMAT A40 | ||
- | COL MAX_MB FORMAT 99999999999 | ||
- | COL REAL_FREE_MB FORMAT 99999999999 | ||
- | COL PERCENT FORMAT 999.99 | ||
- | SELECT TABLESPACE_NAME, | ||
- | MAX_MB, | ||
- | REAL_FREE_MB FREE_MB, | ||
- | MAX_MB-REAL_FREE_MB USED_MB, | ||
- | (MAX_MB-REAL_FREE_MB)/ | ||
- | FROM ( | ||
- | SELECT MAXUSAGE.TABLESPACE_NAME, | ||
- | MAXUSAGE.MAX_MB, | ||
- | CASE WHEN MAXUSAGE.ACTUAL_DATAFILE_MB < MAXUSAGE.MAX_MB THEN | ||
- | MAX_MB-(ACTUAL_DATAFILE_MB-FREE_MB) | ||
- | ELSE | ||
- | FREE_MB | ||
- | END REAL_FREE_MB | ||
- | FROM | ||
- | ( | ||
- | select TABLESPACE_NAME, | ||
- | SUM(case when MAXBYTES > 0 then MAXBYTES else BYTES END)/ | ||
- | SUM(BYTES)/ | ||
- | FROM DBA_DATA_FILES | ||
- | GROUP BY TABLESPACE_NAME | ||
- | ) MAXUSAGE, | ||
- | ( | ||
- | select TABLESPACE_NAME, | ||
- | FROM dba_free_space | ||
- | GROUP BY TABLESPACE_NAME | ||
- | ) FREEUSAGE | ||
- | WHERE MAXUSAGE.TABLESPACE_NAME=FREEUSAGE.TABLESPACE_NAME) | ||
- | ; | ||
- | </ | ||
- | |||
- | Query " | ||
- | <code sql>SET PAGES 999 | ||
- | COL TABLESPACE_NAME FORMAT A40 | ||
- | COL " | ||
- | COL " | ||
- | COL " | ||
- | COL " | ||
- | |||
- | |||
- | SELECT | ||
- | CEIL(USED.USED_MB) " | ||
- | USED.USED_MB-FREE.FREE_MB " | ||
- | DECODE(CEIL(FREE.FREE_MB), | ||
- | DECODE(100 - CEIL(FREE.FREE_MB/ | ||
- | FROM ( | ||
- | SELECT | ||
- | SUM(BYTES)/ | ||
- | FROM DBA_DATA_FILES | ||
- | GROUP BY TABLESPACE_NAME | ||
- | UNION ALL | ||
- | SELECT TABLESPACE_NAME || ' | ||
- | FROM DBA_TEMP_FILES | ||
- | GROUP BY TABLESPACE_NAME | ||
- | ) USED, | ||
- | ( | ||
- | SELECT | ||
- | SUM(BYTES)/ | ||
- | FROM DBA_FREE_SPACE | ||
- | GROUP BY TABLESPACE_NAME | ||
- | ) FREE | ||
- | WHERE USED.TABLESPACE_NAME=FREE.TABLESPACE_NAME | ||
- | ORDER BY 1 | ||
- | / | ||
- | </ | ||
- | |||
- | |||
- | ==== Space used by tables, indexes... ==== | ||
- | |||
- | Column format | ||
- | <code SQL> | ||
- | COL OWNER FORMAT A10; | ||
- | COL SEGMENT_NAME FORMAT A35; | ||
- | COL TABLESPACE_NAME FORMAT A35; | ||
- | COL TOTAL_MB FORMAT 99999990.9999 ; | ||
- | COL SUM_BYTES FORMAT 999999999999999999.9999 ; | ||
- | </ | ||
- | * Tables: | ||
- | <code SQL> | ||
- | SELECT | ||
- | SUM(BYTES) SUM_BYTES, | ||
- | NVL(SUM(BYTES)/ | ||
- | FROM DBA_EXTENTS | ||
- | WHERE OWNER=' | ||
- | AND SEGMENT_TYPE=' | ||
- | GROUP BY SEGMENT_NAME, | ||
- | ORDER BY SEGMENT_NAME, | ||
- | ; | ||
- | </ | ||
- | * Indexes: | ||
- | <code SQL> | ||
- | SELECT | ||
- | SUM(BYTES) SUM_BYTES, | ||
- | NVL(SUM(BYTES)/ | ||
- | FROM DBA_EXTENTS | ||
- | WHERE OWNER=' | ||
- | AND SEGMENT_TYPE=' | ||
- | GROUP BY SEGMENT_NAME, | ||
- | ORDER BY SEGMENT_NAME, | ||
- | ; | ||
- | </ | ||
- | |||
- | Sort by size: | ||
- | * Tables: | ||
- | <code sql> | ||
- | SELECT SEGMENT_NAME, | ||
- | ( | ||
- | SELECT | ||
- | SUM(BYTES) SUM_BYTES | ||
- | FROM DBA_EXTENTS | ||
- | WHERE OWNER=' | ||
- | AND SEGMENT_TYPE=' | ||
- | GROUP BY SEGMENT_NAME, | ||
- | ) | ||
- | ORDER BY SUM_BYTES | ||
- | ; | ||
- | </ | ||
- | * Indixes: | ||
- | <code sql> | ||
- | SELECT SEGMENT_NAME, | ||
- | ( | ||
- | SELECT | ||
- | SUM(BYTES) SUM_BYTES | ||
- | FROM DBA_EXTENTS | ||
- | WHERE OWNER=' | ||
- | AND SEGMENT_TYPE=' | ||
- | GROUP BY SEGMENT_NAME, | ||
- | ) | ||
- | ORDER BY SUM_BYTES | ||
- | ; | ||
- | </ | ||
- | |||
- | ==== REAL space taken by a table ==== | ||
- | Based on: | ||
- | How To Find The Size Of A Number Of Rows Of A Table (Doc ID 1370050.1): | ||
- | |||
- | Se puede usar el AVG_ROW_LEN de DBA_TABLES, que es espacio medio en BYTES de cada row en la tabla. | ||
- | |||
- | Primero hay que lanzar el cálculo de stats: | ||
- | <code sql> | ||
- | ANALYZE TABLE < | ||
- | </ | ||
- | |||
- | |||
- | Necesitamos también el tamaño de bloque: | ||
- | <code sql> | ||
- | SHOW PARAMETER DB_BLOCK_SIZE | ||
- | </ | ||
- | |||
- | |||
- | <code sql> | ||
- | SELECT ( | ||
- | (SELECT COUNT(*) FROM < | ||
- | / | ||
- | ((< | ||
- | ) as ESTIMATED_MB | ||
- | FROM DBA_TABLES | ||
- | WHERE TABLE_NAME LIKE '< | ||
- | </ | ||
- | |||
- | |||
- | ==== Space used by a table with LOB columns ==== | ||
- | <code sql> | ||
- | SELECT segment_name, | ||
- | FROM dba_segments | ||
- | WHERE ( | ||
- | owner = ' | ||
- | AND segment_name = ' | ||
- | OR segment_name IN ( | ||
- | SELECT segment_name | ||
- | FROM all_lobs | ||
- | WHERE table_name = ' | ||
- | UNION | ||
- | SELECT index_name | ||
- | FROM all_lobs | ||
- | WHERE table_name = ' | ||
- | ) | ||
- | ); | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ==== Space DELTA of a table ==== | ||
- | Based on AWR tables: | ||
- | <code sql> | ||
- | |||
- | SELECT | ||
- | h.BEGIN_INTERVAL_TIME | ||
- | FROM | ||
- | DBA_OBJECTS o, | ||
- | DBA_HIST_SNAPSHOT h, | ||
- | ( | ||
- | SELECT | ||
- | SNAP_ID, | ||
- | TS#, | ||
- | OBJ#, | ||
- | SPACE_USED_DELTA | ||
- | FROM | ||
- | DBA_HIST_SEG_STAT | ||
- | where SPACE_USED_DELTA >0 | ||
- | ) s, | ||
- | v$tablespace t | ||
- | WHERE | ||
- | s.OBJ# = o.OBJECT_ID | ||
- | AND s.TS# = t.TS# | ||
- | and | ||
- | and | ||
- | and s.SNAP_ID = h.SNAP_ID | ||
- | ORDER BY | ||
- | 1 desc | ||
- | ; | ||
- | |||
- | </ | ||
- | |||
- | ===== TEMP tablespace Management ===== | ||
- | |||
- | ==== TEMP tablespace datafiles ==== | ||
- | <code SQL> | ||
- | col file_name format a150 | ||
- | |||
- | SELECT | ||
- | file_id, | ||
- | file_name, | ||
- | tablespace_name, | ||
- | status | ||
- | FROM | ||
- | dba_temp_files; | ||
- | </ | ||
- | ==== New TEMP ==== | ||
- | <code sql> | ||
- | CREATE TEMPORARY TABLESPACE TEMP tempfile '/ | ||
- | </ | ||
- | |||
- | ==== Add space to TEMP ==== | ||
- | <code sql> | ||
- | ALTER TABLESPACE TEMP ADD TEMPFILE | ||
- | </ | ||
- | |||
- | ==== Switch TEMP tablespace ==== | ||
- | <code sql> | ||
- | ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP ; | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ===== TEMP space usage ===== | ||
- | |||
- | Based on the following docs: | ||
- | * Doc ID 793380.1 | ||
- | * Doc ID 317441.1 | ||
- | |||
- | Both based on trying to solve ORA-1652 | ||
- | |||
- | Check the status of the sort segment utilization : | ||
- | <code sql> | ||
- | select TABLESPACE_NAME, | ||
- | </ | ||
- | |||
- | And overall: | ||
- | <code sql> | ||
- | |||
- | COL USERNAME FORMAT A33 | ||
- | COL SID_SERIAL FORMAT A15 | ||
- | COL OSUSER FORMAT A33 | ||
- | COL TABLESPACE FORMAT A40 | ||
- | COL sql_text format A100 word wrapped | ||
- | |||
- | SELECT a.username, | ||
- | a.sid || ',' | ||
- | a.osuser, | ||
- | b.tablespace, | ||
- | b.blocks, | ||
- | c.sql_text | ||
- | FROM v$session a, | ||
- | v$tempseg_usage b, | ||
- | v$sqlarea c | ||
- | WHERE a.saddr = b.session_addr | ||
- | AND c.address= a.sql_address | ||
- | AND c.hash_value = a.sql_hash_value | ||
- | ORDER BY b.tablespace, | ||
- | </ | ||
- | |||
- | ==== Space used by TEMP==== | ||
- | <code SQL> | ||
- | COL TABLESPACE_SIZE FOR 999, | ||
- | COL ALLOCATED_SPACE FOR 999, | ||
- | COL FREE_SPACE FOR 999, | ||
- | |||
- | SELECT * | ||
- | FROM | ||
- | / | ||
- | </ | ||
- | Resumido en MB: | ||
- | <code SQL> | ||
- | SELECT | ||
- | | ||
- | | ||
- | SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_used, | ||
- | | ||
- | FROM | ||
- | | ||
- | ( | ||
- | SELECT | ||
- | | ||
- | | ||
- | SUM (C.bytes) / 1024 / 1024 mb_total | ||
- | FROM | ||
- | | ||
- | | ||
- | WHERE | ||
- | | ||
- | GROUP BY | ||
- | | ||
- | | ||
- | ) D | ||
- | WHERE | ||
- | | ||
- | GROUP by | ||
- | | ||
- | | ||
- | / | ||
- | </ | ||
- | |||
- | |||
- | |||
- | =====Managing ASM===== | ||
- | ==== Connection ==== | ||
- | Export vars: | ||
- | <code sql> | ||
- | export ORACLE_BASE=/ | ||
- | export ORACLE_SID=+ASM | ||
- | export ORACLE_HOME=/ | ||
- | export TNS_ADMIN=/ | ||
- | export PATH=/ | ||
- | sqlplus '/ as sysasm' | ||
- | </ | ||
- | O usar el " | ||
- | |||
- | Asm cli/ | ||
- | <code sql> | ||
- | |||
- | ====Main views==== | ||
- | | <code sql> | ||
- | | <code sql> | ||
- | | <code sql> | ||
- | | <code sql> | ||
- | | <code sql> | ||
- | | <code sql> | ||
- | | <code sql> | ||
- | | <code sql> | ||
- | |||
- | |||
- | ==== Disk list ==== | ||
- | <code sql> | ||
- | COL PATH FORMAT A100 | ||
- | COL NAME FORMAT A40 | ||
- | COL FAILGROUP FORMAT A30 | ||
- | SELECT | ||
- | PATH, | ||
- | OS_MB, | ||
- | TOTAL_MB, | ||
- | FREE_MB, | ||
- | STATE, | ||
- | REDUNDANCY, | ||
- | FAILGROUP | ||
- | FROM V$ASM_DISK | ||
- | ORDER BY NAME | ||
- | ; | ||
- | </ | ||
- | ==== Diskgroup list==== | ||
- | <code sql> | ||
- | COLUMN DISKGROUP FORMAT A20; | ||
- | COLUMN CAPACITY FORMAT 999999999; | ||
- | COLUMN TOTAL_MB FORMAT 999999999; | ||
- | COLUMN FREE_MB FORMAT 999999999; | ||
- | COLUMN SYS_PATH FORMAT A80; | ||
- | SELECT D.NAME AS DISK_NAME, | ||
- | G.NAME AS DISKGROUP, | ||
- | D.OS_MB AS CAPACITY, | ||
- | D.TOTAL_MB AS TOTAL_MB, | ||
- | D.FREE_MB AS FREE_MB, | ||
- | D.STATE AS STATE, | ||
- | D.PATH AS SYS_PATH | ||
- | FROM V$ASM_DISK D, V$ASM_DISKGROUP G | ||
- | WHERE D.GROUP_NUMBER=G.GROUP_NUMBER ; | ||
- | |||
- | </ | ||
- | |||
- | |||
- | ==== Diskgroups space==== | ||
- | <code sql> | ||
- | COLUMN DISKGROUP FORMAT A20; | ||
- | COLUMN CAPACITY_GB FORMAT 999999999.99; | ||
- | COLUMN FREE_GB FORMAT 999999999.99; | ||
- | SELECT G.NAME AS DISKGROUP, | ||
- | SUM(D.TOTAL_MB)/ | ||
- | SUM(D.FREE_MB)/ | ||
- | FROM V$ASM_DISK D, V$ASM_DISKGROUP G | ||
- | WHERE D.GROUP_NUMBER=G.GROUP_NUMBER | ||
- | GROUP BY G.NAME | ||
- | ; | ||
- | </ | ||
- | ==== Diskgroups Info==== | ||
- | <code sql> | ||
- | COL NAME FORMAT A60 | ||
- | COL VALUE FORMAT A30 | ||
- | SELECT dg.name AS diskgroup, | ||
- | a.name, | ||
- | A.VALUE, | ||
- | READ_ONLY | ||
- | FROM V$ASM_DISKGROUP dg, V$ASM_ATTRIBUTE a | ||
- | WHERE dg.group_number = a.group_number | ||
- | ORDER BY DG.NAME | ||
- | ; | ||
- | </ | ||
- | |||
- | ==== Diskgroup Creation ==== | ||
- | Para crear el diskgroup, debemos hacer un : | ||
- | <code sql> | ||
- | / | ||
- | </ | ||
- | El dispositivo tiene que ser una partición de disco (no directamente un sdX) | ||
- | |||
- | Después, listamos el path desde ASM: | ||
- | <code sql> | ||
- | SELECT NAME, PATH FROM V$ASM_DISK ; | ||
- | </ | ||
- | Y con el path hacemos la query de create: | ||
- | <code sql> | ||
- | ' | ||
- | ' | ||
- | </ | ||
- | ==== Diskgroup deletion==== | ||
- | <code sql> | ||
- | DROP DISKGROUP ' | ||
- | </ | ||
- | O | ||
- | <code sql> | ||
- | DROP DISKGROUP ' | ||
- | </ | ||
- | |||
- | |||
- | =====ACFS===== | ||
- | Documentación básica: | ||
- | * [[http:// | ||
- | |||
- | |||
- | ===== FRA ===== | ||
- | Flash recovery area | ||
- | |||
- | ==== FRA reserved size ==== | ||
- | <code sql> | ||
- | show parameter db_recovery; | ||
- | </ | ||
- | |||
- | ==== FRA space usage==== | ||
- | <code sql> select * from v$flash_recovery_area_usage; | ||
- | </ | ||
- | y | ||
- | <code sql> | ||
- | COL NAME FORMAT A100; | ||
- | SELECT NAME, | ||
- | | ||
- | | ||
- | | ||
- | FROM V$RECOVERY_FILE_DEST ; | ||
- | </ | ||
- | ===== UNDO ===== | ||
- | ==== Undo Info ==== | ||
- | <code sql> | ||
- | COL NAME FORMAT A20; | ||
- | COL VALUE FORMAT A60; | ||
- | SELECT name, value | ||
- | FROM gv$parameter | ||
- | WHERE name LIKE ' | ||
- | </ | ||
- | |||
- | ==== UNDO Space usage ==== | ||
- | Very simple: | ||
- | <code sql> | ||
- | select tablespace_name, | ||
- | from dba_undo_extents group by tablespace_name, | ||
- | </ | ||
- | |||
- | |||
- | <code sql> | ||
- | select | ||
- | NVL(USEDSPACE.USED, | ||
- | 100 - trunc(NVL(USEDSPACE.USED, | ||
- | FROM ( | ||
- | SELECT TABLESPACE_NAME, | ||
- | FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = (SELECT value FROM v$parameter WHERE name LIKE ' | ||
- | GROUP BY TABLESPACE_NAME | ||
- | ) TOTALSPACE | ||
- | LEFT OUTER JOIN | ||
- | ( | ||
- | SELECT TABLESPACE_NAME, | ||
- | FROM DBA_UNDO_EXTENTS | ||
- | WHERE (STATUS=' | ||
- | AND TABLESPACE_NAME = (SELECT value FROM v$parameter WHERE name LIKE ' | ||
- | GROUP BY TABLESPACE_NAME | ||
- | ) USEDSPACE | ||
- | ON TOTALSPACE.TABLESPACE_NAME=USEDSPACE.TABLESPACE_NAME | ||
- | ; | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ==== UNDO space usage by sessions | ||
- | <code sql> | ||
- | col ROLL_NAME format a30 | ||
- | col userID format a40 | ||
- | col sid_serial format a15 | ||
- | COL PROGRAM FORMAT A50 | ||
- | COL MACHINE FORMAT A40 | ||
- | |||
- | SELECT r.name roll_name, | ||
- | | ||
- | s.sid || ' | ||
- | | ||
- | | ||
- | | ||
- | FROM v$lock l, v$rollname r, v$session s | ||
- | | ||
- | AND TRUNC (l.id1(+) / 65536) = r.usn | ||
- | AND l.TYPE(+) = ' | ||
- | AND l.lmode(+) = 6 | ||
- | ORDER BY r.name | ||
- | / | ||
- | </ | ||
- | ==== Optimal UNDO retention ==== | ||
- | <code sql> | ||
- | col "UNDO RETENTION [Sec]" format a30 | ||
- | SELECT d.undo_size/ | ||
- | | ||
- | | ||
- | | ||
- | FROM ( | ||
- | | ||
- | FROM v$datafile a, | ||
- | | ||
- | | ||
- | WHERE c.contents = ' | ||
- | AND c.status = ' | ||
- | AND b.name = c.tablespace_name | ||
- | AND a.ts# = b.ts# | ||
- | ) d, | ||
- | | ||
- | | ||
- | ( | ||
- | | ||
- | undo_block_per_sec | ||
- | FROM v$undostat | ||
- | ) g | ||
- | WHERE e.name = ' | ||
- | AND f.name = ' | ||
- | ; | ||
- | </ | ||
- | |||
- | ==== UNDO space estimation ==== | ||
- | |||
- | <code sql> | ||
- | SELECT d.undo_size/ | ||
- | | ||
- | | ||
- | | ||
- | " | ||
- | FROM ( | ||
- | | ||
- | FROM v$datafile a, | ||
- | v$tablespace b, | ||
- | dba_tablespaces c | ||
- | WHERE c.contents = ' | ||
- | AND c.status = ' | ||
- | AND b.name = c.tablespace_name | ||
- | AND a.ts# = b.ts# | ||
- | ) d, | ||
- | v$parameter e, | ||
- | | ||
- | ( | ||
- | | ||
- | | ||
- | FROM v$undostat | ||
- | ) g | ||
- | WHERE e.name = ' | ||
- | AND f.name = ' | ||
- | ; | ||
- | </ | ||
- | |||
- | |||
- | ==== Add space to UNDO ==== | ||
- | <code sql> | ||
- | ALTER TABLESPACE undotbs_01 | ||
- | ADD DATAFILE ' | ||
- | MAXSIZE UNLIMITED; | ||
- | </ | ||
- | |||
- | ==== New UNDO ==== | ||
- | <code sql> | ||
- | CREATE UNDO TABLESPACE undotbs_02 | ||
- | | ||
- | </ | ||
- | |||
- | ==== UNDO switch ==== | ||
- | <code sql> | ||
- | ALTER SYSTEM SET undo_tablespace = TESTUNDO SCOPE=BOTH; | ||
- | </ | ||
- | |||
- | ==== Auto tuned " | ||
- | Si estamos en Automatic UNDO management (lo normal), el parámetro UNDO_RETENTION es IGNORADO, y se gestiona dinámicamente basado en si el tablespace es fijo o dinámico e intentando mantener siempre la máxima retención en el UNDO y el umbral de alerta. | ||
- | |||
- | Para ver el auto tune: | ||
- | <code sql> | ||
- | COL begin_time format a30 | ||
- | col end_time format a30 | ||
- | col MAXQUERYID FORMAT A20 | ||
- | |||
- | SELECT to_char(begin_time, | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | FROM v$undostat | ||
- | ORDER BY end_time; | ||
- | </ | ||
- | (más simple): | ||
- | <code sql> | ||
- | select to_char(begin_time, | ||
- | | ||
- | | ||
- | from v$undostat | ||
- | order by end_time; | ||
- | </ | ||
- | |||
- | ==== UNDO alert threshold ==== | ||
- | Cambiar '' | ||
- | <code sql> | ||
- | declare | ||
- | warning_operator binary_integer; | ||
- | warning_value varchar2(60); | ||
- | critical_operator binary_integer; | ||
- | critical_value varchar2(60); | ||
- | observation_period binary_integer; | ||
- | consecutive_occurrences binary_integer; | ||
- | begin | ||
- | |||
- | dbms_server_alert.get_threshold( | ||
- | dbms_server_alert.tablespace_pct_full, | ||
- | warning_operator, | ||
- | warning_value, | ||
- | critical_operator, | ||
- | critical_value, | ||
- | observation_period, | ||
- | consecutive_occurrences, | ||
- | null, | ||
- | dbms_server_alert.object_type_tablespace, | ||
- | object_name => ' | ||
- | |||
- | dbms_output.put_line(' | ||
- | dbms_output.put_line(' | ||
- | dbms_output.put_line(' | ||
- | dbms_output.put_line(' | ||
- | dbms_output.put_line(' | ||
- | dbms_output.put_line(' | ||
- | end; | ||
- | / | ||
- | </ | ||
- | |||
- | y: | ||
- | <code sql> | ||
- | COL METRICS_NAME FORMAT A30; | ||
- | COL WARNING_OPERATOR FORMAT A16; | ||
- | COL WARNING_VALUE FORMAT A30; | ||
- | COL CRITICAL_OPERATOR FORMAT A16; | ||
- | COL CRITICAL_VALUE FORMAT A8; | ||
- | COL OPERATION_PERIOD FORMAT A10; | ||
- | COL CONSECUTIVE_OCCURRENCES FORMAT 9999999999; | ||
- | COL INSTANCE_NAME FORMAT A15; | ||
- | COL OBJECT_NAME FORMAT A12; | ||
- | COL OBJECT_TYPE FORMAT A10; | ||
- | COL STATUS FORMAT A10; | ||
- | |||
- | SELECT * FROM DBA_THRESHOLDS ; | ||
- | |||
- | </ | ||
- | |||
- | |||
- | ===== dNFS ===== | ||
- | |||
- | ==== List dNFS servers ==== | ||
- | <code sql> | ||
- | COL RDMAENABLE FORMAT A10 | ||
- | COL SVRNAME FORMAT A30 | ||
- | col DIRNAME FORMAT A120 | ||
- | select * from V$DNFS_SERVERS ; | ||
- | </ | ||
- | |||
- | ==== List dNFS channels ==== | ||
- | <code sql> | ||
- | col path format a40 | ||
- | col local format a40 | ||
- | col SVRNAME format a40 | ||
- | select pnum, svrname, path, local from v$dnfs_channels ; | ||
- | </ | ||
- | |||
- | |||
- | ==== List dNFS Files ==== | ||
- | <code sql> | ||
- | COL FILENAME FORMAT A200 | ||
- | select * from V$DNFS_FILES ; | ||
- | </ | ||
- | |||
dba/oracle/oracle_sql_querys/storage_management.1644579407.txt.gz · Last modified: 2022/02/11 11:36 by 127.0.0.1