Gestión de Base de Datos de Oracle
Impresiona a tu jefe con estas consultas de gestión de Base de Datos de Oracle.
Admitámoslo, administrar y velar por el correcto funcionamiento de una base de datos no es tarea de un día, y menos con el vasto repertorio de consultas y metodologías que podemos aplicar para ello.
A la hora de ensuciarse, puedes picar en la mina con un pico y una pala o puedes hacerlo con maquinaria pesada, de ti depende cuanto tiempo quieras invertir en ello o cuanto te quieras complicar la vida.
Por ello, impresiona a tu jefe con estas consultas de gestión de Base de Datos de Oracle y ahorra esfuerzo y tiempo. Estas queries convertirán tu pico en un taladro neumático de última generación y dejarán a tu superior pensando que eres el próximo Messi del SQL.
Pero, antes de empezar, asegúrate de tener privilegios de administrador en tu base de datos de confianza, ya que varias de estas consultas te darán un bonito y frustrante mensaje de error si no tienes dichos privilegios.
Otra cosa a añadir es que la mayoría de estas consultas, como, por ejemplo, ver las sesiones abiertas, se pueden hacer a golpe de click a través de la UI de Oracle, lo cual realmente es más “user friendly”. La finalidad de hacerlo a través de las consultas que vamos a exponer es, entre otras cosas, indagar un poco en las tablas de sistema que componen nuestra base de datos.
¡Empezamos!
Un día te despiertas tranquilamente, abres tu ordenador dispuesto a empezar una nueva y apasionante jornada como DBA y de repente sufres una amnesia repentina. Respira, no pasa nada, con:
Podrás tener un acceso detallado a todas las instancias que se encuentran en tu base de datos; el nombre de la instancia, el nombre del host, la versión de Oracle, si está activa o no, etc.
Si tu amnesia es selectiva y no quieres el resultado de toda la consulta, puedes probar filtrando por el nombre de la instancia, el nombre del host y el status, por ejemplo:
Si esto no refresca tu memoria sobre la instancia con la que estás trabajando, ninguna otra query lo hará, así que yo que tu recurriría a ayuda profesional…
Otra cosa importante a saber son los parámetros del sistema, los cuales te ayudarán a identificar cómo y cuáles son estos parámetros, cómo estos configuran los datos de tu base, localizar los archivos de sistema y un largo etcétera que te dejo descubrir en el siguiente enlace:
https://docs.oracle.com/cd/E89525_01/html/Line_Collection_Setup_Guide/Appendix_system_parameters_list.htm
Algunas de las queries para acceder a dichos parámetros son la siguientes:
Para ver los parámetros como instancias y aquellos que inhieren con las sesiones además de mostrarte información sobre los parámetros de inicio que están actualmente interactuando con la sesión.
Esta otra query te mostrará la información sobre el contenido de los archivos de parámetros del servidor. Por ejemplo, si un archivo de parámetro del servidor no es usado para iniciar la instancia, encontraremos un valor FALSE en la columna ISSPECIFIED.
¿Cómo se aplican estas queries en la práctica? Excelente pregunta querido lector…
Supongamos por ejemplo que tu anterior amnesia te hace olvidar que versión de Oracle estás usando. Con:
Obtendrás en menos de lo que canta un gallo macaronésico la versión de tu amado sistema de gestión de base de datos.
¿Qué quieres saber dónde están tus ficheros de control? Pues:
Y a correr.
Vámonos a las sesiones ahora. Con la tabla de sistema V$session podrás saber cosas tan útiles como cuántas sesiones hay actualmente corriendo en la base de datos, qué consulta está ejecutando cada sesión o cuánto tarda dicha consulta en ejecutarse. En otras palabras, si estás buscando información sobre el rendimiento de tu base de datos la tabla de sesiones va a ser tu Pepito el Grillo particular.
Por ejemplo, si quieres saber quién está allanando la morada que es tu base de datos, con:
Podrás ver el nombre, el nombre de usuario, el nombre de la máquina que está usando y el programa que está corriendo.
Otra manera para saber los usuarios conectados y cuantas sesiones tienen abiertas es:
En Oracle podemos encontrar un diccionario de datos, el cual es el catálogo de objetos de nuestra base de datos. En dicho diccionario, podemos encontrar tablas, usuarios, roles, vistas, las columnas de las tablas, funciones y un etcétera más largo que un día sin pan. Llamarlo es muy sencillo, simplemente has de picar la siguiente query y disfrutar de la vasta inmensidad de objetos que componen nuestra base de datos:
Vámonos ahora con algunas consultas útiles sobre el manejo de las propias tablas de datos de nuestra base.
Imaginemos, por ejemplo, lo contrario a la amnesia. Tienes tanta información en el cerebro que catalogarla y recurrir a ella te lleva varias horas de procesado mental. Sabes que la tabla tenía algo en el nombre como “FACTURAS”, pero no sabes si lo que buscas está en las entrantes, en las salientes, en las no cobradas, etc. Tienes dos opciones, o navegas pacientemente por el navegador de tablas hasta dar con la tuya o escribes la siguiente consulta:
Esa consulta te dará todas las tablas que incluyan en su nombre la cadena ‘FACTURAS’. Y donde digo ‘FACTURAS’ digo cualquier cadena que se te venga a la cabeza. ¿Qué llevas la base de datos de una consulta veterinaria y quieres saber cuántas tablas están relacionadas con los hurones? Prueba a sustituir ‘FACTURAS’ por ‘HURONES’ 😉.
Pero la cosa no se queda ahí, imaginemos que, siendo un DBA tan aplicado y eficiente como eres, te has preocupado de describir los campos que componen una tabla para la mejor comprensión de los datos que la componen. Ahora ha llegado el momento de saber cuánta información sobre ‘HURONES’ tienen las tablas en general, y no solo las que se titulan como tal. Usa:
Y sorprende a tu veterinario de una vez por todas. Además, al igual que con la consulta de las tablas, puedes cambiar ‘HURONES’ por ‘SIDECARS’ si en lugar de trabajar para una clínica veterinaria trabajas para una fábrica de motos… ¡Las posibilidades son ilimitadas!
Por cierto, puedes también consultar cuanto te ocupa esa maldita tabla de sidecars en tu base de datos a través de la consulta:
Y si quieres incluir los índices:
Por último, con tanta información en el cerebro como tenemos los DBAs, es muy fácil olvidarse de alguna sentencia muy útil que hayamos ejecutado recientemente. O si tal vez, como yo, le has dejado tu ordenador a algún crack de SQL para que se luzca un poco, con esta super consulta podrás ver absolutamente todas las consultas hechas en tu base de datos en un tiempo determinado:
Aunque para una búsqueda un poco más centrada en las queries que has hecho tú, yo recomendaría personalmente esta:
Donde el “-2” es el número de meses de antigüedad en adelante que quieres que te muestre de las queries (suerte si consigues que sean más de dos).
Y con esto, para que asimiles bien la información y no liarte más, damos por finalizada esta pequeña compilación de consultas útiles para cualquier DBA de Oracle. Estate atento al blog, pues he dejado a propósito muchísimas más en el tintero para una más que posible segunda parte.
Muchísimas gracias por tu atención y ¡hasta la próxima! 😊