jueves, 21 de octubre de 2010
Tech Days Chile
El 26 de Octubre estaré en Santiago de Chile en Tech Days entre otras impartiendo una sesión sobre Cuadros de mando integral, SQL Server 2008 y SharePoint 2010.
http://www.techdays.cl
Etiquetas:
#TechDaysChile
miércoles, 29 de septiembre de 2010
Microsoft a liberado SQL Server 2008 SP2 (También en Español)
En el siguiente enlace podéis descargar SQL Server 2008 SP2 desde ya disponible en español.
http://www.microsoft.com/downloads/details.aspx?FamilyID=8fbfc1de-d25e-4790-88b5-7dda1f1d4e17&displayLang=es
http://www.microsoft.com/downloads/details.aspx?FamilyID=8fbfc1de-d25e-4790-88b5-7dda1f1d4e17&displayLang=es
sábado, 25 de septiembre de 2010
Como buscar palabras o frases en documentos en Windows 7
Hola, probablemente a todos nos habrá ocurrido alguna vez, que al tratar de localizar en nuestro equipo con windows 7 una palabra o una frase en un documento, no habéis encontrado esta opción de búsqueda. Recordareis la opción de buscar palabras o frases en documentos de la interfaz de Windows XP, que como podréis ver en las figuras 1 y 2 eran muy fáciles de localizar, haciendo clic en inicio y buscar:
Figura1 |
Primero pulsábamos sobre buscar y se abría la ventana de búsqueda de la Figura 1.
Figura 2 |
Después podíamos iniciar una búsquedas por nombre de documento, buscar una palabra o una frase contenida en un documento, o especificar cuando fue modificado, su tamaño y algunas otras opciones avanzadas, como muestra la figura 2.
Bien, pues en Windows 7 estas opciones siguen disponibles, pero algo menos evidentes, para buscar por palabras o frases contenidas en un documento, abrimos el explorador de Windows y en la esquina superior derecha escribimos: "content:" y palabra o frase a buscar, como se muestra en la figura 3 donde buscamos (sin tilde) la palabra Curriculum.
Si tu sistema operativo fue instalado en idioma español, deberas probar con "contenido:" en lugar de "content:"
Figura 3 |
También podemos usar opciones más avanzadas, como buscar por fecha en la que fue obtenido un documento de tipo fotografía junto con el autor, como muestra la figura 4.
Figura 4 |
Todo esto y mucho más, está disponible en la ayuda de Windows bajo el tip "Advanced tips for searching in Windows" por supuesto, pero por si alguien quiere abreviar y buscar esta información en la web, aquí la encontrara disponible y traducida.
Espero que os sirva de ayuda, hasta pronto.
Etiquetas:
buscar frases,
Buscar palabra o frases en documento en windows 7,
Buscar palabras,
Contenido,
Documentos,
Frases,
Windows 7,
Windows10,
Windows8,
Windows8.1
domingo, 12 de septiembre de 2010
El equipo de SSIS comenta algunas posibles novedades de la siguiente versión de SSIS
Hola ,para esos a los que os gusta ir por delante, os dejo un enlace al blog del equipo de desarrollo de SSIS, en el que comentan algunas novedades interesantes que "podrían" estar disponibles para la siguiente versión (Esta en ingles).
http://blogs.msdn.com/b/mattm/archive/2010/08/25/upcoming-product-changes.aspx
Espero que os gusten, hasta pronto.
http://blogs.msdn.com/b/mattm/archive/2010/08/25/upcoming-product-changes.aspx
Espero que os gusten, hasta pronto.
Etiquetas:
Novedades en SSIS Denali
sábado, 11 de septiembre de 2010
Trucos útiles para la configuración de un cluster de SQL Server 2005
Hola de nuevo, me he animado a escribir esta entrada no muy larga, aprovechando una intervención en un cliente, al que se le había roto uno de sus nodos de un cluster de SQL Server 2005, hace ya bastante tiempo realicé algunas instalaciones de este tipo, y había sufrido algunos errores durante la instalación que hoy me han ayudado a agilizar el tema, he pensado que quizá dejando constancia de un par de consejos pueda ayudar a otros que se vean en las mismas circunstancias.
En este caso concreto he tenido que eliminar uno de los nodos del Cluster y añadir otro nuevo, el propio proceso de configuración es bastante trivial, Microsoft ha publicado unos White Paper's para 2005 y 2008 donde se explica muy bien el proceso paso a paso, los documentos están disponibles para descargar en los enlaces al final de este post.
Siguiendo la guía primero eliminamos el nodo roto mediente el Setup de SQL en el único nodo disponible del cluster, y a continuación lo eliminamos también del administrador de cluster mediante un evict node. Ya tenemos el servicio limpio.
Después de reinstalar de nuevo el sistema operativo, en mi caso un Windows Server 2003 R2 x64, configurar redes , presentar discos, habilitar MSDTC y otras verificaciones de red entre los nodos para red privada y pública, contra el dominio, DNS etc etc etc, y al final añadir el nodo al Cluster.
Esta parte tampoco presenta ninguna dificultad, un clic con el botón derecho del ratón sobre el nombre del Cluster en el administrador de Cluster, y añadir nodo, hasta ahora todo bien y fácil. Pero sin dudarlo la parte más delicada es la ejecución de la instalación de SQL Server 2005, esta se hace desde el panel de control , añadir o quitar programas, SQL Server, etc etc, en el Paper viene muy bien detallado así que no me extiendo con eso, en esta parte es donde pueden ser útiles estos consejos:
1. No mantener abiertas conexiones con Remote Desktop en los nodos remotos(el que se estaba agregando al Cluster en mi caso), no es necesario y se generan errores en el Setup de SQL Server 2005 que detienen la instalación.
2. No utilizar el soporte de instalación que viene en dos CD's, titulados CD1 y CD2, me ha ocurrido varias veces que durante la instalación el proceso se interrumpe para pedir el CD2 y ya nunca continua, hay que cancelar y comenzar de nuevo, si vais a instalar o configurar un Cluster es mejor hacerlo desde un DVD, el producto estaba disponible en los dos formatos.
3. El proceso de Setup falla reportando que uno de los nodos remotos no tiene iniciado el servicio de programador de tareas, pero por más que lo revisamos vemos que si esta iniciado, la solución pasa por eliminar una tarea programada que genera el Setup con el nombre de proceso de configuración de SQL Server, y que se queda guardada a fuego, sin más se elimina y después cerramos la sesión remota contra ese nodo, y repetimos el proceso de instalación según se indica en el Paper.
Enlaces para la descarga de los White Paper:
SQL Server 2005 Failover Clustering White Paper
http://www.microsoft.com/downloads/details.aspx?FamilyID=818234dc-a17b-4f09-b282-c6830fead499&displaylang=en
SQL Server 2008 Failover Clustering White Paper
http://download.microsoft.com/download/6/9/D/69D1FEA7-5B42-437A-B3BA-A4AD13E34EF6/SQLServer2008FailoverCluster.docx
Hasta pronto.
En este caso concreto he tenido que eliminar uno de los nodos del Cluster y añadir otro nuevo, el propio proceso de configuración es bastante trivial, Microsoft ha publicado unos White Paper's para 2005 y 2008 donde se explica muy bien el proceso paso a paso, los documentos están disponibles para descargar en los enlaces al final de este post.
Siguiendo la guía primero eliminamos el nodo roto mediente el Setup de SQL en el único nodo disponible del cluster, y a continuación lo eliminamos también del administrador de cluster mediante un evict node. Ya tenemos el servicio limpio.
Después de reinstalar de nuevo el sistema operativo, en mi caso un Windows Server 2003 R2 x64, configurar redes , presentar discos, habilitar MSDTC y otras verificaciones de red entre los nodos para red privada y pública, contra el dominio, DNS etc etc etc, y al final añadir el nodo al Cluster.
Esta parte tampoco presenta ninguna dificultad, un clic con el botón derecho del ratón sobre el nombre del Cluster en el administrador de Cluster, y añadir nodo, hasta ahora todo bien y fácil. Pero sin dudarlo la parte más delicada es la ejecución de la instalación de SQL Server 2005, esta se hace desde el panel de control , añadir o quitar programas, SQL Server, etc etc, en el Paper viene muy bien detallado así que no me extiendo con eso, en esta parte es donde pueden ser útiles estos consejos:
1. No mantener abiertas conexiones con Remote Desktop en los nodos remotos(el que se estaba agregando al Cluster en mi caso), no es necesario y se generan errores en el Setup de SQL Server 2005 que detienen la instalación.
2. No utilizar el soporte de instalación que viene en dos CD's, titulados CD1 y CD2, me ha ocurrido varias veces que durante la instalación el proceso se interrumpe para pedir el CD2 y ya nunca continua, hay que cancelar y comenzar de nuevo, si vais a instalar o configurar un Cluster es mejor hacerlo desde un DVD, el producto estaba disponible en los dos formatos.
3. El proceso de Setup falla reportando que uno de los nodos remotos no tiene iniciado el servicio de programador de tareas, pero por más que lo revisamos vemos que si esta iniciado, la solución pasa por eliminar una tarea programada que genera el Setup con el nombre de proceso de configuración de SQL Server, y que se queda guardada a fuego, sin más se elimina y después cerramos la sesión remota contra ese nodo, y repetimos el proceso de instalación según se indica en el Paper.
Enlaces para la descarga de los White Paper:
SQL Server 2005 Failover Clustering White Paper
http://www.microsoft.com/downloads/details.aspx?FamilyID=818234dc-a17b-4f09-b282-c6830fead499&displaylang=en
SQL Server 2008 Failover Clustering White Paper
http://download.microsoft.com/download/6/9/D/69D1FEA7-5B42-437A-B3BA-A4AD13E34EF6/SQLServer2008FailoverCluster.docx
Hasta pronto.
Etiquetas:
agregar nodo SQL Server 2005
sábado, 21 de agosto de 2010
Validación de dominios en direcciones de correo Electrónico
Hola finalmente me he decidido a probar a crear y mantener un blog, mi primera intención es poder publicar cosas más o menos relacionadas con tecnología (Windows, SQL Server....) , pero no restringido sólo a este área por lo en alguna ocasión podréis encontrar cosas menos técnicas y más mundanas.
Pero para comenzar algo bastante técnico, un amigo me pregunta como se podría validar si el dominio de un correo electrónico proporcionado como entrada de registro o ingreso de una aplicación es bueno o no, la aplicación en este caso esta basada en SQL Server aunque creo que sería fácil implementarla en otros Motores de bases de datos. Esto es algo que ya había hecho hace algunos años y que he rescatado de las cosas casi olvidadas.
Por centrar un poco mas el problema lo que buscamos es un método para que una vez que un usuario proporciona una dirección de correo electrónico en un formulario de ingreso inmediatamente podamos validar que el dominio es un dominio de correo electrónico valido, evitando así intentos de registros con direcciones incorrectas ya sea por error o intencionadamente.
Para resolver el problema nos basamos en el comando NSLOOKUP que parametrizamos mediante modificadores en una consulta para averiguar si existe configuración MX del dominio en cuestión, la consulta en la linea de comando seria algo así :
La consulta en la linea de comando y su salida en la figura 1:
Cuando para el dominio proporcionado como parámetro existe configuración MX (Correo Electrónico) el retorno del comando es como el de la Figura 1. Si por el contrario el dominio no existe por ejemplo (hotmail.ocm) o no tiene configuración MX la respuesta seria como en la figura 2.
Bien partiendo de estas salidas distintas en caso de domino correcto o dominio incorrecto , crearemos un procedimiento almacenado capaz de retornar si el dominio existe o no.
Por sencillez he creado una tabla con un solo campo para insertar el resultado de ejecutar el comando NSLookup que sera posteriormente analizado por el propio procedimiento almacenado para determinar si el dominio es correcto o no, el código para habilitar la ejecución de XP_CMDShell y crear los objetos necesarios los listo a continuación:
************* Código **************
-- Ojo Esta opción se encuentra deshabilitada por defecto por política de seguridad,
-- evaluar detenidamente las posibles vulnerabilidades antes de habilitarla definitivamente en la instancia.
-- Para permitir ver opciones avanzadas.
EXEC sp_configure 'show advanced options', 1
GO
-- Para actualizar los valores de configuracion actuales.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
--
RECONFIGURE
GO
USE tempdb -- permite crear el procedimiento en entorno volátil antes de implementar
GO
create table output_tmp
(texto varchar(256))
GO
create proc Usp_valida_domain
@domain varchar(50) --ojo algun dominio podría exceder este tamaño y no ser validado por truncado
as
SET NOCOUNT ON
declare @comand varchar(256)
truncate table output_tmp
set @comand='Nslookup -q=mx '+@domain
DECLARE @SQLString NVARCHAR(4000)
Set @SQLString='exec master.dbo.xp_cmdshell '+char(39)+@comand+char(39)
--insert output_tmp
exec sp_executesql @SQLString
select @SQLString
if ( select distinct top 1 patindex('%mail exchanger%',texto) -- con que exista una sola entrada es suficiente
from output_tmp
where patindex('%mail exchanger%',texto)<>0
group by patindex('%mail exchanger%',texto)) <> 0 -- El texto mail exchanger determina la existencia de configuracion MX
begin
print 'Dominio valido' -- las salidas se pueden modificar para que sean 0/1 según sea necesario su uso
end
else
print 'Dominio no valido'
go
exec Usp_valida_domain 'yahoo.es' -- test con dominio correcto
exec Usp_valida_domain 'yahoo.e' -- test con dominio incorrecto
*************** CODIGO *****************
Comentar por ultimo que se puede especificar un tiempo de TimeOut par la consulta mx ya que es posible que el servidor DNS que realiza la consulta funcione con algo de retraso y no valide dominio en tiempo, de esta forma si pasamos el tiempo de TimeOut como parámetro con -TimeOut=10 el servidor DNS que realiza la consulta se tomara 10 segundos para contestarnos que el dominio hotmail.ocm no es valido.
Espero que encontréis esta entrada de utilidad.
Pero para comenzar algo bastante técnico, un amigo me pregunta como se podría validar si el dominio de un correo electrónico proporcionado como entrada de registro o ingreso de una aplicación es bueno o no, la aplicación en este caso esta basada en SQL Server aunque creo que sería fácil implementarla en otros Motores de bases de datos. Esto es algo que ya había hecho hace algunos años y que he rescatado de las cosas casi olvidadas.
Por centrar un poco mas el problema lo que buscamos es un método para que una vez que un usuario proporciona una dirección de correo electrónico en un formulario de ingreso inmediatamente podamos validar que el dominio es un dominio de correo electrónico valido, evitando así intentos de registros con direcciones incorrectas ya sea por error o intencionadamente.
Para resolver el problema nos basamos en el comando NSLOOKUP que parametrizamos mediante modificadores en una consulta para averiguar si existe configuración MX del dominio en cuestión, la consulta en la linea de comando seria algo así :
nslookup -q=mx hotmail.com
Figura 1
Figura 2
Bien partiendo de estas salidas distintas en caso de domino correcto o dominio incorrecto , crearemos un procedimiento almacenado capaz de retornar si el dominio existe o no.
Por sencillez he creado una tabla con un solo campo para insertar el resultado de ejecutar el comando NSLookup que sera posteriormente analizado por el propio procedimiento almacenado para determinar si el dominio es correcto o no, el código para habilitar la ejecución de XP_CMDShell y crear los objetos necesarios los listo a continuación:
************* Código **************
-- Ojo Esta opción se encuentra deshabilitada por defecto por política de seguridad,
-- evaluar detenidamente las posibles vulnerabilidades antes de habilitarla definitivamente en la instancia.
-- Para permitir ver opciones avanzadas.
EXEC sp_configure 'show advanced options', 1
GO
-- Para actualizar los valores de configuracion actuales.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
--
RECONFIGURE
GO
USE tempdb -- permite crear el procedimiento en entorno volátil antes de implementar
GO
create table output_tmp
(texto varchar(256))
GO
create proc Usp_valida_domain
@domain varchar(50) --ojo algun dominio podría exceder este tamaño y no ser validado por truncado
as
SET NOCOUNT ON
declare @comand varchar(256)
truncate table output_tmp
set @comand='Nslookup -q=mx '+@domain
DECLARE @SQLString NVARCHAR(4000)
Set @SQLString='exec master.dbo.xp_cmdshell '+char(39)+@comand+char(39)
--insert output_tmp
exec sp_executesql @SQLString
select @SQLString
if ( select distinct top 1 patindex('%mail exchanger%',texto) -- con que exista una sola entrada es suficiente
from output_tmp
where patindex('%mail exchanger%',texto)<>0
group by patindex('%mail exchanger%',texto)) <> 0 -- El texto mail exchanger determina la existencia de configuracion MX
begin
print 'Dominio valido' -- las salidas se pueden modificar para que sean 0/1 según sea necesario su uso
end
else
print 'Dominio no valido'
go
exec Usp_valida_domain 'yahoo.es' -- test con dominio correcto
exec Usp_valida_domain 'yahoo.e' -- test con dominio incorrecto
*************** CODIGO *****************
Comentar por ultimo que se puede especificar un tiempo de TimeOut par la consulta mx ya que es posible que el servidor DNS que realiza la consulta funcione con algo de retraso y no valide dominio en tiempo, de esta forma si pasamos el tiempo de TimeOut como parámetro con -TimeOut=10 el servidor DNS que realiza la consulta se tomara 10 segundos para contestarnos que el dominio hotmail.ocm no es valido.
Figura 3
Espero que encontréis esta entrada de utilidad.
Etiquetas:
Consulta MX; SQL Server
Suscribirse a:
Entradas (Atom)