msgbartop
Tips de administración de servidores y herramientas Web
msgbarbottom

Habilitar modo de autenticación mixto en Sql Server

enero 17, 2012 Publicado en Admin-tips, Configuración, InfraEstructura, Windows con 0 Comentarios


En ocasiones cuando instalamos una instancia de Sql Server no podemos conectarnos con usuarios de SqlServer y solo es posible hacerlo con el usuario de windows. En estos casos el servidor nos arroja un mensaje como el siguiente:

“Error de inicio de sesión del usuario ‘‘. (Proveedor de datos .Net SqlClient)”

para solucionarlo lo que debemos hacer es habilitar el modo de autenticación mixto, aca les dejo los pasos para realizarlo:

1. Abrimos SQL Server Management Studio Express o SQL Server Management Studio, dependiendo de su versión de SQL.
2. Ingrese la información solicitada:
1. Server Type: selecciones el motor de la Base de datos
2. Server Name: este campo debe ser completado con el nombre del servidor
3. Authentication: seleccione autenticación de Windows
3. Clic en “Conectar”
4. Clic derecho en el nombre del servidor de base de datos y luego en “Propiedades”.
5. Clic en “Seguridad”.
6. Sobre la solapa “Autenticación del Servidor” Seleccione SQL y Modo de Autenticación de Windows
7. Clic en OK.
8. Clic derecho sobre el nombre del servidor, y seleccione “Reiniciar”. Espere unos momentos para que se reinicie el servicio y los cambios surtan efecto.

Espero sea de utilidad para todos.

Tags: , , , , , , , , , , ,

5 cosas que perjudican la Escalabilidad

septiembre 29, 2011 Publicado en Admin-tips, Escalabilidad, InfraEstructura con 23 Comentarios



Mapeadores de Objetos Relacionales (ORM)

Los ORM permiten a los desarrolladores ser más productivos, evitando las dificultades de la interacción con la Base de Datos, y permitiendoles concentrarse en las funcionalidades y las caracteristicas de las aplicaciones.

Desde el lado de Rendimiento la imagen es bien diferente, al permitir que un ORM sea quien construya las consultas que se ejecutan, tendremos consultas bien complejas que la Base de Datos no podra optimizar de la mejor manera.

Procesos sincronos, seriales, acoplados o bloqueantes

Se deben evitar al maximo posible los procesos que generan bloqueos a nivel de Base de Datos, si definitivamente lo necesitamos lo mejor es usar tablas de tipo InnoDB, las cuales generan bloqueos a nivel de registro, y no bloqueos a nivel de tabla como trabaja MyIsam.

Evite procesos sincronos o semi-sincronos, los cuales esperan la respuesta de otro servicio para continuar y detienen la ejecución de codigo. En una aplicacion altamente transaccional estas esperas pueden resultar en miles de sesiones simultaneas o concurrentes.

Unica copia de la Base de Datos

Sin replicación, dependemos de una unica Base de Datos. Con esta configuración limitamos a nuestros WebServers a usar una unica Base de Datos, lo cual obviamente resultara en un cuello de Botella para nuestra aplicación.

Lo mejor es tener varias Bases de Datos, y dar la opcion a nuestros WebServers de utilizar la que ellos consideren adecuada, o mejor la que nuestro algoritmo dictamina debemos usar.

No tener Metricas

Sin metricas no podremos tener un panorama de lo que sucede en nuestra infraestructura cada vez que tenemos una nueva funcionalidad al aire, o cuando estamos teniendo problemas en nuestra aplicacion, sin este tipo de informacion nuestro equipo de Ingenieros no podran estar sensibilizados sobre lo que esto supone y sera mas dificil que trabajemos en pos de mejorar.

Existen muchas soluciones que trabajan con SNMP y que no son invasivas, para citar algunas Cacti, Munin, OpenNMS, Ganglia y Zabbix.

Las metricas deben incluir metricas de negocio como Cantidad de usuarios registrados, Numero de comentarios por hora, Numero de articulos vendidos; asi como las metricas tecnicas de infraestructura como Espacio en disco, Memoria disponible, Numero de procesos ejecutandose, consultas por segundo.

Banderas de funcionalidades

En las aplicaciones que son construidas sin banderas de funcionalidades es mucho mas dificil degradar correctamente.

Cuando un sitio esta teniendo un pico de trafico o de request y no es posible escalar o expander la capacidad, las banderas permitiran bajar funcionalidades mientras la carga baja en los servidores sin tener que bajar el sitio por completo. Esto le dara tiempo para poder realizar los ajustes necesarios.

Sin estas recomendaciones limitara la Escalabilidad y la Disponibilidad de las aplicaciones.

Tags: , , , , , , , ,

Vallenato Muerte Osama Bin Laden

septiembre 16, 2011 Publicado en Dia a Dia con 2 Comentarios


Hace un par de meses realice un viaje a Santa Marta, mas o menos a dos horas de llegar a mi destino en un paso restringido a un solo carril me ofrecieron un CD compilacion de Vallenatos en MP3, la primer cancion que tenia el CD era una relacionada a la muerte de Osama Bin Laden por manos de USA, Te acabaste cabo e Vela, la verdad la letra me ha hecho reir demasiado … aca les dejo el Video para que la escuchen … “Se te cayo el carriel barba de chivo” ….

Tags: , , , ,

Telnet en Windows 2008

junio 1, 2011 Publicado en Admin-tips, Configuración, Windows con Comentarios desactivados


El servicio de Telnet no se encuentra Instalado por defecto en el Windows Server 2008, por tal razon es necesario instalarlo desde la linea de comandos.

Para instalarlo solo tenemos que ejecutar la siguiente linea:

servermanagercmd -install telnet-client

Y listo, ya podremos acceder al cliente de telnet desde el cmd de windows.

Si adicionalmente queremos saber que otras utilidades se pueden instalar, lo podemos hacer con el siguiente comando:

servermanagercmd -query

Tags: , , , , , , , , ,

Ejecutar javascript cargado por ajax

diciembre 13, 2010 Publicado en Admin-tips, Dia a Dia, JavaScript, Tecnología con Comentarios desactivados


Muchas veces tenemos queremos cargar por ajax una pagina o servicio y ejecutar un código javascript que viene en la respuesta, debido a que la respuesta del ajax es simple texto, esto no es posible de manera natural. Por tal razón es necesario parsear el código javascript de la respuesta y adicionarlo al elemento <HEAD> del documento, para poder utilizarlo posteriormente.

Vamos a ver esto por medio de un ejemplo donde cargamos por ajax una página que se encarga de actualizar la información de un div por medio de javascript. Se que esto se puede hacer directamente, simplemente es para efectos de demostrar como se haria.

La siguiente es la respuesta que devuelve la página que es llamada por ajax:

<div id="ajax-js">
Este div se cargará por medio de AJAX y despues se actualizara 
desde una función que esta en esta misma respuesta
</div>
<script type="text/javascript">
document.getElementById("ajax-js").innerHTML = "Ya fui actualizado desde JS";
</script>

Ahora en la página donde hacemos el llamado ajax es necesario colocar la función que se encargara de hacer el parseo de la respuesta, y hacer el llamado a la función una vez la página se ha cargado en su totalidad:

<script>
 
 function runJS() 
{ 
 
    var search = CONTENIDO DE LA RESPUESTA AJAX;
    var script;
 
    while( script = search.match(/(<script[^>]+javascript[^>]+>\s*(<!--)?)/i)) 
    { 
      search = search.substr(search.indexOf(RegExp.$1) + RegExp.$1.length); 
 
      if (!(endscript = search.match(/((-->)?\s*<\/script>)/))) break; 
 
      block = search.substr(0, search.indexOf(RegExp.$1)); 
      search = search.substring(block.length + RegExp.$1.length); 
 
      var oScript = document.createElement('script'); 
      oScript.text = block; 
      document.getElementsByTagName("head").item(0).appendChild(oScript); 
    } 
}
 
window.onload= function(){runJS();}
</script>

De esta manera lograremos ejecutar funciones o codigo Javascript que ha sido cargado mediante AJAX.

En el ejemplo anterior omiti el llamado ajax y la asignación de la respuesta a la función runJS, hay diferentes maneras de hacerlo, como por ejemplo con jquery, donde en el callback del ajax podemos ejecutar la función runJS de una manera mas pro, para una próxima entrada les mostrare como hacerlo.

Tags: , , , , , , , , , , , , ,