{"id":1362,"date":"2026-08-21T08:28:18","date_gmt":"2026-08-21T14:28:18","guid":{"rendered":"https:\/\/folken-it.com\/?p=1362"},"modified":"2026-08-21T08:31:11","modified_gmt":"2026-08-21T14:31:11","slug":"las-vistas-v-de-oracle-database-que-todo-administrador-deberia-conocer","status":"publish","type":"post","link":"https:\/\/folken-it.com\/?p=1362","title":{"rendered":"Las vistas V$ de Oracle Database que todo administrador deber\u00eda conocer"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando administramos una base de datos Oracle, una gran parte del troubleshooting comienza con una pregunta:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 est\u00e1 ocurriendo dentro de la base de datos en este momento?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oracle proporciona las <strong>Dynamic Performance Views<\/strong>, conocidas normalmente como <strong>vistas <code>V$<\/code><\/strong>, que permiten consultar informaci\u00f3n mantenida por la instancia sobre su estado y actividad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Algunas de las m\u00e1s importantes son:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>V$INSTANCE\nV$DATABASE\nV$SESSION\nV$PROCESS\nV$SQL\nV$SQLAREA\nV$LOCK\nV$TRANSACTION\nV$SGA\nV$SGAINFO\nV$PGASTAT\nV$SYSTEM_EVENT\nV$SESSION_EVENT\nV$DATAFILE\nV$TEMPFILE\nV$LOG\nV$LOGFILE\nV$ARCHIVED_LOG\nV$RECOVERY_FILE_DEST\nV$RMAN_BACKUP_JOB_DETAILS\nV$DATAGUARD_STATS<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Veamos para qu\u00e9 sirve cada una.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. V$INSTANCE \u2014 Estado de la instancia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Probablemente una de las primeras vistas que deber\u00edamos conocer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    instance_name,\n    host_name,\n    version,\n    status,\n    startup_time\nFROM v$instance;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nos permite responder r\u00e1pidamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u00bfEn qu\u00e9 instancia estoy?\n\u00bfEn qu\u00e9 servidor?\n\u00bfEst\u00e1 OPEN?\n\u00bfCu\u00e1ndo arranc\u00f3?\n\u00bfQu\u00e9 versi\u00f3n ejecuta?<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Muy \u00fatil como primera comprobaci\u00f3n durante un incidente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">2. V$DATABASE \u2014 Informaci\u00f3n de la base<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    db_unique_name,\n    open_mode,\n    database_role,\n    log_mode,\n    protection_mode\nFROM v$database;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta consulta es especialmente \u00fatil en ambientes con <strong>Oracle Data Guard<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podr\u00edamos encontrar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>NAME             PROD\nDB_UNIQUE_NAME   PROD\nOPEN_MODE        READ WRITE\nDATABASE_ROLE    PRIMARY\nLOG_MODE         ARCHIVELOG<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En un Standby:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DATABASE_ROLE    PHYSICAL STANDBY\nOPEN_MODE        READ ONLY WITH APPLY<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">3. V$SESSION \u2014 Sesiones conectadas<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las vistas m\u00e1s importantes para troubleshooting:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    sid,\n    serial#,\n    username,\n    status,\n    machine,\n    program,\n    sql_id\nFROM v$session\nWHERE username IS NOT NULL;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nos permite identificar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>usuarios;<\/li>\n\n\n\n<li>aplicaciones;<\/li>\n\n\n\n<li>sesiones activas;<\/li>\n\n\n\n<li>servidores de origen;<\/li>\n\n\n\n<li>programas;<\/li>\n\n\n\n<li>SQL ejecut\u00e1ndose.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">4. Buscar sesiones ACTIVE<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    sid,\n    serial#,\n    username,\n    machine,\n    program,\n    sql_id,\n    event\nFROM v$session\nWHERE status = 'ACTIVE'\nAND username IS NOT NULL;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto puede ser muy \u00fatil cuando investigamos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>High CPU\nSlow database\nBlocking\nConnection problems\nPerformance degradation<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pero recuerda: una sesi\u00f3n <code>ACTIVE<\/code> no significa autom\u00e1ticamente que exista un problema.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">5. V$PROCESS \u2014 Procesos Oracle<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    pid,\n    spid,\n    pname,\n    program\nFROM v$process;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>SPID<\/code> permite relacionar Oracle con el PID del sistema operativo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Oracle Session\n      \u2193\nV$SESSION\n      \u2193\nV$PROCESS\n      \u2193\nSPID\n      \u2193\nLinux Process<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto resulta especialmente \u00fatil cuando detectamos un proceso Oracle consumiendo mucho CPU desde Linux.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">6. Relacionar Session con Process<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Una consulta muy \u00fatil:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    s.sid,\n    s.serial#,\n    s.username,\n    s.status,\n    s.sql_id,\n    p.spid AS os_pid,\n    s.machine,\n    s.program\nFROM v$session s\nJOIN v$process p\n    ON s.paddr = p.addr\nWHERE s.username IS NOT NULL;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora podemos relacionar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SID\nSERIAL#\nSQL_ID\nOS PID\nUsuario\nAplicaci\u00f3n\nServidor<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Excelente para troubleshooting de CPU.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">7. V$SQL \u2014 SQL almacenado en Shared SQL Area<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Otra vista fundamental:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    sql_id,\n    executions,\n    elapsed_time,\n    cpu_time,\n    buffer_gets,\n    disk_reads,\n    sql_text\nFROM v$sql\nWHERE sql_id = 'SQL_ID';<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Permite investigar una sentencia SQL espec\u00edfica.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">8. SQL con mayor CPU<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT *\nFROM (\n    SELECT\n        sql_id,\n        executions,\n        ROUND(cpu_time\/1000000,2) AS cpu_seconds,\n        ROUND(elapsed_time\/1000000,2) AS elapsed_seconds,\n        sql_text\n    FROM v$sql\n    WHERE cpu_time &gt; 0\n    ORDER BY cpu_time DESC\n)\nWHERE ROWNUM &lt;= 10;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto puede ayudar a encontrar candidatos responsables de alto consumo de CPU.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, recuerda que los valores de <code>V$SQL<\/code> son acumulativos para los cursores presentes y deben interpretarse dentro del contexto y ventana temporal apropiados.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">9. V$SQLAREA<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><code>V$SQLAREA<\/code> proporciona estad\u00edsticas agregadas de SQL compartido.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    sql_id,\n    executions,\n    cpu_time,\n    elapsed_time,\n    buffer_gets,\n    disk_reads,\n    sql_text\nFROM v$sqlarea\nORDER BY cpu_time DESC\nFETCH FIRST 10 ROWS ONLY;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Puede ser \u00fatil para localizar SQL costoso.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">10. V$LOCK \u2014 Locks<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Para revisar locks:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    sid,\n    type,\n    id1,\n    id2,\n    lmode,\n    request,\n    block\nFROM v$lock;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>V$LOCK<\/code> cobra mucho m\u00e1s sentido cuando la relacionamos con <code>V$SESSION<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">11. Identificar sesiones bloqueadoras<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Una forma sencilla de empezar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    sid,\n    serial#,\n    username,\n    blocking_session,\n    event,\n    seconds_in_wait\nFROM v$session\nWHERE blocking_session IS NOT NULL;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podr\u00edamos encontrar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SID 145\n      \u2193\nWaiting for\n      \u2193\nSID 320\n      \u2193\nBlocking Session<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Entonces investigamos la sesi\u00f3n bloqueadora antes de tomar cualquier acci\u00f3n.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">12. V$TRANSACTION \u2014 Transacciones activas<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    s.sid,\n    s.serial#,\n    s.username,\n    t.start_time,\n    t.used_ublk,\n    t.used_urec\nFROM v$transaction t\nJOIN v$session s\n    ON t.ses_addr = s.saddr;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Puede ayudar a identificar transacciones activas y potencialmente grandes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">13. V$SGA \u2014 Memoria SGA<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT *\nFROM v$sga;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nos muestra componentes generales de la <strong>System Global Area<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos consultar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    ROUND(value\/1024\/1024,2) AS mb\nFROM v$sga;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">14. V$SGAINFO \u2014 Informaci\u00f3n detallada de SGA<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    ROUND(bytes\/1024\/1024,2) AS mb\nFROM v$sgainfo;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos encontrar componentes relacionados con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Buffer Cache\nShared Pool\nLarge Pool\nJava Pool\nRedo Buffers\nSGA Target<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">15. V$PGASTAT \u2014 PGA<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Para revisar estad\u00edsticas de PGA:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    value,\n    unit\nFROM v$pgastat;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Es \u00fatil durante troubleshooting relacionado con memoria y operaciones de trabajo de procesos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">16. V$SYSSTAT \u2014 Estad\u00edsticas de la instancia<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    value\nFROM v$sysstat\nORDER BY name;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Contiene numerosas estad\u00edsticas acumuladas de la instancia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos filtrar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    value\nFROM v$sysstat\nWHERE name LIKE '%physical read%';<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    value\nFROM v$sysstat\nWHERE name LIKE '%redo%';<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">17. V$SYSTEM_EVENT \u2014 Wait Events<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las vistas importantes para performance:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    event,\n    total_waits,\n    time_waited,\n    average_wait\nFROM v$system_event\nORDER BY time_waited DESC;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Permite observar estad\u00edsticas acumuladas de espera a nivel de instancia.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">18. V$SESSION_EVENT \u2014 Waits por sesi\u00f3n<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Si queremos investigar una sesi\u00f3n espec\u00edfica:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    sid,\n    event,\n    total_waits,\n    time_waited,\n    average_wait\nFROM v$session_event\nWHERE sid = 145\nORDER BY time_waited DESC;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Conceptualmente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>V$SYSTEM_EVENT\n      \u2193\nInstancia completa\n\nV$SESSION_EVENT\n      \u2193\nSesi\u00f3n espec\u00edfica<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">19. V$SESSION_WAIT<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos consultar informaci\u00f3n de espera:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    sid,\n    event,\n    wait_class,\n    state,\n    seconds_in_wait\nFROM v$session_wait\nWHERE wait_class &lt;&gt; 'Idle';<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En muchas investigaciones modernas, <code>V$SESSION<\/code> ya expone directamente varias columnas de wait information, por lo que tambi\u00e9n conviene revisar all\u00ed <code>EVENT<\/code>, <code>WAIT_CLASS<\/code> y <code>STATE<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">20. V$DATAFILE \u2014 Datafiles<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    file#,\n    name,\n    status\nFROM v$datafile;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para informaci\u00f3n administrativa m\u00e1s completa de tama\u00f1o\/tablespace normalmente tambi\u00e9n utilizaremos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DBA_DATA_FILES<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La diferencia es importante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>V$DATAFILE\n   \u2193\nInformaci\u00f3n din\u00e1mica\/control file\n\nDBA_DATA_FILES\n   \u2193\nInformaci\u00f3n administrativa del diccionario<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">21. V$TEMPFILE \u2014 Tempfiles<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    file#,\n    name,\n    status\nFROM v$tempfile;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Muy \u00fatil para revisar los archivos asociados a temporary tablespaces.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">22. V$LOG \u2014 Online Redo Logs<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    group#,\n    thread#,\n    sequence#,\n    bytes\/1024\/1024 AS size_mb,\n    members,\n    archived,\n    status\nFROM v$log;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos encontrar estados como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CURRENT\nACTIVE\nINACTIVE<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta vista es muy importante para administraci\u00f3n de redo y Data Guard.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">23. V$LOGFILE \u2014 Miembros de Redo Log Groups<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    group#,\n    type,\n    member,\n    status\nFROM v$logfile\nORDER BY group#;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La relaci\u00f3n es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>V$LOG\n   \u2193\nRedo Log Group\n\nV$LOGFILE\n   \u2193\nPhysical Members<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">24. V$ARCHIVED_LOG \u2014 Archive Logs<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    thread#,\n    sequence#,\n    first_time,\n    next_time,\n    applied,\n    deleted\nFROM v$archived_log\nORDER BY sequence# DESC\nFETCH FIRST 20 ROWS ONLY;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta vista es especialmente importante para:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RMAN\nData Guard\nArchive troubleshooting\nRecovery<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">25. V$ARCHIVE_DEST_STATUS<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Para revisar destinos de archive:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    dest_id,\n    status,\n    target,\n    destination,\n    error\nFROM v$archive_dest_status\nWHERE status &lt;&gt; 'INACTIVE';<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si Data Guard deja de transportar redo, esta puede ser una de las primeras vistas a revisar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Presta especial atenci\u00f3n a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>STATUS\nERROR\nDESTINATION<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">26. V$RECOVERY_FILE_DEST \u2014 Fast Recovery Area<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    ROUND(space_limit\/1024\/1024\/1024,2) AS limit_gb,\n    ROUND(space_used\/1024\/1024\/1024,2) AS used_gb,\n    ROUND(space_reclaimable\/1024\/1024\/1024,2) AS reclaimable_gb,\n    number_of_files\nFROM v$recovery_file_dest;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta consulta es muy \u00fatil cuando recibimos alertas relacionadas con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FRA\nArchive Logs\nRMAN\nORA-19809\nORA-19815<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">27. V$RECOVERY_AREA_USAGE<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Para conocer qu\u00e9 est\u00e1 consumiendo la FRA:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    file_type,\n    percent_space_used,\n    percent_space_reclaimable,\n    number_of_files\nFROM v$recovery_area_usage;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos encontrar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ARCHIVED LOG\nBACKUP PIECE\nIMAGE COPY\nFLASHBACK LOG<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto permite responder:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 est\u00e1 consumiendo el espacio de la FRA?<\/strong><\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">28. V$RMAN_BACKUP_JOB_DETAILS \u2014 RMAN<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Una de mis favoritas para Production Support:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    session_key,\n    input_type,\n    status,\n    start_time,\n    end_time,\n    elapsed_seconds\nFROM v$rman_backup_job_details\nORDER BY start_time DESC;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Permite revisar r\u00e1pidamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>COMPLETED\nFAILED\nCOMPLETED WITH WARNINGS<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para investigar un backup nocturno fallido, puede ser un excelente punto de partida.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">29. V$SESSION_LONGOPS \u2014 Operaciones largas<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    sid,\n    serial#,\n    opname,\n    sofar,\n    totalwork,\n    units,\n    ROUND(sofar\/NULLIF(totalwork,0)*100,2) AS pct_complete\nFROM v$session_longops\nWHERE totalwork &gt; 0\nAND sofar &lt;&gt; totalwork;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Puede mostrar progreso para determinadas operaciones largas, incluyendo algunas operaciones de RMAN y otras tareas instrumentadas por Oracle.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">30. V$DATAGUARD_STATS \u2014 Data Guard<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">En un Physical Standby:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    value,\n    unit\nFROM v$dataguard_stats;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Presta especial atenci\u00f3n a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transport lag\napply lag\napply finish time<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Una consulta muy \u00fatil:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    value,\n    unit\nFROM v$dataguard_stats\nWHERE name IN ('transport lag','apply lag');<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">31. V$DATAGUARD_STATUS<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Para eventos relacionados con Data Guard:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    severity,\n    error_code,\n    message,\n    timestamp\nFROM v$dataguard_status\nORDER BY timestamp DESC;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Puede ayudar a correlacionar problemas de transporte y recuperaci\u00f3n.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">32. V$MANAGED_STANDBY<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Tradicionalmente muy utilizada para observar procesos de un Physical Standby:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    process,\n    status,\n    thread#,\n    sequence#\nFROM v$managed_standby;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dependiendo de la versi\u00f3n, tambi\u00e9n debes conocer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>V$DATAGUARD_PROCESS<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">para observar procesos de Data Guard.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">33. V$STANDBY_LOG<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Para revisar Standby Redo Logs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    group#,\n    thread#,\n    sequence#,\n    bytes\/1024\/1024 AS size_mb,\n    status\nFROM v$standby_log\nORDER BY thread#, group#;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Muy importante para arquitecturas con Data Guard.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">34. V$ASM_DISKGROUP \u2014 ASM<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Si trabajamos con ASM:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    state,\n    type,\n    total_mb,\n    free_mb,\n    usable_file_mb\nFROM v$asm_diskgroup;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nos permite observar capacidad de disk groups como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>+DATA\n+FRA\n+RECO<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Normalmente esta consulta se realiza desde el contexto\/instancia ASM y con los privilegios adecuados.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">35. V$PARAMETER \u2014 Par\u00e1metros<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    value,\n    isdefault,\n    issys_modifiable\nFROM v$parameter\nORDER BY name;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para uno espec\u00edfico:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    value\nFROM v$parameter\nWHERE name = 'sga_target';<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos utilizar SQL*Plus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHOW PARAMETER sga_target<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">36. V$SPPARAMETER<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Permite observar valores almacenados en el SPFILE:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    value\nFROM v$spparameter\nWHERE value IS NOT NULL\nORDER BY name;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto nos ayuda a entender la diferencia entre:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>V$PARAMETER\n    \u2193\nValores efectivos de la instancia\n\nV$SPPARAMETER\n    \u2193\nValores almacenados en SPFILE<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Las vistas V$ que deber\u00edas memorizar primero<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Si est\u00e1s comenzando con administraci\u00f3n Oracle, yo empezar\u00eda por estas:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Vista<\/th><th>\u00bfPara qu\u00e9 la utilizar\u00eda?<\/th><\/tr><\/thead><tbody><tr><td><code>V$INSTANCE<\/code><\/td><td>Estado de la instancia<\/td><\/tr><tr><td><code>V$DATABASE<\/code><\/td><td>Estado, rol y modo de la DB<\/td><\/tr><tr><td><code>V$SESSION<\/code><\/td><td>Sesiones y conexiones<\/td><\/tr><tr><td><code>V$PROCESS<\/code><\/td><td>Procesos Oracle\/OS<\/td><\/tr><tr><td><code>V$SQL<\/code><\/td><td>SQL y estad\u00edsticas<\/td><\/tr><tr><td><code>V$SQLAREA<\/code><\/td><td>SQL agregado<\/td><\/tr><tr><td><code>V$LOCK<\/code><\/td><td>Locks<\/td><\/tr><tr><td><code>V$TRANSACTION<\/code><\/td><td>Transacciones<\/td><\/tr><tr><td><code>V$SGAINFO<\/code><\/td><td>Memoria SGA<\/td><\/tr><tr><td><code>V$PGASTAT<\/code><\/td><td>Memoria PGA<\/td><\/tr><tr><td><code>V$SYSSTAT<\/code><\/td><td>Estad\u00edsticas de instancia<\/td><\/tr><tr><td><code>V$SYSTEM_EVENT<\/code><\/td><td>Wait events globales<\/td><\/tr><tr><td><code>V$SESSION_EVENT<\/code><\/td><td>Waits por sesi\u00f3n<\/td><\/tr><tr><td><code>V$DATAFILE<\/code><\/td><td>Datafiles<\/td><\/tr><tr><td><code>V$LOG<\/code><\/td><td>Redo log groups<\/td><\/tr><tr><td><code>V$LOGFILE<\/code><\/td><td>Redo members<\/td><\/tr><tr><td><code>V$ARCHIVED_LOG<\/code><\/td><td>Archive logs<\/td><\/tr><tr><td><code>V$ARCHIVE_DEST_STATUS<\/code><\/td><td>Archive\/Data Guard destinations<\/td><\/tr><tr><td><code>V$RECOVERY_FILE_DEST<\/code><\/td><td>Capacidad FRA<\/td><\/tr><tr><td><code>V$RECOVERY_AREA_USAGE<\/code><\/td><td>Uso de FRA<\/td><\/tr><tr><td><code>V$RMAN_BACKUP_JOB_DETAILS<\/code><\/td><td>Backups RMAN<\/td><\/tr><tr><td><code>V$SESSION_LONGOPS<\/code><\/td><td>Operaciones largas<\/td><\/tr><tr><td><code>V$DATAGUARD_STATS<\/code><\/td><td>Data Guard lag<\/td><\/tr><tr><td><code>V$DATAGUARD_STATUS<\/code><\/td><td>Eventos Data Guard<\/td><\/tr><tr><td><code>V$STANDBY_LOG<\/code><\/td><td>Standby Redo Logs<\/td><\/tr><tr><td><code>V$ASM_DISKGROUP<\/code><\/td><td>Capacidad ASM<\/td><\/tr><tr><td><code>V$PARAMETER<\/code><\/td><td>Par\u00e1metros actuales<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Una metodolog\u00eda para Production Support<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que recibimos una alerta:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>&#8220;Oracle Database has high CPU utilization.&#8221;<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">En lugar de reiniciar la base de datos, podemos investigar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>HIGH CPU\n   \u2193\n\u00bfInstancia correcta?\n   \u2193\nV$INSTANCE\n   \u2193\n\u00bfQui\u00e9n est\u00e1 conectado?\n   \u2193\nV$SESSION\n   \u2193\n\u00bfSesiones ACTIVE?\n   \u2193\nV$SESSION\n   \u2193\n\u00bfQu\u00e9 SQL ejecutan?\n   \u2193\nSQL_ID\n   \u2193\nV$SQL\n   \u2193\n\u00bfQui\u00e9n consume CPU?\n   \u2193\nV$PROCESS \u2194 OS PID\n   \u2193\n\u00bfExisten waits?\n   \u2193\nV$SESSION \/ V$SESSION_EVENT\n   \u2193\n\u00bfLocks?\n   \u2193\nV$LOCK \/ blocking_session\n   \u2193\n\u00bfSQL problem\u00e1tico?\n   \u2193\nPlan \/ estad\u00edsticas \/ workload\n   \u2193\nMitigaci\u00f3n\n   \u2193\nRoot Cause Analysis<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta es la verdadera utilidad de las vistas <code>V$<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No se trata de memorizar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT * FROM v$session;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se trata de aprender a <strong>relacionar informaci\u00f3n<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Linux PID\n    \u2195\nV$PROCESS\n    \u2195\nV$SESSION\n    \u2195\nSQL_ID\n    \u2195\nV$SQL\n    \u2195\nWait Event\n    \u2195\nDatabase Resource<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando entiendes estas relaciones, Oracle deja de parecer una &#8220;caja negra&#8221;. Puedes seguir el problema desde el <strong>servidor \u2192 proceso \u2192 sesi\u00f3n \u2192 SQL \u2192 recurso \u2192 causa ra\u00edz<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para cerrar tu art\u00edculo, usar\u00eda esta pregunta:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Cuando una base Oracle comienza a degradarse, \u00bfcu\u00e1l es la primera vista V$ que consultas?<\/strong><\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Cuando administramos una base de datos Oracle, una gran parte del troubleshooting comienza con una pregunta: \u00bfQu\u00e9 est\u00e1 ocurriendo dentro de la [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1363,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[56,55],"tags":[],"class_list":["post-1362","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-databases","category-oracle"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/folken-it.com\/wp-content\/uploads\/2026\/08\/vistasdeadministracion.png?fit=1024%2C1536&ssl=1","_links":{"self":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1362"}],"version-history":[{"count":1,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1362\/revisions"}],"predecessor-version":[{"id":1364,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1362\/revisions\/1364"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/media\/1363"}],"wp:attachment":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}