Entradas

Mostrando entradas de febrero, 2011

Configurar Firewall para permitir el acceso a SQL Server

En un post anterior sobre Problemas en el acceso remoto a SQL Server había dejado deshabilitado el Firewall de Windows para permitir las conexiones entrantes al servidor a cualquiera. Esto de más está decir que no es una opción en absoluto segura y menos para un servidor en producción, por ello en este post veremos como habilitar el firewall de Windows para permitir el acceso remoto a SQL Server . Este post se aplica al firewall de Windows Server 2008 R2 Enterprise (por defecto a cualquier Firewall de Windows Server 2008 y 2008 R2). Existen multitud de tutoriales en internet para configurar el acceso remoto a SQL Server pero en realidad solo tenemos que hacer una cosa: habilitar el puerto 1433 . Por eso este post se reduce a cómo habilitar puertos en el firewall de Windows Server , en este caso en concreto el 1433. Al entrar en el servidor en inicio seleccionamos Windows Firewall con Seguridad Avanzada Una vez dentro vamos a reglas de entrada o Inbound Rules Luego creamos un

Opciones de bases de datos en SQL Server

Imagen
Este post lo he realizado a raíz de encontrarme en los log de SQL Server múltiples inicios de algunas bases de datos del tipo: Starting up database ‘x’. Mi instalación es sobre Windows Server 2008 R2 Enterprise x64 English y un SQL Server 2008 R2 sobre un Failover Clúster (clúster de conmutación por error) de 2 nodos. Buscando por los blogs me encontré que estos reinicios eran producto de tener activa la opción Auto Close para la base de datos y me dio por investigar el resto de opciones automáticas que podemos encontrar en el apartado opciones del menú propiedades de cada base de datos al hacer clic derecho sobre ella: Veamos cada una de estas opciones por separado. Cerrar automáticamente (Auto Close) La opción Auto Close no viene activada por defecto (pero en algunas restauraciones procedentes de bases de datos inferiores es posible que se active) y en los entornos de producción es altamente recomendable ponerla a OFF (desactivada o FALSE). Esta opción lo que permite es ap

Capturar click derecho con jquery

 Jquery carece de una función que sea rightClick() [por ejemplo] es por ello que para acceder a este evento es necesario utilizar algunos trucos de programación. El motivo por el cual no existe esta función es muy sencillo, un click derecho no deja de ser un click al igual que el doble click no deja de ser dos clics seguidos. Métodos para capturar ele evento click con jquery Para capturar el click en jquery podríamos utilizar cualquiera de estas variantes: $('div').bind('click', function (){ alert ('clicked'); }); $('div').live('click', function (){ alert ('clicked'); }); $('div').click( function (){ alert ('clicked'); }); Diferenciar entre click derecho e izquierdo con jquery Mientras que en cambio no existe el evento rightclick como os comentaba anteriormente. En cambio desde la versión 1.1.3 de jQuery event.which normaliza event.keyCode y event.charCode por lo que no tenemos que preocuparnos po

Marcador JPEG desconocido o no válido

Hay veces que queremos abrir una imagen con Photoshop y nos sale el siguiente error: no se ha podido cumplir porque se ha encontrado un tipo de marcador JPEG desconocido o no válido . Esto es debido a que la imagen JPG no está del todo correcta. Una forma muy sencilla de corregirlo es abrir la imagen con el Microsoft Office Picture Manager y exportarla (no guardarla) como formato de archivos de intercambio JPEG . Para ello abrimos la imagen en el Picture Manager y en el panel derecho seleccionamos en el desplegable Exportar en este formato de archivo la opción formato de archivos de intercambio JPEG (*.jpg) . Una vez seleccionado confirmamos y comenzara la exportación del archivo JPG a un formato válido para Photoshop. Una vez hemos exportado el archivo y confirmado podremos abrirlo en Photoshop como si de un archivo jpg normal se tratara.

Actualizar PHP, Apache y MySQL en CentOS

Imagen
Este post pretende actualizar en un servidor CentOS 5.5 a las versiones de PHP 5.3.5, apache 2.2.8 y MySQL 5.5.8. CentOS 5.5 por defecto viene con unas versiones obsoletas de PHP (5.1.6), apache 2.0 y MySQL 5.0, instalando algunos nuevos repositorios , sobre todo el de CentOS Testing, se pueden actualizar estas versiones a algunas un poco más actuales pero en el caso de PHP y MySQL (sobre todo) aún insuficientes. Sin embargo para actualizar apache a la versión 2.2.8 solo es necesario este repositorio y el comando yum update httpd. Nota: al actualizar apache es recomendable guardar el archivo httpd.conf que se localiza en /etc/httpd/conf y luego sobrescribir el creado por el instalador con el antiguo, o al menos comparar los contenidos porque sobrescribe muchas directivas como las codificaciones UTF8 (AddDefaultCharset UTF-8) y StartServers, MinSpareServers, MaxSpareServers, ServerLimit, MaxClients, MaxRequestsPerChild. Además elimina los siguientes tipos de datos (necesari

Comandos útiles en Linux

Los siguientes comandos los he probado en CenOS 5 pero son aplicables a cualquier distribución de Linux (o eso creo). Conocer memoria RAM en Linux : cat /proc/meminfo Conocer las características de la CPU en Linux : cat /proc/cpuinfo Conocer la versión de CentOS que tenemos instalada: cat /etc/redhat-release Conocer la versión de Linux instalada: cat /proc/version Para ampliar estas informaciones: Conocer la memoria RAM en Linux Conocer las características de nuestra CPU Conocer la versión de la distribución de Linux instalada Usar ntpdate para sincronizar la hora en Unix ¿Qué significa > /dev/null 2>&1? ¿Útiles?

Bug con el plugin de jquery WYSIWYG

Imagen
El plugin de jquery WYSIWYG es uno de los que más utilizo y de hecho utilizaba una de las versiones antiguas la 0.5, el motivo que me hizo actualizar es que esta versión no permite crear cuadros WYSIWYG (What you see is what you get – Lo que ves es lo que obtienes) dentro de un dialog de jquery ui, o sí los crea pero no permite editarlos ni escribir en ellos. La solución fue bastante simple, actualizar a la última versión del momento la 0.95 pero con ella vinieron nuevos errores: En efecto, como podréis notar los botones se duplicaban y esto lo he reportado en el bug número 218 de la página de Google Code. La solución no obstante es bastante sencilla y pasa por crearnos una variable interna en el plugin que yo la llamé initStart y en la línea 494 dentro de la función que anexa el menú agregar estas líneas: if ( this .initStart) return ; this .initStart = true ; Con esto estaría solucionado y nos quedaría de la siguiente forma: El motivo de esto es la doble llamada (línea

Benchmark Apache y MySQL en CentOS

Imagen
Decir que este post es un benchmark en toda regla es muy ambicioso, lo que voy a hacer es compartir los datos que he obtenido en mi caso particular que tal vez puedan ser aplicados a otros casos en los cuales no creo que difieran mucho los resultados globales. Para los que no estén familiarizados con el tema, un benchmark no es más que una comparativa, en este caso será medir el rendimiento de Apache y MySQL luego de una actualización de versiones. Servidor de pruebas de carga: Sistema Operativo: CentOS 5.5 (Final) Versión Núcleo de Linux: 2.6.18-194.17.4.el5 Versión GCC: 4.1.2 20080704 (Red Hat 4.1.2-48) CPU: 4 x Six-Core AMD Opteron(tm) Processor 2423 HE 2009 MHZ RAM: 5 GB Versiones y programas a comparar: Apache 2.2.3 vs. 2.2.8 PHP 5.2.10 vs 5.3.5 MySQL 5.0.64 vs 5.5.8 En el siguiente gráfico se muestra el consumo de CPU durante una semana, la línea roja significa el momento

Problemas en el acceso remoto a SQL Server

Sobre todo cuando instalamos un nuevo servidor de SQL Server suelen ocurrir muchos problemas cuando intentamos acceder remotamente al mismo, los pasos a comprobar serían los siguientes: Usuario activado y contraseña correcta Tipo de login permitido Reglas del cortafuegos del servidor (Firewall) El servidor de SQL permite conexiones externas. Yo me centraré en los puntos 1 y 2, para el 3 y el 4 es muy útil el siguiente artículo Pasos para configurar SQL Server 2008 para admitir conexiones remotas . Nota: en SQL Server 2008 R2, por lo menos las instancias en clúster las opciones para el acceso remoto vienen habilitadas por defecto. ¿Cómo saber si el usuario está activado? En SQL Server existen 3 tipos de acceso o modos de autentificación: Modo de autentificación de Windows Modo de autentificación de SQL Server Mixto Para el modo de autentificación de Windows es necesario saber si el usuario está dado de alta en el dominio, para ello tienes que consultarlo co

Eliminar una conexión de unidad de red

Eliminar una conexión de unidad de red es una de las cosas que hecho de menos en Windows (este truco lo he probado en XP no sé en Windows 7 cómo funcionará), es muy sencillo agregar una pero eliminar una conexión de unidad de red en Windows XP puede llegar a volverte loco y realmente tener en tu ventana del explorador unas cuantas conexiones de Red obsoletas pues no es nada agradable. Para ello tenemos este comando de consola, muy útil para trabajar con unidades de Red y sobre todo eliminarlas: net use LETRA_UNIDAD: /delete (ejemplo con la unidad G sería net use G: /delete ) Recuerda que esto es para ejecutarlo desde la línea de comandos (Inicio –> Ejecutar y escribes cmd) Si todo sale bien te debería salir un mensaje diciendo que la unidad a sido eliminada para cualquier otro error puedes ver las soluciones planteadas en este post para eliminar una conexión de unidad de red .

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