Sunteți pe pagina 1din 57

Gestindelaseguridaddelosdatos.

Casoprctico

ParecequeeltrabajodeAlejandraestapuntodeconcluir.Labasededatosdeltallermecnicoesttotalmenteimplantadaylas
expectativasquelossociosdeltallertenanpuestasensutrabajosehancumplido.Enestemomentoseraimposibleprescindirde
laoperatividadqueproporcionaelSGBD,nosloconrelacinalaactividadcotidiana:registrodeingresosysalidas,reparaciones,
facturacin,controlderecambios,personal,etc.sinoquelespermiteanalizarlosresultadosobtenidosparaobtenerestadsticasy
conellohacerprevisionesyplanificarestrategiasfuturas.

Precisamenteporlaimportanciaquetienelabasededatosenlagestindeltaller,Alejandraseplanteaahoraunacuestinmuy
importante Qu pasara si por alguna causa imprevista la base de datos se daa o se destruye? En este momento eso
seraundesastreparalagestindelnegocio.

Alejandra sabe que su trabajo no estar completo hasta que no establezca una poltica de copias de seguridad de la base de datos, as como procedimientos
adecuadosderecuperacindelosdatosanteposiblesfallostantodehardwarecomodesoftware,oantecualquiercausaexternaquesepuedaproducir.

Cmopodramossaberaquclientestenemosquellamar,qufacturasnosehancobrado,cuntashorashatrabajadocadaempleado,siunfalloeneldiscoduro
quecontienelabasededatosnosimpideaccederastos?

EnTalleresFaberlotienenclaro,esimportantequelosdatosestnprotegidosyquepuedanserreconstruidosantecualquiersituacinimprevistaquesepueda
presentar.
Principalesfallosenunabasededatos.

Casoprctico

Antes de establecer las medidas y polticas de seguridad que debe tomar para evitar cualquier dao en la base de datos, Alejandra
empiezaporconsiderarculessonlosposiblesfallosquesepuedenproducir.Esoleayudaraestablecerunaestrategiaparaevitar
queseproduzcany,siesonoesposible,almenospodergarantizarquelosdatosdeTalleresFaberpuedanserrecuperadosensutotalidad.

Alejandranopuedeevitarquelabasededatosseadestruidasiocurre,porejemplo,unincendioenlaoficina,peropodrrestaurarlosdatos
sihatenidolaprecaucindemantenerunacopiadeseguridadubicadaenotrolugar.

Del mismo modo que se han tomado medidas de seguridad en las instalaciones del taller con relacin a la existencia de maquinaria
elctrica,almacenamientoymanipulacinmaterialesinflamables,etc.tambinesnecesarioprotegerunbienmuyvaliosoparalaempresa:
losdatos.

Las funciones de mantenimiento, respaldo y recuperacin constituyen un componente muy importante de los SGBD actuales. Algunos SGBD
proporcionan herramientas para que se puedan programar respaldos automticos en dispositivos de almacenamiento secundario que eviten
desastresanteproblemascomo:

Faltadesuministroelctrico.
Algnproblemadehardware:coneldiscoduro,sectoresdaados,chipsdememoria,procesador,etc.
Fallosdesoftware:imputablesalsistemaoperativo,alsoftwaredelSGBD,alosprogramasdeaplicacinovirus.
Problemasconelsistemadeficheros.
Factoresexternoscomoterremotos,inundaciones,incendios,etc.

ElSGBDdebegarantizarquelosdatospuedanserrecuperadosensutotalidadencasodeunaprdidafsicaodeunaprdidadelaintegridaddela
basededatos.

Laprdidadedatospuedesertotaloparcial.

Unaprdidaparcialpuedeserprovocadaporlaprdidafsicadeunapartedelabasededatos,oporlaprdidadeintegridaddeunapartedelamisma.
Una prdida total puede ocurrir por una prdida de integridad de toda la base de datos, pero que sta fsicamente contine existiendo o que se haya perdido por
completo.

Cuandoenunservidorconunabasededatosenfuncionamientoseproducealgunodelosproblemasanterioressernecesariodisponerdeunacopiadeseguridad
quenospermitarecuperarlosdatos.

El respaldo de la base de datos debe guardarse en lugar seguro, generalmente otro edificio para que est protegido contra catstrofes como incendios, robos,
inundacionesycualquierotropeligropotencial.
Laprdidadedatospuedesertotaloparcial,delmismomodolacopiadeseguridadpuedesercompletaoincremental,esdecir,apartirdelosdatosdesdelaltima
copiadeseguridad.

EnalgunoscasospodremosrecuperarlosdatosdelastablasmedianteelusodeutilidadesdisponiblesencualquierSGBD,ascomodesdesentenciasSQLparael
mantenimientodetablas.

Reflexiona

Losdatostienenunvalorydebensertratadoscomocualquierotroelementodelaempresa.Cuandolosdatosnoestndisponibleslaempresapuedesufrirprdidasy
dificultades de gestin muy importantes. Por eso es muy importante planificar, organizar y probar procedimientos de recuperacin que garanticen la seguridad y la
integridaddelabasededatos.
Elementosparalarecuperacindefallos.
Cuandoadministramosunabasededatossiempreesdeseablenoencontrarnoscontablascorruptasodestruidas,perosiestoocurrees
necesariominimizarlosriesgosestableciendounaestrategiapara:

Recuperardatosantecadasdelsistema:debemosconocercmorestauraryreparartablas,recuperararchivosderespaldoy
utilizarlosregistrosdeactualizacinpararecuperarloscambiosquesehayanhechodesdelaltimacopiadeseguridad.
Minimizaresascadasconunmantenimientopreventivo:debemosestablecer un programa de mantenimiento para prevenir
lasposibilidadesdedaosenlabasededatosascomorealizarcopiasdeseguridad.

El conjunto de actividades de administracin que pretenden garantizar la disponibilidad en caso de desastres incluyen: la planificacin,
organizacin,pruebasyprocedimientosderecuperacinydebenincluir:

Respaldoperidicodedatosyaplicaciones:elSGBDincorporaherramientaspararealizardiferentestiposderecuperacin:totaloincremental.
Respaldototal:produceunacopiacompletadetodalabasededatos.
Respaldoincremental:produceunrespaldodetodoslosdatosdesdelaltimacopia.
Respaldoconcurrente:ocurremientraselusuarioesttrabajandoenlabasededatos.
Identificarelrespaldodeformaapropiada:descripcindetalladayfecha.Tambinesimportanteevitarqueocupendemasiadomediantetcnicasdecomprensin.El
mediomscomneslacinta.
Almacenamiento de la copia de respaldo en sitio seguro: Cada copia de respaldo debe guardarse en un lugar diferente, dentro y fuera de la empresa,
convenientementepreparados,apruebadeincendiosycontrolandolahumedadytemperatura.
Existenempresasqueofrecenelserviciodecopiadeseguridadremota,peridica,automticaysegura.
Proteccinfsicadehardwareysoftware:usodeinstalacionesadecuadas,conaireacondicionado,proteccincontraincendios,unSGBDderespaldo,etc.
Controldelaccesodelpersonalalsoftwaremediantecontraseasysistemasdeprivilegiosmultinivel.
Coberturadeseguroparalosdatosenlabasededatosparacontarconproteccinfinanciera.

Losplanespararecuperarlosdatosdebenserprobadosfrecuentementeconsimulacrosparaverlosposiblesfallosquepuedatener.Unprogramaderespaldono
cubretodasloscomponentesdelSGBD,portantoesnecesarioestablecerprioridadesascomodistintasmedidasderespaldodedatos.

Autoevaluacin

UnaformadeevitarcompletamentelaprdidadedatosenunSGBDesestablecerunsistemadediscosespejoenelmismoservidor.Verdaderoofalso?

Verdadero Falso
HerramientasdelSGBDparalarecuperacindefallos.
EnlossiguientesapartadosdesarrollaremoslasdistintasherramientasquetodoSGBDtienedisponiblespararecuperarlosdatosantecualquierfallodelsistema.Ennuestro
casonosreferiremosaMySQL,perotodaslasbasesdedatospresentanestetipodeutilidades.

EnelcasodeMySQLtenemos:

1.Herramientasrelativasalmantenimientoyreparacindetablas.Cuando se produce una posible prdida de datos en una tabla, la primera medida que debemos
tomaresintentarrepararesatabla.ParaelloencadaSGBDdisponemosdeutilidadesyenelpropiolenguajeSQLexistentambinsentenciasconesafinalidad.
Enestafaseesmuyimportantediferenciardequtipodetablashablamos(InnoDB,MyISAM,BDB,etc.),yaquenotodaslasutilidadesfuncionancontodoslostiposde
tabla.Paralarecuperacindetablasdisponemosde:

a.Utilidadescomomyisamchk.
b.SentenciasSQLcomoANALYZETABLE,REPAIRTABLE,CHECKTABLE
2.Ficherosderegistrodeoperaciones: ficheroslog.Siactivamosestaopcindispondremosde:
a.Unficheroqueregistracadaconsultaquesehagaalabasededatos.
b.Unficheroqueregistracadaerrorqueseproduzcaenelservidor.
c.Unficheroqueregistracadaconsultaqueactualicedatos.
Estosficherosnosvanaresultarmuytilescuandoqueramossaberquhapasado,cuandoseproduceunerror,ysobretodopararecuperar
todas las acciones que se lleven a cabo a partir de la ltima copia de seguridad. Para ver el contenido del log binario disponemos de la
herramientamysqlbinlog.

3.Herramientaspararealizaryrestaurarcopiasdeseguridad.Bienporqueelproblemaquesenospresentahacausadounprdidadedatos
irrecuperable,oporquenohasidoposiblelarecuperacinconlasherramientasdereparacindetablas,necesitaremosrecurriralacopiade
respaldo.Establecerunaestrategiaadecuadaparaelaborarrespaldosperidicosdelabasededatoseslaprincipalymsbaratamedidade
seguridadparalosdatos.Algunasdeestasherramientasson:
a.Mysqldump.
b.Mysqlhotcopy.
c.HerramientasgrficasdisponiblesenaplicacionescomoPhpMyAdmin,MySQLWorkbenchoMySQLadministrator.
4.Herramientasparamigracindebasesdedatos.
Existenmltiplesaplicacionesgrficasparaexportarbasesdedatosdeunservidoraotro,tantoaMySQLcomoaotrosSGBD.Unadeestas
herramientasesMySQLMigrationToolkit.

Autoevaluacin

Emparejalasherramientasconsufuncionalidad:
Ejercicioderelacionar
Herramienta Relacin Funcionalidad

Mysqldump. 1.AnalizaryrepararunatablaMyISAM.
MySQLMigrationtoolkit. 2.ExportartablasInnoDBaunficherodetexto.

Mysqlbinlog. 3.Editarelregistrobinario.

Myisamchk. 4.ImportarunatabladeAccessaMySQL.

Enviar
Losficherosderegistrolog.
Los archivos de registro de MySQL son muy importantes para la recuperacin de datos en caso de fallos. En un SGBD es importante
conocer:

La localizacin del directorio de datos (datadir): para conocer dnde est situado podemos ejecutar el siguiente comando: SHOW
variables
En el directorio de datos se encuentran todas las bases de datos y tablas organizadas en forma de rbol. Cada base de datos
correspondeaundirectoriodentrodedata.Lastablassealmacenancomoarchivosdentrodeesedirectoriodelabasededatos,tal
comovimosenunaunidadanterior.

Elregistrodeerrores(ErrorLog):contieneinformacinsobrecundoseiniciayparaelservidor,ysihaocurridoalgnerrorcrtico
mientrasseestabaejecutando.PordefectoestearchivoseencuentraeneldirectoriodataysedenominaNombreHost.err.

Elregistrogeneraldeconsultas(GeneralLog):registratodaslasconexionesysentenciasenunarchivoenelordenenquelasrecibe.Elarchivogeneraldeconsultas
pordefectosedenominaNombreHost.log.Siestinactivo,paraactivaresteregistroesnecesarioreiniciardenuevoelservidor.
Elregistrobinario(BinaryLog):contienetodaslassentenciasquehanactualizadodatosopodranhaberlohechoycuntohantardado.Slorecogelassentenciasque
hanactualizadodatos,siqueremosregistrartodastendremosqueconsultarelregistrogeneraldeconsultas.
Esteregistroesmuyimportantepararecuperartodaslasactualizacionesquesehayanhechotraslaltimacopiadeseguridad.Sinoespecificamoslocontrario,este
registro se almacena en el directorio data en el archivo NombreHostbin. MySQL agrega un nmero consecutivo al nombre anterior cada vez que se vuelcan los
registros.Yaqueesteregistrosealmacenaenformatobinario,paraleerloesnecesarioutilizarmysqlbinlog.

El registro de consultas lentas (Slow Query Log): Registra todas las consultas que han llevado ms tiempo que el establecido por defecto en la variable
long_query_time. Por defecto este archivo se denomina NombreHostslow.log y se guarda en el directorio de datos. Se utiliza para examinar qu consultas llevan
demasiadotiempoparasuoptimizacin.Paraexaminaresteregistroseutilizamysqldumpslow.

El servidor MySQL puede crear estos archivos de registro para facilitar el ver lo que est pasando pero es necesario limpiar estos archivos para que no ocupen demasiado
cuandosehacencopiasdeseguridadyvolveraregistrarenarchivosnuevos.Estopuedehacerseconlasentencia:FLUSHLOGS.
Parasaberms

Sinecesitasmsinformacinsobrelosficherosderegistro(log)deMySQLpinchaenelsiguienteenlace:

FicherosderegistrodeMySQL.

Autoevaluacin

Relacionacadaarchivoconsufuncin:

Ejercicioderelacionar
Archivo Relacin Funcin

NombreHost.err 1.Contienetodaslasconsultasejecutadasporlosclientes

NombreHostslow.log 2.Contienetodaslasconsultasquemodificanlabasededatos

NombreHost.log 3.Registraloserroresenelservidor

NombreHostbin 4.Contienelasconsultasconsideradaslentas

Enviar
Mysqlbinlog.
Como hemos dicho los ficheros de log binario se generan en formatobinario. Este registro ser especialmente til cuando queramos
recuperarsentenciasalmacenadasenl.

Parapoderleerloseventosalmacenadosenellogbinariotenemosdosalternativas:

Lautilidadmysqlbinlog.
Lasentencia:SHOWBINLOGEVENTS.

Mysqlbinlog

Laformadelanzarestaherramientaes:

mysqlbinlog[opciones]FicheroLog
Ejemplo:leerelregistrobinarioinfoalisalbin.000001:mysqlbinloginfoalisalbin.000001

Veremosalgunasdelasopcionesmsimportantes:

OpcionesparaMysqlbinlog
OPCIONESDEmysqlbinlog Significado

database=NombreBaseDatos
Sloobtenemoslasentradasparalabasededatosseleccionada.
dNombreBaseDatos

localload=ruta,
PreparalosficherostemporalesparahacerLOADDATAINFILEeneldirectorioqueseespecifiquecomoruta.
lruta

offset=N,oN IgnoralasNprimerasentradas.

password[=contrasea],
Contraseaparaconectarsealservidor.
p[contrasea]

resultfile=nombre,
Envalasalidaaunficherocuyonombreseespecifica.
rnombre

shortform,s Slomuestraloscomandos,sinlainformacinadicional.

startdatetime=datetime Comienzaaleerloseventosapartirdelafechadada.

stopdatetime=datetime Leeloseventoshastalafechadada.

startposition=N LeeelregistrobinariodesdelaposicinN.

stopposition=N LeeelregistrobinariohastalaposicinN.

disablelogbin,D Desactivaellogbinario.
OPCIONESDEmysqlbinlog Significado

user=NombreUsuario,
Nombredelusuarioqueseconectaalservidorremoto.
uNombreUsuario

Ejemplorecuperarunfalloejecutandolassentenciasdellogbinarioenviandolasalidaaunclientemysql:

mysqlbinloginfoalisalbin.000001|mysql

Ejemploparaenviarlasalidaaunficherodetextoporsinecesitamoshaceralgunamodificacin:

mysqlbinloginfoalisalbin.000001>/tmp/fichero.sql

Ejemplo:actualizarunservidorMySQLdesdeelregistrobinario:

mysqlbinlogFicheroLog|mysqlhNombreServidor.

SentenciaSHOWBINLOGEVENTS

SHOWBINLOGEVENTS[IN'NombreFicheroLog'][FROMpos][LIMIT[offset,]row_count]
NombreFicheroLog:escribimoselnombredelficherologquequeremosver.Sinoseescribeningunomostrarelprimerodeellos.

LIMIT:puedetomarlosmismosvaloresqueenelcasodelasentenciaSELECT.Esconvenienteutilizarunvalorenestaclusulaparaevitarqueelprocesosealargoyque
consumademasiadosrecursos.

Debesconocer

Paravertodaslasopcionesdisponiblesparalaherramientamysqlbinlogconsultaelsiguienteenlace:

Laherramientamysqlbinlog.

Ejercicioresuelto

1.Activalosficheroslogsiguientes:logbin,logerror,generallog.
2.Unavezactivados,muestraelcontenidodelprimerregistrobinarioconelcomandoSHOW.
Mantenimientodetablas.

Casoprctico

AAlejandraselehanquedadograbadosdosconceptosqueconsideramuyimportantes'mantenimiento'y'preventivo'.Sindejardelado
laimportanciadelascopiasdeseguridad,pretendeahorarevisarlassentenciasquemanejaelSGBDparaloscasosenqueunatabla
pierdasuintegridadpoderrecuperarlosdatossinsufrirprdidasysiesposibleevitarqueesassituacionesseproduzcan.

Sabeque,aligualqueparanuestrosmecnicoseneltaller,paraelcorrectofuncionamientodelabasededatoselmantenimientoyla
prevencinsonesenciales.

Unodelosproblemasquenospodemosencontrarenelmantenimientodeunabasededatos,esquelastablaspuedanresultardaadasenalgnmomentoconeldesarrollode
laactividadnormaldelaempresa.

Esnecesariotenerencuentaqueademsdefallosdehardware,interrupcionesdecorriente,cierreindebidodelservidor,yotrascircunstanciasqueyahemosmencionado
distintas personas van a acceder a los datos y se pueden producir fallos por descuidos o porque estos usuarios tengan distintos niveles de conocimientos con relacin al
tratamientodelosdatos.

Vamosatratarahoraladeteccinyresolucindeproblemasconlastablas,independientementedecmosurjanesosproblemas.

ParaverificaryrepararlastablasdenuestrabasededatosconMySQL,podemosutilizardistintasherramientas:

Lasutilidadesmyisamchkymysqlcheck,paratablasdetipoMyISAM.
MediantesentenciasSQLquepodemosejecutardirectamenteomedianteunainterfazdenominadamysqlcheck.

La ventaja de utilizar las sentencias directamente es que el trabajo lo hace el servidor y con mysqlcheck tendremos que asegurarnos que el
servidornoutilizalastablasalavez,provocandointerferencias.

LassentenciasparaelmantenimientodetablasenMySQLlasclasificamosenfuncindeltipodetablasalasquesepuedenaplicaryaquenos
vamosaencontrarconqueenalgunoscasosslopuedenutilizarsecontablasdetipoMyISAMyenotroscasosconvariostiposdetablascomo
MyISAMeInnoDB(yBDB),quesonlasmsutilizadas:

SentenciasdemantenimientoparatablasMyISAM.

CHECKSUM
REPAIRTABLE

Paraotrostiposdetablas(MyISAM,InnoDB,BDB,etc.).
ANALYZETABLE
CHECKTABLE
OPTIMIZETABLE

Elprocedimientogeneralparadetectarlosdaosdelatablaycorregirloseselsiguiente:

1.Verificarlatablaenbuscadeerrores.Sinotieneerroreselprocesohabrterminado.
2.Hacercopiasdelosarchivosdelatablaantesdeempezararepararla,porsialgosalemal.
3.Intentarrepararlatabla.
4.Silareparacinfalla,restaurarlatabladesdelascopiasdeseguridadylosficheroslog.

Partimosdequehemosrealizadocopiadeseguridaddelabasededatosyqueesthabilitadoelusodellog.

Reflexiona

HacemoshincapienlastablasdetipoMyISAMeInnoDBporque,talcomosedijoenunaunidadanterior,sonlasmsutilizadasenfuncindelautilidadquevayamos
adaranuestrabasededatos.

Sinuestraintencinespublicarenlaweb:lastablasMyISAMsonmsrpidas
Parapodertrabajarcontransaccionesyclavesajenas:necesitamostablasInnoDB.

Porestemotivoesfundamentalconocerestasherramientasenfuncindeltipodetablasconlasquetrabajemos.

Autoevaluacin

SeleccionalassentenciasquepodemosaplicaraunatabladetipoMyISAM:
CHECKTABLE.

CHECKSUM.

REPAIRTABLE.

OPTIMIZETABLE.

MostrarInformacin
UtilidadesparatablasMyISAM:Myisamchk.
Estautilidadsirveparacomprobar,repararyoptimizartablasMyISAM.

Antesdeejecutarmyisamchkdebemoscomprobarqueningnotroprogramaestutilizandolastablas.Siestoocurreesnecesariocerrar
eseprogramayejecutarFLUSHTABLESparaactualizarloscambiosquesehayanpodidohacer.

Laformadeejecutaresteprogramaeslasiguiente:

myisamchk[opciones]NombreTabla1,
NombreTabla:Silatablanoseencuentraeneldirectorioactualhabrqueindicarlaruta.Puedencomprobarseunaovariastablasoindicartodaslastablasdeundirectorio
refirindonosaellasporlosarchivosdendicescomo*.MYI.

Opciones:Sonmuchaslasopcionesquesepuedenaadiramyisamchk,haremosunresumendelasmsutilizadas:

OpcionesparaMyisamchk
OPCIONESDEmyisamchk SIGNIFICADODELAOPCIN

silent,s Activaelmodosilenciosoquesloescribecuandoocurrealgnerror.

verbose,v Imprimemsinformacin.

version,V Informanicamentesobrelaversin.

wait,w Silatablaestbloqueada,esperaaquesedesbloqueeycontina.

OPCIONESPARACOMPROBARTABLAS

check,c Eslaopcinpordefecto.Compruebasihayerroresenlatabla.

checkonlychanged,C Slosecompruebanlastablasquehancambiadodesdelacomprobacinanterior.

extendedcheck,e Compruebalatabladeformaminuciosa.

fast,F Compruebalastablascerradasdeformainadecuada.

force,f Reparaautomticamentelatablasiencuentraalgnerror.

mediumcheck,m Compruebamsrpidoqueextendcheck.

updatestate,U Indicaquesehacomprobadolatablayguardainformacinenelarchivo.MYI.

OPCIONESPARAREPARARTABLAS

backup,B Haceunacopiadeseguridaddelarchivo.MYD.
OPCIONESDEmyisamchk SIGNIFICADODELAOPCIN

correctchecksum Corrigeelchecksumdelatabla.

extendcheck,e Intentareparartodoslosregistrosdelarchivodedatos.Noesconveniente.

force,f Sobreescribearchivostemporales(.TMD)sininterrumpirlareparacin.

keysused=#,k# Indicaqundicestienequeactualizar.

quick,q Nomodificaelarchivodedatosporloquelareparacinesmsrpida.

recover,r Eslaopcinmscomnparalareparacindetablas.

saferecover,o Reparaalgunoscasosquenosepuedenrepararconr.

sortrecover,n Utilizaordenacinparaestablecerlasclaves.

OTRASOPCIONES

analyze,a Analizaladistribucindelasclaves,ayudandoaescogerelordenylasclavesalunirlastablasconjoin.

description,d Imprimeunadescripcindelatabla.

setautoincrement[=value],A[value] Sirveparaespecificarunvalorparalanumeracinautoincremental.

sortindex,S Ordenalosbloquesdendicesparaquelasbsquedasseanmsrpidas.

sortrecords=#,R# Ordenalosregistrosconunndicequehacelosdatosmslocalizables.

Parasaberms

Lasopcionesdemyisamchkreferenciadassonslounresumendetodaslasquedisponeesaherramienta.Paraconocerelrestodeopciones,juntoconejemplosde
reparaciones,visitaelsiguienteenlace:

LautilidadmyisamchkparaelmantenimientodetablasMyISAM.

Ejercicioresuelto

Escribelasentenciaparacomprobartodaslastablasdelabasededatospruebasusandomyisamchk.

NOTA:Puedesdescargarelscriptdecreacindelabasededatospruebas.

CreatePruebas.zip(0.01MB)
Mysqlcheck.
Estaaplicacincomprueba,analiza,optimizayreparalastablasdetipoMyISAM.Presentamuchassimilitudesconmyisamchk,ladiferenciaesquemysqlchecknonecesita
queelservidorestparadoymyisamchks.

Laformadeejecutaresteprogramaeslasiguiente:

mysqlcheck[opciones]NombreBaseDatos[NombreTabla1,]
Paramsdeunabasededatos:
mysqlcheck[opciones]databasesNombreBaseDatos1[NombreBaseDatos2NombreBaseDatos3]

mysqlcheck[opciones]alldatabases

Esta herramienta usa los comandos SQL, CHECK TABLE, REPAIR TABLE, ANALYZE TABLE, OPTIMIZE TABLE, segn convenga a la
operacinquequeramosrealizar.

Pordefectoutilizalaopcinc.Sienlugardemysqlchecklosustituimospor:

Mysqlrepair:reparatablas.Comolaopcinrepair.
Mysqlanalyze:analizalastablas.Comolaopcinanalyze.
Mysqloptimize:optimizalastablas.Comolaopcinoptimize.

Algunasdelasopcionesqueadmitemysqlcheckson:

OpcionesparaMysqlcheck
OPCIONESDEmysqlcheck SIGNIFICADODELAOPCIN

..alldatabases,A Paracomprobartodaslastablasdetodaslasbasesdedatos.

analyze,a Analizalastablas.

autorepair Sialcomprobarunatablaencuentrafallos,lareparaautomticamente.

check,c Compruebalastablasenbuscadeerrores.

checkonlychanged,C Compruebanicamentelastablasquehansufridocambiososehancerradomal.

extended,e Compruebalastablasal100%,perotardamuchoygeneraregistrosbasura.

mediumcheck,m Chequeomsrpidoqueextendycompruebalastablasal99,99%.

optimize,o Optimizalastablas.

quick,q Eselchequeomsrpido.

repair,r Reparaprcticamentetodotipodeerroresenlastablas.
OPCIONESDEmysqlcheck SIGNIFICADODELAOPCIN

silent,s Modosilenciosenelqueslosemuestranlosmensajesdeerror.

Parasaberms

Paraampliarlainformacinsobremysqlcheckconsultaelsiguienteenlace:

mysqlcheck.

Ejercicioresuelto

PartiendodelabasededatosdenominadapruebasydentrodeellaunatablaagendadetipoMyISAM.
Chequealatablaconmysqlcheckoptimizndola.

NOTA:Puedesdescargarelscriptdecreacindelabasededatospruebas.

CreatePruebas.zip(0.01MB)
SentenciasparaelmantenimientodetablasI:ANALYZETABLEyOPTIMIZETABLE.
ParaanalizartablastantoMyISAMcomoInnoDBpodemosusarlassiguientessentencias:ANALYZETABLE,OPTIMIZETABLEyCHECKTABLE.

ANALYZETABLE

Seutilizaparaanalizaryalmacenarlosndicesdeunatabla,paraellobloquealastablasparalectura.

Estainformacinalmacenadaseutilizarparaestablecerenquordensehacenlosjoinsenlastablas.Ladistribucindeclavesalmacenadasepuedeverconelcomando
SHOWINDEX.

Funcionadeformasimilaramyisamchka,peroenestecasosepuedeutilizarcontablasBDBeInnoDB,ademsdeMyISAM.

ANALYZE[LOCAL|NO_WRITE_TO_BINLOG]TABLENombreTabla1[,NombreTabla2,]
Elresultadodeestecomandodevuelveunatablacon4columnas:

Nombre:conelnombredelatabla.
Op:laopcinanalyze(anlisis).
Msg_type:quepuedecontenerlosvalores:status,error,infoowarning(estado,error,informacinoaviso).
Msg_text:contieneelmensajedetexto.

El resultado de este comando se escribe en el log binario excepto si incluimos NO_WRITE_TO_BINLOG o LOCAL. Si la tabla no ha
cambiadodesdeelltimoANALYZE,nosevuelveaanalizar.

UnadelasrazonesparaemitirANALYZETABLEesquecuandounatablasufremuchasmodificaciones(INSERToDELETE,porejemplo),coneltiempoeloptimizadorno
puedehacerlamejoreleccincuandosetratadedecidirsidebeutilizarunndiceespecficoono.ANALYZEayudaaloptimizadordeconsultasatomardecisiones
correctasmedianteunanlisisdetalladodelosdatos,adiferenciadeloptimizadordeconsultasquehaceunanlisisrpido.
OPTIMIZETABLE

Seutilizacuandoqueremosrecuperarelespacioqueocupabanlosdatosborradosentablasconregistrosdelongitudvariables,(sonlas
queusancolumnasdetipoVARCHAR,TEXT,BLOB,etc.).

Por defecto ese espacio no est disponible cuando insertamos nuevos datos. OPTIMIZETABLE desfragmenta el fichero que contiene los
datosresultandounatablamspequea.

FuncionacontablasInnoDB,DBDyMyISAM.Sepuedehacerfuncionarconotrostiposdetablamodificandolasopcionesdearranque.

EnelcasodetablasMyISAM:reparalatabla,ordenalosndicesyactualizalasestadsticas.
ParatablasBDB:semapeacomoANALYZETABLE.
ParatablasInnoDBsemapeacomoALTERTABLE:reconstruyelatabla,lasestadsticas,losndicesyliberaelespacionousado.

Lasintaxisdeestecomandoes:

OPTIMIZE[LOCAL|NO_WRITE_TO_BINLOG]]TABLENombreTabla1[NombreTabla2,]
EstecomandoseescribeenellogbinarioexceptoqueseestablezcaNO_WRITE_TO_BINLOGoLOCAL
Mientrasseejecuta,estasentenciabloquealatablaqueestoptimizando.

Ejercicioresuelto

Partiendodelatablapruebas.agendadelejercicioanterior,analizalatablaconlasentenciaANALYZEycompruebaqueelresultadosehaguardadoenellogbinario
conlasentenciaSHOWBINLOGEVENTS.

NOTA:Puedesdescargarelscriptdecreacindelabasededatospruebas.

CreatePruebas.zip(0.01MB)
SentenciasparaelmantenimientodetablasII:CHECKTABLE.
CHECKTABLE

Esuncomandoquechequeaunaomstablasenbuscadeerrores.Tambinpuedecomprobarerroresenlasvistascomoporejemplotablasalasquesehacerreferenciaen
unavistayyanoexisten.

CHECKTABLENombreTabla1[NombreTabla2,][Opciones]
CHECKTABLE

Esuncomandoquechequeaunaomstablasenbuscadeerrores.Tambinpuedecomprobarerroresenlasvistascomoporejemplotablasalasquesehacerreferenciaen
unavistayyanoexisten.

CHECKTABLENombreTabla1[NombreTabla2,][Opciones]
Elresultadodeestecomandodevuelveunatablacon4columnas:

Nombre:elnombredelatabla.
Op:Laopcincheck(chequear).
Msg_type:quepuedecontenerlosvalores:status,error,infoowarning(estado,error,informacinoaviso).
Msg_text:contieneelmensajedetexto.

Lasalidadeestecomandopuedeserdevariosregistrosporcadatablaquechequeamos.LonormalesqueelltimodeesosregistrostengalosvaloresdestatusenMsg_type
ydeOkounmensajesimilarenMsg_text,esosignificarquenoesnecesariochequearlatabla.Sinodevuelveesosvaloressernecesariorepararlatabla.

Lasopciones,slodisponiblesparatablasMyISAM,(enInnoDBnosetienenencuenta)puedenser:

QUICK:Noescanealosregistrosenbuscadeenlacesincorrectos.
FAST:Slochequealastablasquenosehayancerradocorrectamente.
MEDIUM: Verifica que los enlaces borrados estn correctos y calcula el checksum de la clave para los registros comparndolo con el checksum calculado para las
claves.
EXTENDED:Aseguraquelatablaestotalmenteconsistenteyaquehaceunabsquedacompletaparatodoslosndicesdecadaregistro.Esmuylento.
CHANGED:Sloverificalastablasquenosehancerradocorrectamenteosehanmodificadodesdeelchequeoanterior.

Algunosaspectosatenerencuenta:

La opcin por defecto es MEDIUM y es equivalente a ejecutar: myisamchk mediumcheck NombreTabla. (Si hemos especificado
CHANGEDoFASTpordefectolaopcinserQUICK).
Cuandounatablaestcorruptaprobablementeelproblemaestenelndiceynoenlosdatos.Sinosetieneprisanosedebeusarla
opcinQUICK.
CuandosechequeadesdeunscriptsesueleutilizarFASTyCHANGED.EsmscomnelusodeFAST.
EXTENDEDseusasidespusdeunchequeonormaltodavaquedanerrores.

AlgunoserroresdetectadosconCHECKTABLEnopuedencorregirseautomticamente,porejemploelvalor0enuncampoauto_increment
quepuedeocasionarproblemas.
Ejercicioresuelto

ChequearlatablaAgendaparaversisehacerradocorrectamente.Utilizarunchequeorpido.

NOTA:Puedesdescargarelscriptdecreacindelabasededatospruebas.

CreatePruebas.zip(0.01MB)
SentenciasparaelmantenimientodetablasIII:CHECKSUMTABLE,REPAIRTABLE.
LassentenciasdemantenimientodisponiblesparatablasMyISAMsonlassiguientes:CHECKSUMTABLEyREPAIRTABLE.

CHECKSUMTABLE

Checksum o suma de comprobacin de una tabla es una manera de controlar la redundancia, que verifica si los datos estn o no corruptos
garantizandoaslaintegridaddelosmismos.Consisteenalmacenarcadabyteyguardarelresultado.Posteriormentecomparaelchecksumquese
generaalleerlosdatosconelqueresultagrabadoalfinal.Sinocoincidensehabrproducidoalgnerror.Esuncontrolmuysimpleperonomuy
seguro.

CHECKSUMTABLENombreTabla1[,NombreTabla2,][QUICK|EXTENDED]
Si se especifica QUICK el checksum es muy rpido. Si esta opcin no est disponible devolver NULL. Para poder usar esta opcin tendremos que haber especificado
CHECKSUM=1enlasentenciaCREATETABLE.

REPAIRTABLE

Seutilizaparareparartablasqueprevisiblementeestncorruptas.nicamentefuncionaenelcasodetablasMyISAM.

Essimilarautilizarmyisamchkrecover

Lasintaxisdeestecomandoes:

REPAIR[LOCAL|NO_WRITE_TO_BINLOG]TABLENombreTabla1[,NombreTabla2,]
[QUICK][EXTENDED][USE_FRM]
Elresultadodeestecomandodevuelveunatablacon4columnas:

Tabla:elnombredelatabla.
Op:laopcinrepair(reparar).
Msg_type:quepuedecontenerlosvalores:status,error,infoowarning(estado,error,informacinoaviso).
Msg_text:contieneelmensajedetexto.

Lasalidadeestecomandopuedeserdevariosregistrosporcadatablaquereparemos.LonormalesqueelltimodeesosregistrostengalosvaloresdestatusenMsg_typey
deOkenMsg_text,esosignificarquenoesnecesariorepararlatabla.Sinodevuelveesosvaloressernecesariorepararlatablaconmyisamchksaferecoveryaque
estecomandotienemsopcionesqueREPAIRTABLE.

QUICK:esequivalenteamyisamchkrecoverquick.Reparasloelndice.

EXTENDED:esequivalenteamyisamchksaferecover.Creaelndiceregistroaregistro.
USE_FRM: se usa cuando falta o est corrupto el fichero de ndices (.MYI). Esta opcin no est disponible con myisamchk, aunque no
siempreesrecomendableporquepuedeproducirlaprdidadedatos(metadatos),porejemplosilatablaestcomprimida.

EstecomandoseescribeenellogbinarioexceptoqueseestablezcaNO_WRITE_TO_BINLOGoLOCAL.

Ejercicioresuelto

IntentarepararlatablaAgenda.

NOTA:Puedesdescargarelscriptdecreacindelabasededatospruebas.

CreatePruebas.zip(0.01MB)
Herramientasgrficasparaelmantenimientodetablas.
AdemsdelassentenciasSQLyotrosprogramasclientequeincorporaMySQLparaanalizaryreparartablas,existenherramientasgrficas
queincorporaninterfacesparalaadministracindelabasededatoseincluyenopcionesparaoptimizar,chequearyrepararlastablas.

Entreesasherramientasgrficasdisponiblesdeformagratuitaenelmercado,queincorporanopcionesparallevaracaboelmantenimiento
delastablas,seencuentranMySQLAdministratoryPhpMyAdmin.

Debesconocer

ParavercmorealizarelmantenimientodelastablasdeunabasededatosdesdePhpMyAdminconsultaenelenlacesiguiente:

MantenimientodetablasconPhpMyAdmin.(0.69MB)
MantenimientodetablasconPhpMyAdmin.(0.69MB)

Autoevaluacin

MySQL Administrator y PhpMyAdmin incorporan una interfaz grfica para el mantenimiento de tablas que implementa algunas sentencias SQL vistas en
estaunidad.Seleccionadelasiguientelista,lassentenciasalasquenosreferimos:
REPAIRTABLE.

CHECKTABLE.

OPTIMIZETABLE.

ANALYZETABLE.

MostrarInformacin
Copiasdeseguridad.

Casoprctico

EnelapartadoanteriorAlejandrahaconsideradotodaslassituacionesquepuedenprovocarfallosenlabasededatosy,havisto
quemuchasdeellassonimprevisibles.

Ellasabequelamejorsolucindelosproblemaseslaprevencin,peroenmuchoscasosestonoesposibleCmopodra
evitar que el disco duro que guarda la base de datos sufra algn dao? Ahora que TalleresFaber est en pleno funcionamiento
tiene claro que no debe correr riesgos. Si no puede evitar que en algn momento la base de datos pueda daarse, si puede
establecerunaestrategiaparapoderrecuperarlainformacin,siesoocurre.

Alejandrasedisponeaestudiarcmohacercopiasdeseguridaddeunabasededatosypoderrestaurarlosdespus.Veamos
culessonlospasosnecesarios.

Lainformacincontenidaenunabasededatosdebeestarsiempreactualizada.UnavezimplantadounSGBDesmuyimportanteaseguraresainformacin,puestoquedeello
vaadependereldesarrollodetodaslasaplicacionesposteriores.Unadelascuestionesmsimportantesatenerencuenta,esestablecerunapolticadecopiasdeseguridado
backup.Lascopiasdeseguridaddelabasededatostienenunaimportanciavitalencasodeunacadagravedelsistema.

Una copia de seguridad o respaldo se realiza con el objetivo de poder restaurar el original cuando se produzca una prdida de datos garantizando la integridad y la
disponibilidad.

Alahoradehacerunacopiadeseguridadhayqueconsiderar:

Eldispositivoenquesevanaalmacenarlosdatosdelacopiadeseguridad.
Procedimientodecopiaoptimizado.Quepermitatrabajarcondatosenuso.
Procesosdecompresinycifrado.

Aunquepareceunprocesosencilloenalgunoscasosesimportantecopiarnicamentelosficherosquesehayanmodificado.Paraellose
utilizansistemasincrementalesquepermitencopiarslolosbloquesfsicosquehansufridocambios.

Cuandolacopiadeseguridadsehacesobredatosenusoesposiblequehayaficherosabiertosyqueesteprocesotardevariosminutos,
paraellosebloqueaelficheroparaevitarqueseproduzcancambios,otraposibilidadeshacerunaimagendelficheroyrecogerunregistro
deloscambiosquesehanproducidomientrasduraesteproceso.

Larealizacindecopiasdeseguridadsiempretieneimpactoenelsistemaporesoesimportanteprogramarsuejecucinparaaumentarsu
efectividadyniveldeoptimizacin.
Reflexiona

Lacopiadeseguridadeselmejorsistemaparaprotegerlosdatosdeunaempresa,portantoesmuyimportantequestasehayarealizadocorrectamenteyquepueda
serrestauradaasuubicacinoriginal
Tiposdecopiasdeseguridad.
EnMySQLlastablassealmacenancomoarchivos,portantopodemoshacerfcilmentecopiasdeseguridad.Paraellonecesitamospreviamente:

1.BloquearlastablasrelevantesconLOCKTABLESparaevitarmodificacionesenlasmismasduranteesteproceso.nicamenteesnecesarioelbloqueodelectura,deesta
formaotrosusuariospuedenconsultarlabasededatosmientrassehacelacopia.
2.EjecutarFLUSHTABLESparaactivartodoslosndicesasociadosalastablasantesdecopiar.

Debesconocer

Para conocer la sintaxis del comando FLUSH y revisar la sintaxis de las sentencias LOCK/UNLOCKTABLES vistas en una unidad anterior, puedes acceder al manual
pinchandoenlossiguientesenlaces:

LOCK/UNLOCKTABLES
FLUSH

Podemoshacercopiasdeseguridad:

Detablas,aniveldeSQL:
ConSELECTINTOOUTFILE.
ConBACKUPTABLE.
Delabasededatos:
Conelprogramamysqldump.
Conelscriptmysqlhotcopyscript.

Consideraciones:

EnelcasodetablasISAMyMyISAMtambinpodemossimplementecopiarlosarchivosquegeneracadaunadeesastablas(.frm,.MYD,.MYI),peroestonoesvlido
paratablasInnoDB.Mysqlhotcopy.
Antesdehacerunacopiaconmysqldumpesnecesarioactivarelregistrobinarioparapoderrecogerloscambiosqueseproduzcanmientrasejecutamosmysqldump.
Podemoshacerunacopiadeseguridadincrementalparaellohabrqueactivarelregistrobinario.Parahacerlacopiadeseguridadincrementalsernecesario:
EjecutarFLUSHLOGS.
Copiaraldirectoriodeseguridadtodoslosregistrosbinariosdesdelaltimacopiadeseguridad.
Vamosavertodosestosprocedimientosmsdetenidamenteenlossiguientesapartados.

Autoevaluacin

Parahacerunacopiadeseguridaddelabasededatosesnecesariopararelservidorparaquenosemodifiquendatosduranteelproceso.Verdaderoofalso?

Verdadero Falso
CopiasdeseguridaddetablasconSELECTINTOOUTFILE.
Sirveparahacerunacopiadeseguridaddeunatablaenunfichero:
SELECTINTOOUTFILE'NombreFichero'OpcionesDeExportacin
EscribelosregistrosseleccionadosconSELECTenunficheronuevo.Esteficheronodebeexistirpreviamente.Elficherodedestinodebe
estarenlamquinaservidor,nopuedeestarenunamquinadistinta.

Suutilidadprincipalesladepermitirvolcarrpidamenteunatablaenelordenadorquehacedeservidor.

LasOpcionesDeExportacinpuedenserFIELDSyLINES,ambassonopcionalesperosiseespecificanambas,FIELDStienequeirantes
deLINES.

FIELDS
FIELDSTERMINATEDBY'Cadena'.
FIELDS[OPTIONALLY]ENCLOSEDBY'Carcter'.
FIELDSESCAPEDBY'Carcter':Controlacomoescribircaracteresespeciales.
LINES
STARTINGBY'Cadena':Ignoraelcarcterqueseusacomoprefijocomnatodaslaslneas.
LINESTERMINATEDBY'Cadena'.

Sinoseespecifican,losvalorespordefectoson:

ParaFIELDS

FIELDSTERMINATEDBY'\t'ENCLOSEDBY''ESCAPEDBY'\\'
ParaLINES
LINESTERMINATEDBY'\n'STARTINGBY''
Pordefectoestecomandofunciona:

Sincomillasenloscampos.
Contabuladoresparasepararloscampos.
Cmocarcterdeescapelabarra(\).
Alfinaldecadalneaescribeunalneanueva.

EstecomandocomplementaaLOADDATAINFILE.

LOADDATAINFILE'NombreFichero'[REPLACE|IGNORE]INTOTABLENombreTablaOpcionesDeImportacin
LasOpcionesDeImportacinsonlasmismasquelasOpcionesDeExportacinvistasparaSELECTINTO

Parasaberms

Paraconocerelrestodeopcionesdelassentenciasanterioresaccederalmanualmediantelossiguientesenlaces:

SELECTINTOOUTFILE
LOADDATA

Ejemplo:Parahacerunacopiadeseguridaddearchivosindividuales.

1.Paravolcarlatabla:
SELECT*INTOOUTFILE'NombreArchivo'FROMNombreTabla
2.Pararestaurarlatabla:
LOADDATAINFILE'NombreArchivo'INTOTABLENombreTablaREPLACE.

REPLACEseutilizaparaevitarregistrosduplicadoscuandounregistronuevoyunoviejotenganlamismaclave.Latablatienequetenerunndicequenoadmitaduplicados.

Ejercicioresuelto

RealizaunacopiadeseguridaddelatablaAgenda
CopiasdeseguridaddetablasconBACKUPTABLE.
Copiaaldirectoriodedestinoelmnimonmerodeficherosquesenecesitaparapoderrestaurarlatabla.
BACKUPTABLENombreTabla1,[,NombreTabla2..]TO'///NuevoDirectorio'
EstecomandosoloesvlidocontablasMyISAM.ComosabemoslastablasMyISAMsealmacenanendiscoen3ficherosquesedenominanigual
quelatablaperoconlasextensiones:

frm:almacenaladefinicindelatabla.
MYD:almacenalosdatos.
MYI:almacenaelndice.

Estecomandocopialosficheros.frmy.MYD,elficherodendice.MYIsereconstruyeapartirdelosotrosdos.

Antesdehacerlacopiadeseguridadseefectaunbloqueodelecturapreviodecadatabla,silacopiadeseguridadafectaavariastablas,sedebe
utilizarLOCKTABLESparahacerunbloqueodelecturadelasmismasyasevitarquesehagancambiosenalgunamientrasseesthaciendola
copiadeseguridad.

PararestaurarlacopiadeseguridadseutilizaelcomandoRESTORETABLEcuyasintaxises:

RESTORETABLENombreTabla1,[,NombreTabla2..]FROM'///NuevoDirectorio'

TantoBACKUPTABLEcomoRESTORETABLEsoncomandosqueestnendesuso.EnlaversindeMySQL5.5yposterioresyanoseincluyen.Ensulugaresmejor
utilizarmysqlhotcopy.
Conmysqldump.
Permitehacercopiasdeseguridaddeunaovariasbasesdedatos,ascomotransferirdatosacualquierotroservidorquepuedenoser
MySQL.EstosehacemediantecomandosSQLquefacilitanlacreacindelatablayelvolcadodelosdatos.

ElarchivocreadoesunarchivodetextoquecontienelassentenciasSQLnecesariasparacrearlastablaseinsertarlosdatosenlasfilas.Es
un fichero de salida que puede usarse despus para generar de nuevo la base de datos, bien desde la lnea de comandos de MySQL o
desdelapantalladecreacindesentenciasSQLdecualquierentornogrfico.

Laslimitacionesdelarestauracindependerndelasopcionesquesehanespecificadoalhacerlacopiadeseguridad,portantoesmuy
importanteelegirestasopcionescorrectamenteparanollevarnossorpresasdesagradables.

Paravolcarunaomsbasesdedatosenunficherodetextopuedenusarsedistintassintaxis:

Mysqldump[opciones]NombreBaseDatos[Tablas]

Mysqldump[opciones]databasesNombreBaseDatos1[NombreBaseDatos2NombreBaseDatos3]

Mysqldump[opciones]alldatabases

Esteprogramaadmiteunagranvariedaddeopciones,deellasvamosadestacarlasmstiles:

OpcionesparaMysqldump.
OPCIONESDEmysqldump SIGNIFICADODELAOPCIN

adddroptable Aadeelcomandodroptableantesdecreatetablealrestaurar.

addlocks Aadebloqueosdetablaparaquelasinsercionesseanmsrpidas.

alldatabases,A Copiatodaslasbasesdedatos.Eslomismoqueutilizardatabasesseleccionandotodas.

compatible=Sistema Lasalidademysqldumpsercompatibleconelsistemaelegidoquepuedeser:oracle,postgre,db2,etc.

compress,C Comprimelainformacinentreelclienteyelservidor,siamboslosoportan.

createoptions IncluyetodaslasopcionesdetablaespecficasdeMySQLenCREATETABLE.

flushlogs,F Escribeendiscotodosloslogsantesdecomenzarconlacopia.

force,f ContinaaunqueseproduzcaunerrordeSQLdurantelacopia.

lockalltables,x Bloqueatodaslastablasdetodaslasbasesdedatos,conunbloqueodelecturaglobal.

nodata,d Vuelcanicamentelaestructuradelatabla.

opt Creaunvolcadorpido.Actualmenteestactivadopordefecto,paradesactivarloconskipopt.
OPCIONESDEmysqldump SIGNIFICADODELAOPCIN

password[=contrasea],
Sirveparaintroducirlacontraseaalconectarconelservidor.Siseomitelacontrasealapidealejecutarelcomando.
p[contrasea]

quick,q Seutilizaparatablasgrandes.Guardalosregistrosdeunoenunoenlamemoriapreviamente.

singletransaction Seusacontablastransaccionales.EjecutaBEGINantesdevolcarlosdatos.Nosepuedeusarconlocktables.

tables Losargumentosquevienenacontinuacinsetomancomonombresdetablas.

User=NombreUsuario,
Nombredelusuarioparaconectarconelservidor.
uNombreUsuario

where='Condicin',w'Condicin' VuelcaslolosregistrosquecumplenlacondicinWHERE.

Parasaberms

Paraconocerelrestodeopcionesqueadmiteelprogramamysqldumpaccedealmanualenelsiguienteenlace:

mysqldump.

Ejercicioresuelto

Crea una copia de seguridad con mysqldump de la base de datos TalleresFaber en el archivo Copia20110501.sql con los datos de usuario Alejandra y password
Alisal2011.

Escribetambinelcomandopararestaurarlacopia.
Mysqlhotcopy.
SeutilizaparahacercopiasdeseguridadcuandotodaslastablasqueintegranlabasededatossondetipoMyISAM,yaquetantolacopia,comola
restauracinsonmsrpidas.

ParahacerlacopiadeseguridadestautilidadhaceunlocksobrelastablasycopialosarchivosdelabasededatosMyISAM.

Lascaractersticasmsdestacadasdeesteprogramason:

EstescritoenPerl.
Utilizalassentencias:LOCKTABLES,FLUSHTABLES,cpscp.
Necesariamentedebeejecutarseenelordenadordondeseencuentreeldirectoriodelabasededatosquesevaacopiar.
Puedehacerseunacopiadetodalabasededatos,detablasodevariasbasesdedatos.

Sintaxisenelcasodeunanicabasededatos:

MysqlhotcopyNombreBaseDatos[///NuevoDirectorio]
Paravariasbasesdedatos:
MysqlhotcopyNombreBaseDatos1,NombreBaseDatosN///NuevoDirectorio
Cuandoqueremoshacerunacopiadeseguridaddetablasquecontenganunaexpresin,lasintaxises.
MysqlhotcopyNombreBaseDatos./[~]Expresin/
Paraseleccionarlastablasquenocumplanesaexpresinanteponemosalamismaunatilde(~).

Lasopcionesquesoportamysqlhotcopysonlassiguientes:

OpcionesparaMysqlhotcopyscript.
OPCIONESDEmysqlhotcopy SIGNIFICADODELAOPCIN

allowold Sieldestinoyaexistelorenombracon_old.

flushlog Vuelcalosficheroslogdespusdebloqueartodaslastablas.

keepold Mantienesinborrarlosdestinosrenombrados.

method=# Paraelegirelmtododecopia,quepuedesercpscp.

noindices Noincluyelosndicesenlacopiadeseguridad.Posteriormentesepuedenrehacerconmyisamchkrq.

password=contrasea,
Contraseaparaconectaralservidor.Lacontraseanoesopcional.
pcontrasea

port=nmerodepuerto,
PuertoTCP/IPporelquenosconectamosalservidorlocal.
pnmerodepuerto
OPCIONESDEmysqlhotcopy SIGNIFICADODELAOPCIN

regexp=expresin Copialasbasesdedatoscuyosnombrescumplanlaexpresindada.

triggers Vuelcalostriggersasociadosalastablas.Estactivadapordefecto,paradesativarlaconskiptriggers.

user=NombreUsuario,
NombredelusuariodeMySQLparaconectarsealservidor.
uNomnreUsuario
Paratenerinformacinadicionalejecutar:perldocmysqlhotcopy.

Parasaberms

Paraconocerelrestodeopcionesqueadmiteelprogramamysqlhotcopyaccedealmanualenelsiguienteenlace:

mysqlhotcopy.

Ejercicioresuelto

Hazunacopiadeseguridaddelabasededatospruebasconmysqlhotcopy.
Mysqlimport.
EsunprogramaqueseejecutadesdelalneadecomandosyproporcionatodaslasopcionesdelasentenciaLOADDATAINFILE

Lasintaxisdeestaherramientaseslasiguiente:

Mysqlimport[opciones]NombreBaseDatosFicheroTexto1[FicheroTexto2]
FicheroTexto:Elnombredelatabladedestinolotomadelnombredelficherodetexto,sintenerencuentalaextensin.

Ejemplo:siimportamoslosficherosTalleresFaber.txtyTalleresFaber,ambosseimportanalatablaTalleresFaber.

Algunasdelasopcionesquesoportason:

OpcionesparaMysqlimport.
OPCIONESDEMysqlimport SIGNIFICADODELAOPCIN

columns=listacolumnas,
Listadecolumnasseparadasporcomas.Elordendelascolumnasdedatosindicaelordendelascolumnasdelatabla.
clistacolumnas

delete,D Vacalatablaantesdeimportarelficherodetexto.

fieldsterminatedby=...,
fieldsenclosedby=...,
fieldsoptionallyenclosed
SonopcionesequivalentesalasclusulasdeLOADDATAINFILE.
by=...,
fieldsescapedby=...,
linesterminatedby=...

host=NombreHost,
LosdatosseimportanalservidorMySQLdelequipo.
hNombreHost

local,L Leelosficherosdelequipolocal.

locktables,l Bloquealastablasparaescritura.

password[=contrasea],
Contraseaparaconectarsealservidor.
p[contrasea]

Controlancmotratarlosregistrosqueduplicanclaves.replacehacequelosregistrosnuevossustituyanalosanteriores,
replace,r
ignorelosignora.
ignore
Sinoseponeopcinesosvaloresprovocanunerror.
OPCIONESDEMysqlimport SIGNIFICADODELAOPCIN

silent,s Slomuestramensajescuandohayerror.

user=NombreUsuario,
UsuarioparaconectarsealservidorMySQL.
uNombreUsuario

Parasaberms

Paraconocerelrestodeopcionesqueadmiteelprogramamysqlimportaccedealmanualenelsiguienteenlace:

mysqlimport.

Tanto para cargar archivos con LOAD DATA INFILE como para hacerlo con mysqlimport, debes asegurarte de que LOAD DATA LOCAL INFILE est activado en el
ficheromy.ini.

Ejercicioresuelto

PartiendodelficheroCopiaClientescreadoapartirdelatablaTalleresFaber.CLIENTES,conlainstruccin:

SELECT*INTOOUTFILE'CopiaClientes'FROMCLIENTES;

Importarlacopiaconmysqlimport:
Planificacindecopiasdeseguridad.
Debido a su importancia, no podemosdejarquelarealizacindecopiasdeseguridad dependa de que las personas que gestionan la
basededatosejecutenesteprocesocadaciertotiempo. Si queremos evitar muchos dolores de cabeza stas deben programarse para
queseejecutenperidicamente,deformaautomtica.
Lascopiaspuedenhacersecondiferentesherramientas:

InnoDbHotBackup:copiadeseguridadenlnea,sinbloqueos,paraarchivosInnoDB,quenomolestaalaslecturasyescriturasde
lastablas.ActualmentehacambiadosunombreporMySQLEnterpriseBackup.EspropiedaddeOracleynoesunaherramienta
gratuita
Mysqldump:copiadeseguridadonlinequeyahemosvistoenestaunidad.
MysqlhotcopyexclusivamenteparatablasMyISAM.
HerramientasgrficascomoPhpMyAdmin,MySQLAdministrator,MySQLWorkbench,etc.

1.Cundohacerlacopiadeseguridad:esimportanteprogramarestascopiascuandolacargadetrabajoesbaja,sobretodosilacopiadeseguridadescompleta.
2.Qu tipo de copia de seguridad se debe hacer: las copias de seguridad completas no siempre son convenientes porque incluyen tambin los datos que no han
cambiadodesdelaltimacopia,llevanmuchotiempoysonmuygrandes.Esconvenienterealizarunacopiadeseguridadcompletainicialmenteydespushacercopias
incrementales.Pararecuperarlasserecargalacopiacompletaylascopiasincrementales.
3.Cmo hacer las copiasdeseguridad:para hacer la copiadeseguridadcompleta podemos utilizar mysqldump. Porejemplo: mysqldump singletransaction
TalleresFaber>Backup_20110501.sql(domingo)

SiutilizamossingletransactionsuponemosquetodaslastablassonInnoDBynosaseguramosquelabasededatossevuelcaenestadoconsistente.Obtendremosunarchivo
SQLconloscomandosINSERTpararecuperarlastablasvolcadas.

Parahaceruna copiadeseguridadincrementalnecesitamosguardarloscambiosquesehayanproducidodesdelaanteriorcopiadeseguridad,paraesoesnecesario
activarelregistrobinarioaliniciarelservidorparaquetodosloscambiosqueactualicendatosseguardenenunarchivoderegistrobinario.Estosarchivosseguardanenel
directorio data y se crea uno nuevo cada vez que se arranca el servidor. Junto a estos archivos se guarda tambin un archvio .index. Para iniciar un nuevo registro binario
cuandoqueramospodemosejecutarFLUSHLOGSomysqladminflushlogs,peromysqldumptambintieneunaopcinparavolcarloslogs.

Ejemplodecopiasdeseguridad:supongamosqueennuestrotallerseactualizadiariamenteelregistrobinariopararecogertodosloscambios,portantoalhacerla
copiadeseguridadnosinteresavolcarelregistrobinarioeinicializarunonuevoquerecojanicamenteloscambiosapartirdeesacopia.Sitenemosestoencuenta
lacopiadeseguridaddeldomingosehar:

Ejemplo:mysqldumpsingletransactionflushlogsTalleresFaber>Backup_20110501.sql(domingo)

Unavezhechalacopiadeseguridadeldomingo,eneldirectoriodatahabrunnuevoarchivoderegistrobinarioquerecogerloscambiosposterioresalacopia
quehemoshecho.

Silacopiaincrementalesdiaria,comohemosdicho,cadadaejecutaremosmysqladminflushlogsoFLUSHLOGSparacrearelsiguienteregistrobinario.

4.Cmoborrarlosregistrosbinariosquenosenecesiten:losregistrosbinariosocupanespacio,devezencuandosernecesarioeliminarlosquenosenecesiten.
Paraelloalhacerlacopiadeseguridadseescribe:
Ejemplo:mysqldumpsingletransactionflushlogsTalleresFaberdeletemasterlogs>Backup_20110501.sql

5.Cmorestaurarlacopiadeseguridad:silaltimacopiadeseguridadesladeldomingoharemos:
a.Restaurarlosdatosaldomingo:
mysql>Backup_20110501.sql

b.Restaurarloscambioshechosdesdeentonces,(supongamosdosdasdespus):
mysqlbinloginfoalisal11bin.000007infoalisal11bin.000008|mysql

Autoevaluacin

Conrelacinalaaplicacindellogbinarioalltimorespaldodeunabasededatos,eligelaopcincorrecta:

MysqldumpNombreHostbin.000001|mysql
MysqlbinlogNombreHostbin.000001|mysql

MysqlhotcopyNombreHostbin.000001|mysql
MysqlcheckNombreHostbin.000001|mysql
Herramientasgrficasparalaimportacinyexportacindedatosycopiasdeseguridad.

Casoprctico

LossociosdeTalleresFaberestnsatisfechosconelfuncionamientodelSGBDysuimplantacinenelnegocio.Tantoesasque
han decidido instalar un nuevo servidor, de mayores prestaciones, y colocarlo en un nuevo espacio que cumpla con todas las
medidasnecesariasparagarantizaralmximolaseguridaddelosdatos.

Para Alejandra esto plantea la necesidad de exportar la base de datos a un fichero, incluyendo en l la estructura de tablas e
ndices,ascomolosdatos,procedimientosyfuncionesalmacenados,eimportarlodespusenelservidordedestino.

Decideempezarporanalizartodaslasherramientasquelepuedenayudarenestetrabajoparaelegirlamsconveniente.

Enlosapartadosanterioreshemosvistoalgunasopcionesparaexportarlosdatosdeunabasededatosaunficheroypoderrecuperarlosdespusdeformasdistintas:

MedianteelusodesentenciasSQL.
ConherramientasyprogramasclientequeincorporaMySQL.

Enesteapartadoveremoscmorealizaresasfuncionesutilizandounainterfazgrfica.

Las herramientas grficas que venimos utilizando hasta ahora incorporan funcionalidades relativas a la administracin del servidor entre las que se incluye la posibilidad de
exportareimportardatos.

Seanalizanenestaunidad:

PhpMyAdmin.
MySQLWorkbench.
MySQLAdministrator

Existenotrasherramientasnogratuitasdisponiblesenelmercado.

Lascaractersticasqueofrecenson:

Lamayoradelasherramientasofrecenlaposibilidaddevolcarlabasededatoscompletaoseleccionartablas.
Laexportacinpuedehacerseendistintosformatos:SQL,CSV,texto,etc.ascomolaposteriorrecuperacin.

Enalgunoscasosseofrecelaposibilidaddeprogramarlascopiasdeseguridadparaqueserealicenautomticamenteenundayhorasealados.

MySQLpermitecopiartablasendiferentesformatosdetexto,ascomoimportardatosapartirdeficherosdetextotambinendiferentesformatos.

Esto se puede usar para exportar los datos de nuestras bases de datos a otras aplicaciones, o bien para importar datos desde otras fuentes a nuestras tablas.
Tambinsepuedeusarparahacercopiasdeseguridadyrestaurarlasposteriormente.
PhpMyAdmin.
EsunaherramientaparamanejarlaadministracindeMySQLatravsdepginasweb,utilizandoInternet.
CuandoaccedemosaPhpMyAdminenlaportadaprincipaltenemoslasopciones:

Importar.
Exportar.

Parasaberms

SiquieresverunvdeotutorialsobrecomoImportarExportardatosutilizandoPhpMyAdminpinchaenelsiguienteenlace:

ComoExportareImportarunabasededatosMySQLconPhpMyAdmin.
Tutorial: Como Expo...

Autoevaluacin

SealalaprincipalcaractersticaquediferenciaaPhpMyAdmindelasotrasherramientasparaadministrarbasesdedatosquehemoscitado:

EsunaherramientaparaMySQL.
Permitelaadministracindelabasededatos.
LaadministracinsehacedesdeunapginaWeb.
SedistribuyebajolicenciaGNU.
MySQLWorkbench.
SetratadeunaaplicacindesarrolladaparaMySQLquesepuededescargardesdelapginaweboficial.Cuandoaccedemosaestaaplicacin,en
lazonadeadministracindelservidor(ServerAdministracin),podemosseleccionarenelmendeopciones:DATAEXPORT/RESTORE.

Desdeaqupodemosvolcarorestaurardatosdeunarchivoalabasededatosmedianteelusodeunasistente.

Lasopcionesdisponiblesson:

Exportaradisco.
Importardesdedisco.
Opcionesavanzadas.
Autoevaluacin

Sealasiesverdaderaofalsalasiguienteafirmacin:

DesdeMySQLWorkbenchpodemosimportarunacopiadeseguridaddeunabasededatoshechaconMySQLAdministrator.

Verdadero Falso
MySQLAdministrator.
SetratadeunaaplicacindestinadaalaadministracindeservidoresdebasesdedatosdeMySQLconunentornogrficomuyaccesible.

Entretodaslastareasadministrativasquepermiterealizar,estlagestindecopiasdeseguridadyrecuperacionesatravsdelasopciones
mostradasenelpanelprincipal:

Backup.
Restore.
Autoevaluacin

Ladiferenciafundamentalentreestaherramientaparahacercopiasdeseguridadyelrestodeherramientasvistasenestaunidades:

Permitehacercopiasdeseguridadyrestaurarlas.
Permiteelegirentrecopiadetablasindependientesodetodalabasededatos.
Permiteprogramarlascopiasdeseguridad.(CORRECTO).
Permiteejecutarelbackupenunatransaccin.
MigracindedatosentreS.G.B.D.

Casoprctico

AntesdequeAlejandrafueracontratadaporTalleresFaberparadesarrollarunabasededatos,Silvia,lagerentedeadministracin,
manejabaunapequeabasededatosenAccessconalgunosdatosdelostrabajadoresdelaempresa.

AlejandrapretendetrasladaresabasededatosasuactualSGBDqueesMySQL.

SabemoscmotraspasarinformacindeunSGBDaotro?Sinoesas,serconvenienteseguirlospasosdeAlejandraen
estetrabajoquepuederesultarmuytilcuando,comoenestecaso,nuestroSGBDanteriorsenosquedapequeoynecesitamos
unaherramientamspotente.Trataremospuesenesteapartadodela migracindedatosentredistintosSGBD.

VamosavercmopodemosmigrarbasesdedatosentredistintosSGBDconlasherramientasquenosproporcionanlasaplicacionesquevenimosutilizandohastaahora,para
gestionarnuestrasbasesdedatos.
EnconcretoutilizaremosMySQLMigationToolkitquenospermitemigraraMySQLbasesdedatosdeotrossistemascomoson:

MsAccess.
MaxDbDatabaseServer.
OracleDatabaseServer.
MsSQLServer.
Etc.

Cuandotenemosunaaplicacinenunformato,porejemploAccess, y necesitamos pasarla a otro, como en nuestro caso MySQL, ser necesario convertir esos datos bien
creando nuevas tablas o modificando las existentes ya que algunos tipos de datos pueden diferir de unas bases de datos a otras, especialmente los datos de tipo fecha,
numricos,losdetipomemo(textomayorde256caracteres),imgenes,etc.quepuedenalmacenarsedeformadistinta.

Debido a que se trata de un proceso delicado no lo daremos por finalizado hasta que no estemos seguros de no haber perdido datos y nos ayudaremos para ello de
herramientasfiables.

Conestaherramientapodemosmigrardatosqueresidenenequiposdiferentesdirectamente,usandounagenteespecialdemigracin.

Debesconocer

ParaverpasoapasoelprocesodemigracindebasesdedatosconlaherramientaMySQLMigrationToolkitaccedealadireccinquetemostramosenelenlacea
continuacin.

MySQLMigrationToolkit.
Esta herramienta est descrita en el manual de MySQL, pero no est disponible en la versin traducida en espaol. Si tienes problemas con el ingls, te
recomendamosqueutilicesuntraductoroqueejecuteselenlaceconelnavegadorGoogleChrome,cuyatraduccinesautomtica.

Ejercicioresuelto

PartiendodelabasededatosHorasExtra.mdbenAccess2003quecontieneunanicatabladenominadaHorasExtra,migrarlabasededatosdeAccessaMySQL
utilizandolaherramientaMySQLMigrationToolkit.
Documentacindelasmedidasypolticasdeseguridad.

Casoprctico

AlejandraestapuntodefinalizarlaimplantacindelabasededatosparalagestindeTalleresFaber.Enestaltimafaseseha
encargadodelosaspectosrelativosalaintegridadyalaseguridaddelosdatos.Unavezhechotodoestetrabajoesnecesario
recogerlasmedidasypolticasdeseguridadquehadiseadoenalgndocumentodeformaquetodaslaspersonasqueintegranla
empresaloconozcanylocumplan.

Porotraparte,altratardatosdecarcterpersonal,todaslaspersonasquemanejanlainformacintendrnquetomarunaseriede
medidasexigidasporlaLeydeProteccindeDatos.

DebidoaquehoyendalasempresasadmitenelaccesoalsistemaatravsdeInternet,esfundamentalprotegerlosrecursosycontrolarelaccesoalsistema.Laseguridad
informticaconsisteengarantizarquelosrecursosmateriales,elsoftwareylosdatosseutilicenparaaquelloparaloquesecrearon.
La poltica de seguridad es el documento de referencia que define los objetivos de seguridad y las medidas que deben implementarse para tener la certeza de
alcanzarestosobjetivos.
Enlsedefinenunnmerodereglas,procedimientos,controlesyprcticasptimasqueasegurenunniveldeseguridadqueestalaalturadelas
necesidades de la organizacin. Este documento se debe presentar como un proyecto que incluya a todos. Una vez redactada la poltica de
seguridad,sedebenenviaralosempleadoslasclusulasquelosimpliquenparaquelapolticadeseguridadtengaelmayorimpactoposible.

Laspolticasdeseguridadincluyenlossiguientesaspectos:

Concienciaralosusuariossobrelaimportanciadelaseguridad.
Seguridadlgica:aniveldelosdatosdeleempresa,delasaplicaciones,delosdatosdelosclientes,etc.
Seguridadenlastelecomunicaciones,servidores,redes,etc.
Seguridadfsica:deinfraestructurasmateriales,alojamientodeservidores,estacionesdetrabajodelosempleados,etc.
Seguridadinformtica:incluyeprocedimientosparaadministraractualizacionesyunaestrategiadecopiasdeseguridadplanificada.
Unplanderecuperacinsiseproduceunaccidente.
Unsistemadedocumentacinactualizado.

Unavezestablecidaslasmedidasdeseguridadesnecesarioprobarstasparadetectarposiblesvulnerabilidades.
Unmtodomseficazparagarantizarlaseguridadesrealizarunaauditoradeseguridad,queconsisteenquelasmedidasseanverificadasporuntercero,generalmenteuna
empresaespecializada.

Delamismaformaenquelossimulacrosdeincendiosonfundamentalespararepasarunplandeescapeencasodeincendio,laprcticadelplancontradesastrespermitea
unaorganizacinconfirmarqueelplanfunciona,ygarantizarquetodaslaspersonasinvolucradassepanquhacer.
Debesconocer

Parasaberquaspectosdebecontenereldocumentodeseguridadylanormativaaaplicaralrespecto,debesleerdetenidamenteeldocumentoreferenciadomediante
elsiguienteenlace:

Lasmedidasdeseguridadanivelbsico.

Autoevaluacin

Consultando el documento Las medidas de seguridad a nivel bsico, referenciado en el enlace anterior contesta si es verdadera o falsa la siguiente
afirmacin:

EnelRealDecreto994/1999.Seestablecequedebernrealizarsecopiasderespaldoalmenossemanalmente.

Verdadero Falso
Anexo.Licenciasderecursos.
LicenciasderecursosutilizadosenlaUnidaddeTrabajo.
Recurso(1) Datosdelrecurso(1) Recurso(2) Datosdelrecurso(2)

Autora:Topato.
Autora:Benja.
Licencia:CCbyncnd.
Licencia:CCbyncsa.
Procedencia:
Procedencia:http://www.flickr.com/photos/benja316/5386104768
http://www.flickr.com/photos/roadhunter/68017745

Autora:IRRIImages.
Autora:JvagabondShutterbug.
Licencia:CCby.
Licencia:CCbynd.
Procedencia:
Procedencia:http://www.flickr.com/photos/waikikiweekly/3740503355
http://www.flickr.com/photos/ricephotos/2698406532

Autora:Foreverdigital.
Autora:SetoTheTech.
Licencia:CCbyncnd.
Licencia:CCbyncnd.
Procedencia:
Procedencia:http://www.flickr.com/photos/setothetech/4798385795
http://www.flickr.com/photos/foreverdigital/357103120

Autora:pst. Autora:Jpst.

Licencia:GPL. Licencia:GPL.

Procedencia:Capturadepantalladelaventana Procedencia: Captura de pantalla del directorio data de


StartUpvariablesdelprogramaMySQLAdministrator. MySQL.

Autora:CalixtoeloctavosatlitedeJpiter.
Autora:adesigna.
Licencia:CCbyncsa.
Licencia:CCbyncsa.
Procedencia:
Procedencia:http://www.flickr.com/photos/adesigna/4967712037
http://www.flickr.com/photos/calixto8/134972253

Autora:Pst. Autora:Cayusa.

Licencia:GPL. Licencia:CCbync.
Procedencia:Elaboracinpropiaapartirdecapturasdepantalladel Procedencia:
programaMySQLWorkbench. http://www.flickr.com/photos/cayusa/2221656599

Autora:Treball.
Autora:RennettStowe.
Licencia:CCbynd.
Licencia:CCby.
Procedencia:
Procedencia:http://www.flickr.com/photos/tomsaint/2868226565/
http://www.flickr.com/photos/treballcat/4554279235

Autora:Isafmedia.
Autora:DavidVelasquez.
Licencia:CCby
Licencia:CCbyncsa.
Procedencia:
Procedencia:http://www.flickr.com/photos/diurno/3030112528
http://www.flickr.com/photos/isafmedia/3103875643

Autora:Pst.
Autora:RenatoPizarroOsses.
Licencia:GPL.
Licencia:CCbyncsa.
Procedencia: Captura de pantalla del programa MySQL
Procedencia:http://www.flickr.com/photos/ranzio/2829083155
Workbench.

Autora:Pst.
Autora:AndyvanderRaadt(minimum).
Licencia:GPL.
Licencia:CCbyncnd.
Procedencia: Captura de pantalla del programa MySQL
Procedencia:http://www.flickr.com/photos/minimum/47846172
Workbench.

Autora:Pragmagraphr.
Autora:hugovk.
Licencia:CCbyncnd.
Licencia:CCbyncsa.
Procedencia:
Procedencia:http://www.flickr.com/photos/hugovk/2182758972
http://www.flickr.com/photos/sveinhal/2416609728

Autora:Pst. Autora:(Lolita)+8.

Licencia:GPL. Licencia:CCbyncsa.

Procedencia:CapturadepantalladelprogramaMySQLWorkbench.
Procedencia:
http://www.flickr.com/photos/lolita8fotos/2965513112

Autora:Pst. Autora:tavopp.

Licencia:GPL. Licencia:CCbync.

Procedencia: Elaboracin propia a partir de capturas de pantallas Procedencia:


delprogramaPhpMyAdmin. http://www.flickr.com/photos/tavopp/368959540

Autora:Daryl_mitchell.
Autora:Betacontinua.
Licencia:CCbyncsa.
Licencia:CCbyncsa.
Procedencia:
Procedencia:http://www.flickr.com/photos/betacontinua/2461625385
http://www.flickr.com/photos/daryl_mitchell/1199598508

Autora:laffy4k.
Autora:BjrnSderqvist.
Licencia:CCby.
Licencia:CCbysa.
Procedencia:
Procedencia:http://www.flickr.com/photos/kapten/416527996
http://www.flickr.com/photos/ranzio/2829083155

Autora:SybrenA.Stvel.
Autora:Auzigog.
Licencia:CCbyncnd.
Licencia:CCbyncsa.
Procedencia:
Procedencia:http://www.flickr.com/photos/ranzio/2829083155
http://www.flickr.com/photos/sybrenstuvel/2468506922

Autora:brianwc.
Autora:TonyAustin.
Licencia:CCbysa.
Licencia:CCby.
Procedencia:
Procedencia:http://www.flickr.com/photos/tonyaustin/2355186770
http://www.flickr.com/photos/brianwc/153108445

Autora:Pst. Autora:jennaream.

Licencia:GPL. Licencia:CCbyncsa.
Procedencia:Elaboracinpropiaapartirdecapturadelpantalladel Procedencia:
programaMySQLAdministrator. http://www.flickr.com/photos/33478010@N02/4175034274

Autora:justingaynor.
Autora:GaleradeJoshuaDavisPhotography.
Licencia:CCbyncnd.
Licencia:CCbysa.
Procedencia:
Procedencia:http://www.flickr.com/photos/ranzio/2829083155.
http://www.flickr.com/photos/justingaynor/10614438/

Autora:_N_I_C_K_
Autora:PatrickHoesl.
Licencia:CCbyncsa.
Licencia:CCby.
Procedencia:
Procedencia:http://www.flickr.com/photos/ranzio/2829083155
http://www.flickr.com/photos/nicksart/4630169586

Autora:Inworldprofessionalls. Autora:Ray_from_LA.

Licencia:CCby. Licencia:CC

Procedencia: Procedencia:
http://www.flickr.com/photos/inworldmomentum/489755720 http://www.flickr.com/photos/15132846@N00/5640557375

Autora:Pst. Autora:Alphadesigner.

Licencia:GPL Licencia:CCbync.

Procedencia:Elaboracinpropiaapartirdecapturasdepantalladel Procedencia:
programaMySQLMigrationToolkit. http://www.flickr.com/photos/jesstyle/4904264107

Autora:DarioCutin.

Licencia:CCbync.

Procedencia:http://picasaweb.google.com/lh/view?q=seguridad
&psc=G&filter=1&imglic=creative_commons#5475048819141860754

S-ar putea să vă placă și