Bitácora de EleKtR0

English - Italiano - Deutsch - Français - Português - русский

9 de octubre de 2021

Resetear contraseña de root en MariaDB / MySQL

 

Si necesitamos arrancar una base de datos MySQL / MariaDB de la que no conocemos la contraseña del usuario root podemos hacerlo con lanzando el demonio de la base de datos con el comando mysqld o mysqld_safe con el parámetro --init-file=FICHERO

FICHERO debe ser un fichero que contenga un comando SQL , sin comentarios, para cambiar la contraseña de root. Por ejemplo:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('prueba');

Arrancaríamos la base de datos con

mysqld_safe --init-file=FICHERO
y probaríamos a entrar con mysql -u root -p usando la contraseña que hemos puesto.

En las pruebas que he hecho he tenido que poner el fichero usado en el parámetro --init-file en el directorio donde se ubican los datos de MySQL / MariaDB, por defecto en /var/lib/mysql, ya que con SELinux habilitado no era posible leerlo en otras ubicaciones con otro contexto.

Etiquetas: ,

16 de octubre de 2014

Creación de catálogo de RMAN

Estos son los pasos, de forma simplificada y a modo de chuleta, para crear el catálogo de RMAN en Oracle 11g.

1º Crear un tablespace para el catálogo de RMAN en una base de datos distinta a la que gestionaremos. Por ejemplo:

CREATE TABLESPACE TB_RMAN_CATALOG DATAFILE '/u01/app/oracle/product/11.2.0/rmanbd/tb_rman_catalog.dbf' SIZE 10M AUTOEXTEND ON MAXSIZE 500M;

2º Crear un usuario con el que conectaremos desde RMAN, asociándole el tablespace anterior.

CREATE USER rman IDENTIFIED BY rman DEFAULT TABLESPACE tb_rman_catalog QUOTA UNLIMITED ON tb_rman_catalog;

3º Darle los permisos necesarios al usuario rman:

GRANT CREATE SESSION, RECOVERY_CATALOG_OWNER TO rman;

4º Nos conectamos a la base de datos donde tendremos el catálogo de RMAN y la base de datos que gestionaremos con RMAN:

rman target / catalog rman/rman@rmanbd

En este ejemplo, / se usa para conectarnos a la instancia local indicada por $ORACLE_SID y el catálogo de RMAN lo tendríamos en rmanbd.

5º Creamos el catálogo de RMAN:

RMAN> create catalog;

6º Registramos la base de datos que gestionaremos desde RMAN:

RMAN> register database;

Etiquetas: , , ,

21 de mayo de 2014

Migración entre gestores de bases de datos


Me preguntaba si hay buenas aplicaciones para migrar una base de datos entre distintos DBMS sin mucha intervención manual y a través de un artículo de StackOverflow he encontrado dos herramientas con muy buena pinta: FlywWay y Liquibase

Ambas son de código abierto pero creo que FlyWay está más orientada a migraciones que Liquibase.

Etiquetas: ,

29 de diciembre de 2012

Bases de datos NoSQL

Tras los cursos de MongoDB que terminé hace unos días, he estado documentándome sobre otras bases de datos NoSQL y veo que tenemos bases de datos de este tipo para aburrir. Algunas de ellas son:

MongoDB

CouchDB

Cassandra

OrientDB

RavenDB


Cada una tiene una filosofía distinta, existiendo bases de datos basadas en documentos JSON, grafos, pares clave-valor, etc.

Aquí un resumen comparativo de algunas de estas bases de datos y unas diapositivas donde comparan otras.



Etiquetas: ,

Terminados los cursos MongoDB for Developers y MongoDB for DBAs


Recientemente he terminado dos cursos online de MongoDB,  "M101 MongoDB for Developers" y "M102 MongoDB for DBAs",  que comenzaron el 22 de octubre y han terminado a mediados de diciembre.

Los cursos constaban de vídeos en inglés subtitulados (alguna semana tenía 40 vídeos por curso), preguntas teóricas o prácticas tras cada vídeo y varios ejercicios prácticos al final de cada semana para poder obtener el certificado del curso al final del mismo. La última semana también se realizaba un examen final con 10 ejercicios prácticos y había que aprobar tanto este examen final como los ejercicios semanales para obtener el certificado por lo que no ha sido sencillo completar los dos cursos a la vez.

El 17 de enero comienza de nuevo el curso MongoDB for Developers pero con ejemplos y ejercicios en Java en lugar de Python, como ha sido en el anterior, para los que quieran apuntarse ya que se aprenden muchas cosas además de MongoDB al tocar distintas materias.


Etiquetas: ,

22 de agosto de 2012

Migrar base de datos Oracle de 32 a 64 bits en Linux


Es más sencillo de lo que pensaba y se puede hacer copiando tal cual todos los datafiles, controlfiles, redologs, etc.




Migrating database from 32 bit to 64 bit (Linux)


Etiquetas: , ,

9 de diciembre de 2011

Reutilizando SQLs en Oracle

El parámetro CURSOR_SHARING de las bases de datos Oracle permite definir la forma en la que la base de datos reutiliza instrucciones ya analizadas con anterioridad. Por defecto, el valor el parámetro es EXACT, realizando una comprobación exacta de la nueva sentencia SQL a ejecutar con las ejecutadas antes para determinar si reutiliza alguna sentencia ya analizada. Para que la comprobación no sea exacta, sino que compruebe que las sentencias son similares, podemos usar el valor SIMILAR. La reutilización de sentencias ya ejecutadas mejora el rendimiento de la base de datos así que lo recomendable es ejecutar instrucciones SQL parametrizadas o, si no es posible, el valor SIMILAR en CURSOR_SHARING Más en CURSOR_SHARING

Etiquetas: ,

20 de octubre de 2011

Recompilación masiva en Oracle

Para recompilar, en Oracle, todos los objetos de todos los usuarios, con 5 hilos en paralelo:

begin

    for vcon IN (SELECT USERNAME from ALL_USERS ) LOOP
        utl_recomp.recomp_parallel(5,vcon.username);
    end loop;
end;
/

Etiquetas: ,

14 de abril de 2011

Espacio ocupado por un índice/tabla en Oracle

Para ver el espacio ocupado, en bytes, por un índice o tabla en Oracle podemos usar dos vistas del diccionario de datos, una es la de usuario USER_SEGMENTS y otra la general de toda la base de datos DBA_SEGMENTS.

Por ejemplo, para ver el tamaño del índice llamado INDX_INDICE:

select sum(bytes) from dba_segments where segment_type="INDEX" and segment_name = 'INDX_INDICE';

select sum(bytes) from user_segments where segment_name = 'INDX_INDICE';

Etiquetas: