Administració de Bases de Dades

De Cacauet Wiki
Dreceres ràpides: navegació, cerca

Aquest article fa referència als mòduls MP2 i MP10 de la titulació de ASIX.

Altres articles a consultar:

Seguretat de les dades[modifica]

Pràctiques[modifica]

  • Pràctica 1: Administració bàsica de MySQL
    • SQL creacio: segueix l'article i realitza els exercicis descrits al final important les bases de dades world en les seves versions InnoDB i MyISAM en 2 BBDD independents.
    • SQL transaccions: segueix l'article i realitza els exercicis finals.
  • Pràctica 2: Usuaris
  • Pràctica 3: Còpies de seguretat
    • SQL exportacio: crea una còpia de seguretat de la BBDD "world_myisam" amb mysqldump en un arxiu .sql
    • SQL creacio: importa la còpia en una instància MySQL remota.
      • NOTA: Crea-ho sense logar-te remotament a la màquina per SSH o similars, simplement accedint amb el client MySQL.
      • Caldrà crear un usuari remot amb permisos per crear BBDD amb el prefix del username, tal com s'ha fet a la pràctica 2 amb "bartolo".
  • Pràctica 4: Transferència de dades
    • En aquesta pràctica treballarem amb PostgreSQL i veurem les seves diferències dialectals amb MySQL.
    • Segueix aquest tutorial de DigitalOcean per començar amb PostgreSQL i crear una primera base de dades.
    • Agafa el Fitxer:Mundo.sql i modifica'l pertinentment perquè poguem importar-lo a PostgreSQL (pots anar fent copiar-enganxar i anar modificant el SQL per solventar els problemes de compatibilitat).
    • Utilitza aquest tutorial per exportar les dades de MySQL de forma compatible amb PostgreSQL directament.
      1. Utilitzarem aquesta aplicació en Python per convertir els scripts.
      2. Veuràs que les dades de tipus FLOAT no es converteixen correctament. Consulta el primer article i aplica els canvis necessaris perquè ens entri el script.
      3. Quan haguem entrat el script correctament, comprova les dades amb algun SELECT. Pot ser que et doni algun error, però les dades hi son i funcionen. Investiga perquè el SELECT no va i quina és la solució (és una tonteria).
enric=# select * from Country;
ERROR:  relation "country" does not exist
LINE 1: select * from Country;

Altres:



Administració de Bases de Dades[modifica]

Teoria general:


Optimització de MySQL: com millorar el rendiment de la nostra base de dades.


Arquitectures distribuïdes:


Altres tractaments distribuïts:


Pràctiques[modifica]

  1. Realitza l'exercici de MySQL Federated.
  2. Crea un moodle replicat
    • Crea dos hosts Ubuntu amb Apache2 i MySQL
    • Sincronitza els dos MySQL en mode master-master.
    • Comparteix la carpeta /var/www/moodledata mitjançant NFS
    • Descarrega i instal·la els arxius necessaris de moodle en el node "master" (el que té els arxius de moodledata originals).
    • Instal·la les dependències de llibreries que et demani l'instal·lador.
    • Probablement us apareixerà aquest problema al instal·lar el moodle:
      InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
      Teniu aquí la solució. Bàsicament es tracta d'afegir aquesta directiva a my.conf:
      binlog_format=row
    • Descomprimeix els arxius del moodle al node "slave" (el que accedeix als arxius moodledata per NFS).
    • ULL: no tornis a instal·lar moodle. Les taules ja hi son perquè les BBDD de MySQL estan replicades.
    • Configura adequadament config.php del "slave" directament perquè funcioni (és quasi igual que el del node master).
  3. Particionament: Aplicació agenda
    • Crea una BBDD d'un servei d'agenda.