Mostrando las entradas con la etiqueta DBA. Mostrar todas las entradas
Mostrando las entradas con la etiqueta DBA. Mostrar todas las entradas

viernes, 21 de marzo de 2014

Actualizar #consecutivo a tabla #MySQL


Para actualizar un consecutivo,

Sin necesidad de realizar un ciclo, podemos actualizar un campo dado, comenzando con su maximo valor y que de ahi continue en consecutivo:

Creamos la tabla

CREATE TABLE tabla_prueba (id integer(4), valor varchar(40));

Insertamos registros a la tabla:
INSERT INTO tabla_prueba (id, valor) values(1,'valor1'),(2,'valor2'),(3,'valor3'),
       (0,'valor4'),(0,'valor5'),(0,'valor5');

Insertamos 3 registros con valor 0 en el campo id.

Actualizaremos esos registros que quedaron en 0, con un consecutivo.

UPDATE tabla_prueba as a, (SELECT @numeroConsecutivo:= (SELECT max(id) FROM tabla_prueba)) as tabla
SET a.id=@numeroConsecutivo:=@numeroConsecutivo+1 WHERE a.id = 0;


Cabe mencionar y como podrán observar que solo seleccione los campos con id = 0 para que se notara, si no, hubiera actualizado todos los registros con consecutivo a partir del 3, ya que era el máximo en su momento.

martes, 25 de febrero de 2014

Query por consola a Base de Datos

Para ejecutar una consulta que extraiga información de una base de datos(#database) por consola, el resultado mandarlo a un archivo de salida:


En este ejemplo, vamos a obtener la url de una imagen, y concatenando otros string, vamos a generar una salida como "cp /home/user/imagen.pjg /home/user/imagenes/", esto dentro de un archivo llamado, salida.sql

echo "SELECT  concat('cp ', url, '/', file, ' ', url, 'imagenes/'  FROM table_imagenes WHERE LEFT(file,2)='p_';" | mysql -A database_name > salida.sql

La sintaxis seria:

 echo "SELECT  campo  FROM table_name;" | mysql -A database_name > output.sql

miércoles, 8 de mayo de 2013

Actividades de un DBA - Prioritarias

ADMINISTRACIÓN DE BASE DE DATOS

En general la administración de base de datos, en cualquiera de sus manejadores, Oracle, MySQL, SQL, NoSQL, MongoDB, PostgreSQL, etc. conlleva a realizar ciertas actividades genericas para un administrador de base de datos, les comentare sobre algunos pasos generales y otros especificos con base a lo que me a tocado vivir.

Lo mas importante para un DBA, en cuanto llega a una empresa debiera ser:

  1. Revisar que existan respaldos de las base de datos:
    1. En donde se encuentran.
      • Fisicamente donde se encuentran guardados estos respaldos.
    2. Con que frecuencia.
      • Con que cierto tiempo se realizan los respaldos.
    3. Checklist de chequeo que se generen.
      • Revisar que se generen y que situaciones se han presentado.
    4. Integridad de los mismos.
      • Revisar que esten generados correctamente, que en caso de necesitarlos, realmente sean funcionales.
    5. Esten completos.
      • Estar seguros que tenemos respaldo de todo lo que nos competa.
  2. Si no existieran, crearlos.
    • Llevar a cabo todos los pasos anteriores.

Una vez realizado esto, comenzar a analizar TODO. Se preguntaran "¿Qué es todo?". Yo lo enlisto en las siguientes actividades.
  1. Cuantas base de datos hay.
    1. En que servidores
    2. Productivas o No productivas
  2. Cuantos servidores.
    1. Con base de datos o sin base de datos
    2. Base de datos productivas o no.
  3. Que usuarios existen.
    1. Quienes usan estos usuarios.
    2. Como los usan, por aplicación o manualmente.
    3. Que tipos de derechos tienen y a que base de datos.
  4. Aplicaciones que accesan a las base de datos.
    1. Identificar los usuarios de estas aplicaciones, son clientes externos o internos, etc.
Es como llevar un inventario de la seguridad de nuestras base de datos, todo esto para controlar lo que esta modificando a nuestros datos (si, ya son nuestros datos, somos los administrador y esa sera nuestra tarea).

Obviamente, existen otras tareas que tendremos que ir llevando, analizar y optimizar como es que se estan consultando los datos, crear mantenimientos y estadísticas.

Saludos.
"Cuando todo esta bien... PUEDE ESTAR MEJOR."