Entrevista a un DBA. Traducción.

Y qué le preguntamos a un colega cuando lo entrevistamos para contratación?

Qué le preguntamos a un colega que se presenta a solicitar trabajo de DBA? Tomemos estos sencillos cuestionamientos, traducción del documento de Rob Verschoor (Interview questions for ASE DBAs  -http://www.sypron.nl/ivwq.html)

Cuales son las tareas mas importantes de Administración de Base de Datos?
Se pueden considerar las siguientes en orden de importancia:
1. Crear un esquema apropiado de dump de datos y de log para absolutamente todas las bases, incluyendo master.
2. Ejecutar dbcc checkstorage en todas las bases de forma regular (mínimo una vez al mes), y dar seguimiento a todos los problemas de corrupción encontrados.
3. Ejecutar update [index] statistics semanalmente en todas las tablas de usuario.
4. Monitorear el errorlog del Server buscando mensajes indicativos de problemas, diariamente.

Esto adicional a soporte a usuarios y desarrolladores, monitoreo de performance, etc.

Qué debo hacer si encuentro un STACK TRACE en el errorlog del servidor?
Abrir un caso con tu área de Soporte de Sybase. No hay mucho que puedas hacer, y solamente el área de Soporte puede saber si el STACK esta relacionado con algún bug. Claro que no es para nada buena idea ignorar estas cosas en el errorlog, porque podrías estar ignorando la ocurrencia de un bug en tu instalación.

Hay alguna desventaja en separar los datos de las aplicaciones entre varias bases de datos?
Cuando existen relaciones entre tablas u objetos ubicados en bases de datos diferentes, hay una desventaja implícita: si deseas restaurar un dump de alguna de dichas bases, dichas relaciones pueden perder consistencia. Esto significa que debemos procurar
siempre tener respaldos de un conjunto de bases de datos consistentes entre sí. Esto puede ser complicado cuando el sistema se encuentra en línea de forma continua.
De cualquier manera, cuando se realicen este tipo de definiciones, los puntos relativos a backup/restore deben ser considerados, y los DBAs deben ser consultados al respecto.

Es necesario borrar y crear todos los procedures y triggers cada cierto tiempo?
No. en versiones antiguas de SYBASE (4.x) esto era a veces necesario, ya que los query plan podían llegar a ser demasiado grandes, alcanzando el límite y generando errores. En versiones posteriores estos puntos fueron mejorados.

Cuales son las ventajas principales de utilizar columnas identity?
La ventaja principal de usar columnas identity es la posibilidad de generar números secuenciales y únicos de forma eficiente, con un mínimo de I/O. La desventaja es que los valores generados no son transaccionales por sí mismos, y los valores identity
pueden "brincar" bastante cuando el servidor se da de baja por medio de "nowait" (esto se conoce como identity gaps o huecos).
Se aconseja utilizar las columnas tipo identity en aplicaciones que tienen absolutamente contemplados estos aspectos.

Qué hacer cuando el manejador no levanta como resultado de que la bd MASTER esta corrupta?
Se puede generar un nuevo dispositivo master utilizando la herramienta buildmaster; hay que crear un archivo RUN_FILE y arrancar el Server en modo single-user (con opción -m). En este punto agregar el registro para el SYB_BACKUP en sysservers, y finalmente cargar un dump de la base de datos master.
Después de esto, el servidor se dará de baja automáticamente; arrancar de nuevo y determinar si las bases de datos de las aplicaciones se encuentran aún en su sitio.

Cuando se carga un BCP de un archivo a una tabla, qué sucede con los triggers, contraints, reglas y defaults en esa tabla?

Para todos los BCPS (fast y normal), los triggers, constraints y rules son ignorados... Los defaults estarán activos.

Como realizar bcps extrayendo únicamente un conjunto de datos de toda una tabla?
Si la versión es de ASE 11.5 o posterior, la solución es generar una vista de esos registros y extraerlos por medio del bcp de dicha vista.
En versiones anteriores, se deben seleccionar dichos registros e insertarlos en una tabla separada, de la cual se puede extraer el bcp.
En ambos casos, la velocidad para extraer la información depende de si existe un índice adecuado para accesar los registros.

Cual es la diferencia entre administrar los permisos de los usuarios/grupos o a través de roles de usuario predefinidos?

La principal diferencia es que los roles de usuario predefinidos (ASE 11.5) tienen alcance de todo el ámbito del servidor, y son "asignados" a nivel de login. Los usuarios y grupos (método clásico que ha existido desde la primera versión de Sybase) están limitados al ámbito de una base de datos.

Por otra parte, los permisos pueden ser concedidos/revocados de los usuarios/ grupos o de los roles de usuario predefinidos. Cualquiera que sea el esquema, se sugiere NO mezclarlos, por que las reglas de precedencia pueden volverse bastante complejas.

Hay alguna ventaja en usar la versión de 64-bits en lugar de la de 32-bits?
La única diferencia es que la versión de 64 puede trabajar con un data caché mayor que la versión de 32, así que se pueden obtener  optimizaciones en I/O. Esto puede ser una gran ventaja si se llega a tener problemas con el data caché (donde éste se convierte en un cuello de botella)
Cabe mencionar que no se puede comparar la distribución del "total memory" entre ambas versiones,  ya que la versión de 64 tiene un overhead  adicional. - así que el tamaño del data caché para 64bit será menor que para 32bit en este caso --
(Aclarando: la versión 64bit no es el doble de rápida que la de 32bit, y no ejecuta sus I/O al doble del tamaño de la versión 32bits - alguna vez escuché a alguien afirmar lo contrario),

 Es una buena idea usar el tipo de bloqueo datarows (a nivel de registro) para todas las tablas por default?
No por default, sólo si se presentan problemas de concurrencia (bloqueos) en una tabla, y no se desea bloquear muchos registros de dicha tabla en una sola transacción.
En cualquier otro caso, use bloqueo por páginas (datapages o allpages). (Personalmente favorezco datapages como default, ya que cambiarlo a datarows es más rápido y fácil que hacerlo de allpages, ya que para convertir tablas grandes, se puede necesitar mucho tiempo).
Por otra parte datapages tiene ventajas adicionales sobre allpages, como el que no bloquea las páginas de los índices, la actualización de estadísticas corriendo a nivel 0 y la posibilidad de utilizar el comando reorg).
Qué hacer cuando el performance de ASE es malo?
Primero. "Performance Malo" es un término muy amplio, así que se requiere primero tener un diagnóstico certero antes que nada. Busca:
            1. En qué se sustenta la observación (hay un incremento claro en los tiempos de respuesta o solamente es una "sensación"?
            2. Para qué aplicativos/consultas/usuarios está sucediendo esto?
            3. Sucede de forma continua o es solo en ciertos momentos? Si no podemos identificar el problema que nos permita reproducirlo, cualquier solución propuesta es pura especulación.
Qué hacer cuando un segmento se llena?
Error!: un segmento nunca se llena . Un segmento es una etiqueta para uno o varios "fragmentos" en un dispositivo de base de datos. Esos fragmentos son los que se pueden llenar pero los segmentos por si mismos no. (OK esta es una pregunta capciosa... cuando esos fragmentos de dispositivo se llenen, agrega mas espacio o elimina datos redundantes).
Las columnas timestamp se pueden tomar en cuenta para llaves primarias? (tomando en cuenta que son únicas por registro).
Pero por supuesto que no, esto sería un error garrafal. Las columnas timestamp no cuentan con la propiedad que les permita ser únicas para llaves primarias.
Debería el candidato DBA contar con una Certificación de Sybase?
Si la tiene es un plus!

Preguntas de un DBA a su posible contratante:

Cuando te realicen una entrevista, te interesara saber lo siguiente de la compañía:

Cuenta la compañía con un esquema de soporte técnico sustentado en un contrato con SYBASE?
Esto es muy importante con el fin de obtener parches (EBF) o para obtener respuestas a casos o preguntas técnicas. Sin esto, se puede decir
que estas "completamente solo". En este caso pregúntate si tus conocimientos satisfacen las expectativas de la compañía.

Qué versión están usando y en cual plataforma?
Esto es importante. Por ejemplo, si están trabajando con 11.0.3 en Data General, averigua si saben que la versión y la plataforma no están
soportadas de ninguna forma por SYBASE.
Si no contemplan en corto plazo realizar un UPGRADE de la versión y plataforma, pregúntate si deseas trabajar ahí, corriendo un alto riesgo por
tu cuenta, sin soporte, y con una versión obsoleta que no te permitirá incrementar tus conocimientos de ASE.

Cuantos servidores, bases de datos y usuarios concurrentes hay? qué tamaño tienen las bases de datos?

Se requiere dar servicio 7X24?
Es importante que se dimensionen todos estos aspectos, ya que si estamos hablando de controlar 500GB, de bases de datos siempre en línea, con 3000
usuarios accesando los datos, hay que confirmar que el salario concuerda con la magnitud del sistema.

Esta involucrado también el Replication Server?
Si esto es afirmativo, y si sabes de Replication Server, reconsidera tus demandas financieras. A la alza por supuesto. La razón es que los DBAs
con conocimientos de Replication Server son difíciles de encontrar, mas que los DBAs de ASE.

Están considerando que tomes control también de sus Oracles, MSSQL, etc.? Tienes que administrar ASIQ o ASA también?

Si te quieres certificar, ellos pagarían estos gastos?
Esto te haría un mejor DBA por supuesto. Convence a quien te entrevista que ésta es una relación ganar-ganar.

No tiene permisos para hacer comentarios, registrate en el sitio.

Buscar en el sitio

Noticias Recientes

TIPS

Para cambiar el esquema por default de tu conexión en Oracle solo es necesario ejecutar:

ALTER SESSION SET current_schema="Nombre_esquema"
Comodo SSL