Diferència entre revisions de la pàgina «Administració de Bases de Dades»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
(Es crea la pàgina amb «Aquest article fa referència als mòduls MP2 i MP10 de la titulació de ASIX. Altres articles a consultar: * Curs de SQL: SQL bàsic utiltizant MySQL. * Bases...».)
 
(etiquetes #fpinfor)
 
(Hi ha 32 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 +
<nowiki>#FpInfor #Asix #Daw #Dam #AsixMp02 #AsixMp10 #DawMp02 #DawMp10 #DamMp02 #DamMp10
 +
#AsixMp02Uf3 #AsixMp10Uf02
 +
#DawMp02Uf3 #DawMp10Uf02
 +
#DamMp02Uf3 #DamMp10Uf02
 +
</nowiki>
 +
 +
 
Aquest article fa referència als mòduls MP2 i MP10 de la titulació de ASIX.
 
Aquest article fa referència als mòduls MP2 i MP10 de la titulació de ASIX.
  
 
Altres articles a consultar:
 
Altres articles a consultar:
 
* [[Curs de SQL]]: SQL bàsic utiltizant MySQL.
 
* [[Curs de SQL]]: SQL bàsic utiltizant MySQL.
* [[Bases de Dades]]: Article focalitzat en BBDD no-SQL (particularment MongoDB)
+
* [[Bases de dades]]: Article focalitzat en BBDD no-SQL (particularment MongoDB)
 +
* També farem alguna cosa amb [[PostgreSQL]].
  
 +
__TOC__
  
 
== Seguretat de les dades ==
 
== Seguretat de les dades ==
Podeu consultar els apunts de l'IOC aquí:  
+
<nowiki>#AsixMp02Uf3 #DawMp02Uf3 #DamMp02Uf3</nowiki>
 +
* Apunts IOC online:
 +
** [http://ioc.xtec.cat/materials/FP/Materials/2251_ASIX/ASIX_2251_M02/web/html/WebContent/u6/a1/continguts.html Apunts IOC - seguretat de la informació].
 +
** [http://ioc.xtec.cat/materials/FP/Materials/2251_ASIX/ASIX_2251_M02/web/html/WebContent/u6/a2/continguts.html Apunts IOC - còpies de seguretat].
 +
 
 +
=== Pràctiques ===
 +
* '''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
 +
** [[SQL 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 [https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-14-04 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 [https://en.wikibooks.org/wiki/Converting_MySQL_to_PostgreSQL aquest tutorial] per exportar les dades de MySQL de forma compatible amb PostgreSQL directament.
 +
**# Utilitzarem [https://github.com/lanyrd/mysql-postgresql-converter aquesta aplicació en Python per convertir els ''scripts''].
 +
**# 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''.
 +
**# 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;
  
Exercicis de seguretat en MySQL: [[MySQL Seguretat]]
+
Altres:
 +
* [[SQL injection]]
  
 +
 +
<br>
  
 
== Administració de Bases de Dades ==
 
== Administració de Bases de Dades ==
...
+
<nowiki>#AsixMp10Uf02 #DawMp10Uf02 #DamMp10Uf02</nowiki>
 +
 
 +
Teoria general:
 +
* [http://ioc.xtec.cat/materials/FP/Materials/2251_ASIX/ASIX_2251_M10/web/html/index.html Apunts IOC Administració de BBDD] (veure apartat 3: config. i admin. d'un SGBD corporatiu). Hi ha teoria i pràctiques amb PostgreSQL.
 +
* [http://www.slideshare.net/da4equipo3/historia-de-las-bases-de-datos Història de les bases de dades].
 +
 
 +
 
 +
[[Optimització de MySQL]]: com millorar el rendiment de la nostra base de dades.
 +
 
 +
 
 +
[http://skillachie.com/2014/07/25/mysql-high-availability-architectures/ Arquitectures distribuïdes]:
 +
* Replicació MySQL master-slave: [http://dev.mysql.com/doc/refman/5.7/en/replication-howto.html MySQL doc] | [https://www.digitalocean.com/community/tutorials/how-to-set-up-master-slave-replication-in-mysql DigitalOcean doc]
 +
* Replicació MySQL master-master: [https://www.digitalocean.com/community/tutorials/how-to-set-up-mysql-master-master-replication DigitalOcean doc].
 +
* MySQL Cluster
 +
** [http://skillachie.com/2014/07/25/mysql-cluster-101/ Arquitectura MySQL Cluster]: diferents tipus de nodes (Management, SQL, data/storage)
 +
** [http://www.catharinegeek.com/set-up-mysql-cluster-on-ubuntu-14041/ Tutorial d'instal·lació en Ubuntu 14.04].
 +
** [https://dev.mysql.com/doc/refman/5.0/en/faqs-mysql-cluster.html MySQL Cluster FAQ]
 +
 
 +
 
 +
Altres tractaments distribuïts:
 +
* [[MySQL Federated]]: enllaços a taules remotes.
 +
* [https://dev.mysql.com/doc/refman/5.7/en/partitioning-overview.html Particionament de taules]. Les dades d'una taula lògica es poden repartir en diverses taules, el què permet millorar la velocitat de les ''queries''.
 +
*: [http://www.slideshare.net/datacharmer/partitions-performance-with-mysql-51-and-55 Presentació: millora de performance per taules amb particions].
 +
* [https://dev.mysql.com/doc/mysql-utilities/1.5/en/fabric-quick-start-sharding-introduction.html Fabric and Sharding]: Taules particionades i distribuides en diferents instàncies de MySQL, permet millorar la quantitat de consultes per segon.
 +
 
 +
<br>
 +
 
 +
=== Pràctiques ===
 +
# Realitza l'exercici de [[MySQL Federated]].
 +
# Crea un moodle replicat
 +
#* Crea dos hosts Ubuntu amb Apache2 i MySQL
 +
#* [https://www.digitalocean.com/community/tutorials/how-to-set-up-mysql-master-master-replication 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:
 +
#*:<pre>InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.</pre>
 +
#*: Teniu [https://confluence.atlassian.com/jirakb/mysql-binary-logging-problem-with-innodb-when-creating-a-workflow-196116927.html aquí la solució]. Bàsicament es tracta d'afegir aquesta directiva a '''my.conf''':<pre>binlog_format=row</pre>
 +
#* 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).
 +
# Particionament: Aplicació agenda
 +
#* Crea una BBDD d'un servei d'agenda.

Revisió de 08:39, 25 jul 2018

#FpInfor #Asix #Daw #Dam #AsixMp02 #AsixMp10 #DawMp02 #DawMp10 #DamMp02 #DamMp10 #AsixMp02Uf3 #AsixMp10Uf02 #DawMp02Uf3 #DawMp10Uf02 #DamMp02Uf3 #DamMp10Uf02


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]

#AsixMp02Uf3 #DawMp02Uf3 #DamMp02Uf3

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]

#AsixMp10Uf02 #DawMp10Uf02 #DamMp10Uf02

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.