Entradas

Mostrando las entradas etiquetadas como copias de seguridad

Migrar aplicación de ISO 8859-1 a UTF-8

Imagen
UTF-8 es la codificación por excelencia de páginas web al ser un formato de caracteres unicode : Unicode es un estándar de codificación de caracteres diseñado para facilitar el tratamiento informático, transmisión y visualización de textos de múltiples lenguajes y disciplinas técnicas, además de textos clásicos de lenguas muertas. El término Unicode proviene de los tres objetivos perseguidos: universalidad, uniformidad y unicidad. El 86,8 % de los sitios de internet utilizan UTF-8 , este post va dirigido al 6,4 % que sigue utilizando ISO 8859-1 . En la siguiente gráfica podemos ver la distribución de las 5 principales codificaciones de caracteres según la w3techs . Para todos los que deseen cambiar a UTF-8 (se puede aplicar a cualquier codificación de origen) deben tener en cuenta las siguientes cuestiones a modificar: La codificación de la base de datos La codificación de nuestro código fuente La codificación de nuestro PHP La codificación de nuestro servidor web Mi...

Restaurando archivos ibd en tablas InnoDB

Imagen
Este post es una recopilación de la información más actual para para restaurar una base de datos MySQL a partir de los archivos de datos en entornos Windows. La versión de MySQL es la 5.7.11. ¿Por qué restaurar? En mi caso al cambiar de ordenador se me olvidó hacer una copia reciente de la base de datos con lo cual al instalarlo todo en el nuevo habría perdido un mes entero de trabajo, por fortuna disponía del disco duro anterior. ¿Qué necesitamos para restaurar la base de datos MySQL? Necesitamos un backup de la estructura de la base de datos (actualizada) o un backup completo en el que la estructura sea la correcta (si el backup es actual no necesitaríamos restaurar los datos desde los archivos, el problema es que la que tenía era un mes antigua). Lo siguiente son los archivos de datos, que en Windows se encuentran en la siguiente ruta: C:\ProgramData\MySQL\MySQL Server 5.7\Data\dbname. La carpeta ProgramData está oculta. En esta ubicación encontraremos va...

Alta disponibilidad con un espejo en SQL Server

SQL Server tiene varias formas para que dispongamos de alta disponibilidad en nuestras bases de datos, en este post veremos una de ellas: la creación de un espejo. Para mi la creación de un espejo vs un clúster es una preferencia personal, creo que un clúster es más complejo de mantener y gestionar, es más caro porque ambas máquinas comparten el almacenamiento y por lo menos mi experiencia con SQL Server 2008 R2 no fue muy buena y sin un soporte premiun por parte de Microsoft los fallos son difícilmente corregibles. En cambio un mirror o espejo es sencillo de configurar y pueden ser dos máquinas totalmente independientes. ¿Por qué crear un espejo en SQL Server? Porque este método permite hacer una réplica exacta de una base de datos de un servidor a otro. La gran ventaja de este método es que permite el failover automático sin intervención humana (siempre que se instale un tercer servidor witness). La desventaja del mirror es que sólo podemos tener una máquina secundaria o mirro...

Mover datos antiguos en SQL Server

Imagen
Cuando trabajamos con bases de datos muy grandes las tablas puede que vayan almacenando datos antiguos que queremos guardar pero que realmente no son necesarios para el día a día de la aplicación, lo correcto sería mover todos estos datos antiguos a otra tabla para agilizar las consultas sobre la tabla original (se puede considerar moverlos a otra base de datos pero esto realmente no es necesario) En SQL Server 2008 R2 este proceso resulta bastante sencillo de implementar y lo único que necesitamos es una tabla idéntica en campos a la original con otro nombre y sin claves foráneas ni primarias (los índices únicos se pueden mantener pero realmente esto no es necesario). Pongamos como ejemplo que tenemos una tabla llamada clientes y que queremos mover los clientes que ya no se encuentran activos a la tabla archivo_clientes. Para crear la nueva tabla en el editor del SQL Managment Studio hacemos click derecho sobre la tabla siguientes y seguimos este orden en los menús: Incluir tabla ...

Restaurar una base de datos en Sql Server

Imagen
Este post se aplica a SQL Server 2005, 2008 y 2008 R2 , para versiones anteriores de SQL Server no está testeado. Hay veces cuando queremos restaurar una copia de seguridad de una base de datos proveniente de otro servidor (supongamos el de desarrollo al de producción) nos sale este error: Restore failed for Server 'Instancia SQL Server'.  (Microsoft.SqlServer.SmoExtended) Additional Information: System.Data.SqlClient.SqlError: The backup set holds a backup of a database other than the existing ‘nombre_base_datos' database. (Microsoft.SqlServer.Smo) O lo que sería en castellano: Error de Restaurar para Servidor 'Instancia SQL Server' (Microsoft.SQL.SmoExtended) Informacion Adicional: System.Data.SqlClient.SqlError: El conjunto de copia de seguridad contiene una copia de una base de datos distinta de la existente 'nombre_base_datos´. (Microsoft.SqlServer.Smo) Esto ocurre porque las bases de datos son únicas en cada servidor y cuando restauras e...